A modern, feature-rich file management system with advanced search and metadata organization
Features β’ Installation β’ Usage β’ Screenshots β’ Contributing
- About
- Features
- Requirements
- Installation
- Usage
- Project Structure
- Database Schema
- Contributing
- License
- Acknowledgments
VINA File Manager is a sophisticated desktop application designed for efficient document and file management. Built with PyQt5, it provides an intuitive interface for organizing, searching, and managing files with rich metadata support including categories, clients, versions, and custom item names.
Perfect for businesses and teams that need to:
- π Organize large collections of documents
- π Quickly search files by multiple criteria
- β Mark and filter favorite files
- π Track file versions and metadata
- π¨ Work in a comfortable dark or light theme
- Real-time search across multiple fields:
- Filename
- Item name
- Category
- Client name
- Version number
- β Add individual files or entire folders
- π±οΈ Drag & drop support for quick file import
- π Open files or navigate to their folders
- ποΈ Remove files from database
- Categories: Organize files by type or department
- Clients: Track files by customer or project
- Versions: Maintain version history
- Item Names: Custom descriptive names for files
- Auto-complete: Dropdown suggestions for categories and clients
- Mark important files as favorites
- Filter view to show only favorites
- Quick toggle between all files and favorites
- π Dark/Light mode toggle
- π Clean, modern table view
- π― Context menu for quick actions
- π± Responsive column resizing
- π Auto-refresh functionality
- SQLite database for reliable storage
- Automatic metadata tracking
- Last modified date tracking
- Python 3.6 or higher
- PyQt5 5.12 or higher
- SQLite3 (included with Python)
- PyInstaller
- Inno Setup (for Windows installer)
-
Clone the repository
git clone https://github.com/yourusername/File-manager-project.git cd File-manager-project -
Install dependencies
pip install PyQt5
-
Run the application
python "VINA File_manager.py"
- Download the latest release from the Releases page
- Run
VINA File_manager.exe - The application will create a
files_advanced.dbdatabase file automatically
-
Launch the application
- Run the executable or Python script
- The database will be created automatically on first launch
-
Add Files
- Click β ΰΉΰΈΰΈ΄ΰΉΰΈ‘ΰΉΰΈΰΈ₯ΰΉ (Add File) to select individual files
- Click π ΰΉΰΈΰΈ΄ΰΉΰΈ‘ΰΉΰΈΰΈ₯ΰΉΰΈΰΈΰΈ£ΰΉ (Add Folder) to import all files from a folder
- Or simply drag and drop files/folders into the window
-
Enter Metadata
- When adding files, you'll be prompted for:
- Item Name: A descriptive name for the file
- Category: File category (with auto-complete)
- Client: Client or project name (with auto-complete)
- Version: Version number or identifier
- When adding files, you'll be prompted for:
-
Search Files
- Type in the search box to filter files in real-time
- Search works across all metadata fields
-
Manage Files
- Double-click a file to open it
- Right-click for context menu options:
- Open file
- Open folder
- Edit metadata
- Toggle favorite status
- Delete from database
-
View Favorites
- Click β ΰΉΰΈͺΰΈΰΈΰΈ£ΰΈ²ΰΈ’ΰΈΰΈ²ΰΈ£ΰΉΰΈΰΈ£ΰΈ (Show Favorites) to filter
- Toggle back to show all files
-
Switch Themes
- Click π ΰΈͺΰΈ₯ΰΈ±ΰΈΰΉΰΈ«ΰΈ‘ΰΈΰΈͺΰΈ§ΰΉΰΈ²ΰΈ/ΰΈ‘ΰΈ·ΰΈ (Toggle Dark/Light Mode)
File-manager-project/
β
βββ VINA File_manager.py # Main application file
βββ VINA File_manager.spec # PyInstaller spec file
βββ files_advanced.db # SQLite database (auto-generated)
βββ logo.png # Application logo
βββ logo.ico # Application icon
βββ developer.png # Developer information image
β
βββ build/ # Build artifacts
β βββ VINA File_manager/
β
βββ dist/ # Distribution files
β βββ VINA File_manager.exe
β βββ ...
β
βββ compile setup/ # Installation setup files
βββ set.iss
βββ VINA File_manager.exe
The application uses SQLite with three main tables:
| Column | Type | Description |
|---|---|---|
| id | INTEGER | Primary key |
| filename | TEXT | Original filename |
| item_name | TEXT | Custom item name |
| filepath | TEXT | Full file path |
| category | TEXT | File category |
| client | TEXT | Client/project name |
| version | TEXT | Version identifier |
| favorite | INTEGER | Favorite flag (0 or 1) |
| last_modified | TEXT | Last modification date |
| Column | Type | Description |
|---|---|---|
| id | INTEGER | Primary key |
| name | TEXT | Category name (unique) |
| Column | Type | Description |
|---|---|---|
| id | INTEGER | Primary key |
| name | TEXT | Client name (unique) |
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Made with β€οΈ for efficient file management
β Star this repo if you find it helpful!