Tim Pepper's Research in Computer Science


Hello, and welcome to my final research project.

Abstract:

     The eCashStash application is a resource made specifically to help users learn how to properly save their money. The objective of this project is to create a simple, single page application in which a user with next to no skill with computers could begin using the program and immediately see an increase in their savings potential. Money management is an important part of becoming a responsible member of society and this application aims to foster an understanding of proper savings technique in those who choose to utilize it.
    The project itself is built around the concept of ShoeBox savings. ShoeBox savings is a simple financial management technique in which money is stored in a ShoeBox and then distributed among any number of Envelopes, each with an individual savings goal. An individual participating in this technique will choose to fill their Envelopes as they receive more income and, over time, be able to take that Envelope out of the ShoeBox in order to use the money they have saved. This savings technique has proven itself a worthy tool in teaching self discipline and financial management.
    The two main portions of the project are a secure sign up and log in system, and the application itself. The application is hidden behind the log in system in order to protect user information and ensure the safety of passwords within the database. To do this I incorporated a hashing algorithm and a concept known as salting, both of which will be described in further detail below. The application itself is built with a set of pages that allow a user to add or withdraw money and edit their individual “Envelopes” to fit their needs.
    When an account is created the user is added to three separate MySQL tables that hold different parts of the user's data. One table holds all of the user's log in information, while the other two hold different parts of the user's Envelope and funds information, which are generated from user input within the application itself. All of the communication between MySQL and the application is through PHP, which sends queries and receives information from the database based on user input. The client side of the application is built using HTML and CSS. The visual aspects are then controlled with Javascript and jQuery, which are set up to show and hide different elements within the application based on user input.

Background:

    I decided to go with this project in response to my inability to find a simple, user friendly application in which I could manage my savings without having to give the application my banking information. Other applications, such as Intuit's “Mint” money management system tend to force users to attach their banking information, something that I identify as a possible security risk. If someone were able to hack in to a users profile on an application like this they would have immediate access to a user's banking information, putting them at risk for account tampering, stolen identity, or any number of other unfortunate scenarios. These applications also tend to be on the more complicated side, forcing the developers to hold the user's hand when teaching the user about their product. Instead of giving the user the ability to name their categories, or, in this case, Envelopes, these programs often have a set of pre-defined names and conditions under which a user can create or manage their savings categories. I believe that this inhibits learning and creates a confusing and undesirable environment for users that do not have experience with managing money or previous experience with similar applications.
    I wanted this application to revolve completely around the user's ability to set up their ShoeBox however they wanted, but more importantly, I wanted to create a product that didn't need any explanation. A user should be able to jump right in and immediately understand what they were working with. This allows the user to begin organizing their funds as soon as possible instead of spending an excessive amount of time learning how to use the product I had built. This desire to create a simple system lead to the use of ShoeBox savings.
    ShoeBox savings is a technique I have learned as a young adult and believe that it is an amazing tool for learning how to properly save and distribute funds to account for more than just the present. With this method of savings it is possible to not only plan for the future, but create a buffer for possible emergencies in which money can be transferred from one need to another to account for a dynamic list of wants and needs. By incorporating this in to my project I believe that I will be able to help myself and others more effectively learn this savings technique and hopefully begin a trend where money is compulsively saved instead compulsively spent as it tends to be with many members within my age group. A trend like this would hopefully create a culture where people are more comfortable with their finances and because of this would then be less encumbered with financial debt.

Plan:

For this project I will be using HTML, PHP, MySQL, Javascript, and possibly some jQuery and Ajax coding. All of the code used will be original
and based off of ideas from previous classes and methods that I have researched online throughout my time in college. This will likely be, by far, the most
in-depth coding project I have completed so far.

Project Home Page:

Budget Application Login Page

Note: Still in early development stages, new updates will arrive soon.