offline invoice management system for South African small businesses
# InvoiceFlow SA đź’Ś
**Making small business invoicing a breeze.**
A desktop invoice management system built for South African small businesses — garden services, salons, electricians, freelancers, and more. Runs completely offline, no cloud, no login, no subscriptions. Just fast, professional invoices.
Built as a portfolio project, inspired by my mom's garden landscaping business.
---
## đź“‹ Overview
Small business owners in South Africa often rely on manual, time-consuming methods to create invoices — Word documents, handwritten notes, or spreadsheets. InvoiceFlow SA replaces that with a simple, guided desktop app: set up your business details once, add customers, and generate polished, professional PDF invoices in minutes.
---
## ✨ Features
- **Company Setup** — enter your business and banking details once; they're reused on every invoice
- **Customer Management** — add, edit, search, and delete customer records
- **Invoice Generator** — select a customer, add unlimited line items, see totals calculate live
- **Automatic Invoice Numbering** — sequential, year-based invoice numbers (e.g. `INV-2026-00001`)
- **Manage Invoices** — reuse a past invoice as a starting point for month-end resends: search for an old invoice, edit the items or prices if needed, and regenerate it with a fresh invoice number, date, and time — the original invoice and PDF are left untouched
- **Professional PDF Generation** — polished PDF invoices with itemized tables and banking details, saved automatically
- **Dashboard** — at-a-glance stats: total customers, total invoices, monthly revenue, recent activity
- **Reports** — monthly revenue chart and breakdown table
- **Single-Window Navigation** — a clean sidebar interface, no scattered pop-up windows
- **Offline-First** — all data stored locally in SQLite; nothing leaves your computer
---
## 🛠️ Built With
| Tool | Purpose |
|---|---|
| **Python** | Core application logic |
| **CustomTkinter** | Modern desktop GUI |
| **SQLite** | Lo …