Manage Personal Budget and Expenses with Web Application
1. 1
Chapter-1
INTRODUCTION
1.1BRIEF DESCRIPTION OF THE ORGANIZATION
1.1.1. At a Glimpse
WebTek Labs Pvt. Ltd. is recognized as a leading IT solution providing organization with
a dynamic and fast growing team of diversely talented individuals. Incorporated in 2001,
in our aim to provide the best talent, we initially started with Recruitment & Staffing
services. We paralleled this by providing knowledge and skill development certification
training programs. International Software Testing qualification board quality (ISTQB)
Program that aims to provide IT companies trained software Testers has reached soaring
heights of recognition over the years.
Few years later after its inception, WebTek Labs added Software development & testing
services to the portfolio.Having partnered and worked with some of the leading names
across Education, IT, ITES, Banking, Insurance, Aviation, Retail, Healthcare, Hospitality,
Media, Manufacturing and FMCG sectors, WebTek Labs has explored business
opportunities in software solutions with the Government, Corporate and Institutes.
With over a decade of experience we create and deliver high-impact solutions, enabling
our clients to achieve their business goals and enhance their competitiveness. In our pursuit
of excellence, WebTek's Research & Development team consistently innovates to provide
up-to-date solutions keeping in pace with changing times. Our mission is for businesses to
leverage the internet and mobility to work smarter and grow faster. We work as your
outsourcing and consulting partner. Our business verticals are:
Recruitment & Staffing
Software Development and Testing Services
Digital Marketing
Enterprise Mobility
Certifications & Trainings for Career Management
Software solutions
2. 2
1.1.2. Digital Journey
Our digital journey allows our customers to use the power of digital technology to
transform your business. Unlock your organization’s full capabilities and improve your
efficiencies by using the latest trends in technology.
1.1.3. M i s s i o n A n d V i s i o n
Our vision at Webtek Labs is to see our company grow consistently while being committed
to provide unsurpassed quality and aiming for customer satisfaction. to lead in the creation
and delivery of innovative solutions and services that enable our clients to win in the
changing world of work. OUR TEAM has expertise ranging from design to development,
training to placements and solutions to implementaion. We combine this knowledge with
proactive thinking and strategic planning to approach new challenges with your overall
business objectives in mind. WebTek Lab's management team brings together a wealth of
experience in both technological and organizational development that is critical in helping
our customers achieve their goals.
1 . 1 . 4 . G o a l
We intend to provide premier services to our customers from an environment that is highly
ethical, and offers teamwork and creativity along with performance. We believe in
delivering value and that too 'On Time' to build a strong relation based on its performance
so that the name Webtek Labs becomes synonymous with the "provider of best innovative
IT solutions".
1.1.5. History
Webtek Labs provides effective and flexible technology and business solutions that meet
the demands of startups to fortune 500 companies and some of the most recognized brands
on the planet. And we do it with cutting-edge technologies, thanks to our close partnerships
with the world's biggest vendors.Webtek Labs started in 2001 after experienced Software
3. 3
Architects, Business Analysts and IT Consultants joined hands to form a company with a
difference.
“Our subject matter experts and industry experienced speakers add a perspective that helps
in channelizing the potential of the students in a definite path. Our objective is to prepare
the students with the technical capabilities to meet the odds of the corporate world. Like
our College workshops our JAVA Training Courses and Software Testing Courses are
certified and accredited with industry relevant content.”
1.1.7. Business Enquiry
If you need information click here or send us an enquiry to delhi.training@webteklabs.com
1.1.8. Careers
For recruitment queries please send us an enquiry to career@webteklabs.com
1.1.9. Feedback
For feedback please send us mail on support@webteklabs.com
4. 4
1.2General Description of the Project under Study:
This Project is for the users. The user use this for adding their income to the web
application,This project helps users to find best budget . This project is based on the adding
the income and expense and track record of previous expense (Web Application).
1.2.1 Overview
As the internet is growing fast and large group of people have access to the internet, people
started doing transaction through internet instead of visiting places directly, an application
helping users to manage their expenses, personal incomeThe proposed “YRMoney
Analyzer” is designed keeping both record of admin and user side with the help of
interacting menu. As “YRMoney Analyzer” is web based application will reachable to
wide range of customers and will allow them to check their balance online, the features
will be extended to Android and iOS devices for better reach to the end user.
1.2.2. Purpose
The main purpose of the “YRMoney Analyzer” is to reach to wider range of users and to
educate them about existing and new applications and benefits by different applications.
One more purpose is to allow customers to place order online using interactive menu so
that they can look previous expense at home. This reduces the time consumption. The
“YRMoney Analyzer” is to be developed to reduce the manual work carried out in home
using pen,paper or copy and writting all expense with calculator and their is no track of
previous expense users will be introduced with the interactive menu. This project helps the
admin to know customers order details in few seconds. Due to digitization and a step
towards cashless economy, online payment system needs to be introduced.in upcoming
years.
1.2.3 Users Purpose
This project emphasizes on the common daily problems which an individual faces in
managing an account manually or tracking their expenses with proportionate to income.
The key area which it focuses is time. This website saves time and effort of the people as
it allows people to look their expenses online in a mobile manner i.e. remotely. You don’t
have to calculate manually at homefor your personal salary/income the place for your
5. 5
money is analyzed all this can be sought out by the website itself. In certain situations
when we have to have see balance instantly we can see online and shuffle through the
menu items online.
1.2.4. Existing System
There are many calculators available in an area. Therefore, finding your expenses previous
record in unknown places is difficult. So users can visit this web application/android app
to find best budget making application according to income,expense, budget or time. If
user wants to plan their money should be managed according to expenses ,bills,and savings
for future use. So, they track using calculators,pen,copy.e.tc and what if it copy or register
is forgotten or lost . so their is no any photocopy of previous budget record .It takes too
much time to calculate and maintain .
1.No option for keeping budget record.
2.Required to keep a rough account record on paper
3.Time consuming.
4.Cash problem
5.Maintaining problem
1.2.5 Proposed Solution
As the internet is growing fast and large group of people have access to the internet, people
started doing transaction through internet instead of visiting places directly An application
helping users to manage income/expenses. There are many expenses in daily,monthly
routine. To manage users budget as per income and expected expenses with previous record
of monthly ,yearly and on daily basis .So users can visit this web application to manage
personal budget .
Problem with existing system like:
user have to manage the income, expense by writting in a paper.
It take too much time to maintain personal budget on daily basis .
Expense may increase as per income as if no budget exist.
Manual budget (paper or copy )may lost or forgotten.
6. 6
Time consuming process .
No tracking of previous expenses.
The features will be extended to Android and iOS devices for better reach to the end user.
1.2.6 User Requirements:
Problems user facing earlier:
Earlier we have to do this kind of hard work to find out a calculator and write all expenses
in a paper
We have to make the list of the expenses and notedown the amount and date
There are many budget planner in an area.
1.2.7 Solution for the Users
As the internet is growing fast and large group of people have access to the internet, people
started doing transaction through internet instead of visiting places directly This project
emphasizes on the common daily problems which an individual faces for maintaining
budget or deal with day-to-day expenses .The key area which it focuses is making budget.
This website saves time and effort of the people as it allows people to check their balance
and budget.You don’t have to maintain any manual work of maintaining budget all this can
be sought out by the website itself. In certain situations when we have to see previous
record of day or month or week menu items online. A well-managed budget according to
users pocket after processing income,expenses .Therefore remaining balance can be used
wisely along with daily,monthly and yearly record of particular user budget
1.2.8. Establish the Need of the New System
An application helping users to search for best budget planner online so , browse menus,
place orders and make payments for delivery where they can track the location of the driver
through an indigenous tracking system. There are many expenses in daily,monthly routine.
Therefore, To manage users budget as per income and expected expenses with previous
record of monthly ,yearly and on daily basis .So users can visit this web application to
manage personal budget .
7. 7
1.2.9.Objectives of the Project
There are many accounts information system which are commercially used in different
corporate house. But there is no standard information system available for personal finance
management. In this context a personal finance management information system which is
online is truly important.In this project a personal finance management based on the
requirements is conceptualized and implemented. The system enables anyone to manage
personal income and expenses with ease via online information system. It is designed to
help users to manage their finances to understand where their money is going, pinpointing
the areas of excessive expenditure and assist to take decision of cutting down unnecessary
expenses. It is found that this information system helps to track finances and generate
reports of all.The system is designed and developed using HTML,PHP, and MySQL as the
backend database on Apache Server. The system is developed and implemented and the
result is satisfactory. In the future this system will be enhanced based on further
requirement.
1.2.10 Methodology:
Figure: Water Fall Model Approach
The model basically being followed is the WATER FALL MODEL, which states that the
phases are organized in a line order. First of all feasibility study is done. Once that parties
requirements
Design
Implementation
verification
maintenance
8. 8
over the requirement analysis and project planning begins. If system exists and
modification and addition of new modules needed, analysis of present system can be used
as basic model. The design starts after the requirement analysis is complete and the coding
begins after the design is complete. Once the programming is completed, the testing is
done. In this model, the sequence of activities performed in a software development project
areas:-
• Requirement Analysis
• Project Planning
• System Design
• Detail Design
• Coding
• Unit Testing
• System Integration & Testing
This methodology is chosen as it is very simple to understand and use. In a waterfall model,
each phase must be completed fully before the next phase can begin. software development
model is basically used for the for the project which is small and there are no uncertain
requirements. At the end , a review takes place to determine if the project is on the right
path and whether or not to continue or discard the project. In this model software testing
starts only after the development is complete. In waterfall model phases do not overlap
9. 9
CHAPTER-2
SYSTEM REQUIREMENT ANALYSIS
2.1 Literature Review
This project contains managing expenses using budget services which provides solutions
and information related to various budgets which have different menu for their different
branches according to their needs independently.
An effective budget needs to be put down on paper or via a spreadsheet from a student
budget template. On this budget, make a list of all your forms of incomes (including your
job, loans, parents, etc.), followed by all your expenses (such as rent, books, food, etc.).
Make sure to differentiate between your needs versus your wants. The final number that
you calculate should not be a negative number. If it is, you need to make some adjustments
to make sure your take-home pay covers all your expenses.To make things simple for you,
consider taking advantage of an effective online tool to help you set up a budget and
manage your finances. YRMoney Analyzer offers free, help you save money and budget
effectively. This online service offers tools and advice to help you understand your finances
and clearly see where your money is going. Money seems to be a hard substance for many
people to manage. If you think about money as little employees with different jobs, you
begin to have a powerful financial system that makes managing your income and expenses
a whole lot easier.You see, the wealthy, financially free people of the world have devised
a money management system that helped them get, and stay, wealthy.The great thing about
a system is that if you set it up and it works—you should stick with it. Just like McDonalds
has a system that allows all of their hamburgers to taste the same across the nation, you can
have a money management system that provides you with all the money you need and want
for the rest of your life.As a student, eating out may seem like the easiest thing to do when
it's feeding time. While there most likely isn't a shortage of restaurants and eateries in and
around your school, you might be leaving your wallet empty at the end of the month while
your stomach may be full.It's fine to eat out every now and then, but the majority of your
10. 10
meals should be eaten in. Make sure you are careful about how much you're spending on
dining out. Take advantage of grocery store specials and prepare most of your meals
yourself to save a bundle at the end of the month.Creating a budget - and sticking to it -
can help you keep your finances in check
In an automated money management system is proposed which will keep track of user
expenses smartly. Basically, they implemented a money management system for different
type of expenses in which user will make online personal budget by one click only.By
means of online application for Tablet PCs this system was implemented. The front end
was developed using HTML5,CSS3,JAVASCRIPT,JQUERY and at the backend
PHP/MySQL database was used. In User using a Smartphone is considered as a basic
assumption for the system. Financial is one hot topic that develops in middle-class society.
The middle class tend to try to improve the standard of living and lifestyle gradually and
continuously. The middle class do not hesitate to shop at online stores. Online shops
generally provide all the needs of the middle class, ranging from basic needs to the needs
of tertiary. Basically middle class people need instant solutions, easy and full of imagery
to resolve their financial problems. The middle class does not have much time to take care
of their finances. On weekdays people only have 3 hours per day to the rest for personal
activities
During our monthly budget meetings, we:
Analyze the previous month’s budget and expenditures
Discuss what we did well and what can be improved upon
Preview the upcoming month’s budget
Track our debts (currently consists of mortgage balances)
Look at our net worth
Review short and long term financial goals
Dispense personal spending money
11. 11
2.1.1Research Methodology
Personal finance software has not developed in India yet. The developers sell the personal
finance software as commodities. Commodities refer to products that are undifferentiated,
same products, same costs, and same value . Personal finance related to the money, and
people tend to high emotionally about money. The product must have engagement with
the customers. Personal finance software is not only asking for financial data input,
processing all of the data, and display the report. The software has to provide more services,
such as consulting, personal financial case, or other benefits.
According to the explanations on the background can be concluded three important issues
that form the focus of the study, namely:
1. Indian middle class numbers continue to increase significantly. According to a study
conducted by Insight MarkPlus are 45.7% people of middle class plan for their future,
including their future finance. They need easy and quick money management services.
Financial planning solutions that are practical and comprehensive become a necessity for
the middle class.
2. Middle class consumers do not have enough time to manage their personal finance.
Some of them are not able to manage their income and outcome. They are relying on credit
12. 12
card and bad debt. Although they realize that they need advice from the advisor, they do
not want to pay the personal finance advisory services. According to the functions of the
personal finance application are:
1. It must be able to check and save accounts.
2. It must be able to categorize the transactions.
3. It is flexible to create and easy to monitor a budget.
4. It helps the users to achieve their saving goals.
5. It must be able to track the way the money goes by.
6. It must be secure application
A survey instrument was developed to gather information on consumers’
sociodemographic characteristics, their savings habits and priorities, and their interest in
using the services. One section of the survey instmrnent focused on the socioeconomic
characteristics of the respondents. Questions in this section included age, gender, ethnicity,
education, income, family size, employment status and work habits, and home access to
fax machines, personal computers, and the Internet. Another section of the survey dealt
with consumers’ shopping habits and priorities-such as frequency of shopping, distance
traveled to grocery stores, average food budget, etc. Respondents were also asked to rank,
fi-om 1 (least important) to 5 (most important), the importance of various considerations
in choosing their food stores.
13. 13
2.2Technology
2.2.1. PHP
PHP is a server-side scripting language designed primarily for web development but also
used as a general-purpose programming language. Originally created by Rasmus
Lerdorf in 1994, the PHP reference implementation is now produced by The PHP
Development Team.]
PHP originally stood for Personal Home Page but it now stands for
the recursive acronym PHP: Hypertext Preprocessor.
2.2.2MYSQL
A database is a separate application that stores a collection of data. Each database hasone
or more distinct APIs for creating, accessing, managing, searching and replicating the data
it holds. Other kinds of data stores can also be used, such as files on the file system or large
hash tables in memory, but data fetching and writing would not be so fast and easy with
those type of systems. Nowadays, we use relational database management systems
(RDBMS) to store and manage huge volume of data. This is called relational database
because all the data is stored into different tables and relations are established using
primary keys or other keys known as Foreign Keys.
2.2.3BOOTSTRAP
Bootstrap is a sleek, intuitive, and powerful, mobile first front-end framework for faster
and easier web development. It uses HTML, CSS, and Javascript. Bootstrap was developed
by Mark Otto and Jacob Thornton at Twitter. It was released as an open source product in
August 2011 on GitHub.
2.2.4 HTML
Hypertext Markup Language was developed by a consortium of organizations, the World
Wide Web consortium (W3C). HTML is a set of tags and elements used to create Web
pages. Web pages are documents that you view on the Web. Web pages are websited as
14. 14
files with the extension .htm or .html. HTML is a web based language. It is very easy to
learn and use.
2.2.5 CSS
CSS stands for Cascading Style Sheet. It defines a way how the information is presented
by all the browsers on the web. A style sheet is a set of rules that controls the formatting
of HTML elements on one or more web pages. Thus, the appearance of a Web page can be
changed by changing the style sheet associated with it. There is no need to make detailed
changes within the Web page to change how it looks. As one style sheet can be used for a
whole web site, it normally means that the overall size of the website is smaller and
downloads required for each page can be decreased by up to 40%.
2.2.6 Java Script
Java script is a scripting language. To develop interactive Web sites, you need to create a
Web interface for accepting data from users. The data accepted can be websited for further
processing and validation. So we use the Java Script. You will also be able to write Java
Script code to validate the data entered by users on the Web sites, handle run-time and
execution errors in Web documents, and communicate with the users by displaying
messages. To create interactive Web documents, the language used is Hypertext Markup
Language (HTML). However, HTML does not support data processing on the client
computer. Therefore any data in HTML that needs to be validated is sent for processing to
the server, causing delay. To facilitate data validated is sent for processing toe the server,
causing delay. To facilitate data validation on the client-side, you can use a scripting
language for creating interactive interfaces on the Web.
2.2.7 JQUERY
jQuery is a fast and concise JavaScript Library created by John Resig in 2006 with a nice
motto: Write less, do more. jQuery simplifies HTML document traversing, event
handling, animating, and Ajax interactions for rapid web development. jQuery is a
JavaScript toolkit designed to simplify various tasks by writing less code.
15. 15
2.3 Project Planing
Software project management begins with a set of activities that are collectively called
project planning. The objective of software project planning is to provide a framework that
enables the manager to make reasonable estimates of resources, cost, and schedule. These
estimates are made within a limited time frame at the beginning of a software project and
should be updated regularly as the project progresses. Here I have prepared the PERT chart
for planning.
2.4 Cost Estimation
In this activity, the cost of the project is estimated. This includes money effort,
resources and time to build the software. It is done before creating the software. It is
the step of software project planning. Estimation begins with a description of the
scope of the project. Until the scope is bounded, it’s not possible to develop the
meaningful estimate. The problem is then decomposed into a set of smaller problems
and each of these is estimated using historical data and experience as guides.
Estimation carries inherent risk and this risk leads to uncertainty. There are three
factors, which affect the uncertainty inherent in planning factors. These are: -
Project complexity
Project size
Degree of structural uncertainty
Availability of historical information
The estimation can be done based on object point, function point or the lines of
code. I have done this estimation based on object points of the software. “Boehm”,
which is constant gives weights on the object. Taking these constants, we can easily
estimate the cost of the software.
16. 16
Table for complexity weight: -
Object type
Complexity weight
Simple Medium Difficult
Screen 1 2 3
Reports 2 5 8
3GL/4GL
component
10
Table for Productivity rates for object points: -
Developer’s
experience/capabili
ty
Very
Low Low Nominal High
Very
high
Environment
maturity/capability
Very
Low Low Nominal High
Very
high
PROD
4 7 13 25 50
Table for input/report/3GL/4GL compo
Object type Simple Medium Difficult
Screen 15 15 2
Reports 5 1 0
3GL/4GL component 1
17. 17
2.5 Project Scheduling
2.5.1 Pert Chart
INT ACTIVITY NODE DESCRIPTION
1 0 – 1 A Customer communication
2 1 – 2 B Concept planning
3 2 – 3 C System study
4 3 – 4 D Identification of need
5 4 – 5 E Preliminary investigation
6 5 –6 F Feasibility study
7 6 –7 G Content analysis
8 6 – 8 H Interaction analysis
9 6 – 9 I Functional analysis
10 7,8,9 – 10 J Analysis modeling
11 10 – 11 K S/W, H/W requirement
specification
12 11 – 12 L Database design
13 11 – 13 M Interface design
14 11 – 14 N Architectural design
15 11 – 15 O Navigation design
16 12,13,14,15-16 P Coding
17 16 – 17 Q Validation check
18 17 – 18 R Coding documentation
19 18 – 19 S Testing
20 19 – 20 T Implementation
18. 18
CHAPTER -3
SYSTEM DESIGN
4.1 Physical Design
Data Flow Diagrams (DFD’s) Data flow diagrams provide a logical model of the system
and show the flow of data & the flow of logic involved.
Data flow diagrams have the following characteristics.
• The processes that perform this transformation normally create as well as use data.
• They focus on the process that transform incoming data from into outgoing data flows •
External entities send and receive data flows from the system.
• DFD supports a top-down approach for analysis.
Symbols used in DFDs:
Four symbols are used in drawing data flow diagram these are.
• External entities (source or sink)
• Data flow
• Process
• Data store
External entities (source or sink): An external entity is a source or a destination of Data.
External entities are represented by rectangles. These may be people, program,
organization or other entities that interact with the system.
Fig4.1
19. 19
Data flow: Data flow diagram shows how the data travels from one point to another point
in the diagram the flow is shown as an arrowed line with the arrowhead showing the
direction of flow.
Fig4.2
Process: Processes show the transformation of input data flows to the output data flows. It
is also known as Bubble or Transform. A rectangular box or circle denotes a process.
Fig4.3
Data Store: A data store is like a warehouse for data. Process may store or retrieve data
from a file. If arrow points to the file, it indicates operation of writing into the file. If it
points away from the file, it indicates operation of reading from the file.
Fig4.4
20. 20
4.1.1. DFD
The following rules may be followed while constructing DFDs:
Process should be named and numbered for easy identification.
The direction of the flow is from top to bottom from left to right.
Data traditionally flow from source to destination.
The names of data stores, sources and destination are written in capital letter and first letter
of each word of process and dataflow name should be capitalized.A data store is like a
warehouse for data. Process may store or retrieve data from a file. If arrow points to the
file, it indicates operation of writing into the file. If it points away from the file, it indicates
operation of reading from the file. First, we shall start with the context diagram. A context
diagram contains a single process but it plays a very important role in studying the current
system.
4.1.1.1 0- Level DFD
fig.4.5.1
23. 23
4.1.3 Entity Relationship Diagram
An entity-relationship (ER) diagram is a specialized graphic that illustrates the
interrelationships between entities in a database. ER diagrams often use symbols to
represent three different types of information. Boxes are commonly used to represent
entities. Diamonds are normally used to represent relationships and ovals are used to
represent attribute
Fig 4.4
24. 24
4.2.1System Module Description
4.2.1.1 Overview
The system can be used in any place. This project has been made keeping in mind the basic
requirements of an industry. For using this, first the user has to Login through the system
and then the user has to choose from the dashboard the type of task he wants to perform.
There are menus to interact with the operator. It shows the transaction details of income
and expense of users. And also it can show manage user profile setting which can be used
by this software. And also Show the updation and deletion of record of transactions .
4.2.1.2 Proposed System
YRMoney analyzer
USER MODULE
Registration
Login
View expenses
Search previous record
Add expense category
Manage own profile
25. 25
4.3.1Database Design
4.3.1.1. Overview
Database designs transform the information domain model created during analysis into
the data structures that will require implementing the software
4.3.1.2. Normalization
In database design we also use the normalization concepts. Normalization is used to ensure
that various types of anomalies and inconsistencies are not introduced in to database.
Normalization is used to remove redundancy and different type of anomalies like insertion,
deletion, and updation anomalies.With the help of normalization concepts accessing of
database made easier and data websited in consistent manner.
4.3.1.3.. First Normal Form
“A relation is said to be in first normal form(1NF) if the values in the domain of each
attribute of the relation are atomic. In other words, only one value is associated with each
attribute and the value is not a set of values or a list of values. A database scheme is in
1NF, if every relation scheme included in the database scheme is in 1NF”.In my project all
relations are holding the atomic values from their domain to the corresponding attributes.
So, in my project, database is in normalizing form. All relations are in 1NF.
4.3.1.4. Second Normal Form
A second normal form does not permit partial dependency between non-prime attribute
and the relation keys.
“A relation scheme R<S, F> is in second normal form (2 NF) if it is in 1NF and if all non
prime attributes are fully functionally dependent on the relation key(s).”
26. 26
4.3.1.5. Third Normal Form
“A relation scheme R is in third normal form (3 NF) with respect to a set of functional
dependencies if, for all functional dependencies if F+
of the form X->Y where X and Y
are in R, at least one of the following holds:
X -> Y
X is a super key of R
A relation scheme in third normal form does not allow partial or transitive dependencies.
So, my tables are in 3 NF because every nonprime attribute is non-transitively and fully
dependent on the key. In my project there is no transitive dependency in that relation, so
the relation and database is in the third normal form.
4.4.1.1. Data Modeling
1. User
32. 32
4.4.2.2. Module Description
i. Login/Signup: -It allows user to enter the website of YRMoney analyzer
ii. Search: -In this, user can directly search the previous income/expenses .
iii. ADD Transaction-add income/expense to calaculate budget as per the income
iv. Delete Transaction-delete wrong transaction
v. Update Transaction-update transaction
vi. Income/Expense category-add and delete categories
vii. Add Budget- add budget out of income
viii. View report –view previous transactions of daily,monthly and yearly basis.
ix. Contact-contact to developer for any suugestion/query.
x. Logout- user logs out from application
40. 40
3.3 DATABASE DESIGN
3.3.1Table structure
1. BUDGET
Field Name Data Type(size) Constraints Description
BudgetId Int(5) PRIMARY budget id
UserId int(5) Not Null userid
CategoryId int(5) Not Null Category id
Dates Date Not Null date
Amount int(10) Not Null amount
TABLE 1: BUDGET
2. CATEGORY
Field Name Data Type(size) Constraints Description
Categoryid Int(15) PRIMARY Category Id
UserId Int(5) Not Null User ID
CategoryName Varchar(255) Not Null Category name
Level Int(2) Not Null level
TABLE 2: CATEGORY
41. 41
3. CONTACT
Field Name Data Type(size) Constraints Description
name Varchar(50) Not Null Name of the user
mob Varchar(50) Not Null Contact number
email Varchar(50) Not Null Email address
comment Varchar(50) Not Null Message by user
TABLE 3: CONTACT
4. TOTALS
Field Name Data Type(size) Constraints Description
TotalId Int(5) PRIMARY Total id
UserId Int(5) Not Null Id of user
AccountId int(5) Not Null accountid
Totals int(10) Not Null totals
TABLE 4: TOTALS
42. 42
5. ASSET
Field Name Data Type(size) Constraints Description
AssetId Int(5) PRIMARY asset id
UserId int(5) Not Null User id
Ttile varchar(256) Not Null title of asset
Date Date Not Null Date
CategoryId int(5) Not Null Category id
AccountId int(5) Not Null Account Id
Amount Varchar(256) Not Null Amount
Description Varchar(8000) Not Null Description
TABLE 5: ASSET
6.USER
Field Name Data Type(size) Constraints Description
UserId Int(5) PRIMARY Id of user
FirstNmae Varchar(255) Not Null First name
LastName Varchar(255) Not Null Lastname
Email Varchar(255) Not Null Email
Password Varchar(255) Not Null Password
Currency Varchar(255) Not Null Currency
TABLE 7: USER
43. 43
7. ACCOUNT
Field Name Data Type(size) Constraints Description
AccountID int(5) Primary accountid
UserId int(5) Not Null userid
AccountName Varchar(256) Not Null name of user
TABLE 7: ACCOUNT
8.BILLS
Field Name Data Type(size) Constraints Description
BillsId Int(5) PRIMARY asset id
UserId int(5) Not Null User id
Ttile varchar(256) Not Null title of bill
Date Date Not Null Date
CategoryId int(5) Not Null Category id
AccountId int(5) Not Null Account id
Amount Varchar(256) Not Null Amount
Description Varchar(8000) Not Null Description
TABLE 7: BILLS
44. 44
CHAPTER-4
SYSTEM DEVELOPEMENT
Testing& Security
4.1 Purpose
IT is the process of having systems personnel check out and put new equipment into use,
train users, install the new application and construct any files of data needed to use it. This
phase is less creative than system design. Depending on the size of the organization that
will be involved in using the application and the risk involved in its use, systems developers
may choose to test the operation in only one area of the firm with only one or two persons.
Sometimes, they will run both old and new system in parallel way to compare the results.
In still other situations, system developers stop using the old system one day and start using
the new one the next.
4.2 Debugging
As the internet is growing fast and large group of people have access to the internet, people
started doing transaction through internet instead of visiting places directly An application
helping users to search for previous record, browse menus The proposed
YRMoneyAnalyzer is using management in the mind so that users can manage personal
money online and with the help of interacting menu. As YRMoneyAnalyzer i is web
based application will reachable to wide range of customers and will allow them to manage
personal budget
4.2.1 Testing
Testing is the process of running the software on manually created inputs with the intention
to find errors and bugs. All the modules that have been developed before are integrated or
put together in this phase, and tested as a complete System. On the ending of the coding
phase, the testing phase begins. In order, for the input/output accuracy of the software,
45. 45
various testing techniques have been applied. Some testing are, System testing,. The
testing process focuses on the logical internals of the software , ensuring that all statements
have been tested , and on the functional externals; that is conducting tests to uncovers errors
and ensure that defined input will produce actual results that agree with required results.
Software testing is an investigation conducted to provide stakeholders with information
about the quality of the software product or service under testTest techniques include the
process of executing a program or application with the intent of finding software
bugs (errors or other defects), and verifying that the software product is fit for use.
System Testing: Integrated module testing for the entire system.
4.2.2 Levels of Testing
In order to uncover the errors present in different phases, we have the concept of levels of
testing. The basic levels of testing are:
Client Needs Acceptance Testing
Requirements System Testing
Design Integration Testing
Code Unit Testing
Fig.4.2
46. 46
4.2.2.1 Unit Testing
Unit testing focuses verification effort on the smallest unit of software i.e. the module.
Using the detailed design and the process specifications, testing is done to uncover errors
within the boundary of the module. All modules must be successful in the unit test before
the start of the integration testing begins.In this project each service can be thought of a
module. There are so many modules like Login, Add Question, Result Generation, etc.
Each module has been tested by giving different sets of inputs. When developing the
module as well as finishing the development, the module works without any error. The
inputs are validated when accepting them from the user.
4.2.2.2 Integration Testing
After unit testing, we have to perform integration testing. The goal here is to see if modules
can be integrated properly, the emphasis being on testing interfaces between modules. This
testing activity can be considered as testing the design and hence the emphasis on testing
module interactions.In this project the main system is formed by integrating all the
modules. When integrating all the modules I have checked whether the integration effects
working of any of the services by giving different combinations of inputs with which the
two services run perfectly before Integration.
4.2.2.3 System Testing
Here the entire software system is tested. The reference document for this process is the
requirements document, and the goal is to see if software meets its requirements.Here entire
‘YRMONEY analyzer’ has been tested against requirements of project and it is checked
whether all requirements of project have been satisfied or not.
47. 47
4.3.1 Acceptance Testing
Acceptance Testing is performed with realistic data of the client to demonstrate that the
software is working satisfactorily. Testing here is focused on external behavior of the
system; the internal logic of program is not emphasized.
Test cases should be selected so that the largest number of attributes of an equivalence
class is exercised at once. The testing phase is an important part of software development.
It is the process of finding errors and missing operations and also a complete verification
to determine whether the objectives are met and the user requirements are satisfied.
4.3.2 White Box Testing
This is a unit testing method, where a unit will be taken at a time and tested thoroughly at
a statement level to find the maximum possible errors.
I tested step wise every piece of code, taking care that every statement in the code is
executed at least once. The white box testing is also called Glass Box Testing.
I have generated a list of test cases, sample data, which is used to check all possible
combinations of execution paths through the code at every module level.
4.3.3 Black Box Testing
Black-box test are designed to uncover errors functional requirement without regard to the
internal workings of a program. Black-box testing techniques focus on the information
domain of the software, deriving test cases by partitioning the input and output domain of
a program in manner that provides through test coverage. The black-box test is used to
demonstrate that software functions are operational, that input is properly produced, and
that the integrity of external information are maintained. A black-box test examines some
fundamental aspect of a system with little or no regard for the integral logical structure of
the software.
Graph based testing methods explore the relationship between and behavior of program
objects. Equivalence partitioning divides the input classes of data are likely to exercise
48. 48
specific software function. Boundary values analysis probes the program’s ability to handle
data at the limits of acceptability.
4.2.3. Maintenance
Once the software becomes operational, whatever changes are done is termed as
maintenance. It is necessary to eliminate errors in the working system during the working
life of the software and to tune the system to any variations in its working environment.
The software “One Stop Parking” is maintained in this way that if the requirement
increases; it (software) can be altered by anybody effortlessly. In order to the maintenance
of the software, the lifecycle of the software has been loosely coupled and highly cohesion
4.3 Validation
Validation is determining if the system complies with the requirements and performs
functions for which it is intended and meets the organization’s goals and user needs.
Validation is done at the end of the development process and takes place
after verifications are completed.
It answers the question like: Am I building the right product?
Am I accessing the right data (in terms of the data required to satisfy the requirement).
It is a High level activity.
Performed after a work product is produced against established criteria ensuring that the
product integrates correctly into the environment.
Determination of correctness of the final software product by a development project with
respect to the user needs and requirements.
4.3.1 Verification
Verifying process includes checking documents, design, code and program
It does not involve executing the codeVerification uses methods like reviews,
walkthroughs, inspections and desk- checking etc.
Whether the software conforms to specification is checked
49. 49
4.4Coding
LOGIN.PHP
<?php
session_start();
$msgBox = '';
include ('includes/notification.php');
include ('includes/db.php');
include ('includes/Functions.php');
if (isset($_POST['login'])) {
if ($_POST['email'] == '') {
$msgBox = alertBox($EmailEmpty);
} else
if ($_POST['password'] == '') {
$msgBox = alertBox($PasswordEmpty);
} else {
$Email = $mysqli->real_escape_string($_POST['email']);
$Password = encryptIt($_POST['password']);
if ($stmt = $mysqli->prepare("SELECT UserId, FirstName, LastName, Email,
Password, Currency from user WHERE Email = ? AND Password = ? ")) {
$stmt->bind_param("ss", $Email, $Password);
$stmt->execute();
$stmt->bind_result($UserId_, $FirstName_, $LastName_, $Email_,
$Password_, $Currency_);
$stmt->store_result();
$stmt->fetch();
if ($num_of_rows = $stmt->num_rows >= 1) {
session_start();
$_SESSION['UserId'] = $UserId_;
$_SESSION['FirstName'] = $FirstName_;
69. 69
USERRINFO.PHP
<?php
// Get User Info
$UserId = $_SESSION['UserId'];
$GetUserInfo = "SELECT * FROM user WHERE UserId = $UserId";
$UserInfo = mysqli_query($mysqli, $GetUserInfo);
$ColUser = mysqli_fetch_assoc($UserInfo);
?>
GLOBAL.PHP
<?php
// include connection to database
include ('includes/db.php');
// Get User Info
$UserId=$_SESSION['UserId'];
$GetUserInfo = "SELECT * FROM user WHERE UserId = $UserId";
$UserInfo = mysqli_query($mysqli, $GetUserInfo);
$ColUser = mysqli_fetch_assoc($UserInfo);
//category for income
$Getincome = "SELECT CategoryId, UserId, CategoryName, Level FROM category
WHERE (UserId = 0 OR UserId = $UserId) AND Level = 1";
$income = mysqli_query($mysqli,$Getincome);
// Category for Expense
$Getexpense = "SELECT CategoryId, UserId, CategoryName, Level FROM category
WHERE (UserId = 0 OR UserId = $UserId) AND Level = 2";
$expense = mysqli_query($mysqli,$Getexpense);
// Category for account Expense
$GetAccountExpense = "SELECT AccountId, UserId, AccountName FROM account
WHERE UserId = 0 OR UserId = $UserId";
70. 70
$AccountExpense = mysqli_query($mysqli,$GetAccountExpense);
// Category for account Income
$GetAccountIncome = "SELECT AccountId, UserId, AccountName FROM account
WHERE UserId = 0 OR UserId = $UserId";
$AccountIncome = mysqli_query($mysqli,$GetAccountIncome);
$GetAccountDount = "SELECT account.AccountName, sum(assets.Amount) AS
Amount FROM account, assets where account.AccountId=assets.AccountId AND
assets.UserId= $UserId group by account.AccountName";
$Dount = mysqli_query($mysqli, $GetAccountDount);
$GetAccountDounts = "SELECT category.CategoryName, SUM(bills.amount) AS
Amount FROM category, bills where category.CategoryId=bills.CategoryId AND
category.Level = 2 AND bills.UserId = $UserId GROUP BY bills.CategoryId";
$Dounts = mysqli_query($mysqli, $GetAccountDounts);
// dashboard income vs expense
$GetAccountDountvs = "SELECT AmountExpense, AmountIncome
FROM ( SELECT UserId,
SUM(Amount) AS AmountExpense
FROM bills
GROUP BY UserId) AS b
LEFT JOIN ( SELECT UserId,
SUM(Amount) AmountIncome
FROM assets
GROUP BY UserId) AS a
ON b.UserId = a.UserId
WHERE b.UserId = $UserId";
$Dountvs = mysqli_query($mysqli, $GetAccountDountvs);
$colsDounat = mysqli_fetch_assoc($Dountvs);
$GetAccountDountdate = "SELECT AmountExpense, AmountIncome
71. 71
FROM ( SELECT UserId,
SUM(Amount) AS AmountExpense, dates
FROM bills WHERE MONTH(Dates) = MONTH(current_date())
GROUP BY UserId) AS b
JOIN ( SELECT UserId,
SUM(Amount) AS AmountIncome, date
FROM assets WHERE MONTH(Date) =
MONTH(current_date())
GROUP BY UserId) AS a
ON b.UserId = a.UserId
WHERE b.UserId = $UserId";
$Dountvsdate = mysqli_query($mysqli, $GetAccountDountdate);
$ColsDounatMonth = mysqli_fetch_assoc($Dountvsdate);
// get data based from budget
$Year = date("Y");
$Month = date("m");
$Getbudget = "SELECT b.CategoryId, b.Dates, b.Amount, c.CategoryName from budget
b, category c WHERE YEAR(Dates) = $Year AND MONTH(Dates) = $Month AND
b.UserId = $UserId AND c.CategoryId = b.CategoryId";
$Budget = mysqli_query($mysqli, $Getbudget);
$GetIncomeHistory = "SELECT * from assets left join category on assets.CategoryId =
category.CategoryId left join account on assets.AccountId = account.AccountId where
assets.UserId = $UserId ORDER BY assets.Date DESC";
$IncomeReport = mysqli_query($mysqli,$GetIncomeHistory);
?>
74. 74
FUNCTIONS.PHP
<?php
function alertBox($message) {
return "<div class="alert alert-success alert-dismissable"><button type="button"
class="close" data-dismiss="alert" aria-hidden="true">x</button>$message</div>";
}
function format_amount($n, $n_decimals) {
return ((floor($n) == round($n, $n_decimals)) ? number_format($n).'.00' :
number_format($n, $n_decimals));
}
function encryptIt($value) {
// The encodeKey MUST match the decodeKey
$encodeKey = 'Li1KUqJ4tgX14dS,A9ejk?uwnXaNSD@fQ+!+D.f^`Jy';
$encoded = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256,
md5($encodeKey), $value, MCRYPT_MODE_CBC, md5(md5($encodeKey))));
return($encoded);
}
function decryptIt($value) {
$decodeKey = 'Li1KUqJ4tgX14dS,A9ejk?uwnXaNSD@fQ+!+D.f^`Jy';
$decoded = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256,
md5($decodeKey), base64_decode($value), MCRYPT_MODE_CBC,
md5(md5($decodeKey))), "0");
return($decoded);
}
function clean($string) {
75. 75
return $string = str_replace(',', '', $string); // Replaces all spaces
with hyphens.
}
function Percentage($value){
return round($value * 100). "%";
}
function Percentages($value){
return round($value * 100);
}
?>
DB.PHP
<?php
error_reporting(0);
ini_set('display_errors', '0');
$dbuser="root"; //user to access your database
$dbpassword=""; //password to access your database
$dbname="yrmoney"; //name of database
$dbhost="localhost"; //your database server
$mysqli = new mysqli($dbhost, $dbuser, $dbpassword, $dbname);
if (mysqli_connect_errno()) {
printf("MySQLi connection failed: ", mysqli_connect_error());
exit();
}
if (!$mysqli->set_charset('utf8')) {
printf('Error loading character set utf8: %sn', $mysqli->error);}?>
76. 76
DASHBOARD.PHP
<?php
$msgBox='';
include('includes/Functions.php');
include ('includes/notification.php');
$GetAllIncome = "SELECT SUM(Amount) AS Amount FROM assets WHERE
UserId = $UserId";
$GetAIncome = mysqli_query($mysqli, $GetAllIncome);
$IncomeCol = mysqli_fetch_assoc($GetAIncome);
$GetAllExpense = "SELECT SUM(Amount) AS Amount FROM bills WHERE UserId
= $UserId";
$GetAExpense = mysqli_query($mysqli, $GetAllExpense);
$ExpenseCol = mysqli_fetch_assoc($GetAExpense);
//Count current totals Income
$CountTotals = $IncomeCol['Amount'] - $ExpenseCol['Amount'];
//Get Recent Income History
$GetIncomeHistory = "SELECT * from assets left join category on assets.CategoryId =
category.CategoryId left join account on assets.AccountId = account.AccountId where
assets.UserId = $UserId ORDER BY assets.Date DESC LIMIT 10";
$IncomeHistory = mysqli_query($mysqli,$GetIncomeHistory);
//Get Recent Expense History
$GetExpenseHistory = "SELECT * from bills left join category on bills.CategoryId =
category.CategoryId left join account on bills.AccountId = account.AccountId where
bills.UserId = $UserId ORDER BY bills.Dates DESC LIMIT 10";
$ExpenseHistory = mysqli_query($mysqli,$GetExpenseHistory);
77. 77
// Get all by month Income
$GetAllIncomeDate = "SELECT SUM(Amount) AS Amount FROM assets WHERE
UserId = $UserId AND MONTH(Date) = MONTH (CURRENT_DATE())";
$GetAIncomeDate = mysqli_query($mysqli, $GetAllIncomeDate);
$IncomeColDate = mysqli_fetch_assoc($GetAIncomeDate);
// Get all by month Expense
$GetAllExpenseDate = "SELECT SUM(Amount) AS Amount FROM bills WHERE
UserId = $UserId AND MONTH(Dates) = MONTH (CURRENT_DATE())";
$GetAExpenseDate = mysqli_query($mysqli, $GetAllExpenseDate);
$ExpenseColDate = mysqli_fetch_assoc($GetAExpenseDate);
// Budget Progress
$Getbudgets = "SELECT AmountIncome As Amount, (AmountIncome -
AmountExpense) As Totals, AmountExpense/(AmountIncome - AmountExpense) *
100/100 AS Per,CategoryName
FROM ( SELECT UserId,CategoryId,
SUM(Amount) AS AmountExpense
FROM bills
GROUP BY CategoryId) AS b
LEFT JOIN ( SELECT CategoryId,
SUM(Amount) AmountIncome
FROM budget WHERE MONTH(Dates) = MONTH
(CURRENT_DATE())
GROUP BY CategoryId) AS a ON b.CategoryId =
a.CategoryId
LEFT JOIN (SELECT CategoryId, CategoryName
FROM category
78. 78
GROUP BY CategoryId) AS c
ON b.CategoryId = c.CategoryId WHERE
b.UserId = $UserId";
$Budgets = mysqli_query($mysqli, $Getbudgets);
//Include Global page
include ('includes/global.php');
?>
<div id="page-wrapper">
<div class="row">
<div class="col-lg-12">
<h1 class="page-header"><?php echo $Dashboard;?></h1>
</div>
<!-- /.col-lg-12 -->
</div>
<!-- /.row -->
<div class="row">
<div class="col-lg-3 col-md-6">
<div class="panel panel-red">
<div class="panel-heading">
<div class="row">
<div class="col-xs-3">
<i class="glyphicon glyphicon-calendar fa-4x"></i>
</div>
<div class="col-xs-12 text-left">
<h2><?php echo $ColUser['Currency'].'
'.number_format($ExpenseColDate['Amount']); ?></h2>
<div><?php echo $CurrentExpense;?></div>
92. 92
Chapter-5
SYSTEM IMPLEMENTATION
5.1. System Implementation Maintenance and Review
As we know, creating software is one thing and the implementation of the created software
is another. The process of implementing software is much difficult as compared to the task
of creating the project. First we have to implement the software on a small scale for
removing the bugs and other errors in the project and after removing them we can
implement the software on a large scale. Before we think in terms of implementing the
Software on a large basis, we must consider the Hardware requirements.Whenever we
develop software or project a certain hardware and software is being used by the
programmer for developing the project. The hardware and software to be used by the
programmer for developing the project should be such that it would result in the
development of a project, which would satisfy all the basic needs for which the project has
been created by the programmer. The Hardware should be such that cost constraints of the
Client should also be taken into account without affecting the performance.
5.2. Hardware Evaluation Factors
When we evaluate computer hardware, we should first investigate specific physical and
performance characteristics for each hardware component to be acquired. These specific
questions must be answered concerning many important factors. These hardware evaluation
factors questions are summarized below:
Performance
Cost
Reliability
Availability
Compatibility
Modularity
93. 93
Technology
Ergonomics
Connectivity
Environmental requirements
Software
Support
5.2.1 Hardware Requirements
Hardware specification of the system that is used in this project is,
Processor : Intel® Pentium®(1.0 GHZ)
Memory : 2 GB RAM
Hard disk : 320 GB
Tools :The Hardware and Software Requirement Specifications:-
Minimum Requirements
Processor Intel Pentium4 or higher
CPU 2GHz
Memory At least 2 GB
Hard Disk 40 GB
Display Super VGA (800 600) or higher-resolution monitor with 256 colors
Input Device Keyboard , Mouse
Table No-1.1: Hardware Requirement
Minimum Requirements
Front End HTML5,CSS3,BOOTSTRAP,JQUERY,JAVASCIPT
Back End PHP5/My SQL
Operating System Windows 7 and more versions
Development Tool BRACKETS,SUBLIME,XAMPP
Table No-1.2: Software Requirement
94. 94
Summary and Conclusion
Designing, Developing and Maintaining yr money analyzer website is a very time
consuming and expensive process.Instead of spending large amount of money on doing
these things users/businesses can solely focus on making their servicesquality of product
better by using our platform to develop and Maintain their managing money websites will
be much cheaper for them then developing and maintaining them by themselves.
MINT type service but these service now on Research and Development phase. i can used
PHP/MYSQL Technology . PHP has advantages like powerful, performance,
scalability,robustness, security and simplicity.
To build any web application using PHP i need some framework for easy to build web
application such as cakePHP, larvel, codeigniter and Symfony so on.
In YRMoney Analyzer web application i do not used anyframework because its under R&
D. i use XAMPP Server for website for front-end-implementation of code in browser such
as chrome and run as (localhost/yrmoney) in URL and for database i use PHP Myadmin
as back-end database (RDBMS) since it is one of the most popular open source databases
which uses MYSQL language, and it provides fast data access, easy installation and
simplicity.A good money manage design must be accompanied with user-friendly
calculating application logic. It should be convenient for the user to view the contents of
their transaction and to be able to remove or add income and expense transactions to their
account. The money manageing application described in this project provides a number of
features that are designed to make the user more comfortable.
This project helps in understanding the creation of an live application such as Balance and
popular website is mint which provide best solution for any user for keeping records of
their transactions The design of the project which includes DataModel and Process Model
illustrates how the database is built with different tables, how the data is accessed and
processed from the tables.
The building of the project has given me a precise knowledge about how PHP Technology
is used to develop a website, how it connects to the database to access the data and how
the data and web pages are modified to provide the user with a money managing application