Version 2.3.3 | Developer: Nemanja Komadina
A modern desktop inventory management system built with PyQt6 and SQLite. Features dark/light themes, keyboard shortcuts, comprehensive help system, audit logging, multi-language support, and data validation.
- โ Box Management: Create, read, update, and delete storage boxes with location tracking
- โ Item Management: Track items with quantities assigned to boxes
- โ Search & Filter: Advanced filtering by name, box, location with database indexes for performance
- ๐จ Dark & Light Themes: Toggle between themes with saved preference (Ctrl+T)
- โจ๏ธ Keyboard Shortcuts: 8 shortcuts for power users (Ctrl+F, Ctrl+N, Ctrl+B, etc.)
- ๐ Multi-Language Support: 6 languages (English, Serbian, German, Spanish, French, Italian)
- โ Comprehensive Help: Built-in help system with 5 sections (F1)
- ๐ CSV Import: Import inventory data with comprehensive validation
- Pre-import validation checks
- Preview dialog before committing
- Error detection and reporting
- NEW: Export import template with real box names as examples
- ๐ค CSV Export: Export inventory and audit logs to CSV format
- ๐พ Database Backups: Automatic backup reminders and manual backup capability
- ๐๏ธ SQLite Database: Reliable persistence with foreign key constraints and indexes
- ๐ Location Tracking: Track physical storage locations for boxes
- โ Data Validation: Input validation prevents empty names, zero quantities, and invalid data
- ๐ Audit Logs: Complete transaction history with detailed change tracking
- ๐ History Tab: View all operations with filtering by action type and entity
- ๐ Statistics: Real-time counts of creates, updates, and deletes
- ๐ Verbose File Logging: Comprehensive daily log files with timestamps
- Application lifecycle events
- Database operations
- Dialog interactions
- User actions
- Language changes
- Export/Import operations
- Error tracking
- ๐ Change Tracking: Stores before/after values for all updates
- ๐จ Responsive UI: Clean table layouts with alternating row colors
- ๐ Theme Toggle: Dark and light themes with persistent preference
- ๐ Real-time Search: Instant filtering as you type with Ctrl+F shortcut
- โก Quick Actions: In-table edit and delete buttons
โ ๏ธ Validation: Input validation with helpful error messages (max length, required fields)- ๐ Backup Reminders: Automatic 7-day backup notifications
- ๐ Language Selector: Easy language switching with persistence
- โจ๏ธ Keyboard Navigation: Full keyboard support with 8 shortcuts
- ๐ Integrated Help: Press F1 for comprehensive documentation
Speed up your workflow with these keyboard shortcuts:
| Shortcut | Action | Description |
|---|---|---|
Ctrl+F |
Focus Search | Jump to search box in current tab |
Ctrl+N |
Add New | Add new box/item (context-aware) |
Ctrl+B |
Backup | Create database backup |
Ctrl+E |
Export | Export inventory to CSV |
Ctrl+T |
Toggle Theme | Switch between dark/light theme |
Ctrl+1 |
Boxes Tab | Switch to Boxes tab |
Ctrl+2 |
Items Tab | Switch to Items tab |
Ctrl+3 |
History Tab | Switch to History tab |
F1 |
Help | Open comprehensive help dialog |
- Python 3.13+
- PyQt6
Install dependencies:
pip install -r requirements.txt- Clone or download this repository
- Install dependencies:
pip install PyQt6
python gui.py- Navigate to the Boxes tab
- Click + Add Box to create a new storage box
- Enter box name and location (e.g., "Garage Shelf 2")
- Use the search bar to filter boxes by name or location
- Click Edit to modify or Del to remove a box
- Navigate to the Items tab
- Click + Add Item to create a new inventory item
- Select the box, enter quantity, and item details
- Use filters to search by item name or box
- Edit or delete items using the action buttons
- Click Language in the menu bar
- Select your preferred language
- Restart the application for changes to take effect
- Your language preference is saved automatically
- Navigate to the History tab
- Filter by action type (CREATE/UPDATE/DELETE)
- Filter by entity type (ITEM/BOX)
- Search by entity name
- View detailed change information with timestamps
- Go to Help โ Export CSV Import Template
- Save the template file
- The template includes:
- Correct headers
- Example rows using your actual box names
- Detailed instructions as comments
- Go to File โ Import from CSV
- Select a CSV file with columns:
Item Name,Box,Quantity - Review the preview and validation results
- Confirm import if no errors
CSV Format Example:
Item Name,Box,Quantity
Screwdriver,Toolbox A,5
Hammer,Toolbox A,2
Nails,Storage 1,100- Export Inventory: File โ Export Inventory to CSV
- Export Audit Logs: File โ Export Audit Logs to CSV
- Manual Backup: File โ Backup Database
- Automatic Reminders: Prompted if no backup in 7 days
- Backups stored in
backup/folder with timestamps
- ๐ฌ๐ง English
- ๐ท๐ธ ะกัะฟัะบะธ (Serbian)
- ๐ฉ๐ช Deutsch (German)
- ๐ช๐ธ Espaรฑol (Spanish)
- ๐ซ๐ท Franรงais (French)
- ๐ฎ๐น Italiano (Italian)
The application logs comprehensive information to help track all operations:
- โ Application startup and shutdown
- โ Database initialization and migrations
- โ Database statistics (box count, item count, log count)
- โ Language changes and preferences
- โ All dialog opens (Add/Edit Item, Add/Edit Box)
- โ Dialog save operations with full data
- โ Validation errors and warnings
- โ Backup operations (folder creation, file copying)
- โ CSV export operations (file writing, item counts)
- โ CSV import previews and validations
- โ All CRUD operations (Create, Read, Update, Delete)
- โ Error conditions and exceptions
- File:
logs/inventory_YYYY-MM-DD.log(daily rotation) - Console: stdout (real-time viewing during development)
- Encoding: UTF-8 (supports all languages including Cyrillic)
YYYY-MM-DD HH:MM:SS,mmm - LEVEL - MESSAGE
- Ensure CSV has correct headers:
Item Name,Box,Quantity - Boxes must exist before importing items
- Quantities must be positive integers
- Check that
inventory.dbhas write permissions - Review logs in
logs/folder for detailed error messages
See CHANGELOG.md for detailed version history and changes.
We welcome contributions! Please see CONTRIBUTING.md for:
- Project structure and architecture
- Database schema details
- Development setup instructions
- Code style guidelines
- Pull request process
Also read our Code of Conduct before contributing.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
See LICENSE for full details.
- Press F1 for Help: Comprehensive built-in documentation with all features explained
- Use Keyboard Shortcuts: Speed up workflow with Ctrl+F (search), Ctrl+N (add), Ctrl+B (backup)
- Toggle Theme: Press Ctrl+T to switch between dark and light themes
- Get Import Template: Help โ Export CSV Import Template for easy bulk imports
- Backup Regularly: Use the automatic backup feature to protect your data
- Review History: Check the History tab to audit all changes
- Search Effectively: Use filters and Ctrl+F to quickly find items or boxes
- Export Reports: Export audit logs for external analysis
- Check Logs: Review daily log files in
logs/for troubleshooting - Track Locations: Use the location field to remember where boxes are stored
- Switch Languages: Use the Language menu to change the interface language
Built with โค๏ธ by Nemanja Komadina using PyQt6 and SQLite