Deliverable 1 - betoooo08/MyFinPlanner GitHub Wiki

1. Introduction

1.1 Purpose

Poor financial management can be one of the most significant mistakes people make, and it can be the difference between success and failure. According to the SCF (Survey of Consumer Finances), 32% of working-age American adults (around 58 million people) have $0 saved for retirement. Additionally, studies from the US Federal Reserve reveal that while 45% of Americans feel confident managing investments, 55% remain uncertain about their financial decisions.

MyFinPlanner is a web application designed to help individuals track their personal finances through a more intuitive and personalized approach. By offering tools for budgeting, expense tracking, and investment monitoring, the app aims to empower users to make better financial decisions and develop healthy financial habits.


1.2 Scope

MyFinPlanner is a comprehensive personal finance management tool designed to provide a user-friendly interface and personalized insights, empowering users to take control of their finances.

Primary Functionality:

  • Users can set financial goals, create monthly budgets, and monitor spending patterns.
  • With real-time data updates, users can ensure accuracy and relevance in tracking their financial activities.

Revolutionary AI Feature:

MyFinPlanner will introduce MyFinancePal, an AI-powered personal finance manager with the following characteristics:

  • πŸ›  Automation: MyFinancePal automates financial tracking, eliminating the need for manual data entry.
  • πŸ“Š Insights: Provides visual financial summaries, helping users understand their spending habits more clearly.
  • πŸ” Personalized Recommendations: Uses AI analytics to suggest budgets, detect spending anomalies, and offer actionable financial advice.

Unlike traditional budgeting apps, MyFinancePal elevates personal finance management by analyzing patterns and providing real-time, adaptive guidance, ensuring users stay on track with their financial goals.


1.3 Product Overview

1.3.1 Product Perspective

MyFinPlanner will be developed using:

  • Django Framework (Python) as the core technology.
  • SQLite Databases for storing user data securely.
  • Bootstrap to ensure compatibility across devices.
  • GitHub for version control and efficient collaboration.

Additionally, external APIs will be integrated to enhance the application's functionality:

  • OpenAI ChatGPT β†’ Provides financial insights and reports.
  • Polygon.io & FinHub β†’ Keep users updated on their investments and assets.

1.3.2 Product Functions

MyFinPlanner takes personal finance management to the next level with the power of AI.
The web application will:
βœ… Teach users how to track and manage their finances.
βœ… Ensure proper organization and decision-making for optimal financial health.
βœ… Help users set financial goals and achieve them through structured budgeting and spending analysis.

Through API integrations, users will be able to:
πŸ“ˆ Track investments (stocks, funds, cryptocurrencies, etc.).
πŸ“Š Monitor market trends and profit/loss analysis (daily/monthly/yearly).
πŸ’‘ Receive AI-powered investment suggestions and real-time financial updates.

Moreover, MyFinPlanner will generate comprehensive financial reports, ensuring users gain deeper insights into their financial data and make better-informed decisions.


1.3.3 User Characteristics

The target audience includes individuals from various backgrounds, with a primary focus on:
πŸ‘©β€πŸŽ“ Young individuals β†’ Learning financial management from an early age.
πŸ’° Financially ambitious people β†’ Seeking smart investments and long-term financial growth.
πŸ“‰ People struggling with money management β†’ Overcoming financial stress and bad habits.
πŸ“š Individuals interested in financial education β†’ Learning budgeting, saving, and investing.
πŸ“Š Tech-savvy users β†’ Looking for a modern, AI-powered finance platform.

In essence, MyFinPlanner is designed for anyone determined to improve their financial situation, providing accessible tools, personalized insights, and actionable advice.


1.3.4 Limitations

πŸ”΄ Internet Dependency – As a web-based platform, MyFinPlanner requires an active internet connection for full functionality. Users will not be able to access real-time data or AI recommendations offline.

πŸ”΄ Reliance on External APIs – The application depends on third-party APIs for critical functions like AI recommendations and investment tracking. Any API disruptions could temporarily impact functionality.

πŸ”΄ Scalability Constraints (MVP Phase) – The initial release will support a limited number of users and transactions. Performance improvements will be implemented in future updates.

πŸ”΄ Financial Data Accuracy – The quality of financial insights depends on user-provided data. If users do not input accurate financial details, recommendations may be less effective.


1.4 Definitions

  • 🧠 AI (Artificial Intelligence): Machine intelligence that allows systems to analyze data and provide insights.
  • πŸ”Œ API (Application Programming Interface): Enables communication between different software services (e.g., stock market data retrieval).
  • πŸ“‚ Database: Stores structured user data securely (e.g., transactions, budgets, investment records).
  • πŸ€– MyFinancePal: AI-powered assistant inside MyFinPlanner, offering financial tracking & budget insights.
  • πŸ“Š Stocks: Shares of company ownership that users can buy/sell (MyFinPlanner provides real-time tracking).
  • πŸ’΅ Financial Health: A user’s overall financial situation, including income, expenses, and savings.
  • πŸ’° Profit: Positive financial gains from revenue exceeding expenses or investments.
  • πŸ“‰ Losses: When expenses exceed revenue or investments fail to generate returns.
  • 🏦 Withdrawals: Removing funds from an account, budget, or investment.
  • πŸ“‘ Budget: A structured financial plan to ensure controlled spending and savings.
  • πŸ’³ Transactions: Financial operations (income or expenses) recorded for tracking.
  • πŸ’Ž Cryptocurrency: Decentralized digital currency (e.g., Bitcoin, Ethereum).

πŸš€ With MyFinPlanner, users will have a powerful, AI-driven financial assistant to track, budget, and invest wisely.

πŸ“š References

3. Specific Requirements

REQUIREMENTS:

Functional Requirements

FR01 - Sign up: When a user registers a new account, the User Management System MUST create a unique user profile that securely stores the user's email and encrypted password.

FR02 - Log-in: When a user logs in, the User Management System MUST authenticate the user's credentials by verifying the email and encrypted password, granting access upon successful validation.

FR03 - Password Recovery: AFTER a user forgets their password, the system MUST provide password recovery options through email verification.

FR04 - Transaction details: When a registered user enters a new financial transaction, the system MUST allow users to input income and expenses with details such as amount, category, date, and description.

FR05 - Edit/Delete Transactions: IN CASE a registered user wants to edit a transaction, the system SHOULD allow users to edit or delete recorded transactions while maintaining a history of modifications.

FR06 - Categorize Transaction Automation: The Financial Management System COULD automatically categorize transactions based on predefined categories.

FR07 - Set Custom Budgets: The budget management system MUST allow registered users to set monthly and custom budgets for different expense categories.

FR08 - Budget Visual Insights: The Budget Management System COULD provide visual insights on budget consumption through charts and reports.

FR09 - Budget Limit Alerts: The Budget Management System SHALL send notifications when spending approaches or exceeds set limits.

FR10 - AI Spending Patterns: The AI Management System MUST analyze spending patterns using AI to provide personalized financial advice.

FR11 - Detect Anomalies: The AI Management System MUST detect anomalies in transactions and alert users of unusual spending behaviors.

FR12 - AI Suggestions: The AI Management System SHOULD suggest optimized budget plans based on user financial history and goals.

FR13 - Interactive Reports: The system MUST generate interactive reports on income, expenses, and savings trends based on AI analysis.

FR14 - Graphical Representations: The system COULD provide graphical representations of financial data for better insights.

FR15 - Investment Management: The system MUST allow users to register investments, including stocks, cryptocurrencies (e.g., BTC, ETH), mutual funds, and other assets.

FR16 - Real-time Investment Tracking: The system MUST provide real-time tracking of investment values through integrated financial APIs.

FR17 - Label Investments: The system SHOULD allow users to categorize and label their investments (e.g., short-term, long-term, high-risk, low-risk).

FR18 - Export Reports: The system COULD allow users to export reports in formats such as PDF and CSV.

FR19 - Set Financial Goals: The system MUST allow users to set financial goals (e.g., saving for a house, an emergency fund, or a vacation).

FR20 - Track Progress Toward FG: The system SHOULD track progress toward financial goals and provide AI-driven recommendations to achieve them faster.

FR21 - Investment Strategies: The system COULD integrate with investment features to suggest optimal saving or investment strategies based on user goals.


Usability Requirements

UR01 – Intuitive Interface:
The interface MUST be simple and intuitive, allowing users without financial expertise to navigate and operate the application easily.

UR02 – Accessibility:
The application MUST comply with accessibility standards to ensure easy access and usability.

UR03 – Coherent Navigation:
Navigation SHOULD be structured logically, ensuring users can access any main section within a maximum of three clicks.

UR04 – Visual Consistency:
The application MUST maintain a uniform design (colors, typography, and iconography) across all views to enhance usability and recognition.

UR05 – Interface Response Time:
Common interface operations (loading dashboards, opening transactions) MUST respond within two seconds.


Performance Requirements

PR01 – Data Import Time:
Importing transactions via external APIs MUST complete within five seconds, even under variable network conditions.

PR02 – Automatic Classification:
The AI-based transaction classification SHOULD be processed within two seconds.

PR03 – Concurrent User Support:
The system MUST support at least 500 concurrent users without noticeable performance degradation (MVP scope adjustment).

PR04 – Data Queries:
Queries related to basic financial history (e.g., monthly summaries, budget reports) MUST respond within a maximum of five seconds for average users and up to 10 seconds for users with high data volumes.

PR05 – System Scalability:
The system architecture SHOULD support gradual scalability, allowing an increase in users and transaction volumes without significantly affecting performance.


Database Requirements

DBR01 – Data Retention:
The database MUST store at least three years of user transaction history.

DBR02 – Referential Integrity:
The database MUST maintain referential integrity among tables, ensuring consistency between users, transactions, and budgets.

DBR03 – Indexing and Optimization:
Frequently accessed data (e.g., monthly budgets, spending categories) MUST be indexed to ensure response times below 100 milliseconds.

DBR04 – Data Security:
Since the application does NOT handle sensitive financial data (e.g., bank account numbers), encryption will be applied only to user credentials and authentication tokens.

DBR05 – Scalability and Maintenance:
The database structure SHOULD support incremental scaling and allow backup and recovery processes without major service interruptions.


Design Constraints & Limitations

DC01 – Modern Web Technologies:
The application WILL be developed using modern web technologies (HTML5, CSS3, JavaScript) and a framework such as React, Angular, or Vue to ensure compatibility and maintainability.

DC02 – Compliance with Data Protection Regulations:
The application MUST comply with general data protection regulations (such as GDPR) but will NOT process or store financial account information.

DC03 – AI Explainability:
The AI-driven financial insights MUST provide basic explanations for recommendations, allowing users to understand suggested budgets or spending patterns.

DC04 – Cross-Browser Compatibility:
The application MUST work properly on major browsers (Chrome, Firefox, Edge, and Safari) and adapt to different screen sizes.

DC05 – Availability and Maintenance:
The architecture SHOULD allow seamless updates and maintenance with minimal downtime.


External Interfaces

EI01 – API Integration for Transaction Import:
The system WILL integrate with third-party APIs to import financial transactions, using secure authentication protocols and standardized data formats.

EI02 – Responsive User Interface:
The web application MUST have a responsive design, ensuring usability on desktops, tablets, and mobile devices.

EI03 – AI-Powered Insights API:
The system WILL integrate with AI APIs to enhance financial insights, including:

  • Automated transaction categorization based on historical spending patterns.
  • Personalized budget recommendations using machine learning models.
  • Anomaly detection to identify unusual spending behavior.

The AI models WILL be optimized for low-latency predictions, ensuring responses within two seconds for real-time insights.