Skip to content

An application that automates personal budget management. It categorizes expenses according to a predefined pattern, allows you to view statistics, and helps you set savings goals.

Notifications You must be signed in to change notification settings

Arachnacein/App

Repository files navigation

I will be spending Christmas writing unit tests. 🎄💻

ExpenseApp

        Since I started working, I noticed that it’s beneficial dividing income into specific categories. I divided them into 'savings', 'daily expenses', and those related to 'entertainment'. This allowed me to manage my budget more effectively, and the savings I generated helped build a financial cushion. In the beginning, I did this on paper. In fact, long before I started working, I would note my expenses on sheets of paper, which often got lost. That's why I decided to switch to electronic record-keeping. I chose Excel spreadsheets for this purpose. However, I didn't really like it due to its clunky appearance and lack of functionalities I wanted.

        In the meantime, I decided to start designing my own application. It was supposed to automate the processes I previously had to calculate and manage manually. Additionally, I wanted it to be simple to use and include the functionalities I needed. The best part is that I can design and implement features by myself. Without much hesitation, I began creating this application.



How it works

        In the 'Budget' tab, you can view your monthly expenses. It's best to start by adding the income for the current month. This includes any funds added to your budget, such as a salary, winnings from a bet, or even money found on the street. When adding the first income for the month, the system will prompt you to select a pattern for distributing your income. Choose the one that suits you best. If none of the available patterns fit, you can create a new one in the options window. After successfully adding the income, the application will automatically allocate it to various categories according to the selected pattern and update the data in the tables. You can now start adding individual transactions. (Transactions can also be added without selecting a pattern or having any income for the month. In that case, only the transaction itself will be visible without a percentage allocation.) If you make a mistake with a category, you can easily move the transaction between columns. When you hover over a transaction with the mouse, the date and the description you entered will appear after a moment. If you click on the transaction, a window will open where you can edit or delete it.


Architecture

        The architecture used in this application is based on Clean Architecture, which has become the standard for developing WebAPIs. It separates business logic from databases and user interfaces, creating a layered structure where each layer communicates with the others in a well-defined manner.
        Additionally, the application is built using a distributed architecture, specifically microservices. It is divided into modules, such as the API responsible for business logic related to transactions and budgeting, and the graphical user interface. Thesemodules are connected by an API Gateway, which routes requests between the modules. My assumption is that each group of functionalities related to a single aspect will be implemented as a separate microservice. Currently, the application has three microservices: budgetapi, apigateway, and GUI. In the future, microservices responsible for the calendar and payments will be added.



Currently, I am working on the login and authorization feature. After that, the architecture will look like the picture below




Screenshots



Tech stack

.NET Core REST Keycloak Git Docker GitHub MSSQL Postman HTML CSS C# Windows

Milestones

🔜 Add authorization.
🔜 Add Unit test.
* Add Healtch checks.
* Add pdf summary.
* Add saving goals feature.
* Add calendar with notifications.
* Add payment feature.
✅ Add Login and Registration.
✅ Add Internationalization.
✅ Add searching fields for transactions and incomes.
✅ Add statistics summary.
✅ Change logic by introducing the CQRS architectural pattern.
✅ Add income preview.
✅ Add patterns preview.
✅ Add forms validators.
✅ Add dark theme.
✅ Add main page carousel.
✅ Add dialogs.
✅ Add budget gui page.
✅ Add income api (controllers, services, respositories, mappers ect.).
✅ Add transactions api (controllers, services, respositories, mappers ect.).
✅ Add patterns and monthpatterns api (controllers, services, respositories, mappers ect.).
✅ Set project architecture.
❔❔ Mobile app.

About

An application that automates personal budget management. It categorizes expenses according to a predefined pattern, allows you to view statistics, and helps you set savings goals.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published