← back to projects

project

Personal Finance & Budget Tracker

A full-stack Java app for tracking income, expenses, and category budgets — a REST API over SQLite with a live dashboard that flags overspending in real time. Rebuilt from the ground up with a proper object-oriented domain model and an actual UI, not just a console tool.

Java 17SQLite (JDBC)REST APISQL aggregationHTML/CSS/JS

architecture

  • model/User, Category, Transaction, Budget, TransactionType: plain OOP domain classes.
  • persistence/ — one repository per table, real SQL (GROUP BY, SUM, LIKE for month filtering) against SQLite via JDBC.
  • service/FinanceManager — validates input, orchestrates repositories, computes monthly summaries and per-category spend vs. budget.
  • web/ApiServer — a small REST API (/api/transactions, /api/budgets, /api/summary) built on the JDK's own HTTP server, plus static file serving for the frontend.

features

  • Log income/expense transactions with description, amount, category, and date.
  • Set a monthly budget limit per category, with live progress bars.
  • Budget bars turn red and flag "over budget" the moment spending exceeds the limit — computed live from actual SQL aggregation, not hardcoded.
  • Month-by-month navigation and inline transaction deletion.

dashboard

income

$3200.00

expenses

$2483.00

net

$717.00

Dining Out $145.80 / $150.00
Entertainment $28.00 / $80.00
Groceries over budget $422.45 / $400.00
Rent $1800.00 / $1800.00
Transportation $86.75 / $120.00
view code on GitHub →

Clone it and run mvn package && java -jar target/finance-tracker.jar to try it live.