Case study · Project 03
AI Finance Tracker
Personal finance as a real product surface: balances and trends you can trust, a day-to-day ledger, and an AI tools lane that proposes changes only with an explicit human gate.
Problem
“AI for money” demos often skip the hard part: the ledger is the source of truth. If a model can invent a salary line or delete rent without a confirm step, the feature is a liability. Users need charts and lists that reflect real data, plus language that maps cleanly onto structured tools— not free-form “sure, I updated your books.”
Approach
- Dashboard first — cash, online, and total balances; monthly net; largest expense; income vs expense and category breakdown; multi-series balance trend.
- Ledger as product — searchable, date-sorted rows with ONLINE / CASH tags, FINAL status, and enable/edit/remove controls.
- Tools-only AI chat — natural language like “add 50 php on Jul 27” becomes a pending tool payload with Confirm / Skip. Nothing hits the store until the user approves.
- Human-in-the-loop as default — autonomy without a kill switch is rejected by design for money-moving actions.
Why this design
The interesting AI here is not the chat bubble—it is the contract between language and mutation. Tool calling with confirmation is the same pattern as good agent design: propose, show work, apply only when validated. That story transfers to interviews and to safer personal software.
Stack
TypeScript · Vite · React · local LLM tool-calling path · client-side ledger UX
Role on the build
Product rules and architecture (confirm gates, ledger as source of truth). Implementation steered with AI coding agents. Systems thinking over “just bolt a chatbot on a spreadsheet.” Visual direction for a clean dark finance UI.