UHADEVSee DMS
← Back to work
2025/Dealership network

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.

PythonStreamlitReportLabStreamlit Cloud

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

PDF

  • 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.