0% found this document useful (0 votes)
28 views47 pages

Reportfile (Expense Tracker)

The document is a project report for an Expense Tracker application developed by Sukhpreet Singh Kainth as part of a Master's degree in Computer Application. It details the project's objectives, features, and technical specifications, emphasizing user authentication, transaction management, and budget tracking functionalities. The application is built using the MEAN stack and aims to simplify personal finance management for users.

Uploaded by

1759 Alina
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views47 pages

Reportfile (Expense Tracker)

The document is a project report for an Expense Tracker application developed by Sukhpreet Singh Kainth as part of a Master's degree in Computer Application. It details the project's objectives, features, and technical specifications, emphasizing user authentication, transaction management, and budget tracking functionalities. The application is built using the MEAN stack and aims to simplify personal finance management for users.

Uploaded by

1759 Alina
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 47

Expense Tracker

A
Project Report
Submitted
in the partial fulfilment
for the award of degree of
Master of Computer Application
(2022-2024)

Undertaken at Blue-Aves E-health Pvt Ltd

Submitted by

Sukhpreet Singh Kainth


MCA-II (Sem 4th)
(22071293)

Under Supervision of

Internal Supervisor External Supervisor


Dr. Neeraj Sharma Mr. Jitesh Pubreja

Professor (Project Manager)

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.

Sukhpreet Singh Kainth

Department Of Computer Science,

Punjabi University, Patiala


TABLE OF CONTENTS
Undertaken at Blue-Aves E-health Pvt Ltd ........................................................................................................... 1
ACKNOWLEDGEMENT ................................................................................................................................... 4
ABSTRACT .......................................................................................................................................................... 6
INTRODUCTION TO COMPANY PROFILE ................................................................................................. 7
2. PROFILE OF PROBLEM ASSIGNED ......................................................................................................... 8
3. SYSTEM REQUIREMENTS .......................................................................................................................... 9
3.1 Problem statement: .................................................................................................................................... 9
3.2 Functions to be provided: .......................................................................................................................... 9
3.3 Processing environment: .......................................................................................................................... 10
3.4 Solution Strategy: ......................................................................................................................................11
3.5 Acceptance criteria: ...................................................................................................................................11
3.6 FEASIBILITY ANALYSIS ...................................................................................................................... 13
3.7 PROJECT PLAN...................................................................................................................................... 14
4. TRAINING WORK UNDERTAKEN........................................................................................................... 17
4.1 About Project: Expense Tracker ............................................................................................................. 17
4.2 The App Features ..................................................................................................................................... 17
4.3 Challenges and Solutions ......................................................................................................................... 18
4.4 Things I learned from the training ..................................................................................................... 20
5. Data Flow Diagram .................................................................................................................................... 21
Level 0 Data Flow Diagram (DFD) Description: ......................................................................................... 21
Level 1 Data Flow Diagram (DFD) Description: ......................................................................................... 22
5.1 USE CASE DIAGRAM............................................................................................................................ 23
5.2 GANTT CHART....................................................................................................................................... 25
6. SNAPSHOTS .............................................................................................................................................. 26
Figure 6.1: Login Screen .................................................................................................................................. 26
Figure 6.2: Signup Screen ................................................................................................................................ 27
Figure 6.3: Home Screen .................................................................................................................................. 29
Figure 6.4: Category Screen ............................................................................................................................. 31
Figure 6.5: Add Category Screen ..................................................................................................................... 32
Figure 6.5: Transaction Screen ......................................................................................................................... 33
Figure 6.6: Add Transaction Screen ................................................................................................................. 35
Figure 6.7: Budget Screen ................................................................................................................................ 36
Figure 6.7: Add Budget Screen ........................................................................................................................ 37
7. TESTING ACTIVITY .................................................................................................................................. 39
7.1 Unit Testing ............................................................................................................................................... 39
7.2 System Training ........................................................................................................................................ 40
7.3 Test Case Design ....................................................................................................................................... 42
8. PROJECT LEGACY ................................................................................................................................. 46
8.1 Remaining Area of Concerns ................................................................................................................... 46
8.2 Future Recommendations ........................................................................................................................ 46
ABSTRACT

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.

Visit their Software Business Website: https://www.blueaves.com/


2. PROFILE OF PROBLEM ASSIGNED

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.

1. User Authentication using JWT:


Implementing secure user authentication mechanisms using JWT to authenticate users and manage sessions
securely.

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

3.1 Problem statement:

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.

3.2 Functions to be provided:

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.

3.3 Processing environment:


Hardware: The Expense Tracker application will run on standard computing hardware commonly found in
personal computers, laptops, tablets, and smartphones. The hardware requirements for running the application
are minimal, ensuring compatibility with a wide range of devices. The specific hardware specifications are as
follows:
1. Processor: The application is designed to run on processors commonly found in modern computing devices,
including Intel and AMD CPUs. A dual-core processor or higher is recommended for optimal performance.
2. Memory (RAM): The application's memory requirements are modest, with a minimum of 2GB of RAM
recommended for smooth operation. Additional memory may improve performance, especially when handling
large datasets or generating complex visualizations.
3. Storage: The application requires a minimal amount of storage space for installation and data storage. A
few hundred megabytes of available disk space should be sufficient for storing the application files and user
data.
4. Operating System: The Expense Tracker application is compatible with popular operating systems,
including Windows, macOS, Linux, iOS, and Android. It is designed to run on both desktop and mobile
platforms, ensuring accessibility across a variety of devices.

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

3.4 Solution Strategy:

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.

3.5 Acceptance criteria:

1. User Registration and Authentication:


- Users should be able to register for an account with a valid username, email address, and password.
- Registered users should be able to securely log in to their accounts using their credentials.

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.

6. Security and Privacy:


- User data should be stored securely using encryption methods to protect sensitive information.
- Passwords should be hashed and salted to prevent unauthorized access to user accounts.
- User authentication tokens should be generated securely and expire after a specified period to
enhance security.

7. Usability and Accessibility:


- The application should be user-friendly and accessible on different devices and screen sizes.
- Navigation should be intuitive, and features should be easily accessible to users with minimal
training or guidance.

8. Performance and Reliability:


- The application should be responsive and performant, with fast loading times and minimal
downtime.
- Transactions and data processing should be handled efficiently to ensure a smooth user experience.

9. Testing and Quality Assurance:


- The application should undergo thorough testing, including unit tests, integration tests, and end-to-
end tests, to ensure functionality and reliability.
- Bugs and issues identified during testing should be promptly addressed and resolved before
deployment.
3.6 FEASIBILITY ANALYSIS

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:

Phase 1: Learning and Preparation (Weeks 1-4)

Week 1: Learn TypeScript


- Dive into TypeScript fundamentals including variables, data types, functions, and interfaces.
- Explore advanced TypeScript concepts such as classes, inheritance, and generics.
- Practice TypeScript syntax and features through coding exercises and tutorials.

Week 2: Understanding Bulletproof Folder Structure


- Study the concept of a bulletproof folder structure for Node.js and TypeScript projects.
- Learn about the organization of files and directories for scalability, maintainability, and code reusability.
- Analyse examples of bulletproof folder structures and understand their benefits and drawbacks.

Week 3: Introduction to JWT and User Authentication


- Familiarize yourself with JSON Web Tokens (JWT) and their role in user authentication.
- Learn about the components of a JWT, including the header, payload, and signature.
- Explore authentication strategies using JWT, including token generation, validation, and storage.

Week 4: Designing MongoDB Schemas

- 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.

Designing MongoDB Schemas


- Learn about MongoDB's flexible schema design, which allows for dynamic document structures and nested
data.
- Design MongoDB schemas for user authentication, categories, budgets, accounts, and transactions,
leveraging the document model.
- Define document structures, fields, and data types for each entity, considering the application's requirements
and data access patterns.

Phase 2: Backend Development (Weeks 5-8)


Week 5: Implementing User Authentication
- Begin implementing user authentication using JWT in the Node.js + TypeScript environment.
- Set up routes and controllers for user registration, login, and authentication.
- Securely store user credentials, generate JWT tokens, and handle token validation.

Week 6: Developing RESTful APIs


- Design and implement RESTful API endpoints for CRUD operations on categories, budgets, accounts, and
transactions.
- Define API request and response formats, HTTP methods, and URL routes.
- Implement validation and error handling mechanisms for robust API interactions.

Week 7: Testing and Debugging APIs


- Write unit tests and integration tests to ensure API functionality, reliability, and security.
- Conduct thorough testing of API endpoints, covering positive and negative scenarios, error conditions, and
edge cases.
- Debug and troubleshoot issues identified during testing, ensuring API stability and correctness.

Week 8: Middleware and Response Modification


- Implement middleware functions to handle common tasks such as authentication, logging, and error
handling.
- Modify API responses to standardize formats, include additional metadata, or enforce consistency.
- Enhance API performance and usability through response caching, compression, and optimization.

Phase 3: Frontend Development (Weeks 9-12)

Week 9-10: Learning Angular Basics


- Begin learning Angular basics including components, modules, services, and templates.
- Explore Angular CLI for project setup, scaffolding, and code generation.
- Build simple Angular applications to practice concepts and gain familiarity with Angular development.

Week 11: Implementing User Authentication in Angular


- Integrate user authentication functionality into the Angular frontend using JWT tokens.
- Create authentication guards to protect routes and restrict access to authenticated users.
- Handle authentication errors, redirects, and token expiration gracefully in the Angular application.

Week 12: UI Development with Angular Material


- Learn about Angular Material library and its components for building responsive and visually appealing UI.
- Implement Angular Material components such as buttons, forms, dialogs, and tables in the Expense Tracker
application.
- Customize Angular Material themes, styles, and layouts to align with the application design and branding.

Phase 4: Integration and Deployment (Weeks 13-16)

Week 13: Integrating Frontend with Backend


- Integrate the Angular frontend with the Node.js + TypeScript backend to establish end-to-end functionality.
- Set up API communication between frontend and backend for seamless data exchange.
- Test integration points and ensure consistency and correctness in data flow between frontend and backend.

Week 14: Testing and Optimization


- Conduct end-to-end testing of the Expense Tracker application, covering user flows, interactions, and
integrations.
- Perform usability testing to gather feedback on UI/UX, navigation, and overall user experience.
- Optimize application performance, responsiveness, and resource utilization for improved scalability and user
satisfaction.

Week 15: Finalization and Refinement


- Refine application features, functionality, and UI elements based on testing feedback and user input.
- Conduct final testing, bug fixes, and validation to ensure application stability and readiness for deployment.
- Document any remaining tasks, known issues, and future enhancements for post-deployment considerations.

Figure 3.1 Agile Model


4. TRAINING WORK UNDERTAKEN

4.1 About Project: Expense Tracker


The Expense Tracker project aims to address the challenge of managing personal finances efficiently in
today's fast-paced world. With an increasingly complex landscape of financial transactions and diverse
options for spending and saving, individuals often struggle to maintain a clear overview of their expenses,
income, and overall financial health. The Expense Tracker app seeks to alleviate this burden by providing
users with a comprehensive platform to track their expenses, income, budgets, and financial goals in one
centralized location. Utilizing Angular for the front-end development and Node.js with Express.js framework
for the back-end, the app offers a user-friendly interface for users to manage their finances seamlessly.
MongoDB serves as the database management system, allowing for flexible and scalable data storage. The
app includes features such as user authentication using JSON Web Tokens (JWT), category management,
budget tracking, transaction recording, and dynamic dashboard visualization using Chart.js. By employing an
Agile Software Development Life Cycle (SDLC) approach, the project ensures adaptability to evolving user
needs and continuous improvement through iterative development cycles. With the Expense Tracker app,
users can gain better insights into their financial habits, make informed decisions, and achieve greater
financial stability.

4.2 The App Features

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.

5. User Authentication with JWT:


The app ensures secure access through user authentication using JSON Web Tokens (JWT). User tokens
are securely stored in local storage, and the app sends the token in the authentication header with the help of
Angular HTTP interceptors. This ensures that only authorized users can access the app's features and data.

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.

4.3 Challenges and Solutions

In developing the Expense Tracker app, several challenges were encountered, each requiring innovative
solutions to ensure the successful implementation of key features and functionalities:

Challenge 1: Dynamic Dashboard Complexity


Challenge: Designing and implementing a dynamic dashboard to display total income, total expenses,
account overviews, and transaction summaries posed a significant technical challenge due to the complexity
of aggregating and visualizing data from multiple sources.

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.

Challenge 2: Transaction Filtering Complexity


Challenge: Implementing transaction filtering functionality to allow users to filter transactions based on
multiple criteria (account type, transaction type) presented a challenge in terms of query optimization and user
interface design.

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.

Challenge 3: Budget Management Flexibility


Challenge: Providing users with flexible budget management capabilities, including the ability to add, delete,
and update budgets for different expense categories, presented a challenge in terms of data validation and
synchronization across multiple devices.

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 4: Secure User Authentication

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.

4.4 Things I learned from the training

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

Level 0 Data Flow Diagram (DFD) Description:

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.

Expense Tracker App Responses:


- Response to User Requests:
- The Expense Tracker app processes user requests and provides appropriate responses.
- Responses may include success messages, error notifications, or data updates.

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.

Figure 5.1 Expense Tracker DFD

Level 1 Data Flow Diagram (DFD) Description:

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.

Figure 5.2: Expense Tracker DFD

5.1 USE CASE DIAGRAM

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.

Figure 5.1 Use Case Diagram

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.

5.2 GANTT CHART

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.

Figure 5.3: Gantt Chart


6. SNAPSHOTS

Figure 6.1: Login Screen

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.

Figure 6.2: Signup Screen

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.

3. Validation and Error Messages:


- Real-time validation ensures that users enter information correctly. Error messages are displayed if any
fields are filled incorrectly or if there are issues with the registration process, such as a duplicate email
address or weak password.

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.

3. Total Income and Total Expense:


- Users can view the total income and total expense for the selected time period, providing an overall
understanding of their financial inflows and outflows.

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.

Figure 6.4: Category Screen

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:

1. Add New Category Button:


- Users can easily add a new category by clicking on the "Add New Category" button. This action prompts a
form where users can enter details such as the category name and type (income or expense).

2. Filter Categories Options:


- Users can filter the displayed categories based on their type, including:
3. Table of Categories:
- A table or list displays all categories based on the selected filter criteria. Each row in the table represents a
category and includes details such as the category name and type.

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.

Figure 6.5: Add Category Screen


The "Add Category" screen in the Expense Tracker app is a dedicated interface where users can create new
expense categories to organize their transactions effectively. Here's a detailed description of the elements and
functionalities available on the "Add Category" screen:

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.

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 category creation process, such as duplicate
category names.

Figure 6.5: Transaction Screen


The "Transaction" screen in the Expense Tracker app is a vital section where users can view, add, and manage
their financial transactions. Here's a detailed description of the elements and functionalities available on the
"Transaction" screen:

1. Add New Transaction Button:


- A prominent button labelled "Add New Transaction" allows users to create a new financial transaction.
Clicking on this button opens a modal or form where users can input details for the new transaction, such as
amount, category, account type, and description.

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.

Figure 6.7: Budget Screen

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:

1. Budget Management Interface:


- The budget management interface provides users with options to add, edit, and delete budget allocations
for various expense categories.

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.

3. Add Budget Button:


- A prominent button labelled "Add Budget" allows users to create a new budget allocation. Clicking on this
button opens a modal or form where users can input details for the new budget, such as category, amount, and
date range.

4. Edit Budget Button:


- Next to each budget entry, an "Edit" button is provided to allow users to modify the details of a specific
budget allocation. Clicking on the edit button opens a modal or form pre-filled with the budget's existing
information, allowing users to make changes as needed.

5. Delete Budget Button:


- Similarly, a "Delete" button is placed next to each budget entry, enabling users to remove a particular
budget allocation. Clicking on the delete button prompts a confirmation dialog to ensure users want to
proceed with the deletion action.

Figure 6.7: Add Budget Screen


The "Add Budget" screen in the Expense Tracker app is a dedicated interface where users can create new
budget allocations for managing their expenses effectively. Here's a detailed description of the elements and
functionalities available on the "Add Budget" screen:

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.

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 budget creation process, such as invalid input or
duplicate budget allocations.
7. TESTING ACTIVITY
Testing is the process of executing a program to find errors. To perform testing, test cases are designed. A test
case is in particular made up of an artificial situation upon which a program is exposed to find errors. So, a
good test case finds undiscovered errors.

7.1 Unit Testing


Unit testing is conducted first. Different modules of the software are tested against the specifications produced
during the design of the modules. Verification of the code produced during the coding phase is done. Each
module is tested separately.
Unit Test Cases:
Table No. 7.1 Unit Test Cases

Description Expected Result Actual Result Status


Test Case
Login with valid credentials
1 User should be able to login User was able to Pass
successfully login successfully
2 Login with invalid credentials User should not be able to User was not able to Pass
login and should see an error login and saw an
message error message
3 Add Transaction Pass
User should be able to add transaction was
Transaction added successfully
4 Add category Pass
User should be able to Add Category was Added
Category successfully
5 Update Category Pass
User should be able to Category updated
update the Category successfully
6 Delete Category Pass
user should be able to Delete Category Deleted
specific Category Successfully
7 Create Budget User should be able to Add Pass
Budget on expense Budget Added
categories successfully
8 Update Budget pass
User should be able to
update budget Budget Updated
successfully
9 Delete Budget Pass
User Should be able to delete
Budgets Budget delete
successfully
7.2 System Training
In system testing, the entire software system is tested. The reference document used for this process is the
requirement document and the goal is to see if the software meets its requirements. System testing includes
the thorough testing of the product. It involves unit testing, integration testing & acceptance testing. Careful
planning and scheduling are required to ensure that modules will be available for integration into the evolving
software product when needed. A test plan has the following steps:

Table No. 7.2 System Testing

Description Expected Result Actual Result Pass/Fail

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

User should not be able to User was not able to log


Login with invalid
log in and should receive an in and received an error
credentials
error message message

3 Pass

User should be able to Add User was able to Add


Add Transactions
Transactions transactions

Pass

User should be able to filter


4 Filter Transactions User was able to See filter
Transactions by Category or
Transactions
Account Type
5 Dashboard Pass
User should be able to view
User was able to view
their Expense or income
their Dashboard and
summary on their
Income, Expense flow
Dashboard

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

8 View Budgets User should be able to view User was able to


all Budgets view their budgets

9 Pass

User should be able to User was able to Delete


Delete Budgets
Delete Budget budget

10 Update Category Pass

User should be able to


User was able to Update
update Category
Category
7.3 Test Case Design
Test Case Id: 1

Test Case Description: Login Screen

Step Description Expected Result

1 Verify user can log in with valid credentials. Successful login

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.

Table No. 7.3.1: Test Case Designs for Test case Id 1

Test Case Id: 2

Test Case Description: Dashboard

Step Description Expected Result

1 Verify the User can see Dashboard after successfully login

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

Test Case Id: 3

Test Case Description: Category screen

Step Description Expected Result

1 Verify user Can se the categories

Categories are displayed

2 Verify filter category button works


Categories are filtered

Edit category modal will


3 open
Verify edit category button wors
4 Verify add Category button works Opens Add category
form modal

Category delete
5 successfully
Verify delete category button works

Table No. 7.3.3: Test Case Designs for Test Case Id 3 Test

Test Case Id: 4

Test Case Description: Transaction Screen

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

User can navigate


between different
pages of transactions.
Verify pagination functionality works correctly.
3

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

Test Case Description: Budget Screen

Description
Step Expected Result

Verify user can add a new budget


allocation. New budget allocation is successfully
1 added.

Verify user can edit an existing budget


allocation. Changes to the budget allocation are
2 saved successfully.

Verify user can delete a budget


allocation. Budget allocation is removed from the
3 list.

Verify error message is displayed if


required fields are left blank. Error message prompts user to fill in
4 required fields.

Verify budget list displays all budget


allocations. All budget allocations are visible in the
5 list.

Verify budget amounts are correctly


allocated to respective expense Budget amounts are correctly assigned
categories. and reflected in the appropriate
6 categories.

Verify budget allocation period is


correctly displayed. Start and end dates of budget allocation
7 are accurately displayed.

Verify pagination functionality works


correctly. User can navigate between different
8 pages of budget allocations.

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.

8.1 Remaining Area of Concerns


1. Security: Ensure that user data is secure and protected from unauthorized access.

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.

8.2 Future Recommendations


For the Expense Tracker app, here are some general recommendations for future development:

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

them make informed investment decisions.

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

expenses more effectively and improve communication.


BIBLOGRAPHY

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

4. “Bulletproof node.js project architecture”


Bulletproof node.js project architecture 🛡️ (softwareontheroad.com)

5. Angular Authentication with JWT


Angular Authentication With JWT: The Complete Guide (angular-university.io)

You might also like