siddharthd
3cf67f6e2a
feat(analytics): stacked category chart, savings rate line, expandable rows
...
- Replace grouped cashflow BarChart with ComposedChart: expense categories
as colour-coded stacked bars + amber savings-rate % line on right Y-axis
- Add category colour legend below chart (matches stacked bars)
- Horizontal category bar chart now uses per-category colours
- Breakdown table: click any category row to expand/collapse individual
transactions; each transaction has an inline category dropdown that
calls PATCH /api/transactions/:id → transaction_overrides, then
invalidates analytics query so totals update immediately
2026-03-08 20:53:55 +11:00
siddharthd
d1a0eedf03
feat(analytics): cashflow view with income/investment/net — split-adjusted + multi-currency
...
- Add 'investment' category (shares, ETFs, super)
- Analytics API: separate income, investment, expense queries; use amount_aud for FX-aware sums
- Analytics page: cashflow summary (income/expenses/invested/net cash), grouped bar chart,
income + invested rows in 6-month trend table
- MonthlyAnalytics interface: add income, investments, net fields to totals
- DB: amount_aud + exchange_rate_to_aud columns added and backfilled (in prior migration)
2026-03-08 19:15:20 +11:00
siddharthd
d455738732
feat(finance): Phase 6 — Budget & Analytics
...
Add monthly budgets per category with spend-vs-budget dashboard and 6-month trend table.
Includes upsert budget API, monthly analytics endpoint, inline budget editing, and route auth fixes.
2026-03-08 16:57:33 +11:00
siddharthd
35a5be97b0
feat: initial finance SPA — phases 1 & 2
...
Next.js 16 personal finance dashboard connected to postgres-personal.
Phase 1 (Foundation):
- API routes: GET /api/transactions (paginated, filterable, sortable),
GET /api/statements, GET /api/merchants
- Transactions data table with date/category/bank/search filters, pagination, sort
- Statements card grid with period, due date, amount, transaction count
- Sidebar layout with nav for all planned sections
Phase 2 (Normalisation):
- PATCH /api/transactions/[id] — upsert transaction_overrides
- POST /api/transactions/bulk — bulk categorize/normalize
- Inline click-to-edit category (22 options) and merchant name
- Blue dot override indicator, bulk action bar
- Effective values via COALESCE(override, llm_value) pattern
Stack: Next.js 16 (App Router, standalone), Prisma 7.x + @prisma/adapter-pg,
TanStack Query, Tailwind CSS. Auth via Traefik chain-oauth@file.
2026-03-07 23:31:40 +11:00