Skip to content

negoti8za/Lab-Inventory-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Lab Inventory Manager

πŸ“¦ Professional Windows Desktop Laboratory Inventory Management System

License Python Platform Version

⚠️ IMPORTANT: NON-COMMERCIAL USE ONLY

This software is NOT FOR SALE and is intended for non-commercial use only.

See LICENSE.txt for complete license information.


Overview

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.

Key Features

βœ… 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

System Requirements

Hardware

  • 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

Software

  • Python: 3.8 or higher
  • Administrator access for initial installation

Dependencies

  • tkinter (included with Python)
  • openpyxl (Excel file handling)
  • bcrypt (password hashing)
  • python-dotenv (configuration management)

Quick Start

Installation

Option 1: Using Installer (Recommended)

  1. Download LabInventory_v1.0.0_Installer.exe
  2. Run the installer
  3. Follow the on-screen prompts
  4. Restart your computer
  5. Launch Lab Inventory Manager from Start Menu

Option 2: From Python Source

  1. Clone or download this repository
  2. Install Python 3.8+ from https://www.python.org
  3. Open Command Prompt in the project directory
  4. Run:
    pip install -r lab_inventory/requirements.txt
    python lab_inventory/main.py

First Time Setup

  1. Create Admin User

    • Default admin credentials will be prompted on first run
    • Set a strong password
  2. Initialize Database

    • Database is created automatically on first run
    • Located in lab_inventory/data/lab_inventory.db
  3. Configure Settings

    • Click Admin β†’ Settings
    • Customize currency, measurement units, facility info

Usage Guide

Navigation

The application is organized into these main sections:

πŸ“‹ Inventory Management

  • 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

πŸ“¦ Stock Operations

  • Receive Stock: Log incoming purchase orders
    1. Select PO
    2. Enter quantity received
    3. System converts packs to units
    4. Review and confirm
  • Log Usage: Record item usage
    1. Select item and quantity
    2. Choose reason (analysis, disposal, damaged, etc.)
    3. Log entry is recorded and audit trail updated
  • Record Expiry: Track expired items
    1. Select item
    2. Enter expiry date and quantity
    3. System deducts from stock

πŸ›’ Purchase Orders

  • Create PO: New purchase order
    1. Enter SAP PO number
    2. Select supplier
    3. Add line items with quantities
    4. 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

πŸ“Š Reports

  • 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

βš™οΈ Administration (Admin Only)

  • 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

Common Workflows

Adding a New Chemical

  1. Go to Inventory β†’ New Item
  2. Enter internal item number (unique identifier)
  3. Enter item name, category, description
  4. Select supplier and enter supplier item number
  5. Set pack size and base unit (e.g., 1 box = 12 bottles)
  6. Enter current price and quantity
  7. Set minimum and reorder levels
  8. Save

Receiving a Purchase Order

  1. Go to Stock Operations β†’ Receive Stock
  2. Select the PO from dropdown
  3. Enter quantity received (in packs)
  4. System shows converted base units
  5. Confirm receipt
  6. Stock is automatically updated
  7. PO status changes automatically

Exporting Inventory to Excel

  1. Go to Reports β†’ Stock Report
  2. Apply filters if needed (location, supplier, low stock)
  3. Click Export to Excel
  4. Choose save location
  5. File is exported as .xlsx with formatting

Creating Users with Limited Access

  1. Go to Administration β†’ Users (Admin only)
  2. Click New User
  3. Set username and password
  4. Select role:
    • Admin: Full access
    • Technician: Item and stock operations only
    • Viewer: Reports only
  5. Save and users can log in immediately

Data Management

Backups

  • Automatic: Backups created daily in lab_inventory/data/backups/
  • Manual: Go to Administration β†’ Backups β†’ Create Backup
  • Database files can be copied to external storage

Database Location

lab_inventory/data/lab_inventory.db
  • This is your main database file
  • Back it up regularly
  • Can be restored from backups folder

Exporting Data

  • All reports can be exported to Excel
  • Inventory can be exported for analysis or systems migration
  • Exports preserve all formatting and calculations

Troubleshooting

Application Won't Start

  • 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

Database Connection Error

  • Ensure lab_inventory/data/ folder exists
  • Verify folder has write permissions
  • Check if database file is corrupted (restore from backup)

Missing Dependencies

  • Run: pip install -r lab_inventory/requirements.txt
  • Or reinstall using the installer

Slow Performance

  • Close other applications
  • Run database maintenance (Admin β†’ Tools β†’ Database Maintenance)
  • Reduce report date range when exporting

Permission Denied Errors

  • Run the application as Administrator
  • Check file permissions in lab_inventory/data/ folder

File Structure

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

Security Considerations

  1. 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)
  2. Data Protection

    • Regular backups are essential
    • Store backups in secure location
    • Restrict file access to authorized users
  3. User Access

    • Use appropriate roles: don't give admin access unnecessarily
    • Review user activity in audit logs
    • Disable unused accounts
  4. 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

Support & Documentation


Version History

v1.0.0 (February 25, 2026)

  • 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

License

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

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.


Contributing

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

About

Windows desktop laboratory inventory management system built with Python and Tkinter

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages