ANDROID APPLICATION FOR EFFECTIVE
EXPENSE MANAGER (CASHITY)
A CREATIVE AND INNOVATIVE PROJECT REPORT
Submitted by
R.PRIYADARSHINI (1515102088)
COMPUTER SCIENCE ENGINEERING
SONA COLLEGE OF TECHNOLOGY
ANNA UNIVERSITY: CHENNAI 600 025
APRIL 2018
ANNA UNIVERSITY: CHENNAI – 600 025
BONAFIDE CERTIFICATE
Certified that this project report “ANDROID APPLICATION FOR EFFECTIVE
EXPENSE MANAGER(CASHITY)” the bonafide work of “R.PRIYADARSHINI
(1515102088), R.SOWDESWARI (1515102108)” who carried out the creative and
innovative project work under my supervision.
SIGNATURE SIGNATURE
Dr.B.SATHIYABHAMA M.Tech, Ph.D., Dr.S.ANITHA ELAVARASI M.E, Ph.D.,
HEAD OF THE DEPARTMENT CO-ORDINATOR
Professor Assistant Professor
Department of Computer Science Department of Computer Science
and Engineering and Engineering
Sona college of Technology Sona college of Technology
Salem. Salem.
—————————- —————————-
Internal Examiner External Examiner
INDEX
CHAPTER NO. TITLE PAGE NO.
ABSTRACT I
LIST OF FIGURES II
LIST OF ABBREVIATIONS III
1. INTRODUCTION 1
1.1 MOTIVATION 1
1.2 BACKGROUND 1
1.3 ANDROID 2
o 1.3.1 FEATURES 2
o 1.3.2 ANDROID ARCHITECTURE 3
o 1.3.3 APPLICATION 4
o 1.3.4 MERITS AND DEMERITS 5
1.4 OBJECTIVE 5
2. LITERATURE REVIEW 6
2.1 EXISTING SYSTEM 6
2.2 KEY TERMS OF ANDROID STUDIO 7
3. SYSTEM ANALYSIS 9
3.1 NEED FOR THE PROPOSED SYSTEM 9
3.2 OPERATING ENVIRONMENT 9
o 3.2.1 MODULE DESCRIPTION 9
o 3.2.2 SOFTWARE REQUIREMENTS 10
o 3.2.3 HARDWARE REQUIREMENTS 11
o 3.2.4 CONSTRAINTS, ASSUMPTIONS
AND DEPENDENCIES 11
1
CHAPTER NO. TITLE PAGE NO.
4. PROPOSED SYSTEM DESIGN 12
4.1 PROPOSED SYSTEM 12
4.2 SYSTEM ARCHITECTURE 14
4.3 ENTITY RELATIONSHIP DIAGRAM 15
4.4 DATAFLOW DIAGRAM 16
4.5 USE-CASE DIAGRAM 17
5. CONCLUSION 18
APPENDIX IV
i. SCREEN SHOTS V
ii. SAMPLE CODE X
iii. REFERENCES XIV
ABSTRACT
Daily Expenditure management for an individual is an essential activity in their fast
moving life. This android application named as “CASHITY” is used to manage the user‘s daily
expenses in a more efficient and manageable way. By using this application it can reduce the
manual calculations for their daily expenses and keep the track of the expenditure. This
application allows users to maintain a digital automated diary. It takes income from user and
divides in daily expense allowance. Financial management and internal control should be
understood, established, organised and implemented properly for a successful management. This
acts as a main concept of the application. The objective of financial management is to help users
to make sensible investment and financing decisions in the future. This concept acknowledges that
financial theory teaches that investment and financing decisions should be based on cash flow and
risk. It provides information on payback period, return on capital employed, earnings per share
effect, working capital, profit planning, standard costing, financial statement planning and ratio
analysis. It seeks to combine the practical rules of thumb of the traditionalists with the ideas of the
financial theorists to form a balanced approach to practical financial management for MBA
students, financial managers and undergraduates.
1
LIST OF FIGURES
TABLE NO TITLE PAGE NO
1.1 ANDROID ARCHITECTURE 3
4.1 SYSTEM ARCHITECTURE 14
4.2 ENTITY RELATIONSHIP DIAGRAM 15
4.3 DATAFLOW DIAGRAM 16
4.4 USE-CASE DIAGRAM 17
LIST OF ABBREVIATIONS
FIGURE NO TITLE PAGE NO
2.1 KEY TERMS USED IN ANDROID STUDIO 7
2
CHAPTER 1
INTRODUCTION
Cashity allows users to maintain a digital automated diary. With the launch and increase in
sales of smartphones over the last few years, people are using mobile applications to get their
work done, which makes their lives easier. Mobile application comprises various different
categories such as entertainment, sports, lifestyle, education, games, food and drink, health and
fitness, finance, etc. Cashity falls in the finance category and serves the important purpose of
managing finances which is a very important part of one’s life.
1.1 MOTIVATION
There exist quite a few web-based software called as expense calculators. Some of them are
stand alone applications which provide a single service like tracking personal expenses where
as others provide a combination of services. However, there does not exist, any software
which is essentially for a mobile-based expense tracking. The motivation behind taking up
such a problem statement was the fact that Internet is not always available at our disposable.
If such a mobile application exists it will be of enumerable help at any given time of the day.
1.2 BACKGROUND
In our day to day life, we’ve always dealt with money as a basic necessity for survival in this
fast-moving life. As an effective expense managing practise many of us used to write down
manually all our daily expenses in a small chit of paper in order to be aware of our daily
expenditure, as the digitalization era is in motion, smart phones with latest operating systems from
various different organisation are becoming a growing trend in the society. With the help of
android studio we have developed an application in order to manage the daily expense in an
1
effective digitalized way. Using this application he/she will make their money management much
easier and faster. It lets the user to compare their spending each week, month, and year. Numerous
categories like entertainment, insurance, automobile, healthcare etc are available. Our application
has a new concept which is very easy and simple to handle, not very complicated as other mobile
applications. The main benefit of using mobile phone is that it’s simple and innovative.
1.3 ANDROID
Android is a software stack for mobile devices that includes an operating system, middleware and
key applications. The Android SDK provides the tools and APIs necessary to begin developing
applications on the android platform using the Java programming language.
1.3.1 FEATURES
● Application framework enabling reuse and replacement of components
● Dalvik virtual machine optimized for mobile devices
● Integrated browser based on the open source WebKit engine
● Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the
OpenGL ES 1.0 specification (hardware acceleration optional)
● SQLite for structured data storage
● Media support for common audio, video, and still image formats (MPEG4, H.264, MP3,
AAC, AMR, JPG, PNG, GIF.
● GSM Telephony (hardware dependent)
2
● Bluetooth, EDGE, 3G, and Wi-Fi (hardware dependent)
● Camera, GPS, compass, and accelerometer (hardware dependent)
● Rich development environment including a device emulator, tools for debugging,
memory and performance profiling, and a plug-in for the Eclipse ID
1.3.2 ANDROID ARCHITECTURE
The following diagram shows the major components of the Android operating system.
Each section is described in more detail below:
Fig.1.1: Android Architecture
Source: Google Images
3
1.3.3 APPLICATIONS
Android will ship with a set of core applications including an email client, SMS
program, calendar, maps, browser, contacts and others. All applications are written using the Java
programming language.
By providing an open development platform, Android offers developers the ability to build
extremely rich and innovative applications. Developers are free to take advantage of the device
hardware, access location information, run background services, set alarms, add notifications to
the status bar and much, much more.
Developers have full access to the same framework APIs used by the core applications. The
application architecture is designed to simplify the reuse of components; any application can
publish its capabilities and any other application may then make use of those capabilities (subject
to security constraints enforced by the framework). This same mechanism allows components to
be replaced by the user.
1.3.4 MERITS OF ANDROID OS
● Totally open API
● Device and network-independent software platform
● Android app marketplace is democratic
● OS is updated often and even for older devices like the HTC Dream (T-Mobile G1)
● True multi-tasking OS based on Linux kernel
4
● Mostly free third-party apps
● Has great potential to scale well up to higher-end devices like Smartbooks (various
laptop manufacturers experimenting with this)
1.3.4(a) DEMERITS OF ANDROID OS
● Fewer developers and a smaller user base than the more established iPhone / iOS
software ecosystem
● User lacks the ability to definitively close applications from within task manager
● Few payment options for application marketplace - only Google Checkout No
review process on the application marketplace, nothing stopping malware from
getting published
● No multi-touch implementations on handsets sold in the U.S. (up to at least
Android v2.1)
● Limited to Google accounts
1.4 OBJECTIVE
The main objective of this application is to eliminate the use of the traditional way of using
paper for calculating and monitoring our expenses and providing a digitalised platform that is
focused on helping you manage your expenses
5
CHAPTER 2
LITERATURE REVIEW
2.1 EXISTING SYSTEM
In existing, we need to maintain the Excel sheets etc. files for the user daily and monthly
expenses. In existing, there is no as such complete solution to keep a track of its daily expenditure
easily. And there is no such pie-chart representation which is user-friendly and easy
understand-ability. In the existing system, a person has to keep a log in a diary or in a computer to
do all the calculations that is required for calculating the budget which may sometimes results in
errors leading to losses. But in this application, the money which is spent is recorded and
displayed in the pie-chart format for the better understanding of the user. There is several
application which stores and maintains bank details regarding the savings and the money spent
from the account. But this is a very essential application which is needed for all the people for
maintaining or managing the income which they get. By tracking the money which is being spent ,
the user can also plan or have an idea of saving the money. This is the most important benefit of
the application.
This application provides easy way of categorizing the spent money. It provides various
categories in which the money will be spent like entertainment, schooling, monthly expenditures,
savings etc.
With the help of these facilities, the user can easily categorize the area in which he spent the
money and record it. At the end, the whole expenses which the user has made in several categories
6
will be displayed in the form of pie-chart for easier understand-ability. This is the benefit of the
application when compared with the existing system.
2.2 KEY TERMS OF ANDROID STUDIO
Table 2.1 Key Terms used in Android Studio
Term Or Acronym Definition
Android Android is an open mobile phone platform that
was developed by Google and, later, by the
Open Handset Alliance. Google defines
Android as a "software stack" for mobile
phones
Android SDK A software development kit that enables
developers to create applications for the
Android platform. The Android SDK includes
sample projects with source code, development
tools, an emulator, and required libraries to
build Android applications.
7
SQLite A public domain, compact SQL-based database
management system designed for embedded
applications such as Smarthones and PDAs. It
is also linked directly into software
applications.
GIT GIT is a free & open source, distributed version
control system designed to handle everything
from small to very large projects with speed and
efficiency. GIT is used for version control of
files.
ANT Ant is an open source build tool (a program for
putting together all the pieces of a program).
Ant is portable and simple to use. Ant is
independent of both platform and development
environment
REST Short for Representational State Transfer, REST
is a web-specific network architecture that
allows easier development and deployment of
8
distributed applications, mainly using Web
Services
CHAPTER 3
SYSTEM ANALYSIS
3.1 NEED FOR THE PROPOSED SYSTEM
The purpose of this document is to collect, analyze and high-level requirements and features of
this mobile application. It focuses on the capabilities needed by the target users. The document
contains a mention of the purpose of the system, its overall description, specific requirements
pertaining to the same and other supporting information.The document gives an overview of the
system, a complete description of all the features and specifications and its dependencies, issues
related to specific requirements and miscellaneous information.
3.2 OPERATING ENVIRONMENT
3.2.1 MODULE DESCRIPTION
Cashity provides the following functionalities to the users:-
o Overview
The Overview module will help the user to initially start the application and the expenses tab are
visible at NULL as it does not contain any entry from the user.
9
o Category creation
The user can create their own category according to their own needs and convenience. This can be
done by add category tab which is present in the home screen.
o Additional Infos
The user can set the date when he/she is spending their money and also an helpful notes tab is also
being provided below to the dates tab in order to take notes of the expenses done by the user.
o Logging expenses
The user will enter all expense details in the application and this module will calculate the total
amount of daily expenses accordingly.
o History
This module will gives the entire history of all the expenses done by the user for the course of
a day, week, month and year. This tab generally is helpful in accessing the past spending on
various things as and can help the user to know how much of money was spent.
o Report generation
This module will generate the budget report in the form of a pie-chart to classify how much
money was spent on a particular category and is used to help the user to analyse their
expenses.
3.2.2 SOFTWARE REQUIREMENTS
10
1. Android SDK.
2. SQLite for database server
3. Android Studio Version 3.0.1
4. GIT (Version Control System)
5. ANT
6. Middle-ware: REST (Protocol for web services)
3.2.3: HARDWARE REQIREMENTS
1. A mobile handset with Android Operating System.
2. For computer: 4GB RAM (min.) and 120 GB HDD
3.2.4 CONSTRAINTS, ASSUMPTIONS AND DEPENDENCIES
1. The application will only work on Android based mobile handset.
2. Internet services will not be required as it is an offline application at the time.
3. Only one member is logged into the application from one mobile handset.
11
CHAPTER 4
PROPOSED SYSTEM DESIGN
4.1 PROPOSED SYSTEM:
The objective behind this solution is to design a refined system which will allow the user
to efficiently manage his or her expenses with ease. This system will include a website application
that will allow users to maintain a digital automated diary. After logging into the system, a user
can add the bills with an option to attach the image of the bill or not. The option to attach a bill
helps the user to remember when and where the payment was made. The user can also add the
information about how the payment was made i.e. via check, card or cash. The system also allows
entering the check details. As soon as the entry is made about the expense, the database is updated
and according to the nature of the bill deduction or addition to the total balance in the user’s
pocket is made. In order to make the user aware about the average rate of the expenses, an alluring
graphical statistics are also provided. In addition to the daily tracking of the expenditure, it is also
beneficial to have a quick access to the past record of the expense habit; keeping in mind there is
also an option of monthly budget to provide a quick glance of the past spending. With the help of
these facilities, the user can easily categorize the area in which he spent the money and record it.
12
At the end ,the whole expenses which the user has made in several categories will be displayed in
the form of pie-chart for easier understand ability. There is also an option to view owe and lend
expenses which adds or gets deducted from the overall budget according without bothering the
user. The data is very important asset for corporation, so strong authentication method is to be
used to ensure security of information from malicious users. It easy to be customized in future, as
the client demand some other additional features. The complexity of customer (ie. Users) may be
different or if mode of business changes then the system has capability to make appropriate
modification to suite that change. Customization is key factor of designing this software. The
accuracy of all type of calculations are important and to be achieved at any cost. The data retrieval
and other manipulation related task which is done at the database level is fast enough. Storage of
data is easily accessible.
13
4.2 SYSTEM ARCHITECTURE
Fig.4.1: SYSTEM ARCHITECTURE OF CASHITY
● This diagram provides a clear representation of the user interaction with the system
● It gives a clear step-by-step procedure of the architecture
14
4.3 ENTITY RELATIONSHIP DIAGRAM
Fig.4.2: ENTITY RELATIONSHIP DIAGRAM OF CASHITY
● It tells how the various entities are related to each other along with various attributes used
in the application.
● The various entities used are USER, CATEGORIES, EXPENSES, and CURRENCY.
15
4.4 DATA FLOW DIAGRAM:
Fig.4.3: DATA FLOW DIAGRAM OF CASHITY
● The data flow of the interaction between the user and application is clearly represented in
the form of a data flow diagram
● The various operations used are interpreted in the form of directed arrows from user to the
application
16
4.5 USE-CASE DIAGRAM:
Fig.4.4: USE-CASE DIAGRAM OF CASHITY
17
CONCLUSION
Program works faster without any error. This application is very useful for calculating
personal expenses. Tracking your expenses daily can save you money, but it can also help you set
financial goals for the future. If you know exactly where your money is going every month, you
can easily see where some cutbacks and compromises can be made. It will also give you a good
outlook on your spending habits and those impulse buys will stick out like little red flags.
In this report, a flexible solution is discussed for keeping track of group expenses on the go rather
than the contemporary way of making mental and sometimes erroneous calculations. It is
discussed at length about some existing applications along with their limitation. Our application
deals with developing an application to overcome the shortcomings of the existing
expense-tracking applications.
A comparative study of various available technologies to solve and their feasibilities and
advantages/disadvantages were also made. Finally in conclusion the best approach would be an
Android mobile application synchronized with a web-application to track the expenses. This
report discusses the proposed system in detail, with regards to its functionality, strengths and
weaknesses.
18
APPENDIX
SCREENSHOTS
Fig5.1 Welcome Screen
4
Fig5.2 Navigation Toolbar
5
Fig 5.3 Category List
6
Fig 5.4 History Tab
7
Fig 5.5 Expense Tab
8
Fig5.6 Graph View
9
SAMPLE CODE
Main Activity.java
package com.project.priyadarshrajendran.cashity;
import android.app.AlertDialog;
import android.app.FragmentTransaction;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.provider.Settings;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.text.Layout;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.RelativeLayout;
import android.widget.Toast;
import layout.add;
import static android.R.attr.onClick;
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
//RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.content_main);
10
// relativeLayout.setBackgroundColor(Color.BLUE);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open,
R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
Overview fragment = new Overview();
android.support.v4.app.FragmentTransaction fragmentTransaction =
getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.frame, fragment, "Overview");
fragmentTransaction.commit();
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
11
int id = item.getItemId();
//noinspection SimplifiableIfStatement
switch (item.getItemId()) {
case R.id.add:
startActivity(new Intent(this, Tab2.class));
return true;
case R.id.archive:
startActivity(new Intent(this, Setting.class));
return true;
case R.id.action_1:
return true;
case R.id.exit:
finish();
return true;
}/*
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
12
Activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:openDrawer="start">
<include
layout="@layout/app_bar_main"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer" />
</android.support.v4.widget.DrawerLayout>
13
REFERENCES
Android
1. www.android.com
2. www.googlehandsetalliance.com
SQLite
3. www.souptonuts.sourceforge.net
4. www.sqlitebrowser.sourceforge.net
5. https://www.youtube.com/watch?v=neaCUaHa2Ek
Android Studio
6. https://developer.android.com/studio/index.html
7. http://nevonprojects.com/project-ideas/android-project-ideas/
8. https://www.emeraldinsight.com/
9. https://www.tutorialspoint.com/android/android_architecture.htm
10. https://www.advantageccs.org/
14