This is the project i am trying to built:
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
Components Already Done:
- Models (User, Transaction, Account, Budget)
- Repositories
- Services
- Controllers
- Exception Handling
- Utility Classes
Completed in detail:
User.java: Defines the structure and relationships of a user entity, including one-to-many with Account.
UserRepository.java: Manages the persistence of User entities, providing methods for CRUD operations and custom queries.
UserService.java: Implements business logic operations for User entities, such as creation, retrieval, and deletion, utilizing UserRepository.
UserController.java: Defines RESTful endpoints for handling HTTP requests related to users, facilitating create and retrieve operations and error handling with appropriate responses.
Transaction.java: Defines the structure of a financial transaction entity.
TransactionRepository.java: Manages the storage and retrieval of Transaction objects.
TransactionService.java: Provides business logic operations on Transaction objects.
TransactionController.java: Handles HTTP requests and serves as the interface between the client and the TransactionService.
Account.java: Defines the structure of an account entity, including its properties and relationships with other entities.
AccountRepository.java: Manages the persistence of Account entities, providing methods for CRUD operations (Create, Read, Update, Delete).
AccountService.java: Contains business logic operations related to Account entities, such as creating, retrieving, updating, and deleting accounts.
AccountController.java: Defines endpoints to handle HTTP requests for account operations (e.g., create, retrieve by ID, retrieve all). Acts as an interface between the client (e.g., web browser or mobile app) and the application’s business logic (via AccountService).
Defines the structure of a budget entity with properties like budgetId, user, monthlyLimit, and currentSpending.
Establishes a Many-to-One relationship with the User entity through the user field.
Provides getters and setters for accessing and modifying entity properties.
Budget.java: Defines the structure and relationships of a budget entity.
BudgetRepository.java: Manages the persistence of Budget entities using an in-memory HashMap, providing CRUD operations.
BudgetService.java: Implements business logic operations for Budget entities, including creation, retrieval, and deletion.
BudgetController.java: Defines RESTful endpoints for handling HTTP requests related to budgets, facilitating create, retrieve, and delete operations.
Exceptions:
- Created two custom exceptions (ResourceNotFoundException, BadRequestException) for handling specific error conditions.
- Implemented a global exception handler (GlobalExceptionHandler) to manage and format exception responses consistently.
Utilities:
- Developed utility classes to handle common tasks:
- DateUtil: For date parsing and formatting.
- InputValidator: For input validation checks.
- ResponseUtil: For standardized API response generation.
I need u to make me a dashboard.html Use Thymeleaf for dynamic content rendering and has a drop down navigation bar that would allow me to connect to other pages to my desire