How vd876733/expense_tracker-spring-boot-and-react- works
This is a personal-finance tracker with a React client and Spring Boot REST backend. Users enter or import transactions, then review spending, budgets, and insights; the application also supports authentication, savings goals, and shared expenses. The backend exposes domain controllers and persists financial records through Spring Data repositories. The frontend route wiring and selected backend services/controllers were sampled; several other capabilities are represented by their named modules in the tree, so their internal call paths are not asserted here.
Main entry points: api.js API client · TransactionRepository.java Transaction store · App.js React app · TransactionController.java Transaction API
Components 27
Web client
- React app
frontend/src/App.js - Dashboard
frontend/src/components/Dashboard.jsx - Insights view
frontend/src/components/InsightsPage.jsx - Transaction entry
frontend/src/components/AddTransactionModal.jsx - CSV import
frontend/src/components/CsvImport.jsx - API client
frontend/src/services/api.js
API and identity
- Authentication API
src/main/java/com/financetracker/controller/AuthController.java - JWT security
src/main/java/com/financetracker/security/JwtAuthenticationFilter.java - User store
src/main/java/com/financetracker/repository/UserRepository.java
Financial tracking
- Transaction API
src/main/java/com/financetracker/controller/TransactionController.java - Transaction service
src/main/java/com/financetracker/service/TransactionService.java - Import API
src/main/java/com/financetracker/controller/ImportController.java - CSV import service
src/main/java/com/financetracker/service/ImportService.java - Transaction store
src/main/java/com/financetracker/repository/TransactionRepository.java
Planning and analysis
- Budget API
src/main/java/com/financetracker/controller/BudgetController.java - Budget analysis
src/main/java/com/financetracker/service/BudgetService.java - Budget store
src/main/java/com/financetracker/repository/BudgetRepository.java - Savings goals API
src/main/java/com/financetracker/controller/SavingsGoalController.java - Savings goals store
src/main/java/com/financetracker/repository/SavingsGoalRepository.java - AI insights API
src/main/java/com/financetracker/controller/AIInsightsController.java - AI insights service
src/main/java/com/financetracker/service/AiInsightsService.java - Gemini service
src/main/java/com/financetracker/service/GeminiService.java
Shared expenses
- Expense groups API
src/main/java/com/financetracker/controller/GroupController.java - Group expense store
src/main/java/com/financetracker/repository/GroupExpenseRepository.java - Email reminders
src/main/java/com/financetracker/service/EmailReminderService.java
Other components
- User
- Gemini API
Connections 32
- User → React app: uses
- React app → Dashboard: routes to
- React app → Insights view: routes to
- User → Transaction entry: enters transactions
- User → CSV import: uploads CSV
- Transaction entry → API client: submits data
- CSV import → API client: submits file
- Dashboard → API client: requests data
- Insights view → API client: requests insights
- API client → Transaction API: REST requests
- API client → Import API: REST requests
- API client → Budget API: REST requests
- API client → Savings goals API: REST requests
- API client → AI insights API: REST requests
- API client → Expense groups API: REST requests
- Authentication API → User store: looks up users
- JWT security → Authentication API: protects requests
- Transaction API → Transaction store: queries and saves
- Transaction API → Transaction service: delegates operations
- Transaction service → Transaction store: queries totals
- Import API → CSV import service: delegates import
- CSV import service → Transaction store: persists transactions
- CSV import service → User store: resolves owner
- Budget API → Budget analysis: delegates analysis
- Budget analysis → Budget store: reads and saves
- Budget analysis → Transaction store: reads spending
- Savings goals API → Savings goals store: reads and saves
- AI insights API → AI insights service: requests insights
- AI insights service → Transaction store: reads transactions
- AI insights service → Gemini API: sends prompt
- Expense groups API → Group expense store: manages expenses
- Expense groups API → Email reminders: sends reminders