How sriram-118/smart_expense_tracker works
Smart Expense Tracker is a React client and Spring Boot API for registering users, recording and categorizing expenses, and reviewing spending analytics. Users authenticate, manage expense and category records, and view dashboard summaries and trends; protected requests are handled through JWT-based security. The graph follows sampled controller, service, repository, and client-hook code. Analytics and some frontend-to-backend wiring are included from README capabilities and the file tree, not inspected implementation, so uncertain call details are omitted.
Main entry points: api API clients · repository Persistence repositories · App.jsx Routes and shell · security JWT request security
Components 22
React client
- Routes and shell
frontend/src/App.jsx - Sign in and register
frontend/src/pages/Login.jsx - Dashboard and analytics
frontend/src/pages/Dashboard.jsx - Expense manager
frontend/src/pages/ExpenseList.jsx - Category manager
frontend/src/pages/CategoryPage.jsx - Session state
frontend/src/context/AuthContext.jsx - Expense state
frontend/src/hooks/useExpenses.js - Category state
frontend/src/hooks/useCategories.js - Analytics state
frontend/src/hooks/useAnalytics.js - API clients
frontend/src/api
REST API
- Authentication routes
backend/src/main/java/com/expense/tracker/controller/AuthController.java - Expense routes
backend/src/main/java/com/expense/tracker/controller/ExpenseController.java - Category routes
backend/src/main/java/com/expense/tracker/controller/CategoryController.java - Analytics routes
backend/src/main/java/com/expense/tracker/controller/AnalyticsController.java
Expense domain
- Expense operations
backend/src/main/java/com/expense/tracker/service/ExpenseService.java - Category operations
backend/src/main/java/com/expense/tracker/service/CategoryService.java - Spending aggregates
backend/src/main/java/com/expense/tracker/service/AnalyticsService.java - Persistence repositories
backend/src/main/java/com/expense/tracker/repository
Identity and security
- Account and tokens
backend/src/main/java/com/expense/tracker/service/AuthService.java - JWT request security
backend/src/main/java/com/expense/tracker/security
Other components
- User
- MySQL database
Connections 30
- User → Routes and shell: uses
- Routes and shell → Sign in and register: routes to
- Routes and shell → Dashboard and analytics: routes to
- Routes and shell → Expense manager: routes to
- Routes and shell → Category manager: routes to
- Sign in and register → Session state: updates session
- Expense manager → Expense state: manages expenses
- Category manager → Category state: manages categories
- Dashboard and analytics → Analytics state: loads analytics
- Expense state → API clients: calls expense API
- Category state → API clients: calls category API
- Analytics state → API clients: calls analytics API
- Session state → API clients: calls auth API
- API clients → Authentication routes: sends auth requests
- API clients → Expense routes: sends expense requests
- API clients → Category routes: sends category requests
- API clients → Analytics routes: sends analytics requests
- Authentication routes → Account and tokens: invokes
- Expense routes → Expense operations: invokes
- Category routes → Category operations: invokes
- Analytics routes → Spending aggregates: invokes
- Expense operations → Persistence repositories: reads and writes
- Category operations → Persistence repositories: reads and writes
- Spending aggregates → Persistence repositories: queries totals
- Account and tokens → Persistence repositories: reads and writes
- JWT request security → Persistence repositories: loads user
- Persistence repositories → MySQL database: persists records
- JWT request security → Expense routes: authenticates requests
- JWT request security → Category routes: authenticates requests
- JWT request security → Analytics routes: authenticates requests