Logo Lanfrica

StanLeyM07/SIFA

Domain:

socioeconomic

Record type:

software
Creator:
Sta
Host:
South African personal finance app. Parses and categorises bank statements entirely client-side so financial data never reaches a server, with a verification layer that prevents the AI coach from stating any figure it was not given. # Sifa A South African personal finance app. You drop in a bank statement; it reads it, sorts every transaction, and tells you what actually happened to your money. No manual data entry. No spreadsheet. Nothing uploaded. --- ## How someone actually uses it 1. Download a statement from their banking app (CSV preferred, PDF works) 2. Drag it onto the import screen 3. Sifa parses and categorises it **in the browser**, then shows a review table 4. They fix anything wrong — Sifa remembers those corrections permanently 5. The dashboard tells them what stands out Step 4 is the compounding bit. People shop at the same twenty places, so after a couple of imports the categoriser is effectively tuned to that person and corrections stop being necessary. ## Structure ``` app/src/frontend/ TanStack Start + React 19 + Tailwind v4 (port 5174) app/src/backend/ Express — one endpoint, the AI coach (port 3001) ``` The backend does one job: turn a sheet of pre-computed figures into a paragraph of prose. Everything else — parsing, categorising, every metric — runs client-side. ### Commands ```bash # frontend cd app/src/frontend npm install && npm run dev # localhost npm run build # production build npx tsc --noEmit # typecheck # backend cd app/src/backend npm install && npm run dev # localhost npm run typecheck ``` ### Tests Dependency-free smoke suites, runnable with `tsx`: ```bash cd app/src/frontend/src/lib/sifa npx tsx import/parse.smoke.ts # date/amount/CSV parsing npx tsx import/import-selection.smoke.ts # duplicate detection + import-count correctness npx tsx categorize/smoke.ts # merchant matching + correction learning npx tsx coach/facts.smoke.ts # metric correctness + privacy assertions npx tsx insights.smoke.ts # deterministic insight rules cd app/src/backend/src/routes npx tsx coach.smoke.ts # anti-hallucination guard ``` ## The t …