How haneesh3768/moneymanager works
This is a Spring-based personal expense tracker API. Users register and activate accounts, authenticate for a JWT, then manage categories, income, and expenses; dashboard and filter endpoints summarize or query those records. Scheduled notification services send email reminders and expense summaries. The graph reflects sampled controller and service calls; major unsampled modules are included from the tree, but their internal wiring is not assumed.
Main entry points: ExpenseService.java Expense service · ProfileService.java Profile service · IncomeService.java Income service · DashboardService.java Dashboard service
Components 20
API
- Profile API
src/main/java/com/project/expensetracker/controller/ProfileController.java - Expense API
src/main/java/com/project/expensetracker/controller/ExpenseController.java - Income API
src/main/java/com/project/expensetracker/controller/IncomeController.java - Category API
src/main/java/com/project/expensetracker/controller/CategoryController.java - Dashboard API
src/main/java/com/project/expensetracker/controller/DashboardController.java - Filter API
src/main/java/com/project/expensetracker/controller/FilterController.java
Finance domain
- Expense service
src/main/java/com/project/expensetracker/service/ExpenseService.java - Income service
src/main/java/com/project/expensetracker/service/IncomeService.java - Category service
src/main/java/com/project/expensetracker/service/CategoryService.java - Dashboard service
src/main/java/com/project/expensetracker/service/DashboardService.java
Persistence
- Profile repository
src/main/java/com/project/expensetracker/repository/ProfileRepository.java - Expense repository
src/main/java/com/project/expensetracker/repository/ExpenseRepository.java - Income repository
src/main/java/com/project/expensetracker/repository/IncomeRepository.java - Category repository
src/main/java/com/project/expensetracker/repository/CategoryRepository.java - Application database
Identity and messaging
- Profile service
src/main/java/com/project/expensetracker/service/ProfileService.java - Notification service
src/main/java/com/project/expensetracker/service/NotificationService.java - Email service
src/main/java/com/project/expensetracker/service/EmailService.java
Other components
- API user
- Email provider
Connections 34
- API user → Profile API: sends requests
- API user → Expense API: sends requests
- API user → Income API: sends requests
- API user → Category API: sends requests
- API user → Dashboard API: requests summary
- API user → Filter API: submits filters
- Profile API → Profile service: calls
- Expense API → Expense service: calls
- Income API → Income service: calls
- Category API → Category service: calls
- Dashboard API → Dashboard service: calls
- Filter API → Income service: filters income
- Filter API → Expense service: filters expenses
- Profile service → Profile repository: reads and saves
- Profile service → Email service: sends activation
- Expense service → Profile service: gets current user
- Expense service → Category repository: loads category
- Expense service → Expense repository: queries and saves
- Income service → Profile service: gets current user
- Income service → Category repository: loads category
- Income service → Income repository: queries and saves
- Category service → Profile service: gets current user
- Category service → Category repository: queries and saves
- Dashboard service → Profile service: gets current user
- Dashboard service → Income service: gets income totals
- Dashboard service → Expense service: gets expense totals
- Notification service → Profile repository: loads profiles
- Notification service → Expense service: gets daily expenses
- Notification service → Email service: sends notices
- Email service → Email provider: delivers email
- Profile repository → Application database: reads and writes
- Expense repository → Application database: reads and writes
- Income repository → Application database: reads and writes
- Category repository → Application database: reads and writes