How isaacggr/finance_app works
Finance App is a personal-finance REST API. Users authenticate and manage accounts, record and filter income or expenses, then review dashboard summaries and category budgets; reports and due-bill alerts provide email automation. The graph separates API entry points, business services, persistence/domain, and security/notifications. README-documented capabilities are included where implementation files were not sampled; those links cite the README rather than implying source inspection.
Main entry points: AuthService.java Auth and verification · MonthlyReportService.java Monthly reports · ReportController.java Reports API · BudgetService.java Budget progress
Components 23
API endpoints
- Authentication API
src/main/java/com/isaacggr/finance_app/controller/AuthController.java - User API
src/main/java/com/isaacggr/finance_app/controller/UserController.java - Transactions API
src/main/java/com/isaacggr/finance_app/controller/TransactionController.java - Budgets API
src/main/java/com/isaacggr/finance_app/controller/BudgetController.java - Dashboard API
src/main/java/com/isaacggr/finance_app/controller/DashboardController.java - Reports API
src/main/java/com/isaacggr/finance_app/controller/ReportController.java
Finance services
- User management
src/main/java/com/isaacggr/finance_app/service/UserService.java - Transaction management
src/main/java/com/isaacggr/finance_app/service/TransactionService.java - Budget progress
src/main/java/com/isaacggr/finance_app/service/BudgetService.java - Financial analytics
src/main/java/com/isaacggr/finance_app/service/DashboardService.java
Identity and security
- Auth and verification
src/main/java/com/isaacggr/finance_app/service/AuthService.java - JWT tokens
src/main/java/com/isaacggr/finance_app/service/TokenService.java - Verification codes
src/main/java/com/isaacggr/finance_app/service/VerificationTokenService.java - JWT request security
src/main/java/com/isaacggr/finance_app/config/SecurityFilter.java
Domain and persistence
- Users and accounts
src/main/java/com/isaacggr/finance_app/repository/UserRepository.java - Transaction queries
src/main/java/com/isaacggr/finance_app/repository/TransactionRepository.java - Verification token store
src/main/java/com/isaacggr/finance_app/repository/VerificationTokenRepository.java - Budget store
src/main/java/com/isaacggr/finance_app/repository/BudgetRepository.java
Email automation
- Monthly reports
src/main/java/com/isaacggr/finance_app/service/MonthlyReportService.java - Due-bill alerts
src/main/java/com/isaacggr/finance_app/service/BillAlertService.java - Email delivery
src/main/java/com/isaacggr/finance_app/service/EmailService.java
Other components
- Finance user
- Mail service
Connections 25
- Finance user → Authentication API: authenticates
- Finance user → User API: manages profile
- Finance user → Transactions API: records activity
- Finance user → Budgets API: sets limits
- Finance user → Dashboard API: views summary
- Finance user → Reports API: requests reports
- Authentication API → Auth and verification: delegates to
src/main/java/com/isaacggr/finance_app/controller/AuthController.java - User API → User management: delegates to
src/main/java/com/isaacggr/finance_app/controller/UserController.java - Transactions API → Transaction management: delegates to
src/main/java/com/isaacggr/finance_app/controller/TransactionController.java - Budgets API → Budget progress: delegates to
src/main/java/com/isaacggr/finance_app/controller/BudgetController.java - Dashboard API → Financial analytics: requests analytics
src/main/java/com/isaacggr/finance_app/controller/DashboardController.java - Reports API → Monthly reports: requests report
src/main/java/com/isaacggr/finance_app/controller/ReportController.java - Reports API → Due-bill alerts: requests alerts
src/main/java/com/isaacggr/finance_app/controller/ReportController.java - Auth and verification → Users and accounts: reads users
src/main/java/com/isaacggr/finance_app/service/AuthService.java - Auth and verification → JWT tokens: creates JWT
src/main/java/com/isaacggr/finance_app/service/AuthService.java - Auth and verification → Verification codes: manages codes
src/main/java/com/isaacggr/finance_app/service/AuthService.java - Auth and verification → Email delivery: sends codes
src/main/java/com/isaacggr/finance_app/service/AuthService.java - Verification codes → Verification token store: persists tokens
src/main/java/com/isaacggr/finance_app/service/VerificationTokenService.java - Transaction management → Transaction queries: queries transactions
src/main/java/com/isaacggr/finance_app/service/TransactionService.java - Budget progress → Budget store: loads budgets
src/main/java/com/isaacggr/finance_app/service/BudgetService.java - Budget progress → Transaction queries: aggregates spending
src/main/java/com/isaacggr/finance_app/service/BudgetService.java - Monthly reports → Financial analytics: gets summary
src/main/java/com/isaacggr/finance_app/service/MonthlyReportService.java - Monthly reports → Email delivery: sends report
src/main/java/com/isaacggr/finance_app/service/MonthlyReportService.java - Monthly reports → Users and accounts: loads recipients
src/main/java/com/isaacggr/finance_app/service/MonthlyReportService.java - Email delivery → Mail service: delivers email