Budgeting Tool
Brandon Ganch
Chris George
Paul Perello
Mike Schmidt
OVERVIEW
GOAL: To design personal budgeting software for a 21-year old male with Autism that will help improve his money management skills.
Understanding Autism
Neurological disorder – affects brain function Impacts development of brain in areas of
social interaction and communication 1.5 million Americans have Autism Growing at a rate of 10-17% People with autism can learn and function
productively and they show gains with appropriate education
Project Characteristics
Our project requires extensive interaction with the user and client
The main focus is satisfying the needs of our one end-user.
Due to the fact that we have only one end-user, there will be a lot of customization (sound, scenarios, reading/math level)
Project Characteristics
Specifications at the beginning were limited, more free range in design
Thus, client specifications have developed over time through samples of our progress on the interface and its functions.
First idea – Create a tool that teaches
Second idea – Create separate budgeting tool and educational game
End-User Characteristics
Travel: Expedia.com Details – make realistic Elevators, Tunnels, Buses
Project Outline
Tool – Simple budget tracker– Keeping track of transactions
Game – Structured trip simulator– Planning expenses
Project Problems
Problem: How our tool would function 2 options: solely track expenses
create actual budget After consultation with the client, we decided some
sort of budgeting was best Decided on the simplest interface End-user will only see the current balance which
may go up or down depending on the user’s type of transaction.
Project Problems
Problem: Having MySQL and PHP run locally
We initially decided to use MySQL as our database and PHP as our programming language (good interaction with Flash and MySQL)
Easiest to run on web server (CS), since no worries about having MySQL and PHP locally
Project Problems
Also, can run on any machine with internet connection
Constraints: Security and Dial-up Modem on end-user’s system
Thus, after consultations with our clients, we decided to explore local option
Learned that a Java program can read in Flash variables and then write to a text file
Project Problems
Also, Flash has the capability to read locally stored text files
Summary: Java replaced PHP
text files replaced MySQL For our project, we decided text files should
be sufficient back-end for the amount of data that will be saved
Use Cases
We have 2 use cases:– End-user Use Case– Admin Use Case
• Our end-user use case will allow the user to document a transaction, save it to a back-end, clear the transaction, view a monthly report
• Our admin use case will allow the administrator to view an admin manual, delete an entry, and reset the balance
End-User Use Case
Field input – date, type, amount, description and category
User will always see his current balance Error checking – amount field, no negative or
non-numeric characters will be allowed Clear Entry – all fields back to default Save Entry – balance is updated; if drops
below zero, no more expenditures allowed
End-User Use Case
Get Report – The user will be able to choose a report from any month– Categorize report by category, type of transaction
or by week– Able to print report at any time– Able to fill screen with an individual week– Able to view a vertical bar graph with respective
report
Admin Use Case
View Admin Manual Reset Balance – The user may reset the
balance to any number they wish (error checking on non-numeric characters)
Delete Entry – The user may delete any entry from the last 10 transactions made by the end-user by clicking on that entry
Interfaces
End-user main interface View reports pop-up interface Admin pop-up interface Delete entry interface Error pop-up interface
Architecture
Repository Built on the fact that we will be reading and
writing to back-end text files Both administrator and end-user will be using
and manipulating the same text files Initial domain classes – Debit entry, Credit
entry, Monthly Report
Project Layout
Reset Balance (admin), Save Entry (end-user), Delete Entry (admin) and Get Report (end-user) all overlap in utilizing back-end structure
Draw broad layout on white board
Back-end
Text files– database.txt– balance.txt– last10Entries.txt– sortByID.txt
Back-end
Java files– Reset.exe– SaveEntry.exe– SaveBalance.exe– DeleteEntry.exe– SaveBalanceReset.exe– GetReport.exe
Back-end Technical Problems
Deleted text files Corrupted entries in text files