EXPENSE TRACKER REPORT (GRP 32)
EXPENSE TRACKER REPORT (GRP 32)
EXPENSE TRACKER REPORT (GRP 32)
EXPENSE TRACKER
SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENT FOR THE
Submitted to:
411048 2021-2022
CERTIFICATE
entitled
EXPENSE TRACKER
Submitted By
2021-2022
We cannot express enough thanks to our respected HOD, for providing us with a highly
conducive environment and encouraging the growth and creativity of each and every student.
We would also like to offer our sincere gratitude to our Mini Project Coordinators Mr S.N.
Shelke for the numerous learning opportunities that have been provided. We would like to take
this opportunity to express our gratitude to our Project Guide, Prof. Deepika Phalak (mam) for
continuously supporting and guiding us in our every endeavor as well for taking a keen and
active interest in the progress of every phase of The Expense Tracker Project. Thank you for
providing us with the necessary inputs and suggestions for advancing with our Project work.
We deeply appreciate the wise guidance that sir has provided. Finally, we would like to extend
our sincere thanks to all the faculty members, staff from SE Department.
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. Expense Tracker (ET)
aims to help everyone who are planning to know their expenses and save from it. ET is an
website 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
percentage of expense and income used. Although this website is focused on new job
holders, interns and teenagers, everyone who wants to track their expense can use this
app.
Table Of Contents
ACKNOWLEDGEMENT
ABSTRACT
Table OF Contents
Chapter 1 INTRODUCTION
1. Introduction
2. Project Summary
3. Purpose
4. Existing System
5. Proposed System
6. Features
3. Project Plan
1. User Characteristics
1. Implementation Details
2. Program
3. About The Project Website
Chapter 6 Applications
Chapter 7 Conclusion
Chapter 8 Bibliography
CHAPTER 1 Introduction
Expense Tracker is a refined system which allows user to efficiently manage his/her
expenses with ease. Tracking expenses daily can really help us to save a lot of money.
Once we start of by tracking our expenses each day, we will be able to get a better idea
about where you are spending your money, so you stay in control and achieve your goal.
It will generate our expense and from that we can calculate savings ourselves. It will let
you add the savings amount, which you had saved for some particular Festivals or days
like Birthday or Anniversary. Try to explore the app and see what you will do to properly
manage your daily expenses.
1.2 Project Summary
The Expense Tracker is created in a HTML web browser that uses CSS and
JavaScript to give user a great interactive experience when using it. The app can be
used through any web browser that only contains buttons and textboxes. The user can
enter any amount of expenses in order to calculate the total amount of expense. The
user can either input a (positive number will be treated as a saving, negative number
will be treated as expense). Try to explore the app and see what you will do to properly
manage your daily expenses. The Expense Tracker was built by using basic JavaScript
coding structure that can be easily understand by beginners to improve their coding
techniques.
1.3 Purpose
In existing, we need to maintain the Excel sheets, CSV 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. To do so a person as to keep a log in a diary or in a computer,
also all the calculations needs to be done by the user which may sometimes results in
errors leading to losses.
Basic GUI
The project contains basic UI such as buttons and textboxes.
Auto Calculations
This project uses an automatic feature that automatically calculate your inputted
number.
User-friendly Interface
This project is designed in a simple user-friendly interface web application so
that your easily modified .
CHAPTER 2. 0 Project management
In this chapter we will discuss about project planning and scheduling. Our goal is to establish
a pragmatic strategy for controlling, tracking, and monitoring a complex technical project.
In Project planning and scheduling, planning of the project is done. In scheduling different
task are schedule according to the deadline of the project.
Project Complexity: - Project complexity has a strong effect but is heavily influenced by
past practitioner experience.
Project Size: - As size increases the interdependency of elements also grow. Watch
out for scope creep.
The degree of structural uncertainty: - the degree to which requirements are solidified
and the ease of functional decomposition. The purpose of project planning is to ensure
that the end result is completed on time, within budget, and exhibits quality!
2.2 Project development approach
The waterfall model was selected as the model due to the following reasons:
Easy to manage due to the rigidity of the model. Each phase has specific deliverables and a review
process.
This is the first stage of the project, which involves interaction with the customer to understand
his/her needs, requirements, information, required functions, performance and interfacing in
MLM software. For this purpose requirement analyst will arrange a meeting for gathering
information and additional details for software development. After completing requirement
gathering tasks developer team will take a look for understand how requirements can be
computerized. The requirement is documented in the form of a Software Requirement
Specification (SRS) which is then presented to the customer for review.
Design
Beginning once software requirements have been analyzed and specified, software design is the
first of three technical activities – design, code generation, and test – that are required to build
and verify the software.
Data Design
Architecture Design
Interface Design
Component level Design
Development
The design must be translated into a machine-readable form. The coding step performs this task.
In this stage, the developers will actually code the programs. The specifications arrived at the
design stage for each and every function will be converted to code using tools that are finalized
for the implementation of the Software. At this stage the testing methodology to be adopted will
be finalized. For each program test cases will be prepared and for each of these test cases, test
data will also be prepared. The actual developers will do a first cur checking at this stage to see
that the programs written by them are error free.
Testing
In these stages the test group of the development team, using the cases and the test data already
prepared will test the programs. Only after all the functions are tested singularly, an integrated
testing will be performed to see that inter- function dependability is satisfied. Separate test
cases and test data will be worked out for the integrated testing.
Acceptance Test
This round of testing will be performed by the test group formed by the users of MLM software.
This test group has to ensure that the developed software is working as per their requirements. If
some problems are found then it should be immediately communicated Development group so
that the problem can be looked into and hence rectified.
Data Creation
For software, data is most important part. Data is information which is handled by software. So
before coding software, all master table data will have to be created.
Implementation
Now the implementation of software is to be done by programmers. All the requirements and
information gathered by the analyst is now take actual image in form of software. After
making software it is uploaded in to the system so users, for whom software is developed,
can use the software.
CHAPTER 3.0 System Requirements Study
User A? Administrator
Administrator: Admin is having all the rights on the application.
User B? Employee
Anonymous User: Anyone who visits website. And any person applying for the posted job on
the website.
User D? Client
Client: This is the registered user. Who come to know about his/her project’s progress?
Hardware Specification:
Hard Disk : 4 GB to 30 GB
RAM : 512 MB
3.3 Constraints:
General Constraints
1) This system will not take care of any virus problem that might occur on the computer with
which it is installed. Avoiding the use of pirated/illegal software and ensuring that floppies and
other removable media are scanned for viruses before use could minimize the possibility of viral
infection.
2) Recovery of data after a system crash will be possible only if backups are taken at
regular intervals.
3) Manual interfaces cannot be fully avoided. Documented proofs like dates etc. will have to
be verified by the concerned staff before entering it into the computerized system
Hardware Constraints
The performance of the system will be dependent on the machine conditions. The primary
memory (RAM) and the secondary memory (Hard Disk Space) requirement of the system will
be the same as that required by the normal application and the operating system. And the space
required storing the data. The space required to store the data would increase as more and more
records are added to the system.
Assumptions and Dependencies
a. It is assumed that the user is familiar with the basic computer fundamentals.
b. Timely backup of data should be taken to avoid data loss in case of system crash.
c. Floppies and other removable media should be scanned for viruses before use.
d.It is assumed that the maintenance of the database will be assigned to the authorized
person only.
HTML
Hypertext Markup Language (HTML) is the standard markup language for documents
designed to be displayed in a web browser. It can be assisted by technologies such as
Cascading Style Sheets (CSS) and scripting languages such as JavaScript. Web browsers
receive HTML documents from a web server or from local storage and render the
documents into multimedia web pages. HTML describes the structure of a web page
semantically and originally included cues for the appearance of the document.
CSS
Cascading Style Sheets (CSS) is a style sheet language used for describing the
presentation of a document written in a markup language like HTML.CSS is a cornerstone
technology of the World Wide Web, alongside HTML and JavaScript.CSS is designed to
enable the separation of presentation and content, including layout, colours, and fonts. This
separation can improve content accessibility, provide more flexibility and control in the
specification of presentation characteristics, enable multiple web pages to share formatting by
specifying the relevant CSS in a separate .CSS file, and reduce complexity and repetition in the
structural content.
One of the goals of CSS is to allow users greater control over presentation. Someone who finds
red italic headings difficult to read may apply a different style sheet. Depending on the browser
and the web site, a user may choose from various style sheets provided by the designers, or may
remove all added styles and view the site using the browser's default styling, or may override
just the red italic heading style without altering other attributes.
JavaScript
Create a folder called expense-tracker as the project workspace and we will create all the project
files inside this folder.
1. index.html
Let's create index.html and add the following code to it:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<!-- font awesome library cdn link -->
<link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"
/>
<!-- css animation library -->
<link rel="stylesheet" href="animate.css" />
<link rel="stylesheet" href="./magic-master/dist/magic.min.css" />
<!-- custom css -->
<link rel="stylesheet" href="./style.css" />
<title>EXPENSE TRACKER</title>
</head>
<body>
<div class="main-container">
</div>
</div>
</div>
</div>
</div>
<!-- custom javascript -->
<script src="./script.js"></script>
</body>
</html>
2. script.js
Let's create a JavaScript file named script.js and add the following JavaScript code to it
//control the budget
var budgetController = (function () {
//expenses constructor
function Expenses(id, description, value) {
this.id = id;
this.desc = description;
this.val = value;
this.percentage = -1;
}
Expenses.prototype.getPercentage = function () {
return this.percentage;
}
//ncomes constructor
function Incomes(id, description, value) {
this.id = id;
this.desc = description;
this.val = value;
}
budget: 0,
percentage: -1
};
function calculateTotal(type) {
var sum = 0
data.allIncExp[type].forEach(function (val) {
sum += val.val;
});
data.totals[type] = sum;
}
return {
generateItem: function (type, desc, val) {
if (data.allIncExp[type].length > 0) {
ID = data.allIncExp[type][data.allIncExp[type].length - 1].id + 1;
} else {
ID = 0;
}
index = ids.indexOf(id);
if (index != -1) {
data.allIncExp[type].splice(index, 1);
}
},
calculatePercentages: function () {
data.allIncExp.exp.forEach(function (curr) {
curr.calcPercentage(data.totals.inc);
});
},
getPercentages: function () {
var allPerc = data.allIncExp.exp.map(function (curr) {
return curr.getPercentage();
});
return allPerc;
},
calculateBudget: function () {
// calculate total income and total expense
calculateTotal('inc');
calculateTotal('exp');
})();
//control the UI
var UIController = (function () {
var getDataClasses = {
type: ".select-box",
description: ".des-box",
value: ".value-box",
addBtn: ".add-btn",
incomeContainer: '.income-container',
expenseContainer: '.expense-container',
moneyLeft: '.money-left',
totalIncome: '.total-income',
totalExpense: '.total-expense',
totalExpPer: '.total-exp-per',
mainContainer: '.main-container',
smallPerShow: '.small-percentage-show',
date: '.date'
};
return {
//getting data of all fields in object properties
inputData: function () {
return {
type: document.querySelector(getDataClasses.type).value,
description: document.querySelector(getDataClasses.description).value,
value: parseFloat(document.querySelector(getDataClasses.value).value)
}; //make public methods to use in other modules
},
dataClasses: function () {
return getDataClasses;
},
addListItems: function (obj, type) {
fieldData.forEach(element => {
element.value = '';
});
fieldData[0].focus();
},
if (percArr[index] > 0) {
current.innerHTML = percArr[index] + " %";
} else {
current.innerHTML = "---";
}
});
},
var el = document.getElementById(selectorID);
el.parentNode.removeChild(el);
},
displayDate: function () {
var dateElement = document.querySelector(getDataClasses.date);
var allMonths = ['January', 'February', 'March', 'April', 'May', 'June',
'July', 'August', 'September', 'October', 'November', 'December'];
var date = new Date();
var month = date.getMonth();
month = allMonths[month];
var year = date.getFullYear();
dateElement.textContent = `${month}, ${year}`;
}
};
})();
document.querySelector(dataCl.addBtn)
.addEventListener("click", triggerCtrl);
document.querySelector(dataCl.mainContainer).addEventListener('click',
ctrlDeleteItem)
};
function updateBudget() {
// 1. Calculate the budget.
budgetCtrl.calculateBudget();
function updatePercentages() {
// calculate percentages
budgetCtrl.calculatePercentages();
function ctrlDeleteItem(event) {
var getElemetID = event.target.parentNode.parentNode.id;
var splittedID = getElemetID.split('-');
var type = splittedID[0];
var ID = parseInt(splittedID[1]);
return {
init: function () {
UICtrl.displayDate();
eventHandler();
}
}
})(budgetController, UIController);
body {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100vh;
.main-container {
width: 80%;
height: 80vh;
border-radius: 6px;
box-shadow: 0px 2px 11px -1px rgb(97, 108, 111);
display: grid;
grid-template-rows: 15% 85%;
grid-template-columns: 35% 30% 35%;
padding: 1%;
}
.get-data {
height: 80px;
grid-column: 1/-1;
}
.get-data-flex {
height: inherit;
display: flex;
justify-content: center;
align-items: center;
}
.get-data-element {
padding: 1%;
border: none;
}
.des-box {
width: 40%;
background-color: #dae0e2;
border: 1px solid #dae0e2;
outline: none;
}
.des-box::placeholder,
.value-box::placeholder {
font-size: 0.8em;
}
.add-btn {
width: 10%;
border-radius: 0px 10px 0px;
background: rgb(97, 108, 111);
background: linear-gradient(90deg,
rgba(97, 108, 111, 1) 0%,
rgba(44, 51, 53, 1) 39%);
color: whitesmoke;
font-size: 0.8em;
font-weight: 600;
outline: none;
cursor: pointer;
}
.value-box {
width: 10%;
background-color: rgb(230, 234, 235);
border: 1px solid rgb(230, 234, 235);
outline: none;
}
.select-box {
border-radius: 10px 0px 0px 10px;
background: linear-gradient(90deg,
rgba(44, 51, 53, 1) 37%,
rgba(97, 108, 111, 1) 100%);
color: whitesmoke;
outline: none;
cursor: pointer;
}
option {
color: black;
}
.income-box {
.expense-box {
} */
/* --------------------------------------- */
.show-data * {
/* border: 1px solid black; */
text-align: center;
border: none;
}
.cd {
padding: 10%;
width: 80%;
/* border: 1px solid grey; */
border-radius: 6px;
}
.calculated-income {
background-color: rgb(143, 238, 236);
box-shadow: 0px 2px 11px -1px rgb(143, 238, 236);
color: white;
text-shadow: 0px 2px 3px #616c6f;
font-family: "Lato", sans-serif;
font-size: 0.8em;
}
.calculated-expense {
background-color: rgb(250, 142, 125);
box-shadow: 0px 2px 11px -1px rgb(250, 142, 125);
color: white;
text-shadow: 0px 2px 3px #616c6f;
font-family: "Lato", sans-serif;
font-size: 0.8em;
}
.small-percentage-show {
font-size: 0.5em;
font-weight: 600;
border-radius: 4px;
background-color: rgb(253, 251, 251);
opacity: 0.5;
color: black;
}
.small-percentage-show-a {
font-size: 0.5em;
font-weight: 600;
border-radius: 4px;
background-color: rgb(253, 251, 251);
opacity: 0.5;
color: black;
}
.amount-left {
font-family: "Lato", sans-serif;
background-color: rgb(245, 201, 107);
box-shadow: 0px 2px 11px -1px rgb(245, 201, 107);
color: white;
text-shadow: 0px 2px 3px #616c6f;
}
.date {
font-family: "Lato", sans-serif;
}
.log {
overflow: scroll;
}
/* .income-box * {
} */
.ie-bar {
margin: 1%;
display: flex;
width: 100%;
justify-content: space-between;
padding: 4%;
align-items: center;
border-radius: 6px;
box-shadow: 0px 2px 3px #616c6f;
background: linear-gradient(90deg,
rgba(2, 108, 47, 1) 8%,
rgba(46, 204, 114, 1) 62%);
color: white;
}
.ie-bar-des {
flex-grow: 2;
max-width: inherit;
overflow: hidden;
font-size: 0.8em;
}
.ie-value,
.ie-sno {
font-size: 0.8em;
}
.ie-cross-btn {
cursor: pointer;
}
.expense-only {
background: linear-gradient(90deg,
rgba(186, 47, 22, 1) 32%,
rgba(228, 66, 54, 1) 53%);
}
.developer {
font-family: "Montserrat", sans-serif;
text-align: center;
margin-top: 5px;
color: #616c6f;
font-size: 0.6em;
/* Media Queries */
@media (max-width: 768px) {
.all-income-h1,
.all-expense-h1 {
font-size: 0.9em;
}
.calculated-income,
.calculated-expense {
font-size: 0.6em;
}
}
.show-data {
grid-row: 2/3;
}
.get-data-flex {
flex-direction: column;
padding: 15%;
}
.get-data-element {
width: 85%;
border-radius: 4px;
text-align: center;
margin: 2px;
}
.show-data {
margin-top: 38px;
}
.amount-left {
font-size: 0.8em;
}
.ie-bar {
margin: 2%;
}
.main-container {
width: 100%;
height: 100vh;
border: none;
box-shadow: none;
}
.log {
height: 30vh;
overflow: scroll;
margin-top: 5%;
}
.cd {
padding: 4%;
}
Tracking remodelling expenses. For example, a kitchen remodel project (see reference
below).
Track improvement and maintenance costs on your house or properties.
Track your small business expenses, and stay within your budget.
Track project expenses for small to medium-scale projects that also require budget
tracking
Easy to use
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 their 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.
CHAPTER 8.0 BIBLIOGRAPHY
https://www.tutorialspoint.com/index.html
https://www.javatpoint.com
https://www.w3schools.com
https://html.com