How patrick-plue/budgettrackerwithdb works
BudgetTrackerWithDB is an ASP.NET Core budget-tracking API. Clients enter through the transaction or report endpoints: transaction requests are validated and handled by a service, while report requests compute income, expense, and net totals for a date range. The configured runtime uses EF Core with SQLite; mock services are available as alternatives. The graph preserves the principal DTO and domain stages. Some endpoint and service details are known only through the source index, so unsupported internal links are omitted.
Main entry points: Program.cs App startup · TransactionServiceEf.cs EF transaction service · TransactionEndpoints.cs Transaction endpoints · ReportServiceEf.cs EF report service
Components 20
HTTP API
- App startup
Program.cs - Transaction endpoints
Api/Endpoints/TransactionEndpoints.cs - Report endpoint
Api/Endpoints/ReportEndpoint.cs - Validation filter
Api/Filters/ValidationFilter.cs - Validation extensions
Api/Filters/ValidationExtensions.cs
Application Services
- Transaction service contract
Application/Interfaces/ITransactionService.cs - EF transaction service
Application/Services/TransactionServiceEf.cs - Mock transaction service
Application/Services/TransactionServiceMock.cs - Report service contract
Application/Interfaces/IReportService.cs - EF report service
Application/Services/ReportServiceEf.cs - Mock report service
Application/Services/ReportServiceMock.cs
Domain And DTOs
- Transaction model
Models/Transaction.cs - Transaction type
Models/TransactionType.cs - Create transaction DTO
Dtos/Transactions/CreateTransactionDto.cs - Update transaction DTO
Dtos/Transactions/UpdateTransactionDto.cs - Transaction response DTO
Dtos/Transactions/TransactionResponseDto.cs - Summary report DTO
Dtos/Reports/SummaryReportResponseDto.cs
Persistence
- EF database context
Infrastructure/ApplicationDbContext.cs - SQLite database
Other components
- API client
Connections 30
- API client → App startup: sends requests
- App startup → Transaction endpoints: maps routes
Program.cs - App startup → Report endpoint: maps routes
Program.cs - App startup → EF transaction service: registers service
Program.cs - App startup → EF report service: registers service
Program.cs - App startup → EF database context: configures EF
Program.cs - Transaction endpoints → Transaction service contract: calls
Api/Endpoints/TransactionEndpoints.cs - Report endpoint → Report service contract: calls
Api/Endpoints/ReportEndpoint.cs - EF transaction service → EF database context: queries and saves
Application/Services/TransactionServiceEf.cs - EF transaction service → Transaction model: creates and updates
Application/Services/TransactionServiceEf.cs - EF transaction service → Create transaction DTO: accepts
Application/Services/TransactionServiceEf.cs - EF transaction service → Update transaction DTO: accepts
Application/Services/TransactionServiceEf.cs - EF report service → EF database context: queries
Application/Services/ReportServiceEf.cs - EF report service → Summary report DTO: builds report
Application/Services/ReportServiceEf.cs - EF report service → Transaction type: classifies totals
Application/Services/ReportServiceEf.cs - EF database context → Transaction model: stores
Infrastructure/ApplicationDbContext.cs - App startup → SQLite database: configures provider
Program.cs - Transaction endpoints → Create transaction DTO: accepts
Api/Endpoints/TransactionEndpoints.cs - Transaction endpoints → Update transaction DTO: accepts
Api/Endpoints/TransactionEndpoints.cs - Transaction endpoints → Transaction response DTO: returns
Api/Endpoints/TransactionEndpoints.cs - Create transaction DTO → Transaction type: uses
Dtos/Transactions/CreateTransactionDto.cs - Transaction model → Transaction type: uses
Models/Transaction.cs - Mock transaction service → Transaction model: manages
Application/Services/TransactionServiceMock.cs - Mock transaction service → Create transaction DTO: accepts
Application/Services/TransactionServiceMock.cs - Mock transaction service → Update transaction DTO: accepts
Application/Services/TransactionServiceMock.cs - Mock report service → Summary report DTO: builds report
Application/Services/ReportServiceMock.cs - Mock report service → Transaction model: uses data
Application/Services/ReportServiceMock.cs - Transaction service contract → EF transaction service: implemented by
Application/Services/TransactionServiceEf.cs - Report service contract → EF report service: implemented by
Application/Services/ReportServiceEf.cs - Validation extensions → Validation filter: references
Api/Filters/ValidationExtensions.cs