π¦ Professional Windows Desktop Laboratory Inventory Management System
This software is NOT FOR SALE and is intended for non-commercial use only.
See LICENSE.txt for complete license information.
Lab Inventory Manager is a comprehensive, feature-rich Windows desktop application designed specifically for professional laboratory environments. It provides complete inventory tracking, stock management, purchase order handling, and detailed reportingβall in a user-friendly interface.
Built with Python and Tkinter, it runs as a native Windows application with SQLite database and Excel integration, requiring no internet connection or cloud dependencies.
β Unified Inventory System
- Manage chemicals, PPE, glassware, analytical standards, HPLC/GC columns, and more
- Single unified inventory table (not fragmented by category)
- Support for packs, units, and quantity conversions
- Custom internal item numbering
β Stock Management
- Real-time stock on hand tracking
- Automatic stock on order calculation from purchase orders
- Minimum stock level alerts
- Reorder level automation
- Stock adjustment capabilities
β Purchase Orders
- Manual PO number entry (SAP integration-ready)
- Multi-line PO creation and tracking
- Automatic status management (Draft β Ordered β Received β Completed)
- Partial receipt handling
- Email order generation with copy-to-clipboard
β Receiving & Stock Operations
- Pack-to-unit conversion during receipt
- Automatic stock updates on receipt
- Average cost calculation
- Stock usage tracking with reason codes
- Stock adjustment and disposal logging
β Expiry Management
- Manual expiry date entry
- Automatic stock deduction on expiry
- Expiry tracking and reporting
- Loss valuation
β Cost Tracking
- Last purchase price tracking
- Weighted average cost calculation
- Cost per unit derivation
- Total inventory valuation
- Price history maintenance
β Reporting & Analytics
- Stock Status Report (quantity, value, on order)
- Low Stock Alert Report
- Usage Report (by date, user, category)
- Purchase Order Report (by supplier, status, date)
- Expiry Report (expired items, expiring soon)
- Inventory Valuation Report
- All reports exportable to Excel
β Import/Export
- Bulk inventory import via Excel templates
- Purchase order import from SAP exports
- Full inventory export with filtering
- Excel download templates
- Pre-validation before import
- Detailed import logs
β Security & Access Control
- User authentication with password hashing (bcrypt)
- Role-based access control:
- Admin: Full system access
- Technician: Item management, PO creation, stock operations
- Viewer: Read-only access
- Session timeout protection
- Comprehensive audit logging
β Organization & Management
- Custom categories (create, edit, archive)
- Hierarchical storage locations
- Supplier management with contact details
- Flexible search by item name, number, supplier, location
- Database backup automation
β Audit & Compliance
- Complete audit trail logging
- Tracks: creation, edits, stock movements, imports
- User attribution for all actions
- Timestamp on everything
- Before/after value tracking
- OS: Windows 10 or Windows 11 (64-bit recommended)
- RAM: 4 GB minimum (8 GB recommended)
- Disk Space: 500 MB minimum
- Display: 1280x800 minimum resolution
- Python: 3.8 or higher
- Administrator access for initial installation
tkinter(included with Python)openpyxl(Excel file handling)bcrypt(password hashing)python-dotenv(configuration management)
- Download
LabInventory_v1.0.0_Installer.exe - Run the installer
- Follow the on-screen prompts
- Restart your computer
- Launch Lab Inventory Manager from Start Menu
- Clone or download this repository
- Install Python 3.8+ from https://www.python.org
- Open Command Prompt in the project directory
- Run:
pip install -r lab_inventory/requirements.txt python lab_inventory/main.py
-
Create Admin User
- Default admin credentials will be prompted on first run
- Set a strong password
-
Initialize Database
- Database is created automatically on first run
- Located in
lab_inventory/data/lab_inventory.db
-
Configure Settings
- Click Admin β Settings
- Customize currency, measurement units, facility info
The application is organized into these main sections:
- View Inventory: See all items with stock levels and values
- Add Item: Click "New Item" to add chemicals, PPE, etc.
- Edit Item: Modify item details, suppliers, cost
- Search/Filter: Find items by name, code, supplier, location
- Receive Stock: Log incoming purchase orders
- Select PO
- Enter quantity received
- System converts packs to units
- Review and confirm
- Log Usage: Record item usage
- Select item and quantity
- Choose reason (analysis, disposal, damaged, etc.)
- Log entry is recorded and audit trail updated
- Record Expiry: Track expired items
- Select item
- Enter expiry date and quantity
- System deducts from stock
- Create PO: New purchase order
- Enter SAP PO number
- Select supplier
- Add line items with quantities
- Review total and confirm
- View Orders: See all POs filtered by status
- Receive Items: Log partial or full receipt
- Cancel Order: Mark orders as cancelled (removes from stock on order)
- Email PO: Generate formatted email text for manual sending
- Stock Report: Current inventory snapshot
- Low Stock Alert: Items below minimum levels
- Usage Report: Consumption tracking by period
- Order Report: PO history and supplier spending
- Expiry Report: Loss valuation and expiry tracking
- Valuation Report: Total inventory value by category/supplier
- Categories: Create and manage item categories
- Locations: Set up hierarchical storage locations
- Suppliers: Manage supplier information
- Users: Create and manage user accounts with roles
- Settings: Configure system-wide preferences
- Backups: Automatic and manual database backups
- Go to Inventory β New Item
- Enter internal item number (unique identifier)
- Enter item name, category, description
- Select supplier and enter supplier item number
- Set pack size and base unit (e.g., 1 box = 12 bottles)
- Enter current price and quantity
- Set minimum and reorder levels
- Save
- Go to Stock Operations β Receive Stock
- Select the PO from dropdown
- Enter quantity received (in packs)
- System shows converted base units
- Confirm receipt
- Stock is automatically updated
- PO status changes automatically
- Go to Reports β Stock Report
- Apply filters if needed (location, supplier, low stock)
- Click Export to Excel
- Choose save location
- File is exported as .xlsx with formatting
- Go to Administration β Users (Admin only)
- Click New User
- Set username and password
- Select role:
- Admin: Full access
- Technician: Item and stock operations only
- Viewer: Reports only
- Save and users can log in immediately
- Automatic: Backups created daily in
lab_inventory/data/backups/ - Manual: Go to Administration β Backups β Create Backup
- Database files can be copied to external storage
lab_inventory/data/lab_inventory.db
- This is your main database file
- Back it up regularly
- Can be restored from backups folder
- All reports can be exported to Excel
- Inventory can be exported for analysis or systems migration
- Exports preserve all formatting and calculations
- Ensure Windows 10 or 11
- Verify Python 3.8+ is installed (if running from source)
- Check that port 5000 is not in use
- Try restarting your computer
- Ensure
lab_inventory/data/folder exists - Verify folder has write permissions
- Check if database file is corrupted (restore from backup)
- Run:
pip install -r lab_inventory/requirements.txt - Or reinstall using the installer
- Close other applications
- Run database maintenance (Admin β Tools β Database Maintenance)
- Reduce report date range when exporting
- Run the application as Administrator
- Check file permissions in
lab_inventory/data/folder
lab_inventory/
βββ main.py # Application entry point
βββ config.py # Configuration settings
βββ requirements.txt # Python dependencies
β
βββ database/
β βββ db.py # Database connection and operations
β βββ schema.sql # Database schema definition
β
βββ models/
β βββ inventory.py # Inventory item model
β βββ purchase_order.py # PO model
β βββ supplier.py # Supplier model
β βββ category.py # Category model
β βββ storage_location.py # Location model
β βββ user.py # User account model
β
βββ services/
β βββ inventory_service.py # Item operations
β βββ stock_service.py # Stock level management
β βββ po_service.py # Purchase order operations
β βββ reporting_service.py # Report generation
β βββ import_export_service.py # Excel import/export
β βββ audit_service.py # Audit trail logging
β βββ [other services]
β
βββ ui/
β βββ main_window.py # Main application window
β βββ login_window.py # Login interface
β βββ inventory/ # Inventory UI components
β βββ purchase_orders/ # PO UI components
β βββ stock_ops/ # Stock operations UI
β βββ reporting/ # Reporting UI
β βββ admin/ # Administration UI
β βββ dialogs/ # Dialog windows
β
βββ data/
β βββ lab_inventory.db # SQLite database
β βββ backups/ # Automatic backups
β
βββ logs/
β βββ [application logs] # Debug and activity logs
β
βββ utils/
βββ password_utils.py # Password hashing
-
Password Security
- Passwords are hashed with bcrypt, never stored in plain text
- Change default admin password immediately
- Use strong passwords (8+ characters, mix of types)
-
Data Protection
- Regular backups are essential
- Store backups in secure location
- Restrict file access to authorized users
-
User Access
- Use appropriate roles: don't give admin access unnecessarily
- Review user activity in audit logs
- Disable unused accounts
-
Network Security
- Application runs locally, no cloud dependency
- Database file should not be shared over unsecured networks
- For multi-user: use shared folder with NTFS permissions
- Installation Guide: See INSTALLATION_GUIDE.md
- User Manual: See USER_README.md
- Developer Info: See DEVELOPER_QUICK_REFERENCE.md
- Database Schema: See DATABASE_SCHEMA_REFERENCE.md
- Initial public release
- Complete inventory management system
- Purchase order tracking
- Stock operations and expiry tracking
- Comprehensive reporting
- Excel import/export
- Multi-user support with role-based access
- Full audit logging
NON-COMMERCIAL USE ONLY
This software is provided free of charge for non-commercial use in laboratory environments. Commercial use, resale, or redistribution is strictly prohibited.
See LICENSE.txt for complete license terms.
Copyright Β© 2026. All rights reserved.
This software is provided as-is. The author and copyright owner assume no liability for any damages resulting from use of this software.
This is a non-commercial project. Contributions, suggestions, and bug reports are welcome but subject to the non-commercial license terms.
Made with β€οΈ for laboratory professionals