Implemented in the Java Developer Track of hyperskill.org JetBrain Academy.
Project goal is to implement a Command Line Budget Manager application with persistence and planning functionality.
- Java 20
- Lombok
- Slf4j
- Tests with Junit-Jupiter and Mockito
- Gradle 8.1.1
The application will support you in analyzing your expenses and estimating the income, which sometimes may be difficult. You can create your own personal budget manager that counts the ins and outs and helps control the finances.
Project was completed on 29.04.23.
Sources for all project tasks (5 stages) with tests and configurations.
10.04.23 Project started. Setup of build and repo with gradle on Kotlin basis.
10.04.23 Stage 1 completed. Read in list of purchases and calculate total price.
15.04.23 Stage 2 completed. Add a main menu with functionality to add income, purchases, show balance and sum purchases.
28.04.23 Stage 3 completed. Generic menu-controller framework based on Enum Choice Types. Full test coverage Bump to Gradle 8.1.1 and Java 20.
29.04.23 Stage 4 completed. Introduce BudgetState data class for application state. Serialize to file and deserialize on save and load menu options.
29.04.23 Final Stage 5 completed. Add AnalyzeController to handle new Analyze-Menu Point, that allows filtered and sorted Purchase output and aggregation within Categories with an own submenu. Refactor ShowPurchaseController to factor out a PurchaseDisplayer used in both controllers.