Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mateusz-przybyla/personalbudget_objectoriented
Final C++ application during the Project Przyszly Programista
https://github.com/mateusz-przybyla/personalbudget_objectoriented
cpp data-structures oop xml
Last synced: 10 days ago
JSON representation
Final C++ application during the Project Przyszly Programista
- Host: GitHub
- URL: https://github.com/mateusz-przybyla/personalbudget_objectoriented
- Owner: mateusz-przybyla
- Created: 2024-01-29T16:56:00.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-03-09T10:48:57.000Z (8 months ago)
- Last Synced: 2024-03-09T11:38:54.087Z (8 months ago)
- Topics: cpp, data-structures, oop, xml
- Language: C++
- Homepage:
- Size: 123 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ParsonalBudget - Object Oriented
Final version of the PersonalBudget application written in OOP paradigm.\
[Here](https://github.com/mateusz-przybyla/PersonalBudget_Structured) you can find the PersonalBudget application written in structured paradigm.## Table of contents
- [Overview](#overview)
- [About](#about)
- [Application design](#plan-freemind)
- [Diagram UML](#diagram-uml)
- [Screenshot](#screenshot)
- [My process](#my-process)
- [Built with](#built-with)
- [Useful resources](#useful-resources)## Overview
### About
PersonalBudget application allows you to keep records of your expenses and incomes.
Data are saved to the database (.xml file).
First create a user account and then you can add incomes and expenses with today's date or with a selected backdate.
You can show current month's balalnce, previous month's balance and selected period balance. The application calculates the sum of incomes, expenses and the difference between them (incomes - expenses).Other functionalities:
- Changing user password
### Application design
[Plan FreeMind](https://github.com/mateusz-przybyla/PersonalBudget_ObjectOriented/blob/main/PersonalBudget_Plan-FreeMind.pdf)
### Diagram UML
[Diagram UML](https://github.com/mateusz-przybyla/PersonalBudget_ObjectOriented/blob/main/PersonalBudget_uml.pdf)
### Screenshots
- Main menu:
![](./images/main_menu.jpg)
- User menu:
![](./images/user_menu.jpg)
- Adding new income:
![](./images/new_income.jpg)
- Expense category:
![](./images/expense_category.jpg)
- e.g. Previous month's balance:
![](./images/previous_months_balance.jpg)
## My process
### Built with
- OOP (Object Orienting Programming)
- Operations on dates
- Vectors
- Pointers
- Input/output with files (.xml)
- Libraries: vector, ctime, sstream, iomanip, math.h, algorithm
- External library: Markup
- Clean code
- SOLID Principles (especially Single Responsibility Principle)### Useful resources
- Project Przyszly Programista
- https://www.geeksforgeeks.org
- https://miroslawzelent.pl/kurs-c++/
- https://stackoverflow.com
- https://www.firstobject.com/dn_markup.htm
- https://www.tutorialspoint.com/cplusplus/cpp_date_time.htm