Skip to content

Latest commit

 

History

35 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Financify

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.


Features

📊 Dashboard

  • 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

💳 Transactions

  • Add transactions
  • Edit transactions
  • Delete transactions
  • Monthly and yearly filtering
  • Income and expense tracking
  • Categories and descriptions

💰 Net Worth

  • Monthly bank balance tracking
  • Loan management
  • Automatic net worth calculation

🎯 Savings Goals

  • Create savings goals
  • Update and delete goals
  • Track current progress
  • Remaining amount calculation
  • Overall savings statistics

Technologies

  • Java 21
  • JavaFX
  • SQLite
  • Gradle
  • JDBC

Project Structure

src/
 ├── com.financify
 │    ├── App.java
 │    ├── Database.java
 │    ├── models/
 │    └── views/
 └── resources/

Running the Project

Requirements

  • Java 21+
  • Gradle

Clone the repository:

git clone https://github.com/yourusername/Financify.git

Run the application:

./gradlew run

Build 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 package

Database

The 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.


Purpose

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

License

This project is licensed under the MIT License. See the LICENSE file for details.

👨‍💻 Author

Zaid Terguy

Made with ♥ using Java.

Releases

Packages

Contributors

Languages