Skip to content

Commit 7da65a7

Browse files
committed
feat(v0.1.6.1): complete architecture cleanup and performance improvements
1 parent 381c55d commit 7da65a7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+3034
-2446
lines changed

.husky/pre-commit

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
npx lint-staged

AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Welcome! This document orients autonomous agents (Copilot, Code Interpreter, loc
44

55
- **Product:** FinOracle - Your Personal Finance Oracle (privacy-first finance diagnostics + planning)
66
- **North-star docs:** `PRD.md` (vision & requirements) and `PLAN.md` (iteration roadmap). Keep both in sync with any change you make.
7-
- **Current iteration:** `PLAN.md` shows we are at **v0.1.4UI/UX Polish** with **v0.1.5Core Analytics** queued next.
7+
- **Current iteration:** `PLAN.md` shows we are at **v0.1.6Quality Assurance & UX Refinement** with **v0.1.7Advanced Data Management** queued next.
88
- **Team reality:** There are **no human engineers on rotation**—AI agents are the only contributors. Treat every task as yours to own end-to-end, including planning, implementation, and documentation.
99

1010
## 2. Must-Read Files

PLAN.md

Lines changed: 117 additions & 372 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 35 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,20 @@ We achieved all of this.
3333

3434
---
3535

36-
## 🚀 **Latest: v0.1.2.1 - Review Performance & UX Overhaul**
36+
## 🚀 **Latest: v0.1.6 - Quality Assurance & UX Refinement**
3737

38-
**Major improvements delivered:**
39-
- **Virtualized transaction table**: Full-viewport rendering for 3k+ rows with smooth scrolling (replaced 600px DataGrid limitation)
40-
- **Material Switch components**: iOS/Android-style toggles for reviewed status (better than old ToggleButtonGroup)
41-
- **User-defined actions**: Per-transaction text field for personal notes/follow-ups
42-
- **Smart filter UI**: Collapsible accordion for advanced filters (amount/date/status) with one-click filter chips and clear-all
43-
- **Optimistic updates**: Instant UI response for review toggles and category changes (async worker processing in background)
44-
- **Simplified navigation**: Merged Rules into Categories tab (4 sections: Overview, Review, Actions, Categories)
45-
- **Critical bugfixes**: Filter state now resets on CSV/snapshot import (fixed 1824 vs 3042 transaction display bug)
38+
**Current Focus:** Stabilizing the codebase, fixing UX annoyances, and ensuring high-quality data management.
39+
40+
**Recent Achievements (v0.1.5 - Analytics):**
41+
- **Comprehensive Analytics Dashboard**: Overview, Spending, Income, and Subscription analysis tabs.
42+
- **Interactive Charts**: Balance tracking, category breakdowns, monthly spending timelines, and heatmaps.
43+
- **Financial Planning**: Runway calculator, scenario builder, and recurring transaction management.
44+
- **Deep Dive Tools**: Sankey diagrams, calendar views, and pivot tables for granular analysis.
45+
46+
**Previous Milestones:**
47+
- **v0.1.4**: UI/UX Polish (Global search, quick filters, transaction details).
48+
- **v0.1.3**: Python sunset & critical bugfixes.
49+
- **v0.1.2**: Virtualized review table (3k+ rows) and user-defined actions.
4650

4751
---
4852

@@ -166,108 +170,39 @@ It stabilizes your life, supports productivity, and keeps costs predictable.
166170

167171
You now have a complete, modular financial analysis pipeline:
168172

169-
### **✔ CSV Parser (`n26_parser.py`)**
170-
171-
* Handles N26 CSV export
172-
* Cleans merchants
173-
* Converts dates
174-
* Normalizes amounts
175-
176-
### **✔ Configurable Categorizer (`categorizer.py`)**
177-
178-
* Massive pattern library (groceries, mobility, restaurants, subs, etc.)
179-
* Fixed internal transfer logic
180-
* Zero false-positive rules
181-
* Complete category coverage
182-
* `subscriptions_keep` & `subscriptions_cut_suggestions`
183-
184-
### **✔ Advanced Analysis Script (`analyze_finances.py`)**
185-
186-
Outputs a multi-section financial report:
187-
188-
#### **PART 1 – Raw summary**
189-
190-
Full net cash change
191-
192-
#### **PART 2 – Role-based summary**
193-
194-
Splits into:
195-
196-
* Income
197-
* Cash spending
198-
* Crypto investments
199-
* Internal transfers
200-
201-
#### **PART 3 – Spending breakdown**
202-
203-
Shows lifestyle categories clearly
204-
205-
#### **PART 4 – Subscription analytics**
173+
### **✔ Modern Web Application (React + TypeScript)**
206174

207-
* Total subs
208-
* Keep
209-
* Cut
210-
* By name
175+
* **Privacy-First Architecture**: All processing happens locally in the browser via Web Workers.
176+
* **Interactive Dashboard**: Real-time filtering, categorization, and visualization.
177+
* **Data Persistence**: Local storage snapshots for saving progress without cloud sync.
211178

212-
#### **PART 5 – Uncategorized**
179+
### **✔ Intelligent Categorization Engine**
213180

214-
Now empty, confirming complete classification
181+
* **Rule-Based Classifier**: Configurable pattern matching for merchants and categories.
182+
* **Subscription Detection**: Automatic identification of recurring payments.
183+
* **Zero-Inbox Workflow**: Tools to quickly review and classify uncategorized transactions.
215184

216-
#### **PART 6 – Monthly summary**
185+
### **✔ Comprehensive Analytics Suite**
217186

218-
Clear view of income/spending/investments month by month
219-
220-
#### **PART 7 – Last 3 months**
221-
222-
Behavioural “pulse check”
187+
* **Financial Health**: Net cash flow, burn rate, and savings rate tracking.
188+
* **Forecasting**: Runway calculation and future scenario planning.
189+
* **Deep Dive**: Sankey diagrams and pivot tables for granular analysis.
223190

224191
---
225192

226-
# 🚀 **6. What You Will Continue Developing With Codex**
227-
228-
You decided to proceed using Codex directly in your terminal.
229-
230-
Your next steps:
231-
232-
### **A. Polish categorization**
233-
234-
* Add missing merchants as they appear
235-
* Fine-tune categories
236-
* Introduce new ones (e.g. “dating”, “travel”, “electronics”)
237-
238-
### **B. Build a simple CLI (optional)**
239-
240-
* `finance analyze file.csv`
241-
* `finance categories stats`
242-
* `finance subscriptions audit`
243-
244-
### **C. Begin the web app when you feel ready**
245-
246-
Proposed stack:
247-
248-
* **Backend:** FastAPI (simple endpoints)
249-
250-
* `/analyze` → returns full JSON
251-
* `/config` → view/edit categories
252-
* **Frontend:** React (Vite + TS)
253-
254-
* file upload
255-
* monthly charts
256-
* category pie charts
257-
* subscription dashboard
258-
* uncategorized inspector
259-
260-
This can become a **public tool** if you wish.
193+
# 🚀 **6. Next Steps**
261194

262-
### **D. Build an “H1B Financial Readiness” module**
195+
We are actively developing the platform. See `PLAN.md` for the detailed roadmap.
263196

264-
Later we can add:
197+
### **Current Focus (v0.1.6)**
198+
* Quality Assurance & Testing
199+
* UX Refinement (Transaction editing, manual entry)
200+
* Visual Polish
265201

266-
* Runway calculation
267-
* Required savings for US move
268-
* Rent-comparison tool
269-
* Visa fee planning
270-
* Relocation cost simulator
202+
### **Upcoming Features**
203+
* **Advanced Data Management**: Bulk actions, split transactions, export tools.
204+
* **Budgeting**: Category limits, savings goals, debt payoff planning.
205+
* **Pro Tier**: Optional cloud sync and multi-device support.
271206

272207
---
273208

fixtures/uncategorized-sample.csv

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
booking_date,value_date,name,iban,type,reference,account,amount
2+
2024-04-15,2024-04-15,MYSTERY TRANSACTION,DE00123456789012345678,CARD_PAYMENT,Unknown stuff,DE12000000000000000000,-10.00

frontend/eslint.config.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ export default tseslint.config(
3232
}
3333
],
3434
'@typescript-eslint/no-explicit-any': 'warn',
35+
'@typescript-eslint/consistent-type-imports': [
36+
'warn',
37+
{ prefer: 'type-imports', fixStyle: 'inline-type-imports' },
38+
],
3539
'no-console': ['warn', { allow: ['warn', 'error'] }],
3640
},
3741
},

frontend/package-lock.json

Lines changed: 70 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/package.json

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
"preview": "vite preview",
1010
"test": "vitest run",
1111
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
12-
"lint:fix": "eslint . --ext ts,tsx --fix"
12+
"lint:fix": "eslint . --ext ts,tsx --fix",
13+
"lint:staged": "eslint --fix"
1314
},
1415
"devDependencies": {
1516
"@eslint/js": "^9.39.1",
@@ -40,12 +41,16 @@
4041
"@mui/icons-material": "^7.3.5",
4142
"@mui/material": "^7.3.5",
4243
"@mui/x-data-grid": "^7.22.2",
44+
"@types/react-window": "^1.8.8",
4345
"bank-transaction-oracle": "file:..",
4446
"date-fns": "^4.1.0",
4547
"dayjs": "^1.11.19",
4648
"papaparse": "^5.5.3",
4749
"react": "^19.2.0",
4850
"react-dom": "^19.2.0",
49-
"recharts": "^3.5.0"
51+
"react-virtualized-auto-sizer": "^1.0.26",
52+
"react-window": "^2.2.3",
53+
"recharts": "^3.5.0",
54+
"zustand": "^5.0.9"
5055
}
5156
}

0 commit comments

Comments
 (0)