How razdryzg-dev/finance-planner works
This is a JavaFX personal-finance planner for recording income and expenses, reviewing filtered transactions and spending summaries, and checking category budgets. The main workflow runs from the desktop UI through transaction entry or review to JDBC persistence, then refreshes balances, expense-category rankings, and budget warnings. Sampled code confirms the UI and transaction/budget data access; other DAO behavior is represented only where the tree and documented JDBC setup support it.
Main entry points: MainApp.java Finance dashboard · TransactionDAO.java Transaction access · CategoryDAO.java Category access · DatabaseConnection.java JDBC connection
Components 13
Desktop UI
- Finance dashboard
src/main/java/com/financeplanner/MainApp.java - Transaction entry
src/main/java/com/financeplanner/AddTransactionDialog.java
Data access
- Transaction access
src/main/java/com/financeplanner/dao/TransactionDAO.java - Account access
src/main/java/com/financeplanner/dao/AccountDAO.java - Category access
src/main/java/com/financeplanner/dao/CategoryDAO.java - Budget access
src/main/java/com/financeplanner/dao/BudgetDAO.java - JDBC connection
src/main/java/com/financeplanner/db/DatabaseConnection.java
Domain models
- Transaction
src/main/java/com/financeplanner/model/Transaction.java - Budget
src/main/java/com/financeplanner/model/Budget.java - Account
src/main/java/com/financeplanner/model/Account.java - Category
src/main/java/com/financeplanner/model/Category.java
Other components
- User
- PostgreSQL / MySQL
Connections 21
- User → Finance dashboard: uses
- Finance dashboard → Transaction entry: opens entry
- Finance dashboard → Transaction access: filters, ranks, deletes
- Finance dashboard → Budget access: checks limits
- Finance dashboard → Category access: loads categories
- Transaction entry → Account access: loads accounts
- Transaction entry → Category access: loads categories
- Transaction entry → Transaction access: creates transaction
- Account access → JDBC connection: gets connection
- Category access → JDBC connection: gets connection
- Transaction access → JDBC connection: gets connection
- Budget access → JDBC connection: gets connection
- JDBC connection → PostgreSQL / MySQL: opens JDBC
- Account access → PostgreSQL / MySQL: queries
- Category access → PostgreSQL / MySQL: queries
- Transaction access → PostgreSQL / MySQL: reads, writes
- Budget access → PostgreSQL / MySQL: reads spending
- Transaction access → Transaction: creates
- Budget access → Budget: creates
- Account access → Account: creates
- Category access → Category: creates