Back to Projects
Full-Stack Django + PostgreSQL 8user roles 25+report types 14Django apps

Chesanto BMS

Business Problem

Manual bakery operations relied on a 13-sheet Excel workbook to track inventory, production, sales, and payroll. No audit trail, no scheduled reports, role confusion between production, sales, and finance teams. Data was siloed and error-prone.

Architecture

14 Django apps with 100+ models. Per-item table architecture — 27 inventory items each have their own Details, Purchases, and Outputs tables (81 tables total). Bank ledger philosophy: all production, sales, and purchase records are immutable (CREATE-ONLY). PostgreSQL on Railway with Django-Q2 task queue.

Personal Contribution

Designed and built the entire system from scratch — all 14 apps, role-based access control (8 roles), scheduled report generation (Django-Q2), PDF/Excel output (WeasyPrint + openpyxl), email integration (Gmail SMTP), audit trail, and real-time analytics dashboards.

Technical Challenge

Per-item table routing — 27 items × 3 table types = 81 physical tables, all routed dynamically via inventory/routing.py. Mix snapshots freeze the complete recipe (JSON) at batch creation time, ensuring historical accuracy even if recipes are later modified. Business day logic treats 12:00 AM–5:59 AM as "yesterday."

Key Features

8 user roles (Superadmin to Basic User), 25+ report types (PDF/Excel) across 6 categories, real-time analytics dashboards, scheduled email delivery, full audit trail, gate log for security, crate accountability, commission tracking, payroll processing with KRA/NSSF/NHIF deductions.

Impact

Replaced a 13-sheet Excel workbook with a centralized web application. Automated report generation and delivery (daily, weekly, monthly, annual). Full audit trail for compliance. Role-based access for 8 user types across production, sales, finance, and security departments.

Nodes

    Loading inventory pipeline...

    Ctrl+scroll to zoom · Click nodes for details

    Components

      Click nodes for details

      Components

        Click nodes for details

        Report Types

          Click nodes for details

          Apps

            Click nodes for details

            Details