Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧹 Developer Disk Cleaner

License: MIT Python 3.10+ PySide6

Developer Disk Cleaner is a lightning-fast, production-ready Windows desktop utility designed specifically for developers to safely manage, scan, and clean up massive node_modules folders scattered across their hard drives.

If you're tired of running out of disk space because of forgotten JavaScript projects, this tool is for you!

⭐ If you find this project useful, please consider giving it a star on GitHub and following me for more awesome tools! ⭐


✨ Features

  • πŸš€ Lightning Fast Scanning: Scans entire drives or specific folders in the background using multithreading (QThread), ensuring the UI never freezes.
  • 🧠 Smart Project Detection: Automatically detects the framework (React, Next.js, Vue, Angular, Vite, etc.) and package manager (npm, yarn, pnpm, bun) of your projects.
  • 🎨 Modern Dark UI: A beautiful, responsive, and distraction-free dark theme built with PySide6.
  • πŸ›‘οΈ Recovery Bin & Dry Run:
    • Dry Run: See exactly how much space you'll recover before deleting anything.
    • Recovery Bin: Safely move node_modules to a temporary recycle bin instead of permanently deleting them, ensuring zero data loss.
  • πŸ“Š Real-time Dashboard: Instantly view the total number of projects, node_modules found, and the total space consumed.
  • πŸ” Advanced Filtering & Sorting: Instantly search for specific projects or filter by frameworks.
  • πŸ“‚ Quick Actions: Right-click any project to instantly open the project directory or the node_modules folder in your file explorer.
  • πŸ“₯ Export to CSV/JSON: Easily export your scan results for record-keeping.

πŸ› οΈ Installation

Prerequisites

  • Python 3.10 or higher installed on your system.

Setup

  1. Clone the repository:

    git clone https://github.com/yourusername/developer-disk-cleaner.git
    cd developer-disk-cleaner
  2. Install the required dependencies:

    pip install -r requirements.txt
  3. Run the application: You can run the application directly via Python:

    python main.py

    Alternatively, if you are on Windows, you can simply double-click the start.bat file to launch the application instantly.


πŸ“– How to Use

  1. Scan your drive: Click Scan Folder(s) and select your root development directory (e.g., C:\Users\YourName\Documents\Projects).
  2. Review your projects: The tool will list all found node_modules, along with the project name, framework, and size.
  3. Select what to delete: Use the checkboxes to select the old, inactive projects you want to clean up.
  4. Dry Run (Optional): Click Dry Run to verify how much disk space will be freed.
  5. Delete Selected: Click Delete Selected. By default, folders are moved to a safe Recovery Bin. You can change this behavior in the Settings.

πŸ—οΈ Architecture

This project is built using a clean, modular Object-Oriented architecture using PySide6 (Qt for Python).

DeveloperDiskCleaner/
β”œβ”€β”€ main.py                     # Application entry point
β”œβ”€β”€ start.bat                   # Windows quick-start script
β”œβ”€β”€ requirements.txt            # Dependencies
β”œβ”€β”€ core/                       # Core business logic
β”‚   β”œβ”€β”€ scanner.py              # Background scanning (QThread)
β”‚   β”œβ”€β”€ deleter.py              # Deletion logic (Dry Run, Permanent, Recovery Bin)
β”‚   β”œβ”€β”€ detector.py             # Project detection heuristics
β”‚   β”œβ”€β”€ exporter.py             # CSV/JSON data export
β”‚   └── settings.py             # QSettings wrapper
β”œβ”€β”€ ui/                         # GUI components
β”‚   β”œβ”€β”€ main_window.py          # Main UI layout and interactions
β”‚   β”œβ”€β”€ models.py               # Custom QAbstractTableModel for extreme performance
β”‚   └── settings_dialog.py      # Preferences dialog
β”œβ”€β”€ utils/                      # Helper utilities
β”‚   β”œβ”€β”€ helpers.py              # Formatting functions
β”‚   └── logger.py               # Application logging setup
└── resources/styles/           # QSS stylesheets (Dark Mode)

🀝 Contributing

Contributions are always welcome! Whether it's a bug report, a new feature suggestion, or a pull request, your input is highly valued.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“ License

Distributed under the MIT License. See LICENSE for more information.


❀️ Show your support

If this tool saved your hard drive from overflowing, please hit the ⭐ button at the top right of this page! Follow me on GitHub to stay updated on my latest open-source projects!

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages