Project Overview
A terminal-UI (TUI) warehouse and distribution management system built on the classic Northwind sample database. It covers the full order-to-cash and purchase-to-pay cycles — Sales Orders → Delivery Notes → Invoices on the customer side, Goods Receipts on the supplier side, with a Cash Register and Bank Account tracking payments in both directions. Built in Python with the Textual framework, runs in any terminal — no browser, no GUI dependencies.
The Problem
Most demonstrations of the Northwind dataset stop at SELECT queries and a couple of join examples. A real distributor needs document workflows, AR/AP reconciliation, branded PDF output and tight role-based control — and they often need that workflow to be fast over SSH or on a low-resource workstation, not as a heavy single-page web app.
The Solution
A keyboard-driven Textual application with multiple CRUD panels (customers, orders, products, suppliers, employees), a full document workflow (Sales Orders, Delivery Notes, Invoices, Goods Receipts, Credit Notes, Cash Register, Bank Account — multiple DNs can consolidate into one invoice), an AR/AP reconciliation panel with running balance, 12 reports with CSV export, branded A4 PDF export with QR codes for all seven document types, and three-tier role-based access (admin / manager / user). 172+ automated tests cover the document and finance flows.
Key Features
- Multiple CRUD panels — customers, orders, products, suppliers, employees
- Document workflow — Sales Orders, Delivery Notes, Invoices, Goods Receipts, Credit Notes
- Cash Register & Bank Account ledgers tracking inbound and outbound payments
- AR/AP Reconciliation panel — "All Unpaid" view with switch to per-entity statement and running balance
- 12 report types with CSV export, plus a SQL editor for ad-hoc queries
- Branded A4 PDF export (with QR codes) for all seven document types
- 3-tier role-based access (admin / manager / user) with delete guards and document cancellation
- Searchable in-app Help panel and a 172+ test suite
My Role
Whole project — schema design on the Northwind base, document-workflow modelling, Textual screens and bindings, branded PDF templates, role and permission logic, and the test suite.
Technology Used
Challenges and Learning
Modelling a many-to-many relationship between Delivery Notes and Invoices (multiple DNs consolidating into one INV) cleanly in SQLite. Building reusable A4 PDF templates with fpdf2 that render company branding, line tables and QR codes consistently across seven document types. Designing a TUI that feels as fast and obvious to use as a desktop app — keyboard bindings, modal forms, and a docked help panel.
Outcome / Value
A complete back-office system that demonstrates document workflow, financial reconciliation and PDF generation in a TUI form factor — fast over SSH, no browser required, low resource footprint. Shows comfort across the whole stack: data model, workflow, document templating, role design and a maintained test suite.
Screenshots