Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vkondratiuk482/finance-tracker
Finance tracker application that stores all of your expenses, calculates taxes and so on. Built using Domain Driven Design (rich domain model) and CQRS
https://github.com/vkondratiuk482/finance-tracker
Last synced: 16 days ago
JSON representation
Finance tracker application that stores all of your expenses, calculates taxes and so on. Built using Domain Driven Design (rich domain model) and CQRS
- Host: GitHub
- URL: https://github.com/vkondratiuk482/finance-tracker
- Owner: vkondratiuk482
- Created: 2023-09-13T11:21:38.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-02-19T00:12:16.000Z (10 months ago)
- Last Synced: 2024-04-18T04:01:54.290Z (8 months ago)
- Language: C#
- Homepage:
- Size: 220 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Finance Tracker
What I am trying to build is a Finance Tracker application using some new techniques for me:
* 3-rd party authentication (e.g [Auth0](https://auth0.com/docs))
* CQRS
* Domain Driven Design (Rich domain model)## Features
* Auth0 authentication
* Create budget
* Create/Remove categories
* Add/remove income/outcome sources. Sources can be one-time / regular payments
* Pick a taxation strategy (e.g ФОП 3-тя група and so on)
* Calculate netto profit, possible filters by income sources / categories
* Saving goal. Customer can specify a saving goal (e.g save 10% of the netto profit this month), the application have to calculate the maximum amount of money he can spend each day (until the end of the business month) so that he fits in the saving plan. If customer spends more money than expected, we have to adjust the limit## Architecure
The solution consists of multiple projects:
* FinanceTracker.Api - Handles client requests
* FinanceTracker.Application - Handles application logic, mainly unites the domain logic
* FinanceTracker.Domain - Handles core domain logic, the most important part of the application
* FinanceTracker.Persistence - Handles all of the database communications## Domain
![Bounded Context](assets/bounded-context.png)