This is a simple tool for managing a product inventory: record purchased inventory, manage suppliers, view available stock, record sales, view analytics. It uses a bunch of a off-the-shelf software; the result is something that:
- is better than using a spreadsheet;
- is a lot less confusing than building/maintaining an something like an MS Access database;
- provides consistency and promise.
I built this for a relative's small medical practice, which needed to replace an old Microsoft Works database. The functionality here is decidedly built-to-purpose, supporting existing, largely paper-based workflows.
This is built with Python 3, Python-Flask, and Flask-Admin. The database is SQLite. It uses Twitter Bootstrap v3 for the GUI, and Chart.js for the charts in the analytics view.
To develop this project:
-
Clone the repository:
git clone https://github.com/gassc/simple-inventory.git cd simple-inventory
-
Create and activate a virtual environment:
python -m venv ENV
bash
source env/bin/activate
windows
ENV\Scripts\activate
-
Install requirements:
pip install -r requirements.txt
-
Create the database (initial set-up only)
python db_setup.py
-
Run the application:
Using the Flask development server, in browser:
python run.py
As a PyWebView Desktop application:
python launch.py
My use case is absurdly simple and probably not useful for most folks: for me this needs to run on one computer used by a couple of people and give the appeareance of a desktop application. It is not exposed to the internet, and so lacks any security features in that regard (logins, protection from CSRF, etc).
PyWebView does the trick of making this run as a desktop application.
The Issues list provides an overview of what's in store for this. Notably, issue 8 will provide some important missing functionality for any inventory software.