Work · Case 05
Invoice manager and dashboard
A full-stack invoicing tool — the ordinary CRUD-and-reporting work, done cleanly.
01 — Problem
What was going wrong
Invoicing is the kind of application where the requirements look trivial and the edge cases are not: partial payments, credit notes, a total that has to agree with itself across three views, and a number no one is allowed to see change after it has been sent.
02 — Approach
The decision that resolved it
Keep money out of floating point, derive every displayed total from one calculation rather than recomputing it per view, and make issued documents immutable. Most of the bugs in this class of application come from the same total being worked out in two places and drifting.
04 — What I shipped
What exists now
- A full-stack invoicing application — create, issue, track and report — with a dashboard over the current state.
- One calculation path for totals, reused by every view that displays them.
05 — Result
What changed
- Scope
- Full stack
- Data model, API and interface, kept small enough to reason about end to end.
- Why it is here
- Range, briefly
- Included to show breadth. The capstone and LAMISPlus carry the argument.
06 — Links