Invoice / Proforma Generator
A lightweight invoice generation tool for creating sales invoices, leasing invoices, proforma invoices, and advance payment receipts. Works entirely in the browser and offline-capable.
Context
Dealerships needed a simple, no-fuss tool to generate professional PDF invoices. The existing process involved manually creating invoices in Word or Excel — slow, inconsistent, and error-prone.
The problem
Creating invoices in Word or Excel was slow and produced inconsistent formatting. Invoice numbers needed manual tracking year-to-year. No central record of issued invoices.
Why existing tools failed
Word templates are easy to format incorrectly and easy to lose. Excel is prone to formula errors. Neither provides automatic invoice numbering or centralized records.
Constraints
Had to work on any device without installation. Ideally no backend or database required. PDF output had to look professional with company branding.
Solution
A Streamlit web application that generates professional PDF invoices using ReportLab. Supports sales-cash, sales-leasing, proforma, and advance payment receipt types. Automatic invoice numbering tracked per year. Saves all invoice details to CSV. Completely offline-capable — no database needed.
Architecture
Coming soon.
Key design decisions
- Streamlit for rapid development — perfect for an internal tool where development speed matters more than custom UI.
- ReportLab for PDF generation — mature, well-documented, produces print-ready output.
- CSV-based storage — zero infrastructure, portable, and human-readable.
- No authentication layer — designed as an internal tool for trusted staff.
Tech stack
Application
- Python
- Streamlit
- ReportLab
Deployment
- Streamlit Cloud
Result
Invoice generation went from a manual Word/Excel process to a one-click PDF generation tool. Automatic invoice numbering eliminated duplicate or missing numbers. CSV records provide a searchable invoice history.
Lessons learned
Streamlit is fast for prototyping but limited for complex multi-step workflows. The invoice flow had to be carefully designed to fit Streamlit's linear page model.
PDF layout in ReportLab requires pixel-precise positioning. Each invoice type (sales, leasing, proforma) needed separate template testing.