Fintech Project: Finance Manager
Fintech Project: Finance Manager
A Project Report On
FINANCE MANAGER
Submitted By
SHEKHAR SUMAN (16900120137.)
KAUSHIK SAMANTA 16900120142.)
SAYAN KUNDU (16900120148.)
SHREYANKA DAN (16900120155.)
MAYUKH GHOSH (16900120176.)
A Project Report
To be submitted in the partial fulfillment of the requirements
For the degree of
Bachelor of Technology in Computer Science and Engineering
Affiliated to
2023
2
CERTIFICATE
under my guidance. The matter embodied in this project is genuine work done by
the students and has not been submitted whether to this University or to any other
University/Institute for the fulfillment of the requirement of any course of study.
Dated:
Countersigned By
We hereby state that the Project Report entitled FINANCE MANAGER has been
prepared by us to fulfill the requirements of Project-II (PROJ-CS781) during the
period JULY 2023 to November 2023.
_______________
_______________
_______________
_______________
_______________
LIST OF FIGURES
Contents Page No
7. Figure 7 Dashboard………………………………………………….. 21
5
Abstract
In the rapidly evolving domain of financial technology, the integration of robust,
secure, and user-friendly digital solutions is critical. This project revolves around
the development of "Finance Manager," an advanced online banking platform
designed using [Link], a leading React framework. The proposed application goes
beyond conventional financial trackers by offering real-time transaction updates,
multi-bank connectivity, and seamless money transfer capabilities, all underpinned
by server-side rendering (SSR) for enhanced performance and security.
This project not only aims to introduce a technically sound banking platform but
also contributes to the field of financial technology by addressing crucial needs for
accessibility, security, and user engagement. By documenting the process, from
ideation through development, this endeavor serves as an instructive exemplar for
the development of future fintech solutions, emphasizing the practical
implementation of theoretical knowledge and modern programming paradigms.
6
TABLE OF CONTENTS
Contents Page No
8. Chapter 1 Introduction………………………………………... 6
20. Appendices 46
A. List of technical terms ……………………………………………... 47
B. Abbreviations used………………………………………………….. 48
FINANCE MANAGER
CHAPTER 1
INTRODUCTION
8
Introduction
The focal theme of this project is the development of a comprehensive digital banking
application named "Finance Manager." This application aims to revolutionize traditional
banking approaches by integrating advanced web technologies such as [Link] for server-side
rendering and React for its intuitive user interface. The overarching goal is to provide a
seamless, efficient, and secure online banking experience to users.
● Digital Transformation in Banking: To address the growing demand for secure, efficient,
and user-friendly online banking services by leveraging the power of digital technologies.
● Innovative User Experience: To provide users with an intuitive and engaging finance
management dashboard that offers a clear, real-time view of their financial activities,
including transactions, account details, and spending insights.
● Robust Security and Maintainability: To incorporate TypeScript for enhanced type safety
and ESLint for maintaining clean, error-free code, ensuring the application's overall
integrity and reliability in handling sensitive user data.
This project is not just about creating a functional digital banking application but also about pushing
the envelope in how banking systems can incorporate modern web technologies to deliver enhanced
and secure services. The real-world application allows users not only to perform standard banking
operations but also to interact with innovative features such as multiple account management and
real-time financial analysis within a single platform.
In the context of creating a comprehensive report akin to the structure and content seen in the
JavaScript Mastery video, the "Brief Overview of the Report" would be a concise introduction
to each chapter's contents, allowing readers to get a quick snapshot of what each part of the
9
report will cover. For the banking app development project, this overview might go as
follows:
● Introduction: Introduces the technologies used, the project scope, and the relevance of
creating a banking app using [Link].
● Literature Review: Discusses existing banking app technologies, areas these apps excel
in, and where they lack, leading the way to identifying gaps the project aims to fill.
● Problem Definition & Objectives: Outlines the specific issues users face with current
banking apps and lists the objectives the new app development project aims to achieve.
● System Design and Architecture: Details the architectural design, front-end, and back-
end technology choices, with a focus on performance optimization and user interface
design.
● Testing and Validation: Describes the methods and processes used to ensure the app is
secure, functional, and meets user needs based on predetermined criteria.
● User Feedback and Future Enhancements: Features feedback from initial users and
discusses potential future updates and functionalities based on this feedback.
10
FINANCE MANAGER
CHAPTER 2
Literature
Overview
11
Literature Overview
In the literature overview section of the project report, a detailed analysis of various key
topics related to the banking app project is provided. Here is a breakdown of the
comprehensive literature review that covers essential aspects for a thorough understanding:
2. [Link] 14 Framework:
● Introduced [Link] framework, outlining its features and advantages in developing
modern web applications with server-side rendering capabilities.
● Discussed the utility of [Link] for building applications with React components and
its suitability for complex application architectures.
This comprehensive literature overview provides a deep dive into essential topics,
technologies, and concepts vital for understanding the banking app project's scope and
significance in the realm of modern web application development and financial
management.
13
FINANCE MANAGER
CHAPTER 3
Problem
Definition and
Objective
14
This statement highlights the core issues that the banking app developed aims to solve—
performance issues, complex user interfaces, and poor feature integration.
The detailed objectives outline what the project specifically aims to achieve or investigate. These
can be considered as the goals that guide the development process of the banking app., the
objectives include:
● Enhance Application Performance: Improve the load times and responsiveness of the
banking application by leveraging the capabilities of [Link], aiming for a performance
increase over traditional SPA (Single Page Application) architectures.
● Improve User Interface: Develop a clean, intuitive, and easy-to-navigate user interface
that simplifies the user experience. Utilize Tailwind CSS for customizable and responsive
design to cater to various user needs and device formats.
● Secure Financial Transactions: Ensure the security of user data and financial
transactions through the implementation of advanced security protocols and encryption
methods.
● Automate Common Tasks: Utilize AI tools, like ChatGPT, to automate repetitive tasks
(like date formatting, parsing strings) and enhance the software development process,
thereby reducing the potential for human error and increasing overall efficiency.
● Study User Interaction and Feedback: Analyze user interaction with the application to
further refine functionality and user interface. This objective involves gathering user
feedback through integrated feedback tools or A/B testing methods.
These objectives translate the broad aims of the project into specific targets, guiding the
development team in addressing the articulated problem. Each objective is aligned with the overall
project goal of creating a superior banking application by addressing key areas like performance,
functionality, user experience, and security.
15
FINANCE MANAGER
CHAPTER 4
Feasibility Study
16
Feasibility Study
The concept of "Technical Feasibility" primarily revolves around evaluating whether the
necessary technical resources — both software and hardware — are available and adequate to
successfully develop and deploy the banking application.
● [Link] : The video extensively utilizes [Link], a React framework that allows server-side
rendering, improving the performance of web applications, which is crucial for processing
real-time data such as financial transactions.
● Tailwind CSS : For styling, the video leverages Tailwind CSS, which is known for its
utility-first approach allowing highly customizable and responsive designs,
accommodating various device formats and user interfaces.
● TypeScript: This is used for adding strong typing to JavaScript, enhancing the code
quality and robustness, crucial for handling financial data securely and accurately.
● ChatGPT and other AI tools: For automation of routine coding tasks, enhancing
developer productivity and reducing errors in mundane tasks like string parsing.
Integration Tools:
● The use of various APIs and third-party services such as banking APIs for transaction
data, which are crucial for the app to function as intended in a real-world scenario.
For a project like this, the hardware feasibility would be considered adequate under standard
development and deployment conditions:
17
● Development Environment:
o Servers: Adequate server support for development and testing, which in the case
of applications like these, can largely be handled via cloud platforms that Vercel
integrates with.
o Local Development Machine: Standard development machines that can run the
required software stack smoothly — typically any modern computer system
capable of handling development environments like JavaScript and its
frameworks.
In essence, the "Technical Feasibility" analysis in this scenario involves ensuring that all software
and minimal hardware requirements are met to support the advanced functionalities and user
experience goals of the banking application. The video substantiates that current technology
stacks like [Link], alongside supportive tools and platforms like Vercel, ensure that the technical
resources available are more than capable of successfully implementing and deploying the
application as intended. This analysis confirms the project's feasibility, indicating that both the
development environment and the deployment strategy align well with the project's technical
demands.
The economic feasibility of the financial manager project depends on a comprehensive analysis
of costs, revenue potential, and market dynamics. A well-thought-out business model, coupled
with effective user acquisition and retention strategies, will be crucial for achieving economic
success. Additionally, staying attuned to economic trends and being agile in adapting to changing
market conditions will contribute to the sustained economic viability of the project. Continuous
monitoring and adjustments based on user feedback and market developments will be essential
for long-term success.
The economic feasibility of developing the Finance Manager banking application is crucial in
determining its viability from a financial perspective. This assessment includes analyzing costs,
potential revenues, and the economic impact of implementing the application.
Cost Considerations
● Development Costs: These include the expense of technical resources like software
tools and development platforms. As per the video, the deployment is discussed using
Vercel, which could imply costs related to deployment and server management,
depending on the scale of the
● Maintenance Costs: Post-deployment, the application will require regular updates and
maintenance to ensure security and functionality. This involves the cost of managing a
development team, server costs, and other operational expenses.
18
● Marketing and Distribution: Introducing a new banking application into the market
requires a substantial budget allocation for marketing to ensure user acquisition and
competitive standing.
Revenue Streams
● Transactional Fees: Small fees for high-value transactions, foreign currency exchanges,
or cross-platform transfers could generate revenue.
Operational feasibility examines the practicality of the Finance Manager application in a real-
world environment, assessing how the features and services can be implemented effectively.
Implementation Strategy
● Real-time Data Handling: The application will handle real-time transaction data and user
interactions, needing robust server-side management, as facilitated by [Link], ensuring
swift data processing and rendering.
● Security Protocols: Critical for banking applications due to the sensitive nature of
financial data. The use of TypeScript for static type checking helps prevent many common
bugs that can lead to security vulnerabilities. Tools like ESLint aid in maintaining clean,
secure code.
● Scalability: With the underlying technology stack including [Link] and Vercel, the
application is built to be scalable, managing varying loads of user activities efficiently,
which is critical as the user base grows.
● Easy Deployment and Updates: As outlined in the video, deployment on Vercel allows
for seamless updates and rollbacks, which is essential for maintaining application integrity
under real-world operating conditions.
● Integration with Existing Systems: For a banking application, integrating with existing
financial infrastructures like banking APIs, a payment gateway (in this case played – a
payment gateway alternative used), is vital for operational validity.
19
User Adoption
● Accessibility: A responsive design ensures that the application is usable across different
devices, enhancing user accessibility and experience.
These feasibility aspects justify the development of the Finance Manager application not just from
a technical standpoint but also from a business and operational perspective. They provide a
concrete plan for how the application will be developed, maintained, marketed, and integrated
into the existing ecological system of digital banking solutions.
20
FINANCE MANAGER
CHAPTER 5
System Analysis
21
System Analysis
Figure:1
Figure:2
22
Feature List :
● Connect Banks: Integrates with Plaid for multiple bank account linking
● Home Page: Shows general overview of user account with total balance from all
connected banks, recent transactions, money spent on different categories, etc
● My Banks: Check the complete list of all connected banks with respective balances,
account details
● Transaction History: Includes pagination and filtering options for viewing transaction
history of different banks
● Real-time Updates: Reflects changes across all relevant pages upon connecting new bank
accounts.
● Funds Transfer: Allows users to transfer funds using Dwolla to other accounts with
required fields and recipient bank ID.
● Responsiveness: Ensures the application adapts seamlessly to various screen sizes and
devices, providing a consistent user experience across desktop, tablet, and mobile
platforms.
23
FINANCE MANAGER
CHAPTER 6
Software
Engineering
Paradigm Applied
24
The approach to software development greatly influences not only how the project is
managed but also the flexibility and adaptability of the development process. Based on the
nature of the project as explained in the video, here's an insight into the Software
Development Lifecycle (SDLC) Model used and the rationale behind this choice:
Agile Methodology is prominently applied in the project. Agile is favored in projects that
require flexibility, iterative progress, and substantial client or user interaction.
1. Iterative Development: The project is developed through repeated cycles (iterative) and
incremental steps (incremental), allowing flexibility in responding to changes in user
requirements or project scope.
-Feedback-Oriented: Regular feedback from user interactions with early prototypes or
versions of the application enables continual improvement and adaptation, enhancing the
overall quality and user satisfaction of the final product.
The choice of Agile over other SDLC models like Waterfall or Spiral is driven by several
factors specific to the nature and requirements of the banking application project:
2. User-Centric Design: Given the focus on user experience in banking apps, the Agile
model supports frequent revisions based on real user feedback obtained from testing UI/UX
elements in iterative cycles, ensuring the end product is highly user-friendly and meets
actual user needs.
4. Speed to Market: The Agile methodology facilitates faster development and release of
functional components, which is essential for staying competitive in the fast-paced tech
25
landscape. This rapid deployment capability is less feasible with the Waterfall model,
which progresses in a linear, sequential phase and doesn’t suit projects needing quick
market entry.
In summary, the choice of Agile is highly aligned with the dynamic, user-centered, and
collaborative needs of developing a modern banking app. It accommodates continual
improvement, adapts to evolving project requirements, and ensures the product is both
high-quality and relevant upon release. This methodology not only drives the development
process but also enhances project outcomes through structured yet flexible practices.
26
FINANCE MANAGER
CHAPTER 7
Software and
Hardware
Requirement
Specifications
27
I. PENTIUM – III
II. 32 MB RAM
III. 40 GB HDD
Operating system required: Microsoft Windows 95 or 98 onwards.
The technologies required for the development of the banking application include:
Front-end Technologies:
● TypeScript: Used to add strong typing to the JavaScript codebase, enhancing code quality
and robustness.
● Tailwind CSS: A utility-first CSS framework that allows for highly customizable and
responsive UI design.
Back-end Technologies:
● Played: A leading banking API platform that allows the application to connect to real
banking services and functionalities, such as account linking, transaction retrieval, and
fund transfers.
● Airtable: An open-source platform used to build the application's backend, including the
database, functions, and storage, in a serverless manner.
● Vercel: A platform optimized for [Link] applications, which supports features essential
for CI/CD workflows and smooth deployment processes.
Data Visualization:
● [Link]: A popular charting library used to create the various financial dashboards and
data visualizations within the banking application.
● Shadcn/ui: A component library built on top of Tailwind CSS, providing a wide range of
pre-built components for the application's user interface.
Development Tools:
● Visual Studio Code: A popular code editor used for the development of the application.
● Git and GitHub: Version control and collaboration tools used for managing the codebase.
● [Link] and npm: The JavaScript runtime and package manager used for installing and
managing the project dependencies.
This technology stack covers the essential components required for building a modern, secure,
and feature-rich banking application, including the front-end framework, styling, data
visualization, backend integration, deployment, and monitoring. The use of these software tools
and technologies ensures that the application can provide a seamless and reliable user experience
while also adhering to industry best practices and security standards.
29
FINANCE MANAGER
CHAPTER 9
DATABASE
DESIGN
30
Database Design
The database design comprehensively addresses various essential features like user management,
bank account connectivity, transaction handling, and general application monitoring. Below is a
detailed look at the database schema, including the relationships between tables and the specific
types of data stored in each.
1. Users Table
2. BankAccounts Table
⮚ Purpose: Contains details about each user's bank accounts stored or linked through the app.
⮚ Columns:
● `AccountID`: Primary Key, uniquely identifies each bank account.
● `UserID`: Foreign Key, links to the `Users` table to identify the account holder.
● `BankName`: Name of the bank.
● `AccountNumber`: Bank account number.
● `Balance`: Current balance in the account.
● `AccountType`: Type of account (e.g., checking, savings).
● `LastTransactionTimestamp`: Timestamp of the last transaction made.
⮚ Relationships:
● Direct relationship with the `Transactions` and `Transfers` tables for recording
transactions.
31
3. Transactions Table
4. ConnectedBanks Table
⮚ Purpose: Keeps track of banks connected to the user accounts within the app.
⮚ Columns:
● `BankConnectID`: Primary Key, identifies each connection.
● `UserID`: Foreign Key, links to the `Users` table.
● `BankName`: Name of the connected bank.
● `BankAccountID`: Associated bank account identifier.
● `LastSyncTimestamp`: Last time the app synced with the bank account.
⮚ Relationships:
● Links users to their respective banking institutions stored in the app.
5. Transfers Table
6. SpendingCategories Table
7. Logs Table
Each table is designed to ensure robust data management and facilitate complex queries necessary
for a modern banking application, supporting essential features such as multi-bank connectivity,
transaction processing, fund transfers, user security, and operational insight through logging.
The relationships between the tables in the designed database schema for the banking app project
are structured to support efficient data storage, retrieval, and integrity. These relationships are
primarily based on foreign keys that link one table to another, establishing a clear path for joining
data across related entities. Here’s a detailed explanation of how tables are interconnected:
33
⮚ Relationship: One-to-Many
34
o Each bank account can have multiple transactions but each transaction is linked to
one bank account.
⮚ Relationship: One-to-Many
o Each bank account can be either the sender or the receiver in multiple transfer
records.
⮚ Relationship: Many-to-One
Summary of Relationships:
- Primary keys in each table serve as unique identifiers for their respective entities.
- Foreign keys establish referential integrity, ensuring relationships are maintained correctly and
preventing orphan records or inconsistent data.
- Most relationships are One-to-Many, reflecting typical usage patterns in a banking application
where multiple transactions, accounts, and logs might associate with a single user or account.
This structured approach not only helps in maintaining data accuracy but also optimizes the
performance of the database by easing the process of data retrieval across related tables.
Below is a textual representation of the tables and their attributes for a banking app database
design, organized in a tabular format. This textual table layout provides an overview of each table
along with its key attributes and relationships to other tables.
35
[Link]-TABLE:-
[Link]-TABLE:-
UserID Integer Identifier for the user owning the account Foreign Key to Users
Table
3. Transactions Table:-
5. ConnectedBanks Table:-
UserID Integer Identifier for the user Foreign Key to Users Table
6. Transfers Table:-
6. SpendingCategories Table:-
CategoryID Integer Primary key, unique identifier for each category Primary Key
This layout visually organizes the information about the database schema in a manner similar to
how it might appear in a diagrammatic ERD, but in a text-based table format suitable for textual
presentation.
38
Results
⮚ Interface :
Figure 7: Dashboard
40
FINANCE MANAGER
Figure 7 : Dashboard
CHAPTER 10
Conclusion
41
Conclusion
To enhance the scalability of our banking application built with [Link], we can implement several
advanced strategies that focus on optimizing performance, handling increased loads efficiently,
and ensuring the application can grow without significant performance bottlenecks. Here's how
we can improve the scalability further:
⮚ Server-Side Optimization
● Incremental Static Regeneration (ISR): Utilize [Link]'s ISR to regenerate pages
on-demand after deployment. This method offers a balance between static
generation and server-side rendering, reducing the load on the server while
providing up-to-date content.
● Edge Functions: Leverage Vercel Edge Functions for dynamic computations at the
edge closer to the user's location, effectively decreasing latency and server load.
⮚ Database Optimization
● Database Indexing: Ensure that the database queries are indexed effectively,
which can drastically reduce the query response time as the volume of data grows.
● Read Replica Databases: Implement read replica databases to distribute the read
load evenly, especially useful if the application features heavy read operations.
⮚ Microservices Architecture
● Dividing Monolith: Transition from a monolith to a microservices architecture,
where different services can handle different tasks such as authentication,
transaction processing, and user profile management independently.
● API Gateway: Use an API Gateway to handle requests and direct them to the
appropriate microservice, which can improve the handling of increased traffic and
enhance security measures.
⮚ Load Balancing
● Implement Load Balancers: Utilize load balancers to distribute incoming network
traffic across multiple servers or instances. This ensures no single server bears too
much load, which can prevent server overloads and enhance the redundancy of the
application.
⮚ Caching Mechanisms
● Client-Side Caching: Implement client-side caching to store frequently accessed
data on the client side, reducing the number of requests to the server.
42
⮚ Asynchronous Processing
● Queuing Systems: Incorporate a message queuing system such as RabbitMQ or
Kafka to handle asynchronous processing of tasks such as sending notifications or
processing transactions, which helps in managing the workload more efficiently.
⮚ Code Optimization
● Efficient Algorithms: Review and optimize the backend algorithms to ensure they
are efficient in terms of complexity and resource utilization.
● Code Splitting in [Link]: Utilize [Link]'s automatic code splitting feature, which
loads only the necessary code for rendering the viewed page, thereby reducing the
amount of code transferred over the network.
● Frequent Audits and Updates: Regularly audit the application for performance
issues and keep all frameworks and libraries updated to their latest versions to take
advantage of performance improvements and security patches.
By implementing these strategies, the scalability of the banking application can be significantly
enhanced, ensuring it remains robust and responsive as usage grows. This proactive approach to
scalability will cater to a growing number of users smoothly and maintain the application's
reliability in the face of increasing demand.
43
FINANCE MANAGER
CHAPTER 10
Future Works
44
Future works
Looking ahead, there are several enhancements and new features that could
significantly increase the app's utility, user base, and overall impact in the fintech
sector. Here are some of the envisioned future works and scope expansions for the
project:
11 Fraud Detection: Use machine learning models to detect and alert users and
administrators about unusual transaction patterns that may indicate fraudulent
activity.
● Implement widgets that users can add or remove from their dashboard, such
as currency converters, investment updates, or financial news.
● Insurance and Loans: Expand the app’s capabilities to include services such
as loan applications and management, as well as options to browse and
purchase insurance policies.
4. Multi-platform Accessibility:
● Develop mobile versions of the app for iOS and Android to provide users
with on-the-go access to their financial information and services.
● Ensure the app's responsiveness and functionality across all devices and
platforms, enhancing user engagement through seamless experience
continuity.
45
6. Global Expansion:
● Localize the app for different markets by adding multi-language support and
integrating region-specific financial services and regulations.
● Build an in-app community forum where users can share financial tips, ask
questions, and get advice from financial experts.
8. Sustainable Finance:
● Integrate features that help users invest in green and sustainable projects,
promoting environmentally friendly investment opportunities.
9. API Marketplace:
● Develop an API marketplace for developers to create and sell their own plug-
ins or integrations, expanding the app’s capabilities and customization
options.
46
10 Cryptocurrency Capabilities:
By addressing these areas, Finance Manager can not only enhance its value
proposition but also stay ahead in the competitive fintech market, continually
adapting to user needs and technological advancements. This forward-looking
approach will ensure that Finance Manager remains a relevant and preferred tool in
the landscape of financial [Link] needs for accessibility, security, and user
engagement. By documenting the process, from ideation through development, this
endeavor serves as an instructive exemplar for the development of future fintech
solutions, emphasizing practical implementation of theoretical knowledge and
modern programming paradigms.
47
FINANCE MANAGER
CHAPTER
11
Appendices
48
Appendices
● Tailwind CSS - A utility-first CSS framework for rapidly building custom designs.
● Mongoose - An Object Data Modeling (ODM) library for MongoDB and [Link].
● Plaid API - A financial data aggregation platform that connects bank accounts.
● JWT (JSON Web Tokens) - An open standard for securely transmitting information.
● PCI DSS (Payment Card Industry Data Security Standard) - A security standard for
organizations that handle branded credit cards.
● API (Application Programming Interface) - A set of protocols and tools for building
software applications. • DFD (Data Flow Diagram) - A visual representation of the flow of
data within a system.
49
⮚ List of Abbreviations
The following is a list of abbreviations used throughout the documentation for the Finance
Manager Banking App project:
These abbreviations are used throughout the project documentation to provide concise references
to common technical terms and concepts related to the Finance Manager App.
50
Finance Manager
CHAPTER
12 Bibliography
51
Bibliography
This bibliography provides a comprehensive list of references and resources used in the
development and documentation of the Finance Manager App project, covering the key
technologies, frameworks, and industry standards involved.