How rohergun/personal-budget-manager works
BudgetManager combines a React finance dashboard with a Spring REST API. Users register or sign in, then manage transactions, categories, budgets, and savings goals; the dashboard presents monthly activity and budget comparisons. The backend separates HTTP controllers, domain services, and repositories. The README documents JWT authentication, login rate limiting, caching, and health checks; source excerpts are limited, so wiring beyond the sampled service contracts and authentication helpers is represented only where the tree and documentation support it.
Main entry points: App.tsx Route application · AuthController.java Auth controller · pages Finance pages · client.ts API client
Components 22
Web application
- Route application
frontend/src/App.tsx - Auth context
frontend/src/context/AuthContext.tsx - Finance pages
frontend/src/pages - API client
frontend/src/api/client.ts - API modules
frontend/src/api
Identity and security
- Spring application
src/main/java/io/github/rohergun/budgetmanager/BudgetManagerApplication.java - Auth controller
src/main/java/io/github/rohergun/budgetmanager/auth/AuthController.java - Auth service
src/main/java/io/github/rohergun/budgetmanager/auth/AuthServiceImpl.java - JWT service
src/main/java/io/github/rohergun/budgetmanager/security/JwtService.java - User lookup
src/main/java/io/github/rohergun/budgetmanager/security/CustomUserDetailsService.java - Security filters
src/main/java/io/github/rohergun/budgetmanager/security
Finance domains
- Transactions
src/main/java/io/github/rohergun/budgetmanager/transaction - Categories
src/main/java/io/github/rohergun/budgetmanager/category - Budgets
src/main/java/io/github/rohergun/budgetmanager/budget - Financial goals
src/main/java/io/github/rohergun/budgetmanager/financialgoal - User profile
src/main/java/io/github/rohergun/budgetmanager/user
Summary and operations
- Monthly summary
src/main/java/io/github/rohergun/budgetmanager/summary - Cache configuration
src/main/java/io/github/rohergun/budgetmanager/config/CacheConfig.java - Cache health
src/main/java/io/github/rohergun/budgetmanager/config/CacheHealthIndicator.java
Other components
- Finance user
- Relational database
- REST API consumer
Connections 25
- Finance user → Route application: uses
- Route application → Auth context: provides auth
- Route application → Finance pages: routes
- Finance pages → API modules: requests data
- API modules → API client: uses client
- API client → REST API consumer: HTTP requests
- REST API consumer → Auth controller: REST requests
- REST API consumer → Transactions: REST requests
- REST API consumer → Categories: REST requests
- REST API consumer → Budgets: REST requests
- REST API consumer → Financial goals: REST requests
- REST API consumer → Monthly summary: REST requests
- REST API consumer → User profile: REST requests
- Spring application → Auth controller: starts application
- Auth controller → Auth service: delegates auth
- Auth service → JWT service: issues tokens
- User lookup → Relational database: loads users
- Security filters → JWT service: validates tokens
- Transactions → Relational database: persists records
- Categories → Relational database: persists records
- Budgets → Relational database: persists records
- Financial goals → Relational database: persists records
- User profile → Relational database: persists profiles
- Monthly summary → Relational database: reads activity
- Cache health → Cache configuration: checks cache