Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Sortify πŸ—‚οΈ

AI-Ready Smart File Organizer for Desktop

Sortify is a production-ready, thread-safe desktop application built with Python 3.12+ and PySide6 (Qt6). It automatically organizes files into dynamic, categorized directory trees based on file type, extension, metadata, and optional AI classification.

Sortify is designed to be fast, private, offline-first, and extensible, with features such as duplicate detection, instant search, real-time folder monitoring, operation history, and an extensible AI plugin architecture.


πŸ“š Documentation Index

For in-depth documentation on architecture, design tokens, operational mechanics, and contributing guidelines:

  • πŸ“– HOW_IT_WORKS.md β€” Detailed User Guide covering File Scanning, Categorization Rules, SHA-256 Duplicate Hashing, Instant Search, 1-Click Undo, Real-time Watchdog, and Settings.
  • πŸ— DESIGN.md β€” System Architecture, Layered N-Tier Design, Multi-Threading Concurrency, SQLite Schema, and Path Traversal Security.
  • 🎨 LAYOUT.md β€” UI Layout Hierarchy, Windows 11 Fluent HSL Design Tokens, QSS Stylesheets, Dark & Light Theme Engine, and Visual Design Principles.
  • 🀝 CONTRIBUTING.md β€” Developer Guide for extending file categories, building AI plugins, and running automated tests.

🌟 Key Features

  • Multi-File & Folder Organization β€” Automatically sort files into category subdirectories such as Programming/Python, Images/PNG, and Documents/PDF.
  • Move or Copy Mode β€” Choose whether files should be moved or copied.
  • Modern Windows 11 Fluent UI β€” Dark & Light themes with responsive layouts and smooth interactions.
  • Instant Search Engine β€” Search files by name, category, extension, and fuzzy matching using RapidFuzz.
  • SHA-256 Duplicate Finder β€” Efficient two-pass duplicate detection using file size filtering followed by chunked SHA-256 hashing.
  • Safe Duplicate Cleanup β€” Delete duplicate files using the system recycle bin through send2trash.
  • Operation History & 1-Click Undo β€” Restore previously organized files through the built-in history system.
  • Real-Time Folder Monitoring β€” Automatically organize newly created files using Watchdog.
  • Extensible AI Plugin Architecture β€” Architecture ready for OCR, image classification, automatic tagging, and LLM-powered naming.
  • 100% Offline & Private β€” No cloud dependency. Files and metadata remain on the user's device.

πŸš€ Quick Start

Prerequisites

Make sure you have:

  • Python 3.12 or newer
  • Git
  • Windows / Linux / macOS

Check your Python version:

python --version

1. Clone the Repository

Clone Sortify directly from GitHub:

git clone https://github.com/Prajapatidax/sortify.git

Move into the project directory:

cd sortify

2. Create a Virtual Environment

It is recommended to use a virtual environment.

Windows

python -m venv venv
venv\Scripts\activate

Linux / macOS

python3 -m venv venv
source venv/bin/activate

3. Install Dependencies

pip install -r requirements.txt

4. Run Sortify

python app.py

Sortify should now launch on your desktop.


πŸ—‚οΈ How Sortify Works

Suppose you have:

Downloads/

index.html
style.css
script.py
app.php
photo.jpg
logo.png
resume.pdf
song.mp3
video.mp4

Sortify automatically organizes them into:

Downloads/

β”œβ”€β”€ Programming/
β”‚   β”œβ”€β”€ HTML/
β”‚   β”‚   └── index.html
β”‚   β”‚
β”‚   β”œβ”€β”€ CSS/
β”‚   β”‚   └── style.css
β”‚   β”‚
β”‚   β”œβ”€β”€ Python/
β”‚   β”‚   └── script.py
β”‚   β”‚
β”‚   └── PHP/
β”‚       └── app.php
β”‚
β”œβ”€β”€ Images/
β”‚   β”œβ”€β”€ JPG/
β”‚   β”‚   └── photo.jpg
β”‚   β”‚
β”‚   └── PNG/
β”‚       └── logo.png
β”‚
β”œβ”€β”€ Documents/
β”‚   └── PDF/
β”‚       └── resume.pdf
β”‚
β”œβ”€β”€ Audio/
β”‚   └── MP3/
β”‚       └── song.mp3
β”‚
└── Videos/
    └── MP4/
        └── video.mp4

The folder structure is created automatically when required.


πŸ” Supported File Categories

Programming

Python
Java
C
C++
C#
HTML
CSS
JavaScript
TypeScript
PHP
React
Vue
Go
Rust
Swift
Kotlin
Dart

Images

PNG
JPG
JPEG
GIF
WEBP
SVG
BMP
ICO
TIFF
RAW

Videos

MP4
AVI
MOV
MKV
WMV
FLV

Audio

MP3
AAC
WAV
FLAC
OGG

Documents

PDF
DOC
DOCX
TXT
RTF
ODT

Spreadsheets

XLSX
CSV
ODS

Presentations

PPT
PPTX

Archives

ZIP
RAR
7Z
TAR
GZ

Other

EXE
MSI
APK
ISO
TTF
OTF
JSON
XML
YAML
SQL
ENV
LOG
MD

πŸ—οΈ Project Architecture

sortify/
β”‚
β”œβ”€β”€ .gitignore
β”œβ”€β”€ README.md
β”œβ”€β”€ HOW_IT_WORKS.md
β”œβ”€β”€ DESIGN.md
β”œβ”€β”€ LAYOUT.md
β”œβ”€β”€ CONTRIBUTING.md
β”‚
β”œβ”€β”€ app.py
β”œβ”€β”€ config.py
β”œβ”€β”€ requirements.txt
β”‚
β”œβ”€β”€ database.db
β”œβ”€β”€ settings.json
β”‚
β”œβ”€β”€ logs/
β”‚   └── application.log
β”‚
β”œβ”€β”€ history/
β”‚
β”œβ”€β”€ assets/
β”‚
β”œβ”€β”€ core/
β”‚   β”œβ”€β”€ models.py
β”‚   β”œβ”€β”€ database.py
β”‚   β”œβ”€β”€ settings.py
β”‚   β”œβ”€β”€ utils.py
β”‚   β”œβ”€β”€ organizer.py
β”‚   β”œβ”€β”€ duplicates.py
β”‚   β”œβ”€β”€ search.py
β”‚   β”œβ”€β”€ watchdog_engine.py
β”‚   └── plugins.py
β”‚
└── ui/
    β”œβ”€β”€ main_window.py
    β”œβ”€β”€ sidebar.py
    β”œβ”€β”€ toolbar.py
    β”œβ”€β”€ theme.py
    β”œβ”€β”€ dashboard.py
    └── pages.py

πŸ” Privacy

Sortify is designed with a local-first architecture.

Your files are not uploaded to a remote server.

The application performs:

  • File scanning locally
  • Searching locally
  • Duplicate detection locally
  • File organization locally
  • SQLite operations locally
  • Watchdog monitoring locally

No cloud account is required.


πŸ€– AI-Ready Architecture

The current core system does not require AI.

However, Sortify includes an extensible plugin architecture for future AI functionality.

Planned possibilities include:

  • πŸ–ΌοΈ AI Image Classification
  • πŸ”Ž Semantic File Search
  • πŸ“„ OCR
  • 🏷️ Automatic File Tagging
  • πŸ“ AI File Naming
  • πŸ‘€ Face-based Image Organization
  • πŸ“‘ Document Classification
  • 🧠 LLM-powered Organization Suggestions

These capabilities can be added as independent plugins without rewriting the core organizer.


πŸ› οΈ Development

Clone the repository:

git clone https://github.com/Prajapatidax/sortify.git
cd sortify

Create the virtual environment:

python -m venv venv

Activate it:

venv\Scripts\activate

Install dependencies:

pip install -r requirements.txt

Run:

python app.py

πŸ§ͺ Testing

Run the test suite:

pytest

For verbose output:

pytest -v

🀝 Contributing

Contributions are welcome!

If you want to improve Sortify:

  1. Fork the repository.
  2. Create a new branch.
  3. Make your changes.
  4. Add or update tests.
  5. Commit your changes.
  6. Push your branch.
  7. Create a Pull Request.

For detailed contribution guidelines, see:

CONTRIBUTING.md


πŸ“„ License

This project is open source. See the repository license for details.


πŸ‘¨β€πŸ’» Developer

Dax Prajapati

Computer Engineering Student & Developer

🌐 Website: https://prajapatidax.co.in

πŸ’Ό LinkedIn: https://www.linkedin.com/in/dax-prajapati1707

πŸ™ GitHub: https://github.com/Prajapatidax

πŸ“¦ Sortify Repository: https://github.com/Prajapatidax/sortify


⭐ Support the Project

If you find Sortify useful, consider giving the repository a ⭐ on GitHub.

Your support helps the project grow and motivates further development.


Sortify

Organize everything. Automatically. πŸ—‚οΈ

About

Smart desktop file organizer that automatically sorts, searches, and manages your files.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages