Financify is a desktop personal finance management application built with Java, JavaFX, and SQLite. It helps users track income, expenses, savings goals, and net worth through a clean and intuitive interface.
This project was developed to strengthen my Java and desktop application development skills while building a practical finance management tool for personal use.
- Current financial situation
- Monthly income, expenses, and savings
- Savings rate
- Expense breakdown by category
- Monthly summary for the past 6 months
- Net worth growth overview for the past 6 months
- Add transactions
- Edit transactions
- Delete transactions
- Monthly and yearly filtering
- Income and expense tracking
- Categories and descriptions
- Monthly bank balance tracking
- Loan management
- Automatic net worth calculation
- Create savings goals
- Update and delete goals
- Track current progress
- Remaining amount calculation
- Overall savings statistics
- Java 21
- JavaFX
- SQLite
- Gradle
- JDBC
src/
├── com.financify
│ ├── App.java
│ ├── Database.java
│ ├── models/
│ └── views/
└── resources/
- Java 21+
- Gradle
Clone the repository:
git clone https://github.com/yourusername/Financify.gitRun the application:
./gradlew runBuild the project:
./gradlew build
./gradlew jpackageImage #to package the app and generate an exe
app/build/jpackage/Financify/Financify.exe #to launch the app from the packageThe application uses an SQLite database with three main modules:
- Transactions
- Net Worth
- Savings Goals
Data is retrieved using SQL aggregation queries to generate dashboard statistics and financial reports.
This project was created for personal use and as a portfolio project to track personal expenses and to improve my skills in:
- Object-Oriented Programming
- JavaFX UI development
- Desktop application architecture
- SQL and database design
- CRUD operations
- Data visualization
- Gradle build automation
This project is licensed under the MIT License. See the LICENSE file for details.
Zaid Terguy
Made with ♥ using Java.