How bytegitaccnt/expensetrackerspring works
ETrace is a Spring Boot personal-finance REST backend. A client authenticates or registers, then uses user-scoped endpoints to record and browse expenses, manage categories and reserved funds, and review balances, transactions, or reports. Services implement domain rules and delegate persistence; expense and reserve operations also emit audit records. JWT security and configurable rate limiting protect API access. The README documents the broader reporting and transaction capabilities, but their implementation was not sampled, so those links are shown only at the documented layer boundaries.
Main entry points: Repository Data repositories · ExpenseService.java Expense operations · UserService.java User operations · AuditService.java Audit logging
Components 24
REST API
- Authentication API
src/main/java/com/myApp/ExpenseTracker/Controller/AuthController.java - Expense API
src/main/java/com/myApp/ExpenseTracker/Controller/ExpenseController.java - Category API
src/main/java/com/myApp/ExpenseTracker/Controller/CategoryController.java - Reserve API
src/main/java/com/myApp/ExpenseTracker/Controller/ReserveFundController.java - Balance API
src/main/java/com/myApp/ExpenseTracker/Controller/BalanceController.java - Report API
src/main/java/com/myApp/ExpenseTracker/Controller/ReportController.java - App info API
src/main/java/com/myApp/ExpenseTracker/Controller/AppController.java
Finance workflows
- User operations
src/main/java/com/myApp/ExpenseTracker/Service/UserService.java - Expense operations
src/main/java/com/myApp/ExpenseTracker/Service/ExpenseService.java - Category operations
src/main/java/com/myApp/ExpenseTracker/Service/CategoryService.java - Reserve operations
src/main/java/com/myApp/ExpenseTracker/Service/ReservedService.java
Identity and protection
- Token operations
src/main/java/com/myApp/ExpenseTracker/Service/JwtService.java - Refresh tokens
src/main/java/com/myApp/ExpenseTracker/Service/RefreshTokenService.java - JWT security
src/main/java/com/myApp/ExpenseTracker/Config/SecurityConfig.java - JWT request filter
src/main/java/com/myApp/ExpenseTracker/Config/JwtAuthenticationFilter.java - Rate limiting
src/main/java/com/myApp/ExpenseTracker/Ratelimit/RateLimitInterceptor.java
Persistence and audit
- Audit logging
src/main/java/com/myApp/ExpenseTracker/Service/AuditService.java - Data repositories
src/main/java/com/myApp/ExpenseTracker/Repository - Finance entities
src/main/java/com/myApp/ExpenseTracker/Model - Relational database
Transactions and reports
- Transaction records
src/main/java/com/myApp/ExpenseTracker/Service/TransactionService.java - Report generation
src/main/java/com/myApp/ExpenseTracker/Service/ReportService.java - PDF output
src/main/java/com/myApp/ExpenseTracker/Service/PdfGenerator.java
Other components
- API client
Connections 36
- API client → Authentication API: sends auth requests
- API client → Expense API: manages expenses
- API client → Category API: manages categories
- API client → Reserve API: manages reserves
- API client → Balance API: checks balances
- API client → Report API: requests reports
- API client → App info API: requests app info
- API client → Rate limiting: requests throttled
- Rate limiting → Expense API: allows or rejects
- Authentication API → User operations: registers users
- Authentication API → Token operations: issues tokens
- Authentication API → Refresh tokens: manages refresh
- JWT security → JWT request filter: installs filter
- JWT request filter → Token operations: validates tokens
- Expense API → Expense operations: handles requests
- Category API → Category operations: handles requests
- Reserve API → Reserve operations: handles requests
- Balance API → User operations: reads balance
- Report API → Report generation: requests reports
- Expense operations → Category operations: finds or creates category
- Expense operations → Reserve operations: withdraws reserved funds
- User operations → Transaction records: records income
- Report generation → PDF output: generates documents
- User operations → Data repositories: reads and writes
- Expense operations → Data repositories: reads and writes
- Category operations → Data repositories: reads and writes
- Reserve operations → Data repositories: reads and writes
- Transaction records → Data repositories: reads and writes
- Refresh tokens → Data repositories: persists tokens
- Expense operations → Audit logging: logs changes
- Category operations → Audit logging: logs changes
- Reserve operations → Audit logging: logs changes
- User operations → Audit logging: logs changes
- Audit logging → Data repositories: stores audit records
- Data repositories → Finance entities: maps entities
- Data repositories → Relational database: persists data