How wouter8/wv8.finance.back-end works
Wv8.Finance.Back-End is a personal-finance API for managing accounts, categories, budgets, transactions, recurring transactions, reports, and Splitwise-linked expenses. The main workflow is an API request reaching a domain manager, which validates or transforms finance data and reads or writes the database; transaction processing can also synchronize Splitwise activity. Controllers and several managers are supported by sampled source, while other product branches are represented from the repository tree. Links to unsampled implementations are limited to their visible API entry points.
Main entry points: Context.cs Finance context · TransactionManager.cs Transaction manager · RecurringTransactionManager.cs Recurring manager · SplitwiseManager.cs Splitwise manager
Components 22
API
- Transaction API
Wv8.Finance.Back-End/Service/Controllers/TransactionController.cs - Account API
Wv8.Finance.Back-End/Service/Controllers/AccountController.cs - Category API
Wv8.Finance.Back-End/Service/Controllers/CategoryController.cs - Budget API
Wv8.Finance.Back-End/Service/Controllers/BudgetController.cs - Recurring API
Wv8.Finance.Back-End/Service/Controllers/RecurringTransactionController.cs - Report API
Wv8.Finance.Back-End/Service/Controllers/ReportController.cs - Splitwise API
Wv8.Finance.Back-End/Service/Controllers/SplitwiseController.cs
Finance domain
- Transaction manager
Wv8.Finance.Back-End/Business/Transaction/TransactionManager.cs - Transaction processor
Wv8.Finance.Back-End/Business/Transaction/Processor/TransactionProcessor.cs - Account manager
Wv8.Finance.Back-End/Business/Account/AccountManager.cs - Category manager
Wv8.Finance.Back-End/Business/Category/CategoryManager.cs - Budget manager
Wv8.Finance.Back-End/Business/Budget/BudgetManager.cs - Recurring manager
Wv8.Finance.Back-End/Business/Transaction/RecurringTransaction/RecurringTransactionManager.cs - Report manager
Wv8.Finance.Back-End/Business/Report/ReportManager.cs - Splitwise manager
Wv8.Finance.Back-End/Business/Splitwise/SplitwiseManager.cs
Persistence
- Finance context
Wv8.Finance.Back-End/Data/Context.cs - Finance database
Wv8.Finance.Back-End/Data/Models/TransactionEntity.cs
Background and external
- Periodic processor
Wv8.Finance.Back-End/Service/Services/PeriodicProcessorService.cs - Periodic importer
Wv8.Finance.Back-End/Service/Services/PeriodicSplitwiseImporter.cs - Splitwise client
Wv8.Finance.Back-End/Data.External/Splitwise/SplitwiseContext.cs
Other components
- API client
- Splitwise
Connections 30
- API client → Transaction API: requests
- API client → Account API: requests
- API client → Category API: requests
- API client → Budget API: requests
- API client → Recurring API: requests
- API client → Report API: requests
- API client → Splitwise API: requests
- Transaction API → Transaction manager: dispatches
- Account API → Account manager: dispatches
- Category API → Category manager: dispatches
- Budget API → Budget manager: dispatches
- Recurring API → Recurring manager: dispatches
- Report API → Report manager: dispatches
- Splitwise API → Splitwise manager: dispatches
- Transaction manager → Transaction processor: processes
- Recurring manager → Transaction processor: processes
- Splitwise manager → Transaction processor: processes
- Transaction manager → Finance context: reads/writes
- Account manager → Finance context: reads/writes
- Category manager → Finance context: reads/writes
- Budget manager → Finance context: reads/writes
- Recurring manager → Finance context: reads/writes
- Report manager → Finance context: queries
- Splitwise manager → Finance context: reads/writes
- Finance context → Finance database: persists
- Transaction processor → Finance context: updates
- Transaction manager → Splitwise client: uses
- Recurring manager → Splitwise client: uses
- Splitwise manager → Splitwise client: fetches expenses
- Splitwise client → Splitwise: API calls