BT4071 - PReport - Dr. Bharat Bhushan Naib
BT4071 - PReport - Dr. Bharat Bhushan Naib
BT4071 - PReport - Dr. Bharat Bhushan Naib
A Project Report
on
Cloud based Expense Tracker
Bachelors Of Technology
Submitted By
Asthha Wahal
18SCSE1010407
Muskan Aggarwal
18SCSE1180081
BONAFIDE CERTIFICATE
Certified that this project report titled Daily Cloud based Expense Tracker is the bonafide work
of Muskan Aggarwal(18SCSE1180081) and AsthhaWahal(18SCSE1010407) who carried out the
research under my supervision. Certified further, that to the best of my knowledge the work
reported herein does not form part of any other project report or dissertation on the basis of which
a degree or award was conferred on an earlier occasion on this or any other candidate.
_____________
Dr. T Poongodi
Professor
3
ACKNOWLEDGEMENT
We would like to express our deepest appreciation to all those who provided us the
possibility to complete this report. A special gratitude we give to our professor Dr.
T.Poongodi , whose contribution in stimulating suggestions and encouragement, helped us
to coordinate our project especially in writing this report. Furthermore, we would also like to
acknowledge with much appreciation the crucial role of the staff of Galgotias University,
who gave the permission to use all required equipment and the necessary materials to
complete the task. We are thankful and fortunate enough to get constant support from our
seniors and every teaching staff of B.tech Computer Science and engineering department
which helped us successfully complete our project. We would also like to extend our regards
to all the non-teaching staff of B.tech Computer Science and engineering department for
their timely support. Special thanks go to my team mates, We have to appreciate the
guidance given by other supervisor as well as the panels especially in our project
presentation that has improved our presentation skills thanks to their comment and advices.
Our thanks and appreciations also go to each and every one of our colleagues for their
encouragement and support in developing the project.
4
ABSTRACT
In today’s busy and expensive life we are in a great rush to make money. But at the
end of the month we broke off. As we are unknowingly spending money on little and
unwanted things. So, we have come over with the idea to track our earnings. Cloud
based Expense Tracker aims to help everyone who are planning to know their
expenses and save from it. DET is an android app which users can execute in their
mobile phones and update their daily expenses so that they are well known to their
expenses. Here user can define their own categories for expense type like food,
clothing, rent and bills where they have to enter the money that has been spent and
also can add some information in additional information to specify the expense. User
can also define expense categories. User will be able to see pie chart of expense. Also,
DET app is capable of clustering. Personal and administration clustering is possible
by the use of Apriori algorithm. Although this app is focused on new job holders,
interns and teenagers, everyone who wants to track their expense can use this app.
TABLE OF CONTENTS
BIBLIOGRAPHY ................................................................................................................................. 48
REFRENCES ....................................................................................................................................... 50
7
LIST OF FIGURES
LIST OF TABLES
LIST OF ABBREVIATIONS
Acronyms
B.Tech. Bachelor of Technology
JS JavaScript
HTML Hyper Text Markup Language
CSS Cascading Styling Sheet
CS Computer Science
11
CHAPTER 1
INTRODUCTION
1.1 Background
Expense tracker is a refined system which allows user to efficiently manage his/her
expenses with ease. Tracking expenses daily can really help to us save lot of money.
Once we start off by tracking our expenses each day, we will be able to get a better
idea where you are spending your money, so you stay in control and achieve your
goal. It will be able to generate your expense and saving report as time duration you
selected. There will be a reminder that will help to save money for your pre-defined
expenses.
Explaining about the latest application built in this category, YNAB is an expense
tracker that gives the automatic tracking of our expense through our bank account or
credit cards. We can also define expenses that may take place in future so that we do
12
not go out of bound. This application is mobile friendly and is emerging since 2013.
This application is embedded with AI to define and manage our daily expenses.
This application does not give any detail information about out expenses while our
application will get those information via text and image. Moreover, we will be
working on the GPS tracking of the possible places where user is supposed to expense
his/her amount. This feature is also not included by YNAB.
1.4 Objectives
The objective of this system are:
a) To keep track of daily expenses and budgeting;
b) To save money for pre-defined expenses which will help planning on your
future investments
1.5.2 Limitations
• User have to entry every record manually.
• The category divided may be blunder or messy.
• Person who is handling system must have some technnical knowledge.
1.6 Prerequisite
1.6.1 HARDWARE REQUIREMENTS
This chapter covers all the history, methods, requirement specification and feasibility
analysis and structured system requirements.
Chapter 3:
Design of DET project is explained in detail with all the necessary diagrams and brief
functionality.
Chapter 4:
Process of implementation and testing is described along with all the tools used for
the development.
15
Chapter 5:
Chapter 6 :
CHAPTER 2
6. Calender
The system shall allow users to add the date to their expenses
7. Category
The system shall allow users to add categories of their expenses
Name Description
Initiating actor User
Login to provide identification details and enter
the system
Authentication To validate the details entered by the user
View expenses Provide the updated log of expenses
Add bill To add new expenses
Add image To add image of the bill (optional)
18
Hardware Specification:
• 10 MB memory
Software Specification:
The diagram explains the schedule of the project where the first prototype is
completed in four days while the deadline was of five days. On the same time, other
tasks were also scheduled to the team members where designing of UML diagrams
were carried out in eight days. Further all the designing part were completed as per
schedule which was followed by back end coding and database connection. Side by
side, process of documentation was also carried out until the completion of the
project.
21
Figure 3: ER Diagram
The above diagram explains the relationship between the databases where rectangle
represents entity, oval represents attributes and diamond represents relation. There are
four entities with their respective attributes.
22
The above diagram shows the dfd level-0 where user adds money to the tracking
system. The tracking system update it to the database then data base will retrieve it to
tracking system.After retrieving the system confirms data to the user. The admin
checks system and maintains the system.
The above diagram is for dfd level 1 where we can track data through the processes it
is involving. The process daily expense tracking is further divided as account profile
management and login account management. The user requests queries to the daily
23
expense tracker and gets response from it. The login account checks the
authentication of the user records. The account profile management sends
membership details to the user.
24
CHAPTER 3
3.1 Netbeans
NetBeans IDE is a free and open source integrated development environment for application
development on Windows, Mac, Linux, and Solaris operating systems.
The IDE simplifies the development of web, enterprise, desktop, and mobile applications that use
the Java and HTML5 platforms. The IDE also offers support for the development of PHP and
C/C++ applications.
NetBeans IDE offers first-class tools for Java web, enterprise, desktop, and mobile application
development. It is consistently the first IDE to support the latest versions of the JDK, Java EE,
and JavaFX. It provides smart overviews to help you understand and manage your applications,
including ouf-of-the-box support for popular technologies such as Maven.
With its end-to-end application development features, constantly improving Java Editor, and
continual speed and performance enhancements, NetBeans IDE sets the standard for application
development with cutting edge technologies out of the box.
NetBeans IDE 6.5, released in November 2008, extended the existing Java EE features (including
Java Persistence support, EJB 3 and JAX-WS). Additionally, the NetBeans Enterprise Pack
supports the development of Java EE 5 enterprise applications, including SOA visual design tools,
XML schema tools, web services orchestration (for BPEL), and UML modeling. The NetBeans
IDE Bundle for C/C++ supports C/C++ and FORTRAN development.
3.2 JDBC
JDBC or Java Database Connectivity is a specification from Sun microsystems that provides a
standard abstraction(that is API or Protocol) for java applications to communicate with various
databases. It provides the language with java database connectivity standard. It is used to write
programs required to access databases. JDBC along with the database driver is capable of
accessing databases and spreadsheets. The enterprise data stored in a relational database(RDB)
can be accessed with the help of JDBC APIs.
Enterprise applications that are created using the JAVA EE technology need to interact with
databases to store application-specific information. So, interacting with a database requires
efficient database connectivity which can be achieved by using the ODBC(Open database
connectivity) driver. This driver is used with JDBC to interact or communicate with various
kinds of databases such as Oracle, MS Access, Mysql and SQL server database.
25
3.3 Collections
Any group of individual objects which are represented as a single unit is known as the
collection of the objects. In Java, a separate framework named the “Collection Framework” has
been defined in JDK 1.2 which holds all the collection classes and interface in it.
The Collection interface (java.util.Collection) and Map interface (java.util.Map) are the two
main “root” interfaces of Java collection classes.
A framework is a set of classes and interfaces which provide a ready-made architecture. In
order to implement a new feature or a class, there is no need to define a framework.
However, an optimal object-oriented design always includes a framework with a collection
of classes such that all the classes perform the same kind of task.
Before the Collection Framework(or before JDK 1.2) was introduced, the standard methods for
grouping Java objects (or collections) were Arrays or Vectors, or Hashtables. All of these
collections had no common interface. Therefore, though the main aim of all the collections is
the same, the implementation of all these collections was defined independently and had no
correlation among them.
3.4 OOPS
As the name suggests, Object-Oriented Programming or OOPs refers to languages that uses
objects in programming. Object-oriented programming aims to implement real-world entities
like inheritance, hiding, polymorphism etc in programming. The main aim of OOP is to bind
together the data and the functions that operate on them so that no other part of the code can
access this data except that function.
Let us do discuss pre-requisite by polishing concepts of methods declaration and passing.
Starting off with the method declaration, it consists of six components:
❖ Access Modifier : Defines access type of the method i.e. from where it can be accessed
in your application. In Java, there 4 type of the access specifiers.
❖ public: accessible in all class in your application.
❖ protected: accessible within the package in which it is defined and in
its subclass(es)(including subclasses declared outside the package)
❖ private: accessible only within the class in which it is defined.
❖ default (declared/defined without using any modifier): accessible within same class
and package within which its class is defined.
❖ The return type: The data type of the value returned by the method or void if does not
return a value.
❖ Method Name: the rules for field names apply to method names as well, but the
convention is a little different.
❖ Parameter list: Comma separated list of the input parameters are defined, preceded
with their data type, within the enclosed parenthesis. If there are no parameters, you
must use empty parentheses ().
❖ Exception list: The exceptions you expect by the method can throw, you can specify
these exception(s).
❖ Method body: it is enclosed between braces. The code you need to be executed to
perform your intended operations.
26
A class is a user defined blueprint or prototype from which objects are created. It represents the
set of properties or methods that are common to all objects of one type. In general, class
declarations can include these components, in order:
1. Modifiers: A class can be public or has default access (Refer this for details).
2. Class name: The name should begin with a initial letter (capitalized by convention).
3. Superclass(if any): The name of the class’s parent (superclass), if any, preceded by the
keyword extends. A class can only extend (subclass) one parent.
4. Interfaces(if any): A comma-separated list of interfaces implemented by the class, if
any, preceded by the keyword implements. A class can implement more than one interface.
5. Body: The class body surrounded by braces, { }.
Object is a basic unit of Object Oriented Programming and represents the real life entities. A
typical Java program creates many objects, which as you know, interact by invoking methods.
An object consists of:
1. State : It is represented by attributes of an object. It also reflects the properties of an
object.
2. Behavior : It is represented by methods of an object. It also reflects the response of an
object with other objects.
3. Identity : It gives a unique name to an object and enables one object to interact with
other objects.
4. Method: A method is a collection of statements that perform some specific task and
return result to the caller. A method can perform some specific task without returning
anything. Methods allow us to reuse the code without retyping the code. In Java, every
method must be part of some class which is different from languages like C, C++ and
Python.
Methods are time savers and help us to reuse the code without retyping the code.
3.5 MYSQL
MySQL is an open-source relational database management system (RDBMS). Its name is a combination of
"My", the name of co-founder Michael Widenius's daughter, and "SQL", the abbreviation for Structured Query
Language. A relational database organizes data into one or more data tables in which data types may be related
to each other; these relations help structure the data. SQL is a language programmers use to create, modify and
extract data from the relational database, as well as control user access to the database. In addition to relational
databases and SQL, an RDBMS like MySQL works with an operating system to implement a relational
database in a computer's storage system, manages users, allows for network access and facilitates testing
database integrity and creation of backups.
MySQL is free and open-source software under the terms of the GNU General Public License, and is also
available under a variety of proprietary licenses. MySQL was owned and sponsored by
the Swedish company MySQL AB, which was bought by Sun Microsystems (now Oracle Corporation). In 2010,
when Oracle acquired Sun, Widenius forked the open-source MySQL project to create MariaDB.
MySQL has stand-alone clients that allow users to interact directly with a MySQL database using SQL, but
more often, MySQL is used with other programs to implement applications that need relational database
capability. MySQL is a component of the LAMP web application software stack (and others), which is an
acronym for Linux, Apache, MySQL, Perl/PHP/Python. MySQL is used by many database-driven web
applications, including Drupal, Joomla, phpBB, and WordPress. MySQL is also used by many popular websites.
27
The Java language has undergone several changes since JDK 1.0 as well as numerous additions
of classes and packages to the standard library. Since J2SE 1.4, the evolution of the Java language
has been governed by the Java Community Process (JCP), which uses Java Specification
Requests (JSRs) to propose and specify additions and changes to the Java platform. The language
is specified by the Java Language Specification (JLS); changes to the JLS are managed under JSR
901. In September 2017, Mark Reinhold, chief Architect of the Java Platform, proposed to change
the release train to "one feature release every six months" rather than the then-current two-year
schedule. This proposal took effect for all following versions, and is still the current release
schedule.
In addition to the language changes, other changes have been made to the Java Class Library over
the years, which has grown from a few hundred classes in JDK 1.0 to over three thousand in
J2SE 5. Entire new APIs, such as Swing and Java2D, have been introduced, and many of the
original JDK 1.0 classes and methods have been deprecated. Some programs allow conversion of
Java programs from one version of the Java platform to an older one (for example Java 5.0
backported to 1.4) (see Java backporting tools).
Regarding Oracle Java SE Support Roadmap, version 17, 11 and 8 are the currently
supported long-term support (LTS) versions, where Oracle Customers will receive Oracle Premier
Support. Java 8 LTS last free software public update for commercial use was released by Oracle
in January 2019, while Oracle continues to release no-cost public Java 8 updates for
development and personal use indefinitely. Java 10 a previously supported rapid release version,
had its support ended in September 2018 the same date support for Java 11 began. Java 7 is no
longer publicly supported. For Java 11, long-term support will not be provided by Oracle for the
public; instead, the broader OpenJDK community, as Eclipse Adoptium or others, is expected to
perform the work.
Java is one of the most popular and widely used programming languages.
• Java has been one of the most popular programming languages for many years.
• Java is Object Oriented. However, it is not considered as pure object-oriented as it
provides support for primitive data types (like int, char, etc)
• The Java codes are first compiled into byte code (machine-independent code). Then the
byte code runs on Java Virtual Machine (JVM) regardless of the underlying architecture.
• Java syntax is similar to C/C++. But Java does not provide low-level programming
functionalities like pointers. Also, Java codes are always written in the form of classes and
objects.
• Java is used in all kinds of applications like Mobile Applications (Android is Java-based),
desktop applications, web applications, client-server applications, enterprise applications,
and many more.
• When compared with C++, Java codes are generally more maintainable because Java does
not allow many things which may lead to bad/inefficient programming if used incorrectly.
For example, non-primitives are always references in Java. So we cannot pass large objects
(like we can do in C++) to functions, we always pass references in Java. One more example,
since there are no pointers, bad memory access is also not possible.
• When compared with Python, Java kind of fits between C++ and Python. The programs
are written in Java typically run faster than corresponding Python programs and slower than
C++. Like C++, Java does static type checking, but Python does not.
28
3.8 Cloud
Believe it or not, the modern day idea of “cloud computing” dates back to the 1950s, when large-
scale mainframes were made available to schools and corporations. The mainframe’s colossal
hardware infrastructure was installed in what could be called a “server room” (since the room
would generally only be able to hold a single mainframe). Multiple users were able to access the
mainframe via “dumb terminals”—stations with the sole function of facilitating access to the
mainframes.
Due to the cost of buying and maintaining mainframes, an organization wouldn’t be able to afford
a mainframe for each user. It became practice to allow multiple users to share access to the same
data storage layer and CPU power from any station. By enabling shared mainframe access, an
organization would get a better return on its investment in this sophisticated piece of technology.
Most of the basic functions of any virtualization software that you see nowadays can be traced
back to this early VM OS. Every VM ran custom operating systems or guest operating systems
that had their own memory, CPU, and hard drives, along with CD-ROMs, keyboards, and
networking—despite the fact that those resources were shared. “Virtualization” became a
technology driver, and it became a huge catalyst for some of the biggest evolutions in
communications and computing.
In the 1990s, telecommunications companies that historically only offered single dedicated point-
to-point data connections began offering virtualized private network connections—with the same
service quality as dedicated services at a reduced cost. Rather than building out physical
infrastructure to allow more users to have their own connections, telecommunications companies
provided users with shared access to the same physical infrastructure. This change allowed
telecommunications companies to shift traffic as necessary, leading to better network balance and
more control over bandwidth usage.
29
Meanwhile, virtualization for PC-based systems started in earnest. As the Internet became more
accessible, the next logical step was to take virtualization online. If you were in the market to buy
servers 10 or 20 years ago, you know that the costs of physical hardware—while not at the same
level as the mainframes of the 1950s—were pretty outrageous. As more and more people
expressed the demand to be online, the costs had to come out of the stratosphere and into reality.
One of the ways that happened was through—you guessed it—virtualization. Servers were
virtualized into shared hosting environments, virtual private servers, and virtual dedicated dervers
using the same types of functionality provided by the VM OS in the 1950s.
What did this look like in practice? Let’s say your company required 13 physical systems to run
your sites and applications. With virtualization, you can take those 13 distinct systems and split
them up between two physical nodes. Obviously, this kind of environment saves on infrastructure
costs and minimizes the amount of actual hardware you would need to meet your company’s
needs.
30
CHAPTER 4
SYSTEM DESIGN
Algorithm Used
The Apriori Algorithm is an influential algorithm for mining frequent itemsets for
boolean association rules. Apriori uses a "bottom up" approach, where frequent subsets
are extended one item at a time (a step known as candidate generation, and groups of
candidates are tested against the data. Apriori is designed to operate on database
containing transactions (for example, collections of items bought by customers, or
details of a website frequentation).
There are five tables in our application database which are user, expense, result,
income and daily list. In above diagram the tables covers their respective primary key
and their fields.
application have five entities: expense, user, backup, notification, transaction, which
have their own data members and methods. Above diagram shows the flow of the
functionality from entity to entity. Also, types of data members and methods of
respective entity are mentioned above.
Sequence diagram
Activity Diagram
35
The above diagram shows the major input that this system ‘Daily Expense Tracker’ in
which the input includes username, password, currency, amount, category, date, notes
while the transformation processing includes login authentication, expense tracking,
database update and retrival where as output includes expense and budgeting and
piecharts. The feedback includes performance satisfaction and recommendation.
36
Screenshots of designing
Homepage of application
37
CHAPTER 5
• Expense
• Graph_all
• Graph_all_adapter
• Graph_all_list
• History
• Login
• MainActivity
• Overview
• Overview_list_Adapter
• Overview_ListView
• Piegraph
• Settings
• SignupActivity
• Tab1
• Tab1_Adapter
• Tab1_ListView
• Tab2
• TabHistory_week
• Tab2
• WelcomeScreen
Methods are:
• addData()
• loadListView()
• onCreateOptionsMenu(Menu menu)
• showDate(int year, int month, int day)
• onCreateView()
• queryXData()
• queryYData()
42
5.3 Testing
Testing is the process of evaluation a software item to detect differences between
given input and expected output. Testing is a process that should be done during the
development process.
CHAPTER 6
6.1 Conclusion
After making this application we assure that this application will help its users to
manage the cost of their daily expenditure. It will guide them and aware them about
there daily expenses. It will prove to be helpful for the people who are frustrated with
their daily budget management, irritated because of amount of expenses and wishes to
manage money and to preserve the record of their daily cost which may be useful to
change their way of spending money. In short, this application will help its users to
overcome the wastage of money.
6.2 Recommendation
DET app is usable by anyone who are willing to manage their expenses and aiming to
save for the future investments. This app has no range criteria or any kind of
profession or gender are focused so it will used hugely by any other person.
47
Future Scope
In further days, there will be mails and paymode embedded with the app. Also,
backup details will be recorded on cloud.
48
BIBLIOGRAPHY
REFRENCES
[18] 11) Adnan Saeed, MiadFaezpour IEEE 2009,"Plug and Play Sensor Node for Body Area
Network".
[19] 12) Jamil Y. Khanschool of computer science,Australia, IEEE (09,07, 2009.) "Wireless Body Area
50
[27] 20) Mehmet R. Yuce & Steven W. P. Ng & Naung L. Myo &Jamil Y. Khan &Wentai Liu ,
"Wireless Body Sensor Network Using Medical Implant Band", Received: 10 July 2007/ Accepted:
25 July 2007