Skip to main content

Local-first desktop grocery inventory and sales manager (Tkinter + ttkbootstrap + SQLite).

Project description

Grocery Mart Inventory Manager

A local-first desktop grocery inventory and sales manager built with Python, Tkinter, ttkbootstrap, and SQLite.

Features

  • Inventory: products, stock levels, expiry, barcode, supplier, GST% and Tax% per product
  • Sales: multi-item invoices, live invoice preview, PDF generation, invoice browser + print last invoice
  • Analytics: KPIs, stock breakdown, sales trend, top products, exportable sales report
  • Exports: Excel/CSV for products, sales, suppliers
  • Activity monitor (audit log) with CSV export
  • Session lock mode
  • Optional barcode scanning mode (manual entry + camera preview)
  • Global and page-level keyboard shortcuts (press F1 in the app)

Requirements

  • Python 3.11+ (3.12 recommended)

Setup

  1. Install dependencies:
    • pip install -r requirements.txt
  2. Initialize / migrate the database (optional; the app auto-creates tables on first run):
    • python init_db.py
  3. Run the app:
    • python main.py

Demo dataset (optional)

Seed sample suppliers/products/sales:

  • python scripts/seed_demo.py

Recreate the database and seed clean demo data:

  • python scripts/seed_demo.py --reset

Camera barcode scanning (optional)

The Inventory screen supports camera barcode scanning. It is optional because camera + barcode libraries can pull in native dependencies (and may upgrade NumPy in some environments).

Install the base app first:

  • pip install -r requirements.txt

Then (optional) install camera scanning deps:

  • pip install -r requirements-camera.txt

Notes:

  • Windows pyzbar may also require the ZBar library available on PATH.
  • If installing camera deps upgrades NumPy and breaks other compiled packages (e.g. matplotlib), use a clean virtual environment/conda environment for this app.

Login

  • Default admin user: admin
  • Default admin password: admin

After logging in, change the password in Settings -> Change Password.

Docs

  • docs/USAGE.md – how to use each screen + shortcuts
  • docs/DESCRIPTION.md – architecture, modules, and troubleshooting notes

Data & privacy

This is a local-first app:

  • Data is stored on your machine in grocery_inventory.db
  • Generated invoices are saved under invoices/

Contributing

See CONTRIBUTING.md. CI runs via GitHub Actions in .github/workflows/ci.yml.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

grocery_mart_application-0.1.0.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

grocery_mart_application-0.1.0-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

Details for the file grocery_mart_application-0.1.0.tar.gz.

File metadata

File hashes

Hashes for grocery_mart_application-0.1.0.tar.gz
Algorithm Hash digest
SHA256 fc0cd124c2fb9f5eb10e18871fdbc53a73ae238684acfa654298ced3095abd41
MD5 8cfa3261a562833e502948dc73e05e07
BLAKE2b-256 500ce7d880091fc3dd75c3f38f77241e973d6a62e0ead30feb51bec58cdc7502

See more details on using hashes here.

File details

Details for the file grocery_mart_application-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for grocery_mart_application-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5c1299182773e31a242019debd677fd2655f5f169a9afc3ae7deeca5e01a9992
MD5 642e2f478b265aea203214dfa9d8e4e1
BLAKE2b-256 de42b8514d5b88816927fa0b8c3e5178fcbd3a91ca8db796be41fab53e3c5801

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page