this is the project i am trying to build:
I. Project Description**
The project, named WealthGuardian, is a comprehensive personal financial management
application designed to help individuals monitor and manage their daily economic activities.
WealthGuardian was chosen as the name because it emphasizes the app’s role in guarding and
optimizing users’ wealth through insightful financial monitoring and guidance. The core functionalities of
WealthGuardian include budget tracking, which allows users to set monthly spending limits and track
day-to-day expenses to ensure they stay on budget. The investment tracker enables users to monitor
their portfolio performance, providing insights on stocks, bonds, and other investments (although this
part may be an overreach on the dev’s part).
Additionally, WealthGuardian offers a savings goal tracker that motivates and assists users in
achieving their short and long-term saving objectives by setting incremental landmarks. Finally, the
application integrates a debt management plan that offers tailored advice on reducing liabilities and
improving financial health. Overall, the aim of WealthGuardian is to offer an intuitive and accessible
interface that empowers users to enhance their financial literacy and achieve greater economic security.
Using the MoSCoW method, application of prioritization to WealthGuardian:
Essentials (MUST have)
- User authentication and management.
- Basic transaction tracking.
- Basic budget creation and tracking.
Important (SHOULD have)
- A detailed dashboard for a quick overview of financial health.
- Alerts or notifications for budget limits.
Nice to Have (COULD have)
- Investment tracking (simplified version).
- Use of interactive charts for financial data visualization.
Non-Essential (WON’T have this time)
- Comprehensive debt management tools.
- Advanced investment analysis features.
- In-depth financial health reports.
**II. Model and Table Structure**
List of Models:
1. User - Manages user information and authentication details.
2. Transaction - Records individual financial transactions to monitor spending and investments.
3. Account - Represents various financial accounts, such as checking, savings, or investment accounts.
4. Budget - Helps in setting and tracking monthly spending limits and financial goals.
List of Tables:
1. Table Name: Users
- Primary Key: user_id
- Model Related: User
2. Table Name: Transactions
- Primary Key: transaction_id
3- Foreign Key: account_id (links to Accounts table)
- Model Related: Transaction
3. Table Name: Accounts
- Primary Key: account_id
- Foreign Key: user_id (links to Users table)
- Model Related: Account
4. Table Name: Budgets
- Primary Key: budget_id
- Foreign Key: user_id (links to Users table)
- Model Related: Budget
III.List of Web Pages:
1. Dashboard - Provides an overview of all financial metrics including recent transactions, budget
summary, and savings goals.
2. Transaction History - Displays a detailed log of all financial transactions allowing users to review past
expenses and deposits.
3. Budget Management - Enables users to create, edit, and monitor their monthly budgets, visualizing
data to aid in financial decision-making.
4. Investments Tracker - Offers a comprehensive view of investment portfolios with performance
metrics and individual asset reviews.
5. Savings Goals - Allows setting and tracking of various saving objectives, offering motivational insights
and progress reports.
6. Debt Overview - Shows all liabilities and provides plans and suggestions for efficient debt
management.5. Savings Goals - Allows setting and tracking of various saving objectives, offering motivational insights
and progress reports.
6. Debt Overview - Shows all liabilities and provides plans and suggestions for efficient debt
This is what I need ur help w/:
Package Structure: Organize your project into separate packages for models, DAOs/repositories, services, controllers, and exceptions. For example:

com.yourcompany.models
com.yourcompany.repositories
com.yourcompany.services
com.yourcompany.controllers
com.yourcompany.exceptions
Comments: Ensure that each class and significant method is well-documented with comments explaining their purpose and functionality. This helps other developers (or yourself in the future) understand the codebase more easily.

GitHub Repository: Set up a GitHub repository early and maintain a README.md file that provides an overview of your project, installation instructions, configuration details, and any other relevant information.

2. Core Java and Models
Use Java effectively with clear class structures and consider using constant variables where appropriate for improved clarity and maintainability.

Implement CRUD operations for your models (User, Transaction, Account, Budget) to interact with the database. Apply exception handling to manage errors gracefully.

3. Database, ORM, and Hibernate
Database Choice: Use MySQL as your relational database management system.

Schema and SQL: Design a schema diagram that illustrates table relationships (Users, Transactions, Accounts, Budgets). Provide SQL scripts for creating tables and necessary setup.

Hibernate/JPA: Utilize Hibernate for Object-Relational Mapping (ORM). Implement custom queries (at least three) alongside standard CRUD operations to interact with your database entities.