Reportfile (Expense Tracker)
Reportfile (Expense Tracker)
A
Project Report
Submitted
in the partial fulfilment
for the award of degree of
Master of Computer Application
(2022-2024)
Submitted by
Under Supervision of
To
Department of Computer Science
Punjabi University, Patiala - 147002
May, 2024
ACKNOWLEDGEMENT
I am grateful to my Guide, Dr. Neeraj Sharma, Professor at the Department of Computer Science Punjabi
University, Patiala for the guidance and constant encouragement for this training.
I am also thankful to the organization “Blue-Aves E-health Pvt Ltd” for providing me the opportunity to do
my industrial training.
My training is carried out at “Blue-Aves E-health Pvt Ltd” cooperation and hard work. It is a matter of
pleasure and pride for me to present this training report to the university. This training report came into
existence with the full cooperation and sincerity provided by the organization and university.
I am grateful to all the members of Blue-Aves E-health Pvt Ltd for their cooperation and encouragement
throughout the training. My work has benefited from their clear and focused thinking.
It gives me great pleasure to express my heartfelt thanks to all the faculty members the of Department Of
Computer Science, Punjabi University for their cooperation during the completion of this training. They
always helped me whenever I needed them and gave me moral support. Finally, I express my gratitude to all
those who encourage me directly throughout the completion of this training.
Expense Tracker is a web application designed to help users manage their expenses and budgets effectively.
The application is built using the MEAN stack (MongoDB, Express, Angular, Node.js) with TypeScript,
providing a robust and scalable platform for expense tracking.
The key features of Expense Tracker include user authentication with JWT, dynamic dashboards using
Chart.js, and functionalities for adding, deleting, and editing categories, transactions, and budgets. The
application also allows users to filter transactions and manage their budgets efficiently.
The use of TypeScript in the development of Expense Tracker ensures type safety and enhances the overall
code quality. The application's architecture follows Bulletproof Node.js project architecture best practices,
making it highly scalable and maintainable.
Expense Tracker aims to simplify expense tracking and budget management, enabling users to make informed
financial decisions and achieve their financial goals.
INTRODUCTION TO COMPANY PROFILE
At Blue Aves, we believe in building enduring relationships grounded in innovation, trust, and sustainable
solutions. As a global Information Technology (IT) Services Management and consulting company, with
offices in India, UAE, and Europe, we specialize in providing wide range of Software Development &
Maintenance Services.
Our expertise lies in the areas of business process and intelligence, system integration, supply chain
management. We partner with governmental and non-governmental organizations worldwide, delivering
tailored IT Business Solutions that drive value and empower organizations to thrive in the digital era.
At Blue Aves, our commitment to excellence, customer-centric approach, and global presence enables us to be
a trusted partner in our clients' digital transformation journey. Together, we innovate, collaborate, and create
solutions that make a meaningful impact on businesses and communities globally."
At Blue Aves, we are dedicated to catalysing the complete transformation of business processes through next-
generation IT solutions. With a seasoned team of professionals and experts, we go beyond the basics to
partner with our clients in streamlining processes, reducing costs, and boosting efficiency, allowing them to
focus on their core tasks.
Our expertise enables us to design, build, optimize, and manage the technology necessary for our clients to
run their businesses in a more economical and productive manner. Currently, we are engaged in various IT
projects for large governmental and non-governmental organizations worldwide.
The objective is to develop an Expense Tracker application that enables users to manage their finances
effectively. The application will feature robust user authentication using JSON Web Tokens (JWT) to ensure
secure access to user accounts. It will utilize Node.js with TypeScript and Express.js, employing a bulletproof
folder structure for efficient code organization and maintainability.
2. Transaction Management:
Enabling users to add transactions, categorized into expense and income categories. Transactions will be
associated with different accounts such as cash, card, and savings.
3. Category Management:
Providing functionalities to manage expense and income categories dynamically, including adding, deleting,
and updating categories.
4. Budget Management:
Allowing users to set budgets for different expense categories and providing options to update or delete
existing budgets.
5. Dashboard Visualization:
Creating a dynamic dashboard using Chart.js to visualize daily transactions, income, and expense overview,
and account analysis. The dashboard will display total income, total expense, and insights into cash, card, and
savings.
Expected Outcome:
The development of the expense tracker application will result in a user-friendly and feature-rich platform for
managing finances effectively. Users will be able to track their expenses, set budgets, and gain insights into
their financial activities through intuitive visualizations and analysis.
3. SYSTEM REQUIREMENTS
The Expense Manager app tackles the difficulty of keeping track of personal finances in today's busy world.
With so many transactions and spending choices, it's tough for people to see where their money goes and how
it affects their overall financial well-being.
The objective of the Expense Tracker app is to provide users with a comprehensive and user-friendly platform
for tracking, analysing, and optimizing their financial activities. By offering a centralized hub for managing
expenses, income, budgets, and savings goals, the application seeks to empower users with the tools and
insights needed to make informed financial decisions, achieve financial stability, and work towards their long-
term financial objectives.
Through intuitive features such as transaction categorization, budget tracking, expense visualization, and
personalized financial insights, the Expense Manager application aims to streamline the process of managing
personal finances, thereby reducing stress, improving financial literacy, and promoting healthier financial
habits among users.
1. Signup: Users can create new accounts by providing necessary information such as username, email, and
password.
2. Login: Registered users can securely log in to their accounts using their credentials.
3. View Dashboard: Users can access a comprehensive dashboard providing an analysis of their financial
accounts, including cards, cash, and savings. The dashboard displays total income, total expenses, and tracks
day-to-day transactions through charts.
4. Add Category: Users can add new categories to organize their transactions, distinguishing between
different types of income and expenses.
5. Delete Category: Users have the option to remove categories that are no longer relevant or necessary.
6. Update Category: Users can modify existing categories to better suit their financial needs or preferences.
7. Add Transaction: Users can record new transactions, specifying whether they are income or expenses, and
associating them with relevant categories.
8. Add Budget: Users can set budgets for different expense categories to manage their spending effectively.
9. Delete Budget: Users can remove budget allocations that are no longer required or need adjustment.
10. Update Budget: Users have the flexibility to modify existing budgets to align with changing financial
goals or circumstances.
Software: The Expense Tracker application will require a specific software environment to operate efficiently
and provide users with a seamless experience. The software requirements for running the application are as
follows:
1. Operating System: The application is compatible with a variety of operating systems, including:
- Microsoft Windows: Windows 11 or later versions.
- macOS: macOS 10.12 (Sierra) or later versions.
- Linux: Ubuntu 16.04 LTS or later versions, Debian, Fedora, etc.
- Mobile Platforms: iOS 11 or later for Apple devices, Android 5.0 (Lollipop) or later for Android devices.
2. Web Browser: The application is accessed through a web browser and is compatible with popular browsers
such as:
- Google Chrome
- Mozilla Firefox
3. Database Management System (DBMS): The application utilizes a database management system to store
user data securely. MongoDB is the recommended choice for its flexibility and scalability. The following
versions are supported: - MongoDB 4.0 or later
4. Node.js and npm: The backend of the application is built using Node.js, a JavaScript runtime, and npm
(Node Package Manager) for managing dependencies. The following versions are supported:
- Node.js 20. LTS or later
- npm 10.5.2 or later
5. Express.js: The application utilizes Express.js, a web application framework for Node.js, for building the
backend APIs.
6. Angular: The frontend of the application is built using Angular, a TypeScript-based web application
framework. The following versions are supported:
- Angular 16 or later
The solution strategy for the Expense Tracker application revolves around delivering a user-centric platform
that simplifies personal financial management while addressing the complexities inherent in tracking
expenses and income. Our approach prioritizes usability and efficiency to ensure a seamless experience for
users, both in terms of accessing and managing financial data. The platform is designed to be intuitive,
requiring minimal training for users to navigate and utilize its features effectively. Leveraging modern
development practices, we employ a low-code development platform to facilitate rapid development and
customization of the application, allowing for tailored solutions to meet the unique needs of individual users.
With a focus on user experience and flexibility, our solution strategy aims to empower users to take control of
their finances effortlessly and make informed financial decisions with confidence.
2. Dashboard Functionality:
- Users should have access to a dashboard displaying an analysis of their financial accounts, including
cards, cash, and savings.
- The dashboard should provide insights into total income, total expenses, and day-to-day transactions
through interactive charts and graphs.
3. Category Management:
- Users should be able to add, delete, and update categories for organizing transactions into income
and expense categories.
- Changes to categories should be reflected in transaction records and budget allocations.
4. Transaction Management:
- Users should be able to add new transactions, specifying the type (income or expense), amount,
category, and account type (e.g., cash, card).
- Transactions should be recorded accurately and displayed in the user's transaction history.
5. Budget Management:
- Users should be able to set, delete, and update budgets for different expense categories to track and
manage spending.
- Budget allocations should be reflected in the dashboard and transaction records to provide users
with insights into their financial goals and progress.
Feasibility analysis is a critical phase in project planning, aiming to assess the practicality and achievability of
proposed initiatives. It involves an in-depth evaluation of various factors, including technical, economic,
legal, operational, and schedule feasibility, to determine the project's viability and identify potential
challenges or risks. Let's delve into a more detailed feasibility analysis for the proposed Expense Tracker
application:
Technical Feasibility:
Technical feasibility examines the project's technical requirements and capabilities, including hardware,
software, and infrastructure. For the Expense Tracker application, it entails evaluating:
- Compatibility: Assessing compatibility with different devices, operating systems, and web browsers to
ensure seamless accessibility for users across various platforms.
- Scalability: Determining whether the chosen technologies and architecture can accommodate potential
growth in user base and transaction volume without compromising performance.
- Integration: Evaluating the feasibility of integrating external services or APIs for functionalities such as
payment processing, currency conversion, or data synchronization.
- Development Tools: Assessing the availability and suitability of development tools and frameworks like
Angular, Node.js, Express.js, and MongoDB for building and deploying the application.
Operational Feasibility:
Operational feasibility examines the project's feasibility in terms of implementation, adoption, and ongoing
management. Key considerations include:
- User Acceptance: Assessing the readiness of users to adopt the Expense Tracker application and integrate it
into their daily routines.
- Change Management: Planning and implementing strategies to manage organizational change, address
resistance, and promote user engagement and adoption.
- Technical Support: Ensuring the availability of technical support, training resources, and documentation to
assist users in troubleshooting issues and maximizing their use of the application.
Comprehensive feasibility analysis of the Expense Tracker application indicates that the project is technically
feasible, economically viable, legally compliant, operationally feasible, and can be completed within the
proposed schedule. However, ongoing monitoring, risk management, and adaptation of the project plan may
be necessary to address unforeseen challenges and ensure successful implementation and adoption.
3.7 PROJECT PLAN
Development Schedule:
- Familiarize yourself with MongoDB, a NoSQL database management system, and its document-oriented
approach to data storage.
- Understand the differences between MongoDB and relational database management systems (RDBMS) in
terms of schema design, querying, and scalability.
The Expense Tracker app boasts a robust set of features designed to empower users in managing their
finances effectively:
1. Dynamic Dashboard:
Users can access a comprehensive dashboard providing a complete overview of their financial status.
They can view total income, total expenses, and balance across different accounts, including cards, cash, and
savings. Additionally, users can track their day-to-day transactions and delve into detailed monthly transaction
summaries.
2. Category Management:
The app allows users to organize their expenses efficiently by providing tools to add, remove, and edit
expense categories. This feature enables users to customize their expense tracking experience according to
their individual needs and preferences.
3. Transaction Filtering:
Users can filter transactions based on various criteria, including account type (card, cash, savings),
transaction type (income, expense), or a combination of both. This flexibility enables users to analyse their
spending patterns and identify areas for improvement.
4. Budget Management:
Users can set budgets for different expense categories to better manage their spending. They have the
ability to add, delete, and update budgets as needed, allowing for greater control over their financial goals and
priorities.
6. Service-Based Architecture:
The codebase is meticulously organized into different services, ensuring modularity, maintainability,
and scalability. Each feature, such as authentication, category management, transactions, and budgeting, is
encapsulated within its own service, promoting code reuse and facilitating easier debugging and maintenance.
By offering these comprehensive features and maintaining a high standard of security and code organization,
the Expense Tracker app provides users with a powerful tool to take control of their finances and achieve their
financial goals.
In developing the Expense Tracker app, several challenges were encountered, each requiring innovative
solutions to ensure the successful implementation of key features and functionalities:
Solutions:
1. To address this challenge, we adopted a modular approach to dashboard development, breaking down the
dashboard into smaller components that focus on specific data visualization tasks. Each component was
designed to fetch and display relevant data efficiently, allowing for easy integration and customization.
Additionally, leveraging the power of Chart.js library facilitated the creation of interactive and visually
appealing charts for presenting financial data.
Solutions:
2. To overcome this challenge, we adopted a data-driven approach to transaction filtering, utilizing
MongoDB's aggregation framework to perform efficient data filtering and aggregation operations on the
server-side. We also designed a user-friendly interface that enables users to easily specify their filtering
criteria through intuitive dropdown menus and checkboxes, ensuring a seamless and intuitive user
experience.
Solutions:
3. To tackle this challenge, we implemented robust data validation mechanisms on both the client and server
sides to ensure the integrity and consistency of budget data. Additionally, we leveraged Angular's two-way
data binding and reactive forms to create a responsive and interactive budget management interface that
updates in real-time as users make changes. Furthermore, adopting a centralized approach to budget data
storage and synchronization using MongoDB facilitated seamless access to budget information across
multiple devices.
Challenge: Implementing secure user authentication using JSON Web Tokens (JWT) and ensuring that user
tokens are securely stored and transmitted presented a critical security challenge.
Solutions:
4. To address this challenge, we implemented robust authentication mechanisms on both the client and
server sides, including password hashing, token expiration, and HTTPS encryption. We also utilized
Angular HTTP interceptors to automatically attach JWT tokens to outgoing requests, enhancing security
and preventing unauthorized access. Additionally, we employed best practices for token storage, securely
storing tokens in local storage with proper encryption and expiration policies.
During the training process for developing the Expense Tracker app, several key learnings were acquired,
contributing to both technical proficiency and project management skills:
1. Angular Framework: Through hands-on experience and guided tutorials, a comprehensive understanding
of the Angular framework was gained, including concepts such as components, modules, services, routing,
and forms. Practical exercises and coding challenges helped solidify knowledge of Angular best practices and
coding conventions.
2. Node.js and Express.js: Training modules on Node.js and Express.js provided insights into server-side
JavaScript development, including concepts such as middleware, routing, handling HTTP requests and
responses, and interacting with databases. Practical examples and project-based assignments enhanced
proficiency in building scalable and efficient backend applications.
3. MongoDB: Learning sessions on MongoDB introduced NoSQL database concepts and practical usage for
data storage and retrieval. Understanding MongoDB's document-oriented approach, schema design principles,
query optimization, and aggregation framework facilitated effective data modelling for the Expense Tracker
app.
4. Code Organization and Best Practices: Training sessions emphasized the importance of code
organization, modularization, and adherence to best practices in software development. Learning about folder
structures, separation of concerns, code reusability, and version control with Git enhanced skills in writing
clean, maintainable, and scalable code.
5. Security and Compliance: Training modules on data security, privacy regulations (such as GDPR and
CCPA), and best practices for secure application development provided insights into safeguarding sensitive
user information and ensuring compliance with relevant data protection laws.
Overall, the training process equipped with a diverse set of skills and knowledge necessary for developing the
Expense Tracker app, encompassing frontend and backend development, database management, security,
project management, and compliance with regulatory standards. These learnings serve as a solid foundation
for building high-quality software solutions and driving successful project outcomes.
5. Data Flow Diagram
At Level 0, the Data Flow Diagram (DFD) of the Expense Tracker app illustrates the high-level
interactions between the user and the application.
User: The primary actor in the system, representing individuals who interact with the Expense Tracker
app.
Expense Tracker App: The application itself, responsible for processing user actions, managing data, and
providing responses.
User Actions:
1. User Registration/Login:
- The user initiates the registration or login process by interacting with the Expense Tracker app.
- Upon successful registration or login, the user gains access to the application's features.
2. User Requests:
- After authentication, the user can perform various actions within the app, such as adding transactions,
categories, and budgets.
- These actions trigger requests to the Expense Tracker app for processing.
User Inputs:
Adding Transactions:
- Users input transaction details, such as date, amount, category, and description, into the Expense
Tracker app.
- These inputs are processed by the application to record the transaction and update relevant data.
Adding Categories:
- Users can add new expense categories to customize their expense tracking experience.
- Category details provided by the user are stored in the application's database for future use.
Adding Budgets:
- Users have the option to create new budgets to manage their expenses effectively.
- Budget details entered by the user are saved in the Expense Tracker app for budget tracking purposes.
At Level 1, the Data Flow Diagram (DFD) of the Expense Tracker app provides a more detailed view of the
interactions between the user and the application after successful authentication.
- User: Represents individuals who have successfully registered and logged in to the Expense Tracker app.
- Expense Tracker App: The application responsible for managing user data, processing requests, and
providing responses.
User Actions:
1. Authenticate (Register/Login):
- The user initiates the authentication process by registering or logging in to the Expense Tracker app.
- Upon successful authentication, the user gains access to the app's functionalities.
2. Manage Categories:
- Users can add, remove, or update expense categories to customize their expense tracking experience.
- Category management actions trigger requests to the Expense Tracker app for processing.
3. Manage Budgets:
- Users have the ability to add, remove, or update budgets to set financial goals and track expenses.
- Budget management actions prompt requests to the Expense Tracker app for handling.
4. View Transactions:
- Users can view a list of transactions, including details such as date, amount, category, and description.
- Transaction data is retrieved from the Expense Tracker app and displayed to the user.
5. View Budgets:
- Users can access and view a list of budgets set up within the Expense Tracker app.
- Budget information is fetched from the application's database and presented to the user.
6. View Categories:
- Users have the option to view the list of expense categories available in the Expense Tracker app.
- Category data is retrieved from the application and displayed to the user interface.
A use case diagram provides a visual representation of how users interact with a system and the various
functionalities they perform. In the context of the Expense Tracker app, the use case diagram illustrates the
different actors who engage with the system and the tasks they accomplish.
Actors: In the Expense Tracker app, the primary actor is the user, representing individuals who interact with
the application. Users can include individuals managing their personal finances, such as individuals, families,
or small business owners.
Use Cases:
1. Register/Login:
- Users can register for a new account or log in to an existing one to access the application
2. Manage Categories:
- Users can add, remove, or update expense categories to organize their transactions effectively
3. Manage Budgets:
- Users can set up budgets to allocate funds for different spending categories and track their expenses
against these budgets.
4. View Transactions:
- Users can view a detailed list of their past transactions, including date, amount, category, and description
5. View Budgets:
- Users can access a summary or detailed view of their budget plans to monitor their spending and savings
goals.
6. View Categories:
- Users can see a list of all available expense categories to understand how their expenses are categorized.
A Gantt chart is a powerful project management tool that displays a project schedule in the form of horizontal
bars, each representing the duration of a specific task. It provides a visual representation of the project timeline
and helps in understanding the dependencies between different tasks.
In the context of the Expense Tracker app development project, the Gantt chart would showcase the various
phases involved in the project's lifecycle, including planning, development, testing, and deployment. Each
phase consists of multiple tasks that need to be completed sequentially or concurrently, and the Gantt chart
visually illustrates the sequence and duration of these tasks.
In the development phase, tasks such as setting up the project environment, coding the application logic,
designing the user interface, and integrating external APIs or services may be included. These tasks may have
dependencies, with some tasks needing to be completed before others can start.
The testing phase involves tasks such as unit testing, integration testing, user acceptance testing, and bug fixing.
These tasks are crucial for ensuring the quality and functionality of the application before it is deployed to
users.
By visualizing the project timeline and task dependencies, the Gantt chart enables project managers to track
progress, identify potential bottlenecks or delays, and make informed decisions to keep the project on schedule.
It serves as a valuable tool for project planning, coordination, and monitoring, ultimately contributing to the
successful completion of the Expense Tracker app within the defined timeline and budget constraints.
The login screen is the initial interface presented to users when they access the Expense Tracker app. It
provides a secure gateway for users to authenticate themselves and gain access to the app's features and
functionalities. Here's a detailed description of the login screen:
1. Title/Header:
- The login screen typically features a title or header at the top, indicating that it is the login interface for the
Expense Tracker app. This header helps users identify the purpose of the screen.
2. Username/Email Field:
- Users are prompted to enter their username or email address into a designated text field. This information
serves as their unique identifier within the app and is used for authentication purposes.
3. Password Field:
- A password field is provided where users can input their secret password. The characters entered in this
field are usually masked for security reasons, obscuring the actual characters from view.
4. Login Button:
- A prominent "Login" button is displayed, which users can click to submit their credentials and initiate the
authentication process.
5. Signup Link:
- A link to register for a new account included for users who don't have existing credentials. Clicking on this
link typically directs users to the registration or sign-up screen.
6. Error Messages:
- If users enter incorrect credentials or encounter any issues during the login process, informative error
messages (pop ups) are displayed to guide them on how to rectify the problem. Common errors include
invalid username/password or account not found.
Overall, the login screen serves as the first point of interaction for users with the Expense Tracker app,
facilitating secure authentication and access to the app's functionalities while prioritizing user experience and
security.
The signup screen is the interface where new users can register for an account on the Expense Tracker app.
It's designed to collect essential information from users and guide them through the account creation process.
Here's a detailed description of the signup screen:
1. Title/Header:
- The signup screen typically features a title or header at the top, indicating that it is the signup interface for
the Expense Tracker app. This header helps users understand the purpose of the screen.
2. Registration Form:
- A registration form is presented to users, containing fields for essential information required to create a
new account. Common fields include:
- Username: Users are prompted to enter their Username.
- Email Address: Users provide a valid email address, which serves as their unique identifier.
- Password: Users create a secure password to protect their account.
4. Signup Button:
- A prominent "Signup" button is provided for users to finalize their registration. Clicking this button
submits the information entered in the form for account creation.
5. Login Link:
- Optionally, a link to the login screen may be included for users who already have accounts. Clicking on
this link directs users to the login interface where they can log in using their existing credentials.
6. Confirmation Message:
- After successful registration, users receive a confirmation message by toast message on the top of the
screen to notifying them that their account has been created successfully.
The signup screen serves as a user-friendly interface for new users to create accounts on the Expense Tracker
app, ensuring a smooth onboarding experience while collecting necessary information to personalize their
accounts and provide access to the app's features.
Figure 6.3: Home Screen
The home screen of the Expense Tracker app serves as the central hub where users can access various features
and obtain a comprehensive overview of their financial status. Here's a detailed description of the elements
and functionalities available on the home screen:
1. Navigation Bar:
- The navigation bar provides quick access to different sections of the app, including:
- Home: Returns users to the home screen.
- Category: Navigates users to the category management section.
- Transaction: Directs users to view and manage their transactions.
- Budget: Takes users to the budget management section.
- Logout Button: Allows users to securely log out of their account.
2. Balance Overview:
- The home screen displays the current balances for different financial accounts, including:
- Card Balance: The amount of money available in the user's card account.
- Cash Balance: The amount of cash the user currently possesses.
- Savings Balance: The total savings amount accumulated by the user.
4. Dynamic Charts:
- Doughnut Chart: Visualizes the distribution of funds across different financial accounts (card, cash,
savings) using a doughnut chart. Each segment represents the proportion of funds allocated to each account.
- Pie Chart: Illustrates the proportion of total income and total expense using a pie chart. Users can quickly
grasp the distribution of their income and expenses.
5. Expense Analysis:
- Bar Graph: Presents an analysis of expenses over time, showing the flow of expenses across different
categories. Users can identify spending patterns and trends to make informed financial decisions.
- Income Analysis: Similar to the expense analysis, this bar graph displays the flow of income over time,
providing insights into sources of income and their contributions to the user's financial health.
6. Transaction History:
- A comprehensive list of all transactions from the beginning to the end of the current month is displayed.
Each transaction includes details such as date, amount, category, and description, allowing users to track their
spending and income activities efficiently.
The home screen of the Expense Tracker app serves as a dashboard that empowers users to manage their
finances effectively. By providing easy navigation, real-time balance updates, insightful charts, and
transaction history, users can gain valuable insights into their financial status and make informed decisions to
achieve their financial goals.
The category screen in the Expense Tracker app allows users to manage their expense categories efficiently.
Here's a detailed description of the elements and functionalities available on the category screen:
4. Delete Button:
- Next to each category listed in the table, a "Delete" button is available. Users can click on this button to
delete a particular category.
5. Edit Button:
- Similarly, an "Edit" button is provided next to each category, allowing users to modify the details of a
specific category. Clicking on the edit button opens a form pre-populated with the category's existing details,
enabling users to make changes as needed.
6. Pagination:
- If the number of categories exceeds the display capacity of the screen, pagination controls are provided to
navigate through multiple pages of categories. Users can click on page numbers or arrow buttons to move
between pages and view additional categories.
1. Category Form:
- A form is presented to users, containing fields for inputting details about the new category. Common fields
include:
- Category Name: Users enter the name of the category, providing a descriptive label for the type of
expense or income it represents.
- Type: Users specify whether the category is an income or expense category by selecting the appropriate
option from a dropdown menu or toggle switch.
2. Create Button:
- A prominent Create button is displayed for users to finalize the creation of the new category. Clicking this
button submits the information entered in the form for category creation.
2. Filter Options:
- Users can filter transactions based on different criteria to refine their view. Filter options may include:
- Type: Users can filter transactions by type, such as all transactions, income transactions, or expense
transactions.
- Account Type: Users can filter transactions by the type of account used for the transaction, such as card,
cash, or savings.
- Users can select their desired filter options from dropdown menus or toggle switches to customize the
displayed transactions according to their preferences.
3. Transaction List:
- A table or list format presents all existing transactions in a structured manner. Each transaction entry
includes details such as:
- Date: The date of the transaction.
- Amount: The amount of money involved in the transaction.
- Category: The category to which the transaction belongs (e.g., groceries, entertainment).
- Account Type: Specifies the type of account used for the transaction (e.g., card, cash, savings).
- Description: Provides additional information or context about the transaction.
- The transaction list is paginated to accommodate a large number of transactions efficiently, with
navigation controls allowing users to move between pages.
4. Pagination:
- Pagination controls are included at the bottom of the transaction list to facilitate navigation between pages
when viewing a large number of transactions. Users can use pagination buttons or page number links to move
between different pages of transaction entries.
Figure 6.6: Add Transaction Screen
The "Add Transaction" screen in the Expense Tracker app is a crucial interface where users can input details
about their financial transactions. Here's a detailed description of the elements and functionalities available on
the "Add Transaction" screen:
1. Transaction Form:
- A form is presented to users, containing fields for inputting details about the new transaction. Common
fields include:
- Amount: Users enter the monetary value of the transaction, indicating whether it is an income or expense.
- Category: Users select the category to which the transaction belongs from a dropdown menu or a list of
predefined categories.
- Account Type: Users specify the type of account used for the transaction (e.g., card, cash, savings) from a
dropdown menu.
- Notes: Optionally, users can provide additional information or context about the transaction by entering a
brief description.
2. Submit Button:
- A prominent "Submit" button is displayed for users to finalize the creation of the new transaction. Clicking
this button submits the information entered in the form for transaction creation.
3. Validation and Error Messages:
- Real-time validation ensures that users enter information correctly. Error messages are displayed if any
required fields are left blank or if there are issues with the transaction creation process, such as invalid input
or duplicate transactions.
The "Add Transaction" screen provides users with a user-friendly interface for recording their financial
transactions seamlessly. By offering intuitive form fields, validation checks, and submission options, users
can efficiently add transactions to track their expenses and income accurately.
The "Budget" screen in the Expense Tracker app is a dedicated section where users can manage their budget
allocations for different expense categories. Here's a detailed description of the elements and functionalities
available on the "Budget" screen:
2. Budget List:
- A list or table format presents all existing budget allocations in a structured manner. Each budget entry
includes details such as:
- Category: The expense category for which the budget allocation is made.
- Amount: The allocated budget amount for the category.
- Date Range: The period for which the budget allocation is valid, such as monthly, quarterly, or annually.
1. Budget Form:
- A form is presented to users, containing fields for inputting details about the new budget allocation.
Common fields include:
- Category: Users select the expense category for which they want to create a budget allocation from a
dropdown menu or a list of predefined categories.
- Amount: Users enter the allocated budget amount for the selected category, specifying the financial target
they wish to set.
2. Save/Submit Button:
- A prominent "Save" or "Submit" button is displayed for users to finalize the creation of the new budget
allocation. Clicking this button submits the information entered in the form for budget creation.
Test
Case
1 Pass
Login with valid User should be able to log in User was able to log in
credentials successfully successfully
2 Pass
3 Pass
Pass
Pass
6 Add New Category User should be able to add User was able to Add
New Category New Categories
7 Pass
View All User should be able to view User was able to view all
categories all Categories Categories
Pass
9 Pass
2
Verify user cannot log in with invalid credentials.
Login error message displayed
3
Login page displayed
Verify the login page is displayed after the user logs
out.
Dashboard screen
2 Verify navigation bar works
Navigate to the page
that clicked
3 Verify the next or previous icon worked on analysis tab Change months
Table No. 7.3.2: Test Case Designs for Test Case Id 2 Test
Category delete
5 successfully
Verify delete category button works
Table No. 7.3.3: Test Case Designs for Test Case Id 3 Test
Expected Result
Step Description
New transaction is
successfully added.
Verify user can add a new transaction.
1
Transactions are
filtered based on
Verify user can filter transactions by category or selected criteria.
account type.
2
Error message
prompts user to fill in
Verify error message is displayed if required fields are required fields.
left blank.
4
Table No. 7.3.4: Test Case Designs for Test Case Id 4 Test
Test Case Id: 5
Description
Step Expected Result
Table No. 7.3.5: Test Case Designs for Test Case Id 5 Test
8. PROJECT LEGACY
With training, I have successfully met the requirements of the project assigned.
2. Performance: The app should be optimized for fast loading times and smooth user experience.
3. User Interface: The app should have a user-friendly interface that is easy to navigate and understand.
4. Compatibility: The app should be compatible with different devices and platforms.
5. Testing: The app should be thoroughly tested to ensure that it is free from bugs and glitches.
1. Integration with Banking APIs: To automate expense tracking, consider integrating the app with banking
APIs. This will allow users to automatically import their transactions, reducing manual data entry and
improving accuracy.
2. Expense Prediction and Budgeting: Implement AI and ML algorithms to predict future expenses based on
historical data. This will help users plan their budgets more effectively and make informed financial
decisions.
3. Automated Savings Plan: Implement a feature that allows users to set up an automated savings plan based
on their income and expenses. This will help users save money automatically and achieve their financial
goals.
4. Investment Tracking: Add a feature that allows users to track their investments, including stocks, bonds,
and mutual funds. This will provide users with a comprehensive view of their financial situation and help
5. Expense Sharing and Collaboration: Implement a feature that allows users to share expenses and
collaborate with others, such as family members or roommates. This will help users manage their shared
1. “TypeScript Documentations”:
TypeScript: Documentation - Everyday Types (typescriptlang.org)
2. . “Node.js Documentations”:
Usage and example | Node.js v21.7.3 Documentation (nodejs.org)
3. . “Angular 16 Documentation”:
Angular - Introduction to the Angular docs