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,LIKEfor 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.