Deliverable 4 - betoooo08/MyFinPlanner GitHub Wiki

📦 Deliverable 4 – PMV + Documentation


1️⃣ Project Requirements

Requirement ID Requirement Description Developed Sprint
FR01 Sign Up 4
FR02 Log‑In 4
FR03 Password Recovery 4
FR04 Transaction Details 1
FR05 Edit / Delete Transactions 1
FR06 Categorize Transaction Automation 1
FR07 Set Custom Budgets 2
FR08 Budget Visual Insights 2
FR09 Budget Limit Alerts 4
FR10 AI Spending Patterns 3
FR11 Detect Anomalies 3
FR12 AI Suggestions 3
FR13 Interactive Reports 4
FR14 Graphical Representations 2
FR15 Investment Management 2
FR16 Real‑time Investment Tracking 2
FR17 Label Investments 2
FR18 Export Reports 4
FR19 Set Financial Goals 3
FR20 Track Progress Toward FG 3

2️⃣ System Design

2.1 🚀 Deployment View

DeploymentModelF drawio (2)

2.2 🧩 Implementation View

image

2.3 🗄️ Data Model

Entity-Relationship Diagram (ERD):*
Data Model

Diagram with Apps division:

Data Model (Apps division)

Data Dictionaries:

Users

| This table stores user account information |

Attribute Name Data Type Primary Key Not Null Attribute Description AutoInc
id Int PK NN Unique user identifier Yes
username String NN User login name
password String NN Encrypted password
email String NN User email address
is_active Boolean NN Account active status
is_staff Boolean NN Staff permissions flag
date_joined Datetime NN Account creation timestamp
--- --- --- --- --- ---
IndexName IndexType Attribute
PRIMARY PRIMARY id

Transactions

| This table stores all financial transactions |

Attribute Name Data Type Primary Key Not Null Attribute Description AutoInc
id Int PK NN Unique transaction ID Yes
user_id Int NN Associated user ID
amount Decimal NN Transaction amount
description String Transaction description
category_id Int NN Category classification
transaction_type String NN Income/Expense type
date Date NN Transaction date
merchant String Merchant name
created_at Datetime NN Record creation timestamp
--- --- --- --- --- ---
IndexName IndexType Attribute
PRIMARY PRIMARY id
FOREIGN FOREIGN user_id
FOREIGN FOREIGN category_id

Categories

| This table stores transaction categories |

Attribute Name Data Type Primary Key Not Null Attribute Description AutoInc
id Int PK NN Unique category ID Yes
name String NN Category name
category_type String NN Income/Expense classification
icon String Display icon
color String Display color
--- --- --- --- --- ---
IndexName IndexType Attribute
PRIMARY PRIMARY id

Budgets

| This table stores user budgeting information |

Attribute Name Data Type Primary Key Not Null Attribute Description AutoInc
id Int PK NN Unique budget ID Yes
user_id Int NN Owner user ID
category_id Int NN Budget category
amount Decimal NN Budgeted amount
spent Decimal NN Amount spent
period String NN Budget period (monthly/yearly)
alert_threshold Int Spending alert percentage
--- --- --- --- --- ---
IndexName IndexType Attribute
PRIMARY PRIMARY id
FOREIGN FOREIGN user_id
FOREIGN FOREIGN category_id

Goals

| This table stores financial goals |

Attribute Name Data Type Primary Key Not Null Attribute Description AutoInc
id Int PK NN Unique goal ID Yes
user_id Int NN Owner user ID
name String NN Goal name
target_amount Decimal NN Target amount
current_amount Decimal NN Current saved amount
deadline Date NN Target completion date
description Text Detailed description
--- --- --- --- --- ---
IndexName IndexType Attribute
PRIMARY PRIMARY id
FOREIGN FOREIGN user_id

Investments

| This table stores investment portfolio data |

Attribute Name Data Type Primary Key Not Null Attribute Description AutoInc
id Int PK NN Unique investment ID Yes
user_id Int NN Owner user ID
symbol_id Int NN Investment symbol reference
name String NN Investment name
shares Decimal NN Number of shares
purchase_price Decimal NN Original purchase price
current_price Decimal NN Current market price
--- --- --- --- --- ---
IndexName IndexType Attribute
PRIMARY PRIMARY id
FOREIGN FOREIGN user_id
FOREIGN FOREIGN symbol_id

GoalContributions

| This table stores contributions made towards financial goals |

Attribute Name Data Type Primary Key Not Null Attribute Description AutoInc
id Int PK NN Unique contribution ID Yes
goal_id Int NN Associated goal ID
amount Decimal NN Contribution amount
date Date NN Contribution date
--- --- --- --- --- ---
IndexName IndexType Attribute
PRIMARY PRIMARY id
FOREIGN FOREIGN goal_id

InvestmentSymbols

| This table stores reference data for investment symbols |

Attribute Name Data Type Primary Key Not Null Attribute Description AutoInc
id Int PK NN Unique symbol ID Yes
symbol String NN Ticker symbol
name String NN Company/fund name
type String NN Investment type (stock/bond/etc)
--- --- --- --- --- ---
IndexName IndexType Attribute
PRIMARY PRIMARY id

Reports

| This table stores generated financial reports |

Attribute Name Data Type Primary Key Not Null Attribute Description AutoInc
id Int PK NN Unique report ID Yes
user_id Int NN Owner user ID
name String NN Report name
description Text Report description
category String NN Report category
format String NN File format (PDF/CSV)
start_date Date NN Report period start
end_date Date NN Report period end
file File NN Generated file
created_at Datetime NN Creation timestamp
--- --- --- --- --- ---
IndexName IndexType Attribute
PRIMARY PRIMARY id
FOREIGN FOREIGN user_id

AIInsights

| This table stores AI-generated financial insights |

Attribute Name Data Type Primary Key Not Null Attribute Description AutoInc
id Int PK NN Unique insight ID Yes
user_id Int NN Owner user ID
prompt Text NN User query prompt
response Text NN AI-generated response
timestamp Datetime NN Generation time
insight_type String NN Insight category
--- --- --- --- --- ---
IndexName IndexType Attribute
PRIMARY PRIMARY id
FOREIGN FOREIGN user_id

3️⃣ Usability Analysis

Comment / Observation Possible Improvement Action Implemented
Home page layout feels cramped and visually inconsistent. Redesign the home page with improved spacing, responsive sections, and a consistent visual hierarchy. No
User profile dropdown menu missing in header. Display user avatar with a dropdown for profile access and logout. Yes
Overall UI appears truncated and lacks cohesion. Standardize design across all pages using fluid layouts, consistent padding, and unified styling. No
Dark mode toggle needs refinement. Ensure theme persistence and toggle button in the header works consistently across pages. Yes
“About Us” is not accessible in the main navigation. Add an “About Us” link to the header navigation bar for easy access. No
Header area is underutilized. Leverage header space for key calls-to-action and streamlined navigation elements. No
Investment charts lack a trend-line overlay. Add trend lines to investment performance charts to highlight long-term movements. No
Dashboard cannot filter data by date. Implement date-range filters on the dashboard to let users customize their data view. No
Budget alerts are not prominent enough. Enhance budget notifications with toast messages or modal pop-ups when thresholds are reached. No
No way to add new categories within the transaction form. Enable inline category creation in the transaction form (e.g., a “+ New Category” option). No
Transactions are not color-coded for type distinction. Apply green styling for income rows and red for expenses to improve visual clarity. No
Report export to CSV and PDF is functioning correctly. Users can download reports as PDF and CSV directly from the UI with proper formatting. Yes
CSV export for reports needs improvement (format & headers). Refine CSV export to include descriptive column headers, correct delimiters, and proper encoding. No

4️⃣ Repository

  • Link to repo: <GitHub URL>
  • All commits include clear, descriptive messages referencing requirements.
  • README lists:
    • Required libraries and install commands
    • Commands to run the application

5️⃣ Video

Structure

  1. Pitch (1 min)
    • Team members, Project name, Problem, Solution
  2. Live Demo (3 min)
    • Showcase key functionalities
  3. User / Product Owner Feedback (1 min)

6️⃣ Project Management

6.1 📌 Backlog

  • Updated user stories with acceptance criteria, status, tasks & owners (see GitHub Projects).

6.2 📅 Weekly Meetings

  • Logs for each week answering:

    • What did I do last week?
    • What will I do this week?
    • Any blockers?
  • Product‑Owner meetings recorded.

  • Weekly Meetings available at Project's wiki

6.3 🔄 Retrospective

  • Available at Project's Wiki

7️⃣ Sprint Review

  1. Single‑member pitch
  2. Deployed application demo showing highest‑value requirements delivered this sprint

Note: Sprint Review will be conducted during class time.