FinanceManager Report
FinanceManager Report
Bachelor of Engineering
in
Computer Science and Engineering
Submitted by
Vikas P (4NI20CS122)
Vishal Sangam L G (4NI20CS125)
Vrishankh Kishore (4NI20CS126)
Ms. Rashmi M R
Assistant Professor
CERTIFICATE
This is to certify that the project work entitled “Finance Manager” is a work carried out by
Vikas P (4NI20CS122), Vishal Sangam L G (4NI20CS125) and Vrishankh Kishore
(4NI20CS126) in partial fulfillment for the minor-project work (CS6C06), sixth semester,
Computer Science & Engineering, TheNational Institute of Engineering (Autonomous Institution
under Visvesvaraya Technological University, Belagavi)during the academic year 2022-2023. It is
certified that all corrections and suggestions indicated for the Internal Assessment have been
incorporated in the report deposited in the department library. The minor project work report has been
approved in partial fulfillment as per academic regulations of The National Institute of Engineering,
Mysuru.
______________ _______________
It is our privilege to express gratitude to all those who inspired me and guided to complete the
Minor Project. This minor project work has been accomplished only with the direct or indirect
help of many people who have guided me. I’m grateful to them.
We wish to express my gratitude to Dr. Rohini Nagapadma, Principal, NIE, for her
encouragement and support.
We also express our deepest gratitude Dr. Yuvaraju B N, Professor & HOD Department of
Computer Science and Engineering, NIE, Mysuru, for his profound alacrity in my progress and
her constant guidance and encouragement.
We would take this opportunity to express our sincere thanks to guide Ms. Rashmi M R,
Assistant Professor, Department of Computer Science and Engineering, NIE, for his constant
guidance and encouragement.
We Would like to thank all our Professors and Faculty Members of NIE, Mysuru for their
suggestions, encouragement and support.
-Vikas P
-Vishal Sangam L G
-Vrishankh Kishore
Table of Contents
Contents Page
Introduction 1
System analysis 3
System Design 6
System Implementation 9
System Testing 13
Results 15
Managing one's financial portfolio has traditionally been a complex and time-consuming task.
However, the "Finance Manager" app simplifies this process by providing users with a virtual
portfolio feature. This feature allows individuals to seamlessly track their investments in real-time,
enabling them to monitor the performance of their portfolio and make informed decisions based
on up-to-date market data. By integrating with stock price indicators, users can gain valuable
insights into the trends and fluctuations of their investments, allowing them to react quickly and
adjust their portfolio as needed.
In addition to the virtual portfolio, the "Finance Manager" app offers an intuitive expense tracker
that revolutionizes the way individuals monitor and categorize their expenses. With just a few
taps, users can effortlessly record their expenses and assign them to specific categories, such as
food, transportation, entertainment, or bills. This feature provides a comprehensive overview of an
individual's spending habits, allowing users to identify areas of potential savings and make more
informed decisions regarding their financial priorities. By setting budget limits and receiving real-
time notifications when exceeding them, users can stay on track with their financial goals and
ensure responsible spending.
To enhance the user experience and keep individuals informed about their investments, the
"Finance Manager" app integrates real-time stock price indicators. Users can customize their
1|Page
watchlist by adding their favorite stocks, and the app provides up-to-date information, including
stock prices, market trends, and relevant news. This feature empowers users with the knowledge
they need to make informed investment decisions, whether they are experienced traders or new to
the stock market. By staying informed about the latest developments, users can seize opportunities
and optimize their investment strategies.
The technology stack behind the "Finance Manager" app combines React Native, Flask, Firebase
and Python, offering a powerful and versatile platform for financial management. React Native, a
JavaScript framework, ensures a seamless and intuitive user interface, providing a consistent
experience across different mobile devices. Flask, a micro web framework, serves as the backend
server, handling data requests and ensuring smooth communication between the frontend and
backend components. Firebase is used for database for storing data. Python, a versatile and
widely-used programming language, is leveraged for various data processing and analysis tasks,
such as calculating portfolio performance, analyzing expense patterns, and retrieving real-time
stock data.
2|Page
Chapter 2
System Analysis
Existing system explanation
Before the development of the "Finance Manager" mobile application, individuals faced
various challenges when it came to managing their personal finances effectively. The existing
system relied heavily on manual processes, spreadsheet-based tracking, and multiple disconnected
tools, which often led to inefficiencies, data inconsistencies, and a lack of real-time insights.
Stock price indicator systems out there in the market don’t allow complete access to all their
features for free. Its either free trial for a time period or limited features in most of the cases.
A virtual stock portfolio or asset portfolio in general along with analysis tools and expenses
tracker makes you realize where you could have taken better financial decisions is something that
doesn’t exist for easy access to a common man and hiring a portfolio manager is not affordable to
everyone.
In the absence of a centralized platform, users had to manually track their investments, monitor
stock prices through separate websites or applications, and maintain spreadsheets for expense
tracking. This fragmented approach made it difficult for individuals to have a comprehensive view
of their financial health and make informed decisions based on up-to-date information.
Moreover, without automated alerts or notifications, users had to rely on their own diligence to
keep track of budget limits, stock market trends, and investment performance. This lack of
proactive monitoring often resulted in missed opportunities, overspending, and poor investment
decisions.
In the existing system, we have to track our expenses on some app that doesn’t suggest anything
and just takes input stores in database. We have to do all the heavy lifting of managing where the
apps are in real providing just a system to store data online.
The existing system lacked integration and synchronization between different financial
components, causing inconvenience and requiring users to invest significant time and effort to
manage their finances efficiently. It became clear that a more streamlined and cohesive solution
was needed to address these challenges and provide users with a comprehensive financial
management tool.
3|Page
Proposed system explanation
The proposed "Finance Manager" mobile application aims to revolutionize personal financial
management by providing users with a centralized platform that combines a virtual portfolio,
expense tracker, and stock price indicators. Developed using React Native, Flask, Firebase and
Python, the application offers a user-friendly interface and a range of powerful features to
streamline financial management and decision-making.
With the proposed system, users will have access to a virtual portfolio that enables them to track
their investments in real-time. The integration of stock price indicators allows users to stay
updated on the performance of their investments, providing valuable insights for making informed
decisions
An expense tracker is a tool that helps individuals track their expenses and monitor their spending
habits. It can be used to categorize expenses, set budgets, and generate reports to help individuals
make better financial decisions. Manage expenses to save more, invest more, stay informed.
The proposed system also addresses the need for timely and relevant information through its
integration of stock price indicators. Users can customize their watchlist and receive up-to-date
stock market data, including prices, trends, and news. This empowers users to stay informed and
seize investment opportunities.
The technology stack, including React Native, Flask, Firebase and Python, ensures a seamless and
efficient user experience. React Native provides a cross-platform development framework,
allowing the application to run on both iOS and Android devices. Flask serves as the backend
server, handling data requests and ensuring smooth communication between the frontend and
backend components. Python, a versatile programming language, is utilized for various data
processing tasks and analysis.
Overall, the proposed "Finance Manager" system offers a comprehensive and integrated approach
to personal financial management. By bringing together virtual portfolio management, expense
tracking, and stock price indicators, this application will provide users with a powerful tool to
make informed financial decisions, track their financial health, and work towards their financial
goals.
4|Page
System requirements explanation
Software Requirement:
Hardware Requirements:
Platform – Android/iOS/Desktop
RAM: 4 GB
Storage: ~50MB
5|Page
Chapter 3
System Design
Start
Authentication
Stock Expense
Visualizer Manager
6|Page
Authentication:
Authentication is the process of verifying the identity of a user or system before granting access to
resources or services. It ensures that only authorized individuals or entities can access protected
information or perform specific actions. Authentication typically involves the use of usernames and
passwords.
Stock Visualizer:
A stock visualizer is a tool or application that allows users to track and analyze stock market data
visually. It provides real-time or historical stock prices, charts, graphs, and other visual representations
of stock market trends. Stock visualizers often offer features like customizable watchlists, portfolio
tracking, technical indicators, and interactive charts to help investors make informed decisions about
buying, selling, or holding stocks.
Expense Manager:
An expense manager is a software application or tool designed to track and manage personal or
business expenses. It helps individuals or organizations keep track of their spending, categorize
expenses, set budgets, and analyse their financial patterns.
Track Portfolio:
Portfolio tracking refers to the process of monitoring and managing an investment portfolio. It
involves keeping track of the performance, value, and allocation of various investments, such as
stocks. Portfolio tracking tools or applications enable investors to monitor the performance of their
investments in real-time, track historical returns, analyse asset allocation, and make informed
decisions based on market trends and their investment goals.
Track Expenses:
Tracking expenses involves keeping a record of all the money spent on various items or services. It
helps individuals or businesses understand their spending habits, identify areas where they can save
money, and maintain a budget. Expense tracking can be done manually by recording each expenditure
or by using automated tools like expense management software or mobile applications. These tools
allow users to input expenses, categorize them, generate expense reports, and gain insights into their
spending patterns.
7|Page
ER Diagram and Explanation
Relationships:
The User entity has a one-to-many relationship with the Expense entity, indicating that a user can have
multiple expenses associated with them. This relationship is established through the common attribute
Email, where the Email attribute in the User entity serves as the foreign key in the Expense entity. The
User entity also has a one-to-many relationship with the Portfolio entity, indicating that a user can have
multiple portfolios. This relationship is established through the common attribute Email, where the Email
attribute in the User entity serves as the foreign key in the Portfolio entity.
8|Page
Chapter 4
System Implementation
Implementation Details:
1. Authentication:
Frontend: React Native is used for developing the frontend user interface.
User Authentication: Firebase Authentication is utilized to handle user authentication. It.
provides features like email/password authentication, social media login (Google,
Facebook, etc.), and token-based authentication.
2. Stock Visualizer:
Frontend: React Native is used to create the frontend components and UI.
Data Processing: Pandas, a Python library, is used to process and analyse stock market
data. It provides functionalities to manipulate and visualize data efficiently.
Backend: Flask, a Python web framework, is used to develop the server-side logic for
fetching stock market data and providing it to the frontend.
3. Expense Manager:
4. Track Portfolio:
Frontend: React Native is used to create the frontend components and UI.
Portfolio Management: Firebase Realtime Database is utilized to store and retrieve
portfolio details. It allows real-time synchronization and offline capabilities.
Backend: Flask is used to handle API requests from the frontend, validate and process the
data, and interact with the Firebase Realtime Database.
9|Page
5. Track Expenses:
Overall Architecture:
The frontend of the application is built using React Native, providing a cross-platform
mobile app experience.
Firebase Authentication is integrated for user authentication and managing user accounts
securely.
Firebase Realtime Database is used to store and retrieve expense and portfolio details in
real-time.
Flask is used as the server-side framework to handle API requests, validate and process
data, and interact with Firebase services.
Pandas is utilized for data processing and analysis, particularly for handling stock market
data in the stock visualizer functionality.
By combining these technologies, the application can offer user authentication, expense
tracking, portfolio management, and stock visualizer capabilities within a React Native
mobile application, leveraging Firebase services for data storage and authentication, Flask
for server-side logic, and Pandas for data processing.
10 | P a g e
Explanation of the tools used for implementation:
React Native, Flask, Firebase, and Python are four such technologies that have revolutionized the
way apps are built, providing seamless integration and efficient workflows. In this article, we will
explore the key features and benefits of each of these technologies and discuss how they can be
effectively combined to create robust and scalable applications.
React Native, developed by Facebook, is a widely adopted framework for building cross-platform
mobile applications. It allows developers to write code in JavaScript and use a single codebase to
target both iOS and Android platforms. By leveraging native components, React Native delivers a
native-like user experience while maintaining the flexibility and efficiency of web development.
With its declarative syntax and reusable components, React Native enables rapid prototyping and
accelerates the development process.
On the server side, Flask, a micro web framework written in Python, provides a lightweight and
flexible solution for building web APIs. Flask embraces simplicity and follows the "micro"
philosophy, allowing developers to focus on writing concise and modular code. Flask's extensive
ecosystem of extensions enables easy integration with other tools and services. Its simplicity,
combined with the power of Python, makes Flask a popular choice for developing backend
solutions.
Firebase, a comprehensive mobile and web application development platform, offers a wide range
of features and services to support the entire app development lifecycle. It provides real-time
database capabilities, authentication mechanisms, cloud messaging, hosting, and much more.
Firebase's powerful backend infrastructure eliminates the need for managing servers and enables
developers to focus on building the frontend. Its seamless integration with React Native and Flask
simplifies the process of creating full-stack applications.
11 | P a g e
Python, a versatile and beginner-friendly programming language, serves as a strong foundation for
the development of various components in this tech stack. With its clean syntax, extensive
libraries, and vast community support, Python facilitates rapid development and code readability.
It is widely used for data manipulation, machine learning, and web development. The combination
of Python with Flask and Firebase allows developers to build scalable and performant applications
efficiently.
Integrating these technologies provides developers with a cohesive and efficient workflow. React
Native handles the frontend, allowing for rapid prototyping and cross-platform development.
Flask serves as the backend, providing a flexible and lightweight API layer for data processing
and business logic. Firebase acts as the glue that connects the frontend and backend, handling
authentication, data storage, and real-time updates.
By leveraging the strengths of each technology, developers can build feature-rich and scalable
applications. React Native's component-based architecture enables the creation of intuitive user
interfaces, while Flask's simplicity and Python's flexibility streamline backend development.
Firebase's real-time database and authentication services offer seamless connectivity and data
synchronization.
In conclusion, React Native, Flask, Firebase, and Python form a powerful tech stack for modern
app development. Their seamless integration and complementary features empower developers to
build cross-platform applications with ease. Whether it's creating native-like mobile apps or
developing scalable web APIs, this integrated approach offers a solid foundation for building
robust and efficient applications in today's rapidly evolving tech landscape.
12 | P a g e
Chapter 5
System Testing
System Testing for the implemented solution can involve the following scenarios and test cases for
each component:
1. Authentication:
2. Stock Visualizer:
3. Expense Manager:
13 | P a g e
4. Track Portfolio:
5. Track Expenses:
Test data synchronization between the frontend and Firebase Realtime Database to ensure
real-time updates and offline capabilities.
Validate the responsiveness and performance of the application under various network
conditions.
Test the security and privacy of user data, ensuring that sensitive information is
appropriately encrypted and protected.
Perform compatibility testing on different devices, operating systems, and screen
resolutions to ensure a consistent user experience.
It is important to design and execute test cases for each functionality, covering positive and
negative scenarios to ensure the system works as intended, is reliable, and provides a seamless
user experience.
14 | P a g e
Chapter 6
Results
15 | P a g e
Fig 6.3 Edit expense Fig 6.4 All expenses page
16 | P a g e
Fig 6.5 Vizualizer Fig 6.6 Portfolio
17 | P a g e
Conclusion
In conclusion, the finance manager project successfully implemented a range of features aimed
at providing users with efficient financial management tools. Through the utilization of React
Native, Flask, Firebase and Python, we were able to create a seamless and user-friendly
application.
The virtual portfolio feature allowed users to simulate investment scenarios and track their
performance in real-time. This feature provided invaluable insights into the potential outcomes of
different investment strategies, helping users make informed decisions. Additionally, the expense
tracker proved to be a valuable tool for monitoring and managing personal finances. It enabled
users to record and categorize their expenses, providing a comprehensive overview of their
spending habits.
One of the standout features of the finance manager project was the stock price indicator. By
leveraging Python's data analysis capabilities, we were able to provide users with up-to-date and
accurate information on stock prices. This feature empowered users to make informed investment
decisions and stay updated with the latest market trends.
Throughout the project, a strong emphasis was placed on creating an intuitive user interface
and ensuring a seamless user experience. The application's design and functionality were carefully
crafted to cater to the needs of both novice and experienced users in the realm of finance.
Overall, the finance manager project successfully integrated key functionalities such as the
virtual portfolio, expense tracker, and stock price indicator, enabling users to better manage their
finances. The project not only showcased our proficiency in utilizing various technologies but also
provided valuable insights into the field of financial management. Moving forward, there is ample
opportunity to expand the application's capabilities and integrate additional features to further
enhance the user experience and make it even more comprehensive and versatile.
18 | P a g e
Future Enhancements
While the finance manager project has successfully implemented a range of useful features, there
are several areas where future enhancements can further improve the application's functionality
and user experience.
1. Stock Market Price Prediction: A stock price prediction feature can be added to this project
which makes use of artificial intelligence and machine learning tools and algorithms to predict the
future price of any stock, be it the ones in the portfolio or any other stock. This gives users the
right advice to invest in the stock of their desired choice.
2. Notifications and Alerts: Implementing a notification system would allow users to set alerts for
specific events, such as stock price thresholds or expense thresholds. This would enable users to
receive timely notifications when certain conditions are met, ensuring they stay informed and can
take action promptly.
3. Advanced Portfolio Analysis: Enhancing the virtual portfolio feature with advanced analysis
tools would provide users with deeper insights into their investments. Adding features like risk
assessment, portfolio diversification analysis, and performance comparison against market indices
would enable users to make more informed investment decisions and better understand the
performance of their portfolios.
4. Social Sharing and Collaboration: Adding social sharing features would allow users to share
their investment strategies, portfolio performance, and financial goals with others. This would
promote collaboration and knowledge-sharing among users, creating a community-driven platform
where users can learn from each other's experiences.
19 | P a g e
References
https://reactnative.dev/docs/tutorial
https://www.udemy.com/course/react-native-the-practical-guide/
https://docs.python.org/3/tutorial/
https://www.w3schools.com/python/
https://www.udemy.com/course/100-days-of-code/
https://www.tutorialspoint.com/flask/index.htm
https://www.tutorialspoint.com/firebase/index.htm
https://firebase.google.com/docs
20 | P a g e