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
This is the rubric:
1. Project Structure, Standardization, and Conventions: 12%
Total
Possible
Points
Points
Received
Instructor Comments
a. The project package structure should be shown in class, where the
models, DAO/repositories, services, controllers, and exceptions, etc., have a
package. Views or templates do not require a package 2%
2 points
b. Each class should include comments to describe the class and the
methods - 2%.
2 points
c. Have the project pushed into GitHub from the early stage of development
and hosted on GitHub with a “readme” file documenting an overview of your
project - 5%.
5 points
d. Standard Java naming conventions should be followed - 3% (please see
the breakdown below):
Classes should be written in Pascal case - 0.6%.
Variables, methods, and URLs should be written in the camel case (i.e.,
camelCase) - 0.6%.
Files, including view files, should be written in snake case - 0.6%.
Packages should be written in lowercase, with each word separated by dots
(.) - 0.6%.
Packages should include the name of your project and your name (e.g.,
“org.janedoe.myprojectname”) - 0.6%.
3 points
____
______
____
_____
_______
Section 1 Total points received: pts
2024-RTT-109
Java Full Stack Development- Case Study Presentation Grading Rubric
Instructor: Ms. Lewis
2. Core Java and Models: 16%
a. Utilize Java classes with constant variables (i.e., variables that never
change from their initial value). The value of these variables can be
requested parameters, SQL queries used in the DAO, names of HTML
pages, or URL patterns to forward a request to - 2%
2 points
b. Have at least four models and corresponding tables in a relational
database (if four models/tables do not make sense for your application,
discuss this with your instructor) - 12% (please see the breakdown below)
At least four models - 5%.
A corresponding table in a relational database for each model -3%.
Correct implementations - 3%.
Optimization - 1%.
12 points
____pts
_____pts
_____pts
____pts
c. Apply exception handling - 2%.
2 points
Section 2 Total points received: pts
3. Database, ORM, and Hibernate: 18%
a. Use MySQL as your DBMS (check with your instructor if you need
support to install MySQL on your computer) - 2%
2 points
2024-RTT-109
Java Full Stack Development- Case Study Presentation Grading Rubric
Instructor: Ms. Lewis
b. Include a schema diagram of the tables and the SQL you used for the
database - 2%.
2 points
c. The database configuration file must be set up correctly in your Spring
application through “spring initializr” (application.properties) - 2%.
2 points
d. Include at least three custom queries - 3%.
3 points
e. Use Hibernate or Jakarta Persistence API (JPA) directly or through Spring
Data JPA - 3%.
3 points
f. Your application should include examples for all four CRUD operations
(Create, Read, Update, and Delete) - 6%.
6 points
Section 3 Total points received: pts
4. Front-end Development: 16%
a. Use CSS to style the Web pages. Use an external CSS stylesheet.
(Internal styling may be used along with frameworks such as Bootstrap, but
you must still include and utilize a custom CSS external file.) - 3%
3 points
b. Your application should include six different views/pages - 4%.
4 points
2024-RTT-109
Java Full Stack Development- Case Study Presentation Grading Rubric
Instructor: Ms. Lewis
c. Use HTML to lay out the pages and Thymeleaf to make the pages
dynamic. (Frameworks such as Angular or React can also be used but will
not be covered in the course. Both Angular or React are optional.) The
application’s presentation must meet the general view requirements. - 3%
3 points
d. Use at least one JavaScript script linked from an external script file.
(Internal scripts may be used along with frameworks such as jQuery, but you
must still include and utilize a custom JavaScript external file.) - 3%.
3 points
e. Include a navigation section that is included across multiple pages - 3%.
3 points
Section 4 Total points received: pts
5. Spring Framework: 25%
a. Use Spring Boot to develop your project - 2%
2 points
b. Models should be annotated for binding using Spring data binding
through Jakarta and/or Hibernate validation - 3%.
3 points
c. Include and implement at least two repositories and two service
classes/interfaces - 4%.
4 points
d. Include at least two ways to create a managed bean/object - 2%.
2 points
2024-RTT-109
Java Full Stack Development- Case Study Presentation Grading Rubric
Instructor: Ms. Lewis
e. Use correct implementations of dependency injection with appropriate
use of the @Autowired annotation - 3%
3 points
f. Include at least one example of session management (Spring Security can
be used for session management) - 3%.
3 points
g. Use Transaction and request/response logging (write log to a file) - 2%
2 points
h. Implement Web Services ( JAX-WS, JAX-RS, or Spring REST ) - 3%.
If your instructor approves of your Case Study idea not requiring the
implementation of Web Services, this 3% weight will be evenly re-assigned
to items 5.a, 5.b, and 5.c.
3 points
i. Include sign-up and login functionality with hashing passwords using
bcrypt (Spring Security will satisfy this requirement) - 3%.
3 points
Section 5 Total points received: pts
6. Unit Testing: 8%
a. Test each query method created in the repositories - 3%.
3 points
b. Test at least one method in each service class - 3%.
3 points
2024-RTT-109
Java Full Stack Development- Case Study Presentation Grading Rubric
Instructor: Ms. Lewis
c. Include at least one parameterized test - 2%.
2 points
Section 6 Total points received: pts
7. Presentation: 5%
a. Create a short overview of your application - 1%.
1 point
b. Highlight the business use cases of your presentation - 1%.
1 point
c. Highlight how your application works from the technical perspective (high
level) - 1%.
1 point
d. Highlight what you have learned from this case study development - 1%.
1 point
e. Discuss additional features that you think could be added in the future -
1%.
1 point
Section 7 Total points received: pts
2024-RTT-109
Java Full Stack Development- Case Study Presentation Grading Rubric
Instructor: Ms. Lewis
Total Points
100 points
Total
Points
Received
pts
Great Job!
Project Management (Extra Credit): 5%