Personal Finance Tracker – Java OOP & File I/O Practice
About Project
Personal Finance Tracker is a console-based application built in Java, created to reinforce my object-oriented programming (OOP) knowledge and gain hands-on experience with file operations, collections, and unit testing. The project simulates a practical personal finance management tool, where users can track incomes, expenses, and balances interactively.
The application is designed with a modular architecture, including separate classes for transactions, income, expenses, and file management. Users can add new transactions, categorize expenses, filter transactions by custom date ranges, view total income, total expense, and remaining balance, and delete transactions as needed. All data is automatically saved to a .txt file and loaded when the application restarts.
Through this project, I practiced OOP principles, including inheritance, polymorphism, and abstraction, as well as SOLID design. I also learned how to handle file I/O using BufferedReader and BufferedWriter, work with Java Collections (ArrayList and List), manage dates with Java Time API, and write unit tests with JUnit 5 to ensure code correctness.
This project was developed as part of my personal learning journey to apply theoretical Java knowledge in a practical context, simulate a realistic workflow including testing and modular development, and strengthen my backend development skills.
