Budget Tracker Agha
Budget Tracker Agha
Budget Tracker Agha
Budget Tracker
By
BACHELOR OF SCIENCE
IN
COMPUTER SCIENCE
Table of Contents
1. Introduction.................................................................................................................................1
1.1 General Information................................................................................................................1
1.2 Purpose..................................................................................................................................1
1.3 Document Conventions............................................................................................................1
1.4 Project Objective.....................................................................................................................2
1.5 Intended Audience and Reading Suggestions.............................................................................2
1.6 Project Scope:.........................................................................................................................3
2. Overall Description.......................................................................................................................5
2.1 Product Perspective.................................................................................................................5
2.2 Product Features.....................................................................................................................5
2.3 User Classes and Characteristics...............................................................................................6
2.4 Operating Environment............................................................................................................6
2.5 Design and Implementation Constraints....................................................................................7
2.6 User Documentation................................................................................................................8
2.7 Assumptions and Dependencies................................................................................................8
3. System Features.........................................................................................................................10
4. External Interface Requirements..................................................................................................12
5. Other Non-functional Requirements.............................................................................................15
5.1 Performance Requirements:...................................................................................................15
5.2 Safety Requirements:.............................................................................................................15
5.3 Security Requirements:..........................................................................................................15
5.4 Software Quality Attributes:...................................................................................................15
6.WBS..........................................................................................................................................17
7. Analysis model...........................................................................................................................20
7.1 Use Case Diagram.................................................................................................................20
7.2 Class Diagram......................................................................................................................23
7.3 Object Diagram.....................................................................................................................25
7.5 Activity Diagram..................................................................................................................29
7.6 Collaboration Diagram..........................................................................................................30
7.8 ERD.....................................................................................................................................32
iii
Revision History
Name Date Reason For Changes Version
1
1. Introduction
1.2 Purpose
A budget tracker app helps individuals manage finances by tracking income and expenses, setting
spending limits, and providing insights into financial habits. It promotes financial discipline, goal setting,
and awareness, empowering users to make informed decisions and achieve their financial objectives.
testing practices, UI design principles, API documentation, error handling standards, security measures,
and procedures for data storage and deployment.
Maintain fiscal responsibility and achieve financial Clearly outline the project's scope, including specific
stability to support on going operations and future deliverables and outcomes.
initiatives.
Ensure satisfaction among stakeholders, including Establish a realistic timeline with measurable milestones
clients, employees, and the community, through to track progress and ensure timely completion.
effective communication and engagement.
Invest in the professional development and well-being Identify and allocate necessary resources, such as
of employees to foster a skilled and motivated personnel, budget, and technology, to support project
workforce. activities..
Prioritize the security and privacy of data, ensuring Develop a communication plan to keep stakeholders
the confidentiality and integrity of information. informed about project progress, challenges, and
achievements
Target individuals or businesses seeking effective financial management tools. The audience includes
anyone looking to track income, manage expenses, set budgets, and achieve financial goals conveniently.
Reading Suggestions
"Personal Finance for Dummies" by Eric Tyson
"The Total Money Makeover" by Dave Ramsey
"YNAB (You Need A Budget) Guide" on budgeting principles
3. Out of Scope:
Out of Scope 1: Advanced investment tracking or portfolio management.
Out of Scope 2: Real-time market data integration for stock prices.
Out of Scope 3: Tax calculation and filing functionalities.
Out of Scope 4: Integration with specific financial institutions not supported by APIs.
Out of Scope 5: In-depth financial planning or advisory features.
5
2. Overall Description
Multi-Platform Accessibility
Enable access from various devices, including smartphones, tablets, and computers.
Operating Systems:
Compatible with major operating systems such as iOS, Android, and Windows.
Web Browsers:
Supports popular web browsers like Chrome, Firefox, Safari, and Edge for online access.
Device Compatibility:
Optimized for smartphones, tablets, and computers to ensure cross-device functionality.
Internet Connectivity:
Requires a stable internet connection for real-time updates and synchronization.
Cloud Services:
Utilizes cloud storage for secure data backup and seamless multi-device access.
Security Protocols:
Adheres to industry-standard security protocols to protect user financial data.
API Integration (optional):
Allows integration with financial institutions, payment gateways, or other relevant APIs.
Local Storage:
Provides offline functionality with local storage for users in areas with limited internet access.
Accessibility Standards:
Complies with accessibility standards to ensure usability for users with disabilities.
Privacy Compliance:
Adheres to data protection regulations and prioritizes user privacy.
Updates and Maintenance:
Supports regular updates to incorporate new features, security patches, and improvements.
User Support:
Offers customer support channels, including help guides, FAQs, and user forums.
Constraint: Adherence to strict data security and privacy regulations may limit certain features or require
additional development efforts for compliance.
3. Integration with Financial Institutions
Constraint: Connectivity and compatibility issues may arise when integrating with various financial
institutions, impacting the real-time synchronization of financial data.
4. Offline Functionality
Constraint: Providing seamless offline functionality may be challenging, particularly when dealing with
real-time data synchronization and updates.
5. User Adoption and Behaviour
Constraint: User adoption may be influenced by factors such as resistance to change or the
learning curve associated with a new financial management tool.
app update.
Assumption: Third-party APIs for features like currency conversion remain available.
9
Dependency: The app's performance relies on the availability and reliability of external
APIs.
4. User Engagement
Assumption: Users actively engage with the app and regularly update financial data.
Dependency: The effectiveness of budgeting and reporting features depends on consistent
user engagement.
5. Compliance with Privacy Regulations
Assumption: Users adhere to data privacy and security regulations.
Dependency: The app's security measures depend on users following recommended
privacy practices.
6. Device Compatibility
Assumption: Users have devices compatible with the app.
Dependency: The app's performance relies on compatibility with various devices and
operating systems.
7. Use Learning Curve
Assumption: Users can quickly learn and adapt to the app's interface.
Dependency: User satisfaction and effective use of the app depend on a manageable learning
curve.
8. Bug Fixes and Updates
Assumption: Users regularly update the app to the latest version.
Dependency: Bug fixes and new features depend on users staying current with app updates.
10
3. System Features
The features of a budget tracker app are designed to help users manage their finances effectively.
Below are common system features that you might find in a budget tracker app:
1. User Authentication and Authorization:
Feature: Secure user authentication and authorization mechanisms.
Purpose: Ensure that only authorized users can access and modify their budget data.
2. Expense Tracking:
Feature: Add, edit, and delete expense entries.
Purpose: Enable users to track and manage their spending by recording individual
expenses.
3. Income Tracking:
Feature: Add, edit, and delete income entries.
Purpose: Help users monitor their sources of income to get a comprehensive view of their
financial situation.
4. Budget Categories:
Feature: Categorize expenses and incomes into predefined or customizable categories.
Purpose: Provide a structured way for users to organize and analyse their financial
transactions.
5. Budget Goals:
Feature: Set financial goals, such as saving targets or spending limits.
Purpose: Empower users to plan and achieve specific financial objectives.
6. Budget Reports and Analysis:
Feature: Generate reports and visualizations of spending patterns and budget
performance.
11
Purpose: Offer insights into financial habits and trends to help users make informed
decisions.
7. Notifications and Alerts:
Feature: Set up notifications for approaching budget limits, goal achievements, or other
relevant alerts.
Purpose: Keep users informed about their financial status and progress toward their
goals.
7. Accessibility:
Requirement: The app should be accessible to users with disabilities.
Details: Define accessibility standards to ensure that users with visual or auditory impairments
can use the app effectively. Consider features like screen reader compatibility and keyboard
navigation.
8. Multi-Platform Access:
Requirement: Users should access the app across different platforms (web, mobile, etc.).
Details: Specify the platforms supported, and ensure a consistent user experience across all
platforms.
9. Offline Mode:
Requirement: Users should be able to use the app in offline mode.
Details: Define the functionalities available in offline mode and specify how data
synchronization occurs when the app goes back online.
10. Security Measures:
Requirement: Implement robust security measures to protect user data.
Details: Define encryption standards, secure data transmission protocols, and mechanisms for
protecting user authentication information. Ensure compliance with data protection regulations.
11. Collaboration and Sharing:
Requirement: Support collaboration features and data sharing among users.
14
Details: Specify how users can collaborate on budgets, share specific insights, and control access
permissions for shared data.
12. Error Handling and Logging:
Requirement: Implement effective error handling and logging mechanisms.
Details: Define how the app handles errors, displays error messages to users, and logs relevant
information for debugging purposes.
13. External User Documentation:
Requirement: Provide user documentation and support resources.
Details: Outline the creation and maintenance of user manuals, help guides, and online support
resources to assist users in using the app effectively.
14. Legal and Compliance:
Requirement: Ensure compliance with legal and regulatory requirements.
Details: Specify how the app complies with data protection laws, financial regulations, and other
relevant legal and compliance standards.
15
Implement end-to-end encryption for sensitive user data to protect against unauthorized access.
Secure Transactions:
Ensure secure communication protocols for all data transmissions to prevent data interception.
Access Controls:
Implement access controls to restrict user access based on roles and permissions.
6.WBS
18
WBS stands for Work Breakdown Structure, and it is a project management tool that breaks
down a project into smaller, more manageable components. In the context of a budget tracker
app, creating a WBS can help organize and structure the development process. Here's how you
might create a WBS for a budget tracker app:
1. Project Definition:
Define the overall project goal and scope.
Identify the purpose of the budget tracker app and its key features.
7. Analysis model
2. View Budget:
Actor: User
Description: The user can view their current budget, categorized by expenses and income.
3. Add Expense:
Actor: User
Description: The user can add a new expense entry, providing details such as amount, category,
and description.
4. Edit Expense:
Actor: User
Description: The user can edit or update existing expense entries.
5. Delete Expense:
Actor: User
Description: The user can delete an expense entry from their budget.
6. Add Income:
Actor: User
Description: The user can add a new income entry, providing details such as amount, source, and
description.
7. Edit Income:
Actor: User
Description: The user can edit or update existing income entries.
8. Delete Income:
Actor: User
Description: The user can delete an income entry from their budget.
9. Set Budget Goals:
Actor: User
Description: The user can set budget goals, specifying targets for spending or saving in different
categories.
10. View Reports:
Actor: User
Description: The user can view detailed reports and visualizations of their spending patterns and
budget performance.
22
A Class Diagram is a type of UML (Unified Modelling Language) diagram that illustrates the
structure and relationships of the classes in a system. In the context of a budget tracker app, a
Class Diagram would depict the various classes, their attributes, methods, and the relationships
between them. Here's an example of how you might represent classes in a budget tracker app:
1. User Class:
Attributes: UserID, Username, Password, Email
Methods: Login(), Logout(), ViewBudget(), AddExpense(), EditExpense(),
DeleteExpense(), AddIncome(), EditIncome(), DeleteIncome(), SetBudgetGoals(),
ViewReports(), ReceiveNotifications()
2. Employee Class:
Attributes: EmployeeID, Amount, Category, Description, Date
Methods: EditEmployeeDetails(), DeleteEmployee()
24
3. Sale Class:
Attributes: SaleID, Amount, Source, Description, Date
Methods: EditSaleDetails(), DeleteSale()
4. Budget Class:
Attributes: GoalID, Category, TargetAmount, CurrentAmount
Methods: SetTargetAmount(), TrackProgress()
5. Inventory Class:
itemId: int - itemName: string- quantity: int- price: decimal
+ getItemId(): int + getItemName(): string + getQuantity(): int + getPrice(): decimal
6. Customer Class:
Attributes: CustomerID, Name
Methods: getCustomerId():getUsername(): getPassword(): getEmail():
7. Permission Class:
Attributes: permissionId: permissionName:
Methods: getPermissionId(): getPermissionName():
8. Role Class:
Attributes: roleId, roleName
Methods: getroleId, getroleName
25
A Sequence Diagram is a type of UML (Unified Modelling Language) diagram that illustrates
the interactions and sequence of messages between objects or components in a system. In the
context of a budget tracker app, a Sequence Diagram can help visualize how different parts of
the system interact with each other to accomplish a specific task or scenario. Let's consider an
example scenario: "User adds a new expense."
1. Objects/Participants:
User: The person interacting with the budget tracker app.
Budget TrackerApp: The main application handling user interactions.
Expense Controller: The component responsible for managing expense-related
operations.
Database: Represents the database where expense data is stored.
2. Sequence of Events:
User initiates the action:
The sequence starts with the user initiating the action by interacting with the user interface of the
budget tracker app.
Budget TrackerApp forwards the request to ExpenseController:
The Budget TrackerApp sends a message to the ExpenseController to handle the request.
Message: addExpense(expenseDetails)
Expense Controller interacts with the Database:
The Expense Controller sends a message to the Database to store the new expense details.
Message: store Expense (expenseDetails)
Database stores the expense data:
The Database acknowledges the successful storage of expense data.
Message: expenseStored(success)
Expense Controller responds to the Budget TrackerApp:
The ExpenseController informs the BudgetTrackerApp about the success or failure of the
operation.
29
The collaboration diagram is used to show the relationship between the objects in a system. Both
the sequence and the collaboration diagrams represent the same information but differently.
Instead of showing the flow of messages, it depicts the architecture of the object residing in the
system as it is based on object-oriented programming. An object consists of several features.
Multiple objects present in the system are connected to each other. The collaboration diagram,
which is also known as a communication diagram, is used to portray the object's architecture in
the system.
1. Objects/Participants:
User: Represents the person interacting with the budget tracker app.
31
7.8 ERD
This ER (Entity Relationship) Diagram represents the model of Budget tracker Entity. The
entity- relationship diagram of Budget tracker shows all the visual instrument of database tables
and the relations between Employee, Sales, Budget, Login etc.
• Budget Entity: Attributes of Budget are budget_id, budget_employee_id, budget_type,
budget_description
• Employee Entity: Attributes of Employee are employee_id, employee_name,
employee_mobile, employee_email, employee_username, employee_password,
employee_address
33
DATABASE Firebase
Appendix A: Glossary
1. SRS: Software Requirements Specification
2. API: Application Programming Interface
3. UI: User Interface
4. UX: User Experience
5. CSV: Comma-Separated Values
6. PDF: Portable Document Format
7. FAQ: Frequently Asked Questions
8. AI: Artificial Intelligence
9. SDK: Software Development Kit
10. SSL: Secure Sockets Layer
11. HTTPS: Hypertext Transfer Protocol Secure
12. CSV: Comma-Separated Values
13. PDF: Portable Document Format
14. QA: Quality Assurance
15. iOS: Apple Operating System for mobile devices
16. Android: Google's Operating System for mobile devices
17. HTML: Hypertext Markup Language
18. CSS: Cascading Style Sheets
19. JSON: JavaScript Object Notation
20. SQL: Structured Query Language
21. API: Application Programming Interface
22. URL: Uniform Resource Locator
23. KPI: Key Performance Indicator
24. VPN: Virtual Private Network
25. HTTPS: Hypertext Transfer Protocol Secure
36
I. Starting/Ending Dates
V. Interface Requirements
VII. WBS
---------------------------------------------------------------------
Date: _________
Group ID:__________
Approved
Meeting Required: Date: _______Time: ______Place:________
Rejected
38