0% found this document useful (0 votes)
15 views32 pages

Project

The document describes a proposed expenses tracking application that would use React for the frontend and Firebase for the backend. It outlines some drawbacks of existing solutions like a lack of personalized insights and real-time updates. The proposed system aims to provide a more user-friendly and effective way for users to manage their finances and make informed financial decisions.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views32 pages

Project

The document describes a proposed expenses tracking application that would use React for the frontend and Firebase for the backend. It outlines some drawbacks of existing solutions like a lack of personalized insights and real-time updates. The proposed system aims to provide a more user-friendly and effective way for users to manage their finances and make informed financial decisions.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 32

<PROJECT TITLE>

In Partial fulfillment for the award of the degree of


Bachelor of Digital Cyber Forensic Science
A Project Report
Submitted by
<Student Name>

<Reg.No>
Under the guidance of

<Guide Name> < Guide Degree>


Assistant Professor
Department of Digital Cyber Forensic Science
Rathinam College of Arts and Science, Coimbatore – 21

DEPARTMENT OF DIGITAL CYBER FORENSIC SCIENCE


RATHINAM COLLEGE OF ARTS AND SCIENCE
(AUTONOMOUS)
COIMBATORE – 641 021
APRIL - 2024

1
DECLARATION

This is to certify that the project work entitled “<PROJECT TITLE>” submitted

to Rathinam College of Arts and Science (Autonomous), Coimbatore, in partial fulfillment

of requirement for the award of B.Sc (DIGITAL CYBER FORENSIC SCIENCE) is a record of

original work done by me during the period of study from 2021 to 2024 in Rathinam

College of Arts and Science (Autonomous), Coimbatore.

Signature of the Candidate

<Student Name >

< Reg .No. >

2
RATHINAM COLLEGE OF ARTS AND SCIENCE (AUTONOMOUS)
COIMBATORE – 641021

DEPARTMENT OF DIGITAL CYBER FORENSIC SCIENCE

BONAFIDE CERTIFICATE
This is to certify that this is the Bonafide Project work done by

____________________________ Reg.No. _________________the candidate under my

supervision in partial fulfillment of the requirements for the award degree of

B.Sc. (DIGITAL CYBER FORENSIC SCIENCE ).

Signature of the Guide Signature of the HOD

Place:

Date:

(College Seal)

Submitted for the Viva- Voce Examination held on ___________________

Internal Examiner External Examiner

3
ACKNOWLEDGEMENT

On successful completion for project look back to thank who made in possible. First and
foremost, thank “THE ALMIGHTY” for this blessing on us without which we could have not
successfully our project.

I am extremely grateful to Dr. Madan A Sendhil, M.S.,Ph.D Chairman, Rathinam Group of


Institutions, Coimbatore and Mrs. Shima Sendhil, M.S., Secretary, Rathinam Group of Institutions,
Coimbatore for giving me opportunity to study in this college.

I am extremely grateful to Secretary Dr. R.Manickam, MCA., M.Phil., Ph.D., CEO & Secretary
Rathinam College of Arts and Science, Coimbatore.

I extend deep sense of valuation to Dr. S.Balasubramanian, M.Sc., Ph.D.,(Swiss), PDF(Swiss


& USA)., Principal, Rathinam College of Arts and Science (Autonomous) who has permitted to undergo
the project.

My sincere thanks to Dr.T.VELUMANI M.Sc(CS), B.Ed, M.Phil, MBA(HR), M.Sc(Psy), Ph.D,


Head - Department of Information Technology for his constructive suggestions, advice during the course of
study.

I convey my thanks to the Class Advisor (NAME) who offered their inestimable support given for
completion of the project.

I convey special thanks to Guide <Guide Name>, < Guide Degree> Assistant Professor .
Department of Digital Cyber Forensic Science, Rathinam College of Arts and Science, who offered their
guidance, valuable suggestion, motivations, helped for completion of the project. Also, I extend my thanks
to all the staff members of the department. I dedicated sincere respect to my Parents & Friends for their
moral motivation in completing the project.

<Student Name>
(<Reg.No.>)

4
COMPANY CERTIFICATE

5
Abstract

The Expense Tracker application, created with React and integrate with
Firebase, is a user-friendly and efficient tool designed to help
individuals manage their finances. Users can easily record and
categorize expenses, track income, and visualise their financial data.
Leveraging Reacts interactive features and Firebase's real-time
database capabilities, the app ensures accurate and accessible financial
information. This project aims to provide a simple and effective
solution for users to monitor their expenses, make informed financial
decisions, and achieve better control over their budget, ultimately
improving their financial well-being.

6
TABLEOFCONTENT
CHAPTER PARTICULARS PAGE.NO
1 INTRODUCTION
1.1 PROJECT INTRODUCTION
1.2EXISTINGSYSTEM
1.3DRAWBACKSOFEXISTINGSYSTEM
1.4PROPOSEDSYSTEM
1.5ADVANTAGESOFPROPOSEDSYSTEM
2 SYSTEM SPECIFICATION
2.1HARDWAREREQUIRMENTS
2.2SOFTWAREREQUIRMENTS
3 FEASIBILTY STUDY
3.1TECHNICALFEASIBILTY
3.2BEHAVIORALFEASIBILTY
3.3ECONOMICALFEASIBILTY
3.4OPERATIONALFEASIBILTY
4 LANGUAGE SPECIFICATION
4.1OVERVIEWOF WINDOWS 11
4.2OVERVIEWOFFRONT-ENDTOOL
4.3OVERVIEWOFBACK-ENDTOOL
5 SYSTEM DESIGN
5.1FILEDESIGN
5.2INPUTDESIGN
5.3OUTPUTDESIGN
5.4DATABASEDESIGN
5.5CODEDESIGN
6 MODULES
7 DATAFLOWDIAGRAM
8 ER DIAGRAM
9 SYSTEM TESTING AND MAINTENANCE
10 SYSTEM IMPLEMENTATION
11 CONCLUSION& FUTURE ENHANCEMENT
12 TABLE DESIGN
13 SAMPLE CODING
14 SAMPLE OUTPUT

7
1. Introduction
1.1 Project Introduction

This project proposes the development of an Expenses Tracker application using React for
the frontend and Firebase for the backend. The application aims to provide users with a
convenient and intuitive platform to track their expenses, categorize transactions, and
visualize spending patterns. Leveraging React's component-based architecture, the frontend
will offer a responsive and interactive user interface for seamless navigation and data input.
Firebase will be utilized to store user data securely, enabling real-time synchronization
across devices and easy scalability. The Expenses Tracker will empower users to manage
their finances effectively, offering features such as expense categorization, budget setting,
and insightful data analytics. By combining the power of React and Firebase, this project
aims to deliver a robust and user-friendly solution for tracking and analyzing expenses. The
expenses Tracker application, create with react and integrated with Firebase is a user-
Friendly and efficient tool designed to help individuals Manage their finances. Users can
easily record and categorize expenses Track income, and visualize their financial data.
Leveraging reacts interactive Features and Firebase's real-time database capabilities, the app
ensures Accurate and accessible financial information this project aims to provide a Simple
and effective solution for users to monitor their expenses, make informed to monitor their
expenses, make informed.

1.2 Existing System

Currently, there are numerous expense tracking applications available, each with varying
levels of functionality and user experience. These existing systems may range from basic
spreadsheet-based solutions to more sophisticated applications with advanced features like
budgeting tools, expense categorization, and data visualization. However, some of these
systems may lack real-time data updates, user-friendly interfaces, or seamless integration
with cloud services for data storage and synchronizing.

1.3 Drawback of Existing system

One drawback of existing expense tracking applications is their lack of personalized financial
insights. While many apps offer basic expense categorization and budgeting tools, they often
fail to provide personalized recommendations or insights based on a user's spending habits and
financial goals.

Without personalized insights, users may struggle to identify areas where they can improve their
financial management or optimize their spending. For example, a user might not realize that
they're overspending on dining out until they see a breakdown of their expenses relative to their
8
income or budget.

Additionally, without real-time data updates and analysis, users may not have an accurate
understanding of their current financial situation. For example, if an expense tracking app
doesn't sync transactions in real-time or provide timely notifications for upcoming bills, users
may inadvertently overspend or miss important financial deadlines.

Overall, the lack of personalized financial insights and real-time data updates can limit the
effectiveness of expense tracking applications and hinder users' ability to make informed
financial decisions.

1.4 Proposed system

The proposed Expense Tracker application, created with React and integrated with Firebase,
aims to enhance the existing landscape of expense tracking solutions by providing a user-
friendly and efficient tool for managing finances. Leveraging React's interactive features and
Firebase's real-time database capabilities, the proposed system will offer features such as
expense recording, categorization, income tracking, and visualization of financial data. The
system will prioritize simplicity and accessibility, ensuring that users can easily monitor their
expenses, make informed financial decisions, and gain better control over their budget. 2
Additionally, the integration with Firebase will enable seamless synchronization of financial
data across devices, providing users with access to accurate and up-to-date information at all
times. With a focus on improving users' financial well-being, the proposed system aims to
provide a simple yet effective solution for managing expenses and achieving financial goals.

1.5 Advantage of Proposed System

One advantage of the proposed Expense Tracker application is its seamless synchronization
across devices, enabled by Firebase integration. This ensures that users have access to their
financial data anytime, anywhere, allowing for better decision-making and budget management.
Additionally, the real-time database capabilities of Firebase provide users with up-to-date
information, enhancing accuracy and reliability. The user-friendly interface and interactive
features offered by React make expense tracking intuitive and efficient, enhancing the overall
user experience. Furthermore, the system's focus on simplicity and accessibility ensures that
users of all skill levels can easily monitor expenses and work towards achieving their financial
goals.

9
2. SYSTEM SPECIFICATION

2.1. HARDWARE REQUIRMENTS

 System: Lenovo
 Hard Disk: 2.50 GHz
 RAM: 4 GB

2.2. SOFTWARE REQUIRMENTS

 Front End: React js


 Back End: Javascript and node js
 Database: Firebase database

10
3. FEASIBILTY STUDY

The feasibility of the project is analyzed in this phase and the business proposal is put forth
with a very general plan for the project and some cost estimates. During system analysis, the
feasibility study of the proposed system is to be carried out. This is to ensure that the proposed
system is not a burden to the company. For feasibility analysis, some understanding of the major
requirements for the system is essential. The feasibility study investigates the problem and the
information needs of the stake holders. It seeks to determine the resources required to provide an
information systems solution, the cost and benefits of such a solution, and the feasibility of such a
solution. The analyst conducting the study gathers information using a variety of methods, the most
popular, which of are:

• Interviewing users, employees, managers, and customers.


• Developing and administering questionnaires to interested stakeholders, such as potential users of the
information system.
• Observing or monitoring users of the current system to determine their Needs as well as their
satisfaction and dissatisfaction with the current system.
• Collecting, examining, and analyzing documents, reports, layouts, procedures, manuals, and any
other documentation relating to the operations of the current
system.
• Modeling, observing, and simulating the work activities of the current system. The goal of the
feasibility study is to consider alternative information systems solutions, Evaluate their feasibility, and
propose the alternative most suitable to the organization. The feasibility of a proposed solution is
evaluated in terms of its components.
These components are:
 Technical feasibility
 Behavioral feasibility
 Economic feasibility
 Operational feasibility

3.1. TECHNICAL FEASIBILTY

This study is carried out to check the technical feasibility, that is, the technical requirements of
the system. Any system developed must not have a high demand on the available.
Technical resources. This will lead to high demands on the available technical resources. This will
lead to high demands being placed on the client. The developed system must have a modest
requirement, as only minimal or null changes are required for implementing this system.

11
3.2 BEHAVIORAL FEASIBILTY

The behavioral feasibility of the proposed Expense Tracker application is promising, as it


prioritizes simplicity and accessibility, catering to users of varying skill levels. By offering intuitive
interfaces and interactive features, the system encourages user engagement and adoption. Additionally,
the focus on enhancing financial well-being aligns with users' motivations for better budget
management, increasing the likelihood of sustained usage and positive behavioral outcomes.

3.3 ECONOMICAL FEASIBILTY


This study is carried out to check the economic impact that the system will have on the
organization. The amount of funds that the company can pour into the research and
development of the system is limited. The expenditures must be justified. Thus the developed
system as well within the budget and this was achieved because most of the technologies used
are freely available. Only the customized products had to be purchased.

3.4 OPERATIONAL FEASIBILTY


The ability, desire, and willingness of the stakeholders to use, support, and operate the
proposed computer information system. The stakeholders include management, employees, customers,
and suppliers. The stakeholders are interested in systems that are easy to operate, make few, if any,
errors, produce the desired information, and fall within the objectives of the organization.

12
4. LANGUAGE SPECIFICATION

4.1. OVERVIEW OF WINDOWS 11

As of my last update in January 2022, Windows 11 was released by Microsoft as the latest version
of its operating system. Here's a brief overview of Windows 11:

1. Redesigned User Interface: Windows 11 introduces a modernized and streamlined user interface
compared to its predecessor, Windows 10. It features centered taskbar icons, rounded corners,
and a new Start Menu design, providing a more visually appealing and cohesive experience.

2. Snap Layouts and Snap Groups: Windows 11 enhances multitasking with Snap Layouts and
Snap Groups, allowing users to easily organize and arrange multiple windows on the screen for
improved productivity. These features make it simple to snap windows into predefined layouts
or create custom snap groups.

3. Microsoft Store Overhaul: The Microsoft Store in Windows 11 underwent a significant overhaul,
offering a refreshed interface and a wider range of apps, including support for both traditional
Win32 apps and modern Universal Windows Platform (UWP) apps. Additionally, Android apps
are now available through the Microsoft Store, allowing users to access a broader selection of
applications.

4. Integration with Microsoft Teams: Windows 11 integrates Microsoft Teams directly into the
taskbar, enabling seamless communication and collaboration with colleagues, friends, and
family. Users can quickly start video calls, chat, and share content without the need to open a
separate application.

5. Gaming Enhancements: Windows 11 brings several gaming enhancements, including support for
DirectX 12 Ultimate, Auto HDR, and Direct Storage technology, all aimed at delivering a more
immersive gaming experience with improved graphics and faster load times.

6. Enhanced Performance and Security: Windows 11 introduces various performance


improvements and security features, such as faster startup times, improved energy efficiency,
and enhanced protection against malware and cyber threats.

7. Compatibility Requirements: Windows 11 comes with updated hardware requirements compared


to Windows 10, necessitating certain modern hardware features like Secure Boot and TPM 2.0
for installation. Microsoft has provided a PC Health Check tool to help users determine if their
system is compatible with Windows 11.

13
4.2. OVERVIEW OF FRONT-ENDTOOL

Reacts

React.js, often referred to simply as React, is an open-source JavaScript library maintained by


Facebook and a community of developers. It is widely used for building user interfaces (UIs) for web
applications, particularly single-page applications (SPAs). React allows developers to create reusable
UI components that manage their own state, making it easier to build complex UIs by composing
smaller, self-contained components.

Key features of React.js include:

1. Component-Based Architecture: React encourages the creation of reusable UI components, each


encapsulating a piece of the user interface and its behavior. These components can be composed
together to build complex UIs.

2. Virtual DOM: React uses a virtual DOM (Document Object Model) to efficiently update the UI.
Instead of directly manipulating the browser's DOM, React creates a lightweight virtual representation
of the DOM in memory, makes changes to it, and then efficiently updates the actual DOM only where
necessary.

3. Declarative Syntax: React utilizes a declarative syntax, allowing developers to describe the desired
UI state, and React takes care of updating the DOM to match that state. This makes it easier to
understand and maintain code compared to imperative approaches.

4. JSX (JavaScript XML): React introduces JSX, a syntax extension that allows developers to write
HTML-like code within JavaScript. JSX makes it easier to write and understand the structure of UI
components.

14
5.Unidirectional Data Flow: React follows a unidirectional data flow model, where data flows
downwards from parent components to child components. This helps maintain the predictability of the
application's state and makes it easier to debug.

6.React Hooks:Introduced in React 16.8, hooks are functions that allow developers to use state and
other React features in functional components, which were previously only available in class
components. Hooks provide a simpler and more composable way to work with state and side effects.

4.3. OVERVIEW OF BACK-ENDTOOL

About NodeJs

Node.js is a powerful, open-source, cross-platform JavaScript runtime environment built on Chrome's


V8 JavaScript engine. It allows developers to execute JavaScript code server-side, enabling the
development of scalable and high-performance network applications. Here's a detailed explanation of
various aspects of Node.js:

1. **JavaScript Runtime**: Node.js provides an environment for executing JavaScript code outside
the web browser. This means that developers can run JavaScript code on the server, allowing for
server-side scripting and building diverse types of applications.

2. **Event-Driven Architecture**: Node.js follows an event-driven, non-blocking I/O model, which


makes it lightweight and efficient for handling concurrent operations. It uses asynchronous
programming techniques, such as callbacks, Promises, and async/await, to manage I/O operations
without blocking the execution of other code.

3. **Libraries and Modules**: Node.js comes with a rich ecosystem of built-in modules and libraries
that simplify common tasks in web development, such as HTTP servers, file system operations,
networking, and data streams. Additionally, developers can leverage npm (Node Package Manager) to
access a vast repository of third-party modules and libraries, enabling rapid development and code
reuse.

15
4. **Scalability and Performance**: Due to its non-blocking I/O model and event-driven architecture,
Node.js is highly scalable and performs well under heavy loads. It can handle a large number of
concurrent connections efficiently, making it suitable for building real-time applications,
microservices, APIs, and streaming applications.

5. **Cross-Platform Compatibility**: Node.js is cross-platform, meaning it can run on various


operating systems, including Windows, macOS, and Linux, making it flexible for development and
deployment across different environments.

6. **Server-Side Development**: Node.js is commonly used for server-side development, allowing


developers to build web servers, RESTful APIs, web applications, and backend services using
JavaScript. Popular frameworks and libraries such as Express.js, Koa.js, and NestJS provide additional
abstractions and utilities for building web applications with Node.js.

7. **Community Support and Ecosystem**: Node.js has a vibrant and active community of developers
contributing to its ecosystem. This community-driven approach fosters innovation, provides support,
and continuously evolves the platform with new features, improvements, and best practices.

Firebase:

Firebase is a Backend-as-a-Service (Baas). It provides developers with a variety of tools and


services to help them develop quality apps, grow their user base, and earn profit. It is built on Google’s
infrastructure.Firebase is categorized as a NoSQL database program, which stores data in JSON-like
documents.

Google Firebase is a Google-backed application development software that enables developers to


develop iOS, Android and Web apps. Firebase provides tools for tracking analytics, reporting and
fixing app crashes, creating marketing and product experiment.
Firebase offers a number of services, including:

 Analytics – Google Analytics for Firebase offers free, unlimited reporting on as many as 500
separate events. Analytics presents data about user behavior in iOS and Android apps,
enabling better decision-making about improving performance and app marketing.
 Authentication – Firebase Authentication makes it easy for developers to build secure
authentication systems and enhances the sign-in and onboarding experience for users. This
feature offers a complete identity solution, supporting email and password accounts, phone
auth, as well as Google, Facebook, GitHub, Twitter login and more.
 Cloud messaging – Firebase Cloud Messaging (FCM) is a cross-platform messaging tool that
lets companies reliably receive and deliver messages on iOS, Android and the web at no
cost.
16
 Realtime database – the Firebase Realtime Database is a cloud-hosted NoSQL database that
enables data to be stored and synced between users in real time. The data is synced across all
clients in real time and is still available when an app goes offline.
 Crashlytics – Firebase Crashlytics is a real-time crash reporter that helps developers track,
prioritize and fix stability issues that reduce the quality of their apps. With crashlytics,
developers spend less time organizing and troubleshooting crashes and more time building
features for their apps.
 Performance – Firebase Performance Monitoring service gives developers insight into the
performance characteristics of their iOS and Android apps to help them determine where and
when the performance of their apps can be improved.
 Test lab – Firebase Test Lab is a cloud-based app-testing infrastructure. With one operation,
developers can test their iOS or Android apps across a variety of devices and device
configurations. They can see the results, including videos, screenshots and logs, in the
Firebase console.

Use cases
Firebase use cases include:

 Create onboarding flows – developers can give users a quick, intuitive sign-in process using
Firebase Authentication. They allow users to sign into their apps via their Google, Twitter,
Facebook or GitHub accounts in less than five minutes. Developers can also track each step
of their onboarding flows to enhance the user experience. Additionally, developers can use
Google Analytics for Firebase to log events at each step of their onboarding flows, create
funnels to determine where users are dropping off and use remote configuration to make
changes to their apps to see how those changes affect conversions.
 Customize a “welcome back” screen – developers can use personalization to give every user
the best experience by customizing the initial screen based on a user’s preferences, usage
history, location or language. Developers can define audiences based, in part, on user
behaviors and show targeted content to each audience.Progressively roll out new features –
developers can launch new features with minimal risk by first testing those features on a few
users to see how they work and how users respond. Then, when developers are satisfied, they
can roll out their apps to the rest of their users.

Key Features

17
1. Authentication
It supports authentication using passwords, phone numbers, Google, Facebook, Twitter, and more. The
Firebase Authentication (SDK) can be used to manually integrate one or more sign-in methods into an
app.

2. Realtime database
Data is synced across all clients in realtime and remains available even when an app goes offline.

3. Hosting
Firebase Hosting provides fast hosting for a web app; content is cached into content delivery networks
worldwide.

4. Test lab
The application is tested on virtual and physical devices located in Google’s data centers.

5. Notifications
Notifications can be sent with firebase with no additional coding

Build Better Applications


This feature mainly includes backend services that help developers to build and manage their
applications in a better way. Services included under this feature are :
Realtime Database: The Firebase Realtime Database is a cloud-based NoSQL database that manages
your data at the blazing speed of milliseconds. In simplest term, it can be considered as a big JSON
file.
Cloud Firestore: The cloud Firestore is a NoSQL document database that provides services like store,
sync, and query through the application on a global scale. It stores data in the form of objects also
known as Documents. It has key-value pair and can store all kinds of data like, strings, binary data,
and even JSON trees.
Authentication: Firebase Authentication service provides easy to use UI libraries and SDKs to
authenticate users to your app. It reduces the manpower and effort required to develop and maintain
the user authentication service. It even handles tasks like merging accounts, which if done manually
can be hectic.
Remote Config: The remote configuration service helps in publishing updates to the user
immediately. The changes can range from changing components of the UI to changing the behavior of
the applications. These are often used while publishing seasonal offers and contents to the application
that has a limited life.
Hosting: Firebase provides hosting of applications with speed and security. It can be used to host Stati
or Dynamic websites and microservices. It has the capability of hosting an application with a single
command.
Firebase Cloud Messaging(FCM): The FCM service provides a connection between the server and
18
the application end users, which can be used to receive and send messages and notifications. These
connections are reliable and battery-efficient.
Pros and Cons of Using Firebase:
Below listed are the advantages and disadvantages of using a Firebase backend:

Pros:

 Free plans for beginners.


 Real-time database is available.
 Growing Community.
 Numerous services are available.

19
Realtime Instead of typical HTTP requests, the Firebase Realtime Database uses data
synchronization—every time data changes, any connected device receives that
update within milliseconds. Provide collaborative and immersive experiences
without thinking about networking code.

Offline Firebase apps remain responsive even when offline because the Firebase
Realtime Database SDK persists your data to disk. Once connectivity is
reestablished, the client device receives any changes it missed, synchronizing
it with the current server state.

Accessible The Firebase Realtime Database can be accessed directly from a mobile
from Client device or web browser; there’s no need for an application server. Security and
Devices data validation are available through the Firebase Realtime Database Security
Rules, expression-based rules that are executed when data is read or written.

Scale across With Firebase Realtime Database on the Blaze pricing plan, you can support
multiple your app's data needs at scale by splitting your data across multiple database
databases instances in the same Firebase project. Streamline authentication with Firebase
Authentication on your project and authenticate users across your database
instances. Control access to the data in each database with custom Firebase
Realtime Database Rules for each database instance.

Cons:

 It uses NoSQL so, people migrating from SQL might feel difficulty.
 It is still growing so, it is not tested to an extent.

20
Key capabilities

What is Firebase and how it works


The Firebase Realtime Database lets you build rich, collaborative applications by allowing secure
access to the database directly from client-side code. Data is persisted locally, and even while offline,
realtime events continue to fire, giving the end user a responsive experience. When the device regains
connection, the Realtime Database synchronizes the local data changes with the remote updates that
occurred while the client was offline, merging any conflicts automatically.
The Realtime Database provides a flexible, expression-based rules language, called Firebase Realtime
Database Security Rules, to define how your data should be structured and when data can be read from
or written to. When integrated with Firebase Authentication, developers can define who has access to
what data, and how they can access it.
The Realtime Database is a NoSQL database and as such has different optimizations and functionality
compared to a relational database. The Realtime Database API is designed to only allow operations
that can be executed quickly. This enables you to build a great realtime experience that can serve
millions of users without compromising on responsiveness. Because of this, it is important to think
about how users need to access your data and then structure it accordingly

History

Firebase evolved from Envolve, a prior startup founded by James Tamplin and Andrew Lee in
2011. Envolve provided developers with an API that enables the integration of online chat
functionality into their websites. After releasing the chat service, Tamplin and Lee found that it was
being used to pass application data that were not chat messages. Developers were using Envolve to
sync application data such as the game state in real time across their users. Tamplin and Lee
decided to separate the chat system and the real-time architecture that powered it. They founded
Firebase as a separate company in 2011 and it launched to the public in April 2012.
Firebase's first product was the Firebase Realtime Database, an API that synchronizes application
data across iOS, Android, and Web devices, and stores it on Firebase's cloud. The product assists
software developers in building real-time, collaborative applications.

In May 2012, a month after the beta launch, Firebase raised $1.1 million in seed funding from
venture capitalists Flybridge Capital Partners, Greylock Partners, Founder Collective. In June 2013,
the company further raised $5.6 million in Series a funding from Union Square Ventures and
21
Flybridge Capital Partners.
In 2014, Firebase launched two products: Firebase Hosting and Firebase Authentication. This
positioned the company as a mobile backend as a service
In October 2014, Firebase was acquired by Google. A year later, in October 2015, Google acquired
Divshot, an HTML5 web-hosting platform, to merge it with the Firebase team.
In May 2016, at Google I/O, the company's annual developer conference, Firebase introduced
Firebase Analytics and announced that it was expanding its services to become a unified backend-
as-a-service (BaaS) platform for mobile developers. Firebase now integrates with various other
Google services, including Google Cloud Platform, AdMob, and Google Ads to offer broader
products and scale for developers. Google Cloud Messaging, the Google service to send push
notifications to Android devices, was superseded by a Firebase product, Firebase Cloud Messaging,
which added the functionality to deliver push notifications to both iOS and web devices.
In July 2016, Google announced that it was acquiring the mobile developer platform LaunchKit,
which specialized in app developer marketing, and would be folding it into the Firebase Growth
Tools team. In January 2017, Google acquired Fabric and Crashlytics from Twitter to add those
services to Firebase.In October 2017, Firebase launched Cloud Firestore, a real-time document
database as the successor product to the original Firebase Realtime Database.

5. SYSTEM DESIGN

5.1. FILE DESIGN

File design refers to the organization and structuring of data within a computer system. It
involves determining how data will be stored, accessed, and manipulated to meet the requirements of
an application or system. In essence, file design encompasses decisions regarding file formats, naming
conventions, directory structures, and access permissions. A well-thought-out file design is crucial for
efficient data management, ensuring data integrity, security, and scalability. Additionally, it should
consider factors such as ease of maintenance, backup strategies, and compatibility with other systems
or software. Overall, a systematic approach to file design is essential for optimizing data storage and
retrieval processes within a computer system.

5.2. INPUT DESIGN

The necessity for the success of a project is the input design. Input design is the process of
converting user-originated inputs into machine-readable form. Input specification describes the
way in which the data is arranged to enter into the system for processing.
The goal of input design is to make data entry easier, logical, and error free. The decisions
made during the input design are:
22
• To provide cost-effective methods of input
• To achieve the highest possible level of accuracy to ensure that input is understood by the user
The most important aspect concerned with input design is that the data must be correct. For this
input, validation must be performed. Validations are done in the testing phase of the project.
The input screen is in such a way that it is user-friendly and easy to use. The input actions
performed in this project are preprocessing for checking the delimiters and new file uploading
is given as input in this application

5.3. OUTPUT DESIGN

Output design produces the hardcopy regarding the information requested or displays the
output in a predefined format. In a web-based application hard copy reports are not mostly
generated. Only the user can view the needed information. It is the direct source of information
to the end user. Efficient and intelligible outputs improve the system’s relationships with the
users and help in decision and design making.
The nature of processing and procedure related to the system were classified and gives the
output results. Output from the computer storage is required primarily to communicate the
result of processing to the users and provide a permanent copy of the result for later reference.

The outputs generated are similarity record already available and confirms whether the users to
take duplicates or not. The existing record with the attributes is listed to avoid duplication and
memory wastage.

5.4. DATABASE DESIGN

Store and sync data with our NoSQL cloud database. Data is synced across all clients in realtime
and remains available when your app goes offline. The Firebase Realtime Database is a cloud-hosted
database. Data is stored as JSON and synchronized in realtime to every connected client. When you
build cross-platform apps with our Apple platforms, Android, and JavaScript SDKs, all of your clients
share one Realtime Database instance and automatically receive updates with the newest data.

5.5. CODE DESIGN

Code design involves structuring and organizing software code to achieve clarity, maintainability,
and efficiency. It encompasses decisions regarding the architecture, modules, functions, classes, and
their interactions within a software system. Good code design follows principles such as modularity,
encapsulation, abstraction, and separation of concerns to promote code reusability and readability.
Additionally, it involves the use of design patterns and coding standards to ensure consistency and
quality across the codebase. A well-designed codebase facilitates collaboration among developers,
simplifies debugging and testing, and enables future enhancements and scalability of the software
application.

23
6. MODULES

1. Signup
2. Login
3. Add Transaction
4. View Dashboard

Module description:

 Signup: This feature allows users to create a new account by providing necessary details such
as username, email, and password, enabling them to access the application's functionalities and
securely store their data.

 Login: Users who already have accounts can log in using their credentials (username/email and
password) to access their personalized dashboard and interact with their financial data securely.

 Add Transaction: With this feature, users can record their financial transactions by entering
details such as transaction amount, category, and description, facilitating accurate tracking of
income and expenses within the application.

24
 View Dashboard: The dashboard provides users with an overview of their financial data,
including charts, graphs, and summaries of their transactions, enabling them to analyze their
spending patterns, track their financial goals, and make informed decisions about their finances.

7. DATA FLOW DIAGRAM

25
26
8. SYSTEM TESTING AND MAINTENANCE

8.1. System Testing

Introduction

The most important phase in system development life cycle is system testing. The number
and nature of errors in a newly designed system depends on the system specifications and
the time frame given for the design.
A newly designed system should have all the subsystems working together, but in reality,
each subsystems work independently. During this phase, all the subsystems are gathered
into one pool and tested to determine whether it meets the user requirements.
Testing is done at two level -Testing of individual modules and testing the entire system.
During the system testing, the system is used experimentally to ensure that the software will
run according to the specifications and in the way the user expects. Each test case is
designed with the intent of finding errors in the way the system will process it.
Testing plays a very critical role in determining the reliability and efficiency of software
and hence is a very important stage in software development. Software testing is done at
different levels. They are the unit testing and system testing which comprises of integration
testing and acceptance testing.

Types of Testing

8.2. Unit Testing


27
This is the first level of testing. The different modules are tested against the specifications
produced during the integration. This is done to test the internal logic of each module.
Those resulting from the interaction between modules are initially avoided. The input
received and output generated are also tested to see whether it falls in the expected range of
values. Unit testing is performed from the bottom up, starting with the smallest and lowest
modules and proceeding one at a time.
The units in a system are the modules and routines that are assembled and integrated to
perform a specific function. The programs are tested for the correctness of logic applied and
the detection of errors in coding. Each of the modules was tested and errors are rectified.
They were then found to function properly.

8.3. Integration Testing

In integration testing, the tested modules are combined into sub-systems, which are then
tested. The goal of integration testing to check whether the modules can be integrated
properly emphasizing the interfaces between modules. The different modules were linked
together, and integration testing is done on them.

8.4. Validation Testing

The objective of the validation test is to tell the user about the validity and reliability of
the system. It verifies whether the system operates as specified and whether the integrity
of important data is maintained. User motivation is very important for the successful
performance of the system.
All the modules were tested individually using both test data and live data. After each
module was ascertained that it was working correctly, and it had been "integrated" with
the system. Again, the system was tested as a whole. We hold the system tested with
different types of users. The System Design, Data Flow Diagrams, procedures etc. were
well documented so that the system can be easily maintained and upgraded by any
computer professional at a later.

8.5. System Testing

The integration of each module in the system is checked during this level of testing. The
objective of system testing is to check if the software meets its requirements. System
testing done to uncover errors that were not found in earlier tests. This includes forced
system failures and validation of the total system as the user in the operational
environment implements it. Under this testing, low volumes of transactions are
generally based on live data. This volume is increased until the maximum level for each
transactions type is reached. The total system is also tested for recovery after various
28
major failures to ensure that no data are lost during the breakdown.

9. SYSTEM IMPLEMENTATION

Implementation is the process that actually yields the lowest-level system elements in the
system hierarchy (system breakdown structure). The system elements are made, bought,
or reused. Production involves the hardware fabrication processes of forming, removing,
joining, and finishing; or the software realization processes of coding and testing; or the
operational procedures development processes for operators' roles. If implementation
involves a production process, a manufacturing system which uses the established technical
and management processes may be required.
The purpose of the implementation process is to design and create (or fabricate) a
system element conforming to that element’s design properties and/or requirements. The
element is constructed employing appropriate technologies and industry practices. This
process bridges the system definition processes and the integration process.
System Implementation is the stage in the project where the theoretical design is turned into
a working system. The most critical stage is achieving a successful system and in giving
confidence on the new system for the user that it will work efficiently and effectively. The
existing system was long time process.
The proposed system was developed using .Net The existing system caused long time
transmission process but the system developed now has a very good user-friendly tool,
which has a menu-based interface, graphical interface for the end user. After coding and
testing, the project is to be installed on the necessary system. The executable file is to be
created and loaded in the system. Again the code is tested in the installed system. Installing
29
the developed code in system in the form of executable file is implementation.

10. CONCLUSION AND FURTHER ENHANCEMENT

Conclusion:

In conclusion, the Expense Tracker application developed with React and Firebase offers users a
seamless and intuitive platform to manage their finances effectively. By leveraging the interactive
features of React and the real-time database capabilities of Firebase, the app provides users with
accurate and accessible financial information. With the ability to record expenses, track income,
and visualize financial data, users can make informed decisions and gain better control over their
budget, ultimately enhancing their financial well-being. This project not only demonstrates the
power of modern web technologies but also serves as a valuable tool for individuals seeking to
improve their financial management skills.

Future Enhancement:
In future iterations of the Expense Tracker application, we envision implementing advanced
analytics and machine learning features to provide users with deeper insights into their spending
habits and financial trends. By leveraging machine learning algorithms, the app can analyze
historical spending data to identify patterns and anomalies, offering personalized recommendations
for budget optimization and savings goals. Additionally, integrating predictive analytics capabilities
can help users forecast future expenses based on past trends, enabling proactive financial planning
and decision-making. Furthermore, enhancing the user interface with data visualization tools such
30
as interactive charts and graphs will make it easier for users to interpret their financial data and
track progress towards their financial goals. These enhancements aim to empower users with
actionable insights and personalized recommendations, ultimately facilitating better financial
management and improving overall financial well-being.

12. SAMPLE OUTPUT

31
32

You might also like