CLI-based inventory management system for small businesses, built with Python OOP — foundation for a future SaaS platform for African SMEs.
# Inventory Management System (CLI)
A command-line inventory management system built in Python, designed for small business owners to track products, sales, and suppliers. Built with object-oriented design, JSON-based persistence, and structured error handling.
This project is the foundational phase of a larger vision: a full SaaS inventory and business management platform for small and medium businesses across Africa.
## Screenshot
## Features
- **Product management** — add, remove, restock, and view products
- **Sales tracking** — record sales and generate sales reports
- **Supplier management** — add suppliers and assign products to them
- **Low stock alerts** — identify products running low on inventory
- **Expiry tracking** — flag products approaching or past their expiry date
- **Persistent storage** — all data saved to and loaded from JSON
## Tech Stack
- **Language:** Python 3
- **Core concepts:** Object-Oriented Programming (inheritance, encapsulation), file I/O, JSON serialization, error handling
- **Persistence:** JSON (local file-based storage)
## Project Structure
inventory_management_system/
├── main.py # Entry point — menu and program flow
├── inventory.py # Core Inventory class
├── storage.py # Load/save logic for JSON persistence
├── reports.py # Low stock, expiry, and sales reporting
├── models/
│ ├── product.py # Product class
│ ├── sale.py # Sale class
│ └── supplier.py # Supplier class
├── data/
│ └── inventory.example.json # Sample data to get started
└── assets/
└── screenshot.png
## Getting Started
**1. Clone the repository**
```bash
git clone
github.com
cd inventory-management-system
```
**2. Set up sample data**
The real data file (`data/inventory.json`) is excluded from version control since it's meant to hold the actual working data. To get started with sample data:
```bash
cp data/inventory.example.json data/inventory.json
```
**3. Run the program**
```bash
python …