How captainmmd1304/ai-powered-personal-finance-tracker works
This is a personal-finance tracker: users import CSV transactions, review them in a dashboard, and can reset stored data. The React app retrieves transactions from the Spring API and separately reads Python-generated spending summaries and forecasts. The README documents backend API capabilities and MySQL storage, but Java implementation excerpts were not provided, so internal backend call wiring is not inferred.
Main entry points: App.tsx Dashboard state · TransactionController.java Transaction API · analytics.py Spending analytics · FileUploader.tsx CSV uploader
Components 11
Dashboard
- Dashboard state
frontend/src/App.tsx - CSV uploader
frontend/src/components/FileUploader.tsx - Spending chart
frontend/src/components/SpendingChart.tsx - Transaction table
frontend/src/components/TransactionTable.tsx
Transaction API
- Transaction API
src/main/java/com/example/demo/controllers/TransactionController.java - Transaction service
src/main/java/com/example/demo/services/TransactionService.java - Transaction repository
src/main/java/com/example/demo/repositories/TransactionRepository.java
Analytics
- Spending analytics
analytics.py - Insights JSON
frontend/public/data.json
Data
- MySQL transactions
Other components
- Finance user
Connections 10
- Finance user → Dashboard state: uses
- Dashboard state → CSV uploader: renders
- Dashboard state → Spending chart: renders
- Dashboard state → Transaction table: renders
- CSV uploader → Transaction API: uploads CSV
- Dashboard state → Transaction API: fetches / resets
- Dashboard state → Insights JSON: reads
- Spending analytics → MySQL transactions: reads transactions
- Spending analytics → Insights JSON: writes insights
- Transaction API → MySQL transactions: serves transactions