Skip to content

An efficient tool to automatically organize your files into folders based on type, extension, or custom rules. Perfect for keeping your directories tidy without manual effort.

License

Notifications You must be signed in to change notification settings

JashanMaan28/Automatic-File-Sorting-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

25 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


πŸ—‚οΈ Automatic File Sorting System

Automatic File Sorting System Logo

Stars Forks Issues License

πŸš€ A modern, web-based file organization system with a beautiful Vercel-inspired UI

Automatically sort and organize your files into categorized folders with a sleek, user-friendly interface. Built with Flask, modern CSS, and vanilla JavaScript.


πŸ“Έ Screenshots

Main Application Interface

Main Interface


✨ Features

🎨 Modern UI/UX

  • Vercel-inspired design with clean, minimalist aesthetics
  • Dark/Light theme toggle with system preference detection
  • Smooth animations and transitions throughout the interface
  • Fully responsive design that works on all devices
  • Interactive category cards with real-time file counts

πŸ“ Smart File Organization

  • 6 Built-in Categories: Images, Documents, Media, Executables, Code, Archives
  • 22+ File Extensions supported out of the box
  • Custom category management through intuitive settings modal
  • Persistent settings saved to JSON file
  • Real-time file processing with loading states and animations

βš™οΈ Advanced Settings

  • Expandable category sections with smooth animations
  • Add/Remove file extensions with visual feedback
  • Extension validation and duplicate prevention
  • Reset to defaults functionality
  • Export/Import settings capability

πŸ”§ Technical Features

  • REST API endpoints for settings management
  • File-based persistence that survives server restarts
  • Error handling with user-friendly messages
  • Cross-platform compatibility (Windows, macOS, Linux)
  • Clean, modular codebase with modern JavaScript

⚑️ Installation

πŸ–₯️ Desktop App (Recommended)

For Windows users, there's now a ready-to-use desktop application available!

πŸ“₯ Download from Releases: Go to the Releases section of this repository and download:

  • File Sorting System Setup 1.0.0.exe - Professional installer with shortcuts

✨ Features of the Desktop App:

  • Native folder browser with "Browse" button
  • No need to type folder paths manually
  • Modern desktop interface with system integration
  • Runs as a standalone Windows application

🌐 Web Version (Manual Setup)

If you prefer the web version or want to run on other platforms:

Prerequisites

  • Python 3.7 or higher
  • Modern web browser (Chrome, Firefox, Safari, Edge)

Quick Start

  1. Clone the repository

    git clone https://github.com/JashanMaan28/Automatic-File-Sorting-System.git
    cd Automatic-File-Sorting-System
  2. Install dependencies

    pip install -r requirements.txt
  3. Run the application

    python app.py
  4. Open your browser

    Navigate to: http://127.0.0.1:5000
    

πŸš€ Usage

Basic File Sorting

  1. Launch the application by running python app.py
  2. Enter the folder path you want to organize
  3. Click "Organize Files" to start the sorting process
  4. Watch the magic happen as files are automatically categorized!

Customizing Categories

  1. Click the settings icon (βš™οΈ) in the top navigation
  2. Expand any category to view its file extensions
  3. Add new extensions by typing them in the input field
  4. Remove extensions by clicking on the extension tags
  5. Save your changes to persist them across sessions

🎭 Before & After Examples

Test Folder Organization

Messy folder before sorting
Cluttered folder with mixed file types
Organized folders after sorting
Clean, organized folders by category

File Categories Breakdown

Category Extensions Example Files
Images .jpg, .png, .gif, .svg, .webp photos, logos, icons
Documents .pdf, .docx, .txt, .csv, .xlsx reports, spreadsheets, notes
Media .mp3, .mp4, .avi, .flac, .mov music, videos, audio
Executables .exe, .msi, .sh, .bat, .app programs, installers, scripts
Code .js, .py, .html, .css, .java source code, web files
Archives .zip, .rar, .7z, .tar.gz, .iso compressed files, backups

πŸ—οΈ Project Structure

Automatic-File-Sorting-System/
β”œβ”€β”€ πŸ“ static/
β”‚   β”œβ”€β”€ πŸ“ css/
β”‚   β”‚   └── styles.css          # Modern CSS with custom properties
β”‚   └── πŸ“ Js/
β”‚       └── script.js           # Interactive JavaScript functionality
β”œβ”€β”€ πŸ“ templates/
β”‚   └── index.html              # Main application template
β”œβ”€β”€ πŸ“ test_folder/             # Sample files for testing
β”‚   β”œβ”€β”€ sample_photo.jpg
β”‚   β”œβ”€β”€ report.pdf
β”‚   β”œβ”€β”€ music.mp3
β”‚   β”œβ”€β”€ app.js
β”‚   β”œβ”€β”€ backup.zip
β”‚   └── ... (22 test files total)
β”œβ”€β”€ πŸ“ screenshots/             # Application screenshots
β”‚   β”œβ”€β”€ main-interface.png
β”‚   β”œβ”€β”€ settings-modal.png
β”‚   └── before-after/
β”œβ”€β”€ app.py                      # Flask backend application
β”œβ”€β”€ imports.py                  # Python imports and dependencies
β”œβ”€β”€ settings.json              # Persistent user settings
β”œβ”€β”€ requirements.txt           # Python dependencies
β”œβ”€β”€ .gitignore                # Git ignore rules
β”œβ”€β”€ LICENSE                   # MIT License
└── README.md                 # This file

🎯 API Endpoints

Settings Management

Method Endpoint Description
GET /api/categories Retrieve current file categories
POST /api/categories Update file categories
POST /api/categories/reset Reset categories to defaults

File Operations

Method Endpoint Description
GET / Main application interface
POST /organize Organize files in specified directory

πŸ§ͺ Testing

Using the Test Folder

The project includes a comprehensive test folder with 22 sample files:

# Navigate to the test folder
cd test_folder

# View the test files
ls -la

# Use this path in the application
# Windows: e:\Github Projects\Automatic-File-Sorting-System\test_folder
# macOS/Linux: /path/to/Automatic-File-Sorting-System/test_folder

Expected Results

After running the sorting process on the test folder, you should see:

  • βœ… 6 new category folders created
  • βœ… 22 files sorted into appropriate categories
  • βœ… Clean, organized directory structure

🀝 Contributing

We welcome contributions! Here's how you can help:

Development Setup

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes
  4. Test thoroughly
  5. Commit your changes: git commit -m 'Add amazing feature'
  6. Push to the branch: git push origin feature/amazing-feature
  7. Open a Pull Request

Code Style

  • Follow PEP 8 for Python code
  • Use modern JavaScript (ES6+) features
  • Maintain consistent CSS formatting
  • Add comments for complex logic
  • Write descriptive commit messages

Areas for Contribution

  • 🌟 New Features: Drag & drop, file preview, batch operations
  • πŸ› Bug Fixes: Report and fix issues
  • πŸ“– Documentation: Improve README, add code comments
  • 🎨 UI/UX: Enhance design, add animations
  • πŸ”§ Performance: Optimize file processing, reduce load times

πŸ“‹ Roadmap

Version 2.0 (Planned)

  • Drag & drop file interface
  • File preview system
  • Undo/Redo functionality
  • Batch file operations
  • Watch folder monitoring
  • Cloud storage integration

Version 2.5 (Future)

  • Mobile app companion
  • Advanced file rules engine
  • Multi-user support
  • Analytics dashboard
  • Plugin system

πŸ› οΈ Tech Stack

Backend

  • Flask - Python web framework
  • Python 3.7+ - Core programming language
  • JSON - Settings persistence

Frontend

  • HTML5 - Semantic markup
  • CSS3 - Modern styling with custom properties
  • Vanilla JavaScript - Interactive functionality
  • SVG Icons - Scalable vector graphics

Design

  • Vercel-inspired UI - Clean, modern aesthetics
  • Inter Font Family - Beautiful typography
  • CSS Grid & Flexbox - Responsive layouts
  • CSS Animations - Smooth transitions

πŸ“Š Performance

Benchmarks

  • Small folders (< 50 files): ~1-2 seconds
  • Medium folders (50-200 files): ~3-5 seconds
  • Large folders (200+ files): ~5-10 seconds

Optimization Features

  • Efficient file processing with Python's pathlib
  • Asynchronous UI updates with smooth animations
  • Minimal memory footprint with streaming operations
  • Fast categorization with optimized extension matching

πŸ”’ Security

  • Path validation prevents directory traversal
  • File extension filtering blocks potentially harmful files
  • Safe file operations with proper error handling
  • No external dependencies for core functionality

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

What this means:

βœ… What You Can Do (Permissions):

  • Use the code for personal or commercial projects.
  • Modify the code in any way you like.
  • Distribute the code, with or without changes.
  • Use it in closed-source or open-source projects.
  • License your modified version however you want.

❌ What You Can't Do (Limitations):

  • You must include the original license and copyright notice.
  • No warranty is providedβ€”use the code at your own risk.
  • You can’t hold the author liable for any damage or issues caused by the code.

πŸ™ Acknowledgments

  • Vercel - Design inspiration for the modern UI
  • Inter Font - Beautiful typography
  • Flask Community - Excellent web framework
  • Open Source Contributors - Making development possible

πŸ“ž Support

Getting Help

  • πŸ“– Documentation: Check this README first
  • πŸ’¬ Issues: GitHub Issues
  • πŸ“§ Email: Contact through GitHub profile
  • 🌟 Star the repo if this project helped you!

Frequently Asked Questions

Q: Can I add custom file categories? A: Yes! Use the settings modal to add new extensions to existing categories.

Q: Does this work on all operating systems? A: Yes! The system works on Windows, macOS, and Linux.

Q: Are my files safe during sorting? A: Absolutely! Files are moved (not copied), and the system includes error handling.

Q: Can I undo the sorting operation? A: Currently, you would need to manually move files back. An undo feature is planned for v2.0.


Made with ❀️ by Jashanpreet Singh

⬆️ Back to Top


About

An efficient tool to automatically organize your files into folders based on type, extension, or custom rules. Perfect for keeping your directories tidy without manual effort.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published