| A Liquor Store Inventory Management System
This repository contains the source code for the Liquor Store Inventory Management System, a project for the Software Engineering 3 module.
The system provides core inventory tracking, product management, sales processing, and reporting for a small-to-medium-sized liquor store. Development follows an agile process with emphasis on code quality, thorough testing, and continuous integration/continuous delivery (CI/CD).
| Module | Description |
|---|---|
| Product Management | Add, view, update, and search products in the catalog |
| Inventory Tracking | Manage stock levels, receive shipments, log product losses |
| Sales Management | Process sales, view transaction history, print receipts |
| Reporting & Analytics | Generate low-stock reports, inventory value, export to CSV/JSON |
| User Authentication | Role-based access control (Manager/Clerk) with secure login |
- Add/Update Products
- View Low Stock Report (with customizable threshold)
- View Sales History
- View Transaction Details
- View Total Inventory Value
- Export Reports (CSV/JSON)
- Record Sales (with receipt printing)
- Receive New Stock
- View Product Stock
- Log Product Loss
- View Transaction Details
- View Last Sale
- Colour-coded CLI - Intuitive coloured menus and messages
- Dashboard - Quick stats displayed on login (total products, inventory value, today's sales, low stock items)
- Secure Password Input - Hidden password entry using
getpass - Session Display - Shows logged-in user and role in menu headers
- Quick Cancel - Enter
[Q]to quit/cancel any operation - Confirmation Prompts - Before destructive actions (delete account, exit)
- Flexible Input - Case-insensitive menu choices,
Y/Noryes/nofor confirmations - Helpful Error Messages - Specific errors with actionable hints
- Python 3.x
pipfor package management- SQLite (included with Python)
-
Clone the repository:
git clone https://github.com/chagall04/Team-BOOZE-Inventory-System.git cd Team-BOOZE-Inventory-System -
Install dependencies:
pip install -r requirements.txt
Run the application:
python -m src.app| Role | Username | Password |
|---|---|---|
| Manager | manager |
manager123 |
| Clerk | clerk |
clerk123 |
python -m pytest --cov=src --cov-report=term-missingpython -m pylint src --max-line-length=120| Package | Purpose |
|---|---|
bcrypt |
Secure password hashing |
colorama |
Cross-platform colored terminal output |
pytest |
Testing framework |
pytest-cov |
Code coverage reporting |
pylint |
Static code analysis |
Team-BOOZE-Inventory-System/
├── src/
│ ├── app.py # Main CLI application & menus
│ ├── auth.py # User authentication & account management
│ ├── database_manager.py # Database operations (SQLite)
│ ├── inventory_tracking.py # Stock management functions
│ ├── product_management.py # Product CRUD operations
│ ├── reporting.py # Reports & export functionality
│ └── sales.py # Sales processing & transaction history
├── tests/
│ ├── test_app.py
│ ├── test_auth.py
│ ├── test_database_manager.py
│ ├── test_inventory_tracking.py
│ ├── test_product_management.py
│ ├── test_reporting.py
│ └── test_sales.py
├── requirements.txt
├── Jenkinsfile
└── README.md
- Jira Board: Backlog & Sprints
- Confluence Wiki: Design & Reports
- Project Overview
- Architecture & Design Document
- Requirements Package
- ✅ 317+ tests passing
- ✅ 98% code coverage
- ✅ Pylint 10/10 rating
- ✅ SonarCloud quality gate passed
- Charlie Gallagher
- Lucy O'Connor
- Séan Bardon
- Sara Larkem
This project is developed for educational purposes as part of the Software Engineering 3 module.