A comprehensive inventory management system built with Flask, designed for tracking general inventory items and computer systems.
- Track both general inventory items and computer systems
- Barcode scanning support with UPCItemDB integration
- Dark/Light mode support across all components
- Location-based inventory tracking
- Reorder threshold monitoring
- Multi-user support with role-based access control (Admin/User)
- Quick checkout system with PIN code access
- Automated build number versioning
- Add, edit, view, and delete inventory items
- Barcode scanning for quick item addition
- Storage location tracking
- Automatic restock alerts with email notifications
- Custom tagging system with color coding
- Printable 4x2 labels with barcodes and QR codes
- Bulk item management
- Purchase URL tracking
- CSV import/export functionality with templates
- Separate tracking for computer systems
- Detailed computer specifications tracking
- CPU and model management
- Testing results tracking with status indicators
- Component tracking (RAM, Storage, OS)
- Performance benchmarks
- Serial tag management
- Testing status workflow
- Database backup and restore functionality
- CSV import/export with field mapping
- Downloadable import templates
- Log management with date-based filtering
- Automatic data validation
- Nullable field support
- User creation and management
- Role assignment (Admin/User)
- PIN code management for quick access
- Email and password management
- Activity logging per user
- User-specific permissions
- Advanced search functionality
- Multiple filter options:
- Category
- Type
- Status
- Location
- Tags
- Sortable columns
- Tag-based filtering
- Smart search suggestions
- Modern responsive design
- Dark/Light mode toggle with full theme support
- Icon-based actions
- Status indicators
- Tag color coding
- Pagination
- Mobile-friendly interface
- Tabbed interface for system types
- Modal dialogs with theme support
- Detailed system logs
- Human-readable activity logging
- Downloadable logs with date filtering
- Email notifications for low stock
- Error tracking and reporting
- User activity monitoring
- Clone the repository:
git clone [repository-url]
cd tcinvintory
- Create and activate a Conda environment:
conda create -n inventory python=3.11
conda activate inventory
- Install dependencies:
pip install -r requirements.txt
- Set up the PostgreSQL database (version 16 required):
createdb inventory_db
createuser inventory_admin
- Configure environment variables in
.env
:
FLASK_APP=run.py
FLASK_ENV=development
SECRET_KEY=your_secret_key
DATABASE_URL=postgresql://inventory_admin:your_password@localhost:5432/inventory_db
DEBUG=True
# System Defaults
DEFAULT_ITEMS_PER_PAGE=20
DEFAULT_ALLOW_REGISTRATION=false
DEFAULT_REQUIRE_EMAIL_VERIFICATION=false
DEFAULT_ALLOW_PASSWORD_RESET=true
# Admin Configuration
ADMIN_USERNAME=admin
[email protected]
ADMIN_PASSWORD=your_secure_password
ADMIN_PIN=123456
# API Keys
UPCITEMDB_API_KEY=your_api_key_here
- Initialize the database:
flask db upgrade
flask create-category
flask create-admin
flask init-config
- Start the application:
flask run -p 5001
-
Access the application at
http://127.0.0.1:5001
-
Log in with the admin credentials configured in your
.env
file
The system includes a Dockerfile for containerized deployment:
docker build -t tcinventory .
docker run -p 8080:8080 --env-file .env tcinventory
- InventoryItem: Base model for all inventory items
- ComputerSystem: Extended model for computer systems
- Category: Item categorization
- Tag: Item tagging system
- User: User management with role-based access
- Configuration: System settings and preferences
- Barcode scanning for quick item addition
- Location-based inventory tracking
- Automatic restock alerts with email notifications
- PIN-based quick checkout system
- Role-based access control
- Dark/Light mode theme switching
- 4x2 label printing with barcodes and QR codes
- CSV import/export functionality
- Database backup and restore
- Log management and filtering
- Fork the repository
- Create a 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
WebDevTodayJason - GitHub Profile
- Repository URL: https://github.com/webdevtodayjason/tc-Inventory
- Clone URL: https://github.com/webdevtodayjason/tc-Inventory.git
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ by WebDevTodayJason