Financial Tool (using
GPS technology) for
An Android App
Matthew Antognoli
Before you yawn and say to yourself, “Yet, another financial application...,” hear me out.
Many of you are going to be graduating in May and are looking for Software Engineering jobs. If this is you, this project introduces Database Management, Web Service development, and Mobile development using GPS. All these areas are in high demand and when looking for a job in just a few months, learning these skills will increase your demand and salary. When this project was thought up, I was thinking about what skills I would like to be able to say I have and can easily show a possible employer (via android market) in just 3 months. Yes the edge is not there like one might see in other
proposals, but I would argue that most successful products existed prior to the product that actually sold (Facebook, Windows, etc.). The real edge is the connection, supply, and demand.
There are many financial applications similar to this one on the market. This is because people buy them!
Yes, this proposal has less edge, but it has likelihood for success possibly more than proposals with more edge. Furthermore, you will obtain critical skills that you may use, in order to find a job and negotiate your salary in just a few months.
Background
A friend introduced me to a way to create a nice financial plan using spreadsheets. It was
compelling enough that I started using a similar concept years ago. It paid off in a major way,
but there is room for improvement. Now, with the advent of applications on mobile devices it is
possible to implement features to increase the planner’s ease of use and make the system
easily available to others that would find this interesting. Even if the consumer of the app is to
use it simply to evaluate what you bring to the table, like a hiring manager.
What it does
This app provides an easy way for its users to categorize, analyze, and save money.
How it works
This app will use GPS to store information regarding the location of your purchases. Find and
recommend stores within a small radius of the purchase, where you could buy the same items
for less cost (if possible). It will be able to scan and read barcodes to recognize what you are
purchasing. Store the information in a centralized database. Use this data to make
recommendations to help improve your purchases.
Expanded Introduction
As an introduction, the app will set spending categories (bills, groceries, rent, etc), monthly and
yearly goals from the user. The app will save information based on former purchases, GPS and
provide information regarding purchases at that location. The app will then update the
database on the server. It will have a rich graphical interface, presenting ease of use to its user.
The app will graph where the users money is being spent currently and historically. It will give
the user future estimations and will offer tips and email the user when bills are due.
Furthermore, the app will give warnings when the user may overdraft if a purchase amount is
too high.
Using spreadsheets presents a problem in that not everyone knows how to use spreadsheets.
Even if one does know how to use a spreadsheet, building a financial planner with one is
difficult, and then managing it can be very difficult. Another issue is entering money spent. If
the information is on a spreadsheet, it is probably located on your computer, and it is unlikely
one has access to their computer everywhere they make purchases. There are mobile
spreadsheets that exist, though, but building a financial planner using one can be very time
consuming, space consuming, and would not be easy to merge with others using the same
financial account. Having an application on a mobile device makes it possible to use it real time
anywhere that you have your device. The user does not have to worry about management
concerns, like backing up the data, changing the account for different goals, making the planner
easy to use, bugs, and security.
Previous Work
The Finance app, is a good project for many reasons. First of all, android apps use Java
technology. The team members selected to engineer this project will all have at least a year’s
for the past 4 years. I have been interested in managing money for some time now. As
explained earlier, I have for many years created and managed many different pseudo-financial
applications using spreadsheets. They have had a lot of variety. These applications have been
created with features like managing stocks, managing multiple users, managing categorical
spending, and long term financial planning. I have made mistakes and have had to think
through many different scenarios that may be the divide between a successful product versus
an unsuccessful one.
On the other hand, there are many techniques that apply to app development that I do not yet
understand well or expect others on the team to be experienced dealing with. For example,
Android application development uses techniques for memory management and application
state transitions which depending on our experience will probably not have been a concern in
the past. So by developing this type of application we will be more employable, give exposure
to scare resource development, database management, and web service development.
System Description
The application itself will present itself to the user as a simple forms application. The user will
download the application from the android market. The user will then initialize the application
by setting up the parameters necessary for their financial plan. After initializing the system, the
user can set up a group account.
Once the system is initialized, the application can then be used. From a user’s perspective, they
will give the user a different graphical perspective. The perspective chosen, combined with the
user’s permissions will give them the ability to manipulate, and/or view information regarding
that category.
When a user makes a request to set information on the financial account, the information will
be encrypted and sent through the internet to the web service. The web service will update the
information in the database regarding the user’s account.
The app will allow many views of how the financial plan is unfolding, reporting historical
information, current information, and likelihood of reaching the financial goals of the account.
It will provide graphs, text views, and email notifications to users when a change has been
made to the state of the account. Email notifications will tip the user to make different
spending choices.
Expenses
This category will be available from the main page. The tab ‘Expenses’, when selected will
change the graphical perspective to show information regarding the users money spent that
month, how much money is available in their account to be used. The amount of money spent
in monthly expenses like (car, rent, etc.).
The user will be able to add to the amount of money in an expense category or even remove
money (for instance if an item purchased is returned). The app will be able to report how the
financial account is doing in regards to goals set. Graph and textual information will be given to
Reports
From this perspective the user will be able to get reporting information regarding information
of interest in .pdf format saved to their phone or emailed to them.
Needs
I see this project needing four members. A developer to oversee web service and database
management, a developer devoted to the graphical user interface, a developer devoted to
computation of financial information, and a quality assurance member who will build test
cases, run tests, document, and market the application.
Challenges
This application will face many challenges. The main challenges will be time, and the unknown
obstacles. Known challenges include synchronization between mobile devices, amount of time
for a device to synchronize with the database, handling an inability to connect to the internet,
Timeline
Description of timeline:
Group meetings: Once a week for one hour. Just enough time to review what we did the week
prior and to discuss goals for the following week.
Client meetings: Once a week to discuss challenges, new developments, receive feedback, etc.
Requirements:
First week deadlines:
Eclipse installed with Android SDK. We will need to have Subversion in place for all developers
Everyone assigned an initial job.
Second week deadlines:
Have a working database from a centralized server.
Third week deadlines:
Solid understanding of Android development
Design:
Milestone 1 (week 1):
High level design of how the major parts of the project will work together.
Milestone 2 (week 2):
Detailed design of inner workings of each part.
Milestone 3 (week 4):
Design review.
Milestone 4 (week 8)
Point of no return
Development:
After every developer has a job and an initial design (week 1), start developing.
Release Schedule:
Milestone 1 (week 4):
All parts working together.
Milestone 2 (week 7):
More than the core of the app, with many of the proposed features working.
All features implemented and working (may be buggy).
Milestone 4 (week 10):
Killing bugs, adding detail
Milestone 5 (week 11):
Release version ready
Testing:
Phase one:
Unit tests, should be implemented by week 4
Phase two:
Quality assurance testing; the duty of one of the developers (through week
11).
Deployment:
Android market release (week 11)
Final release (week 12
Documentation:
Final week.
With the likely experience of developers in this class, I would argue a salary of $60,000/year for each member. Since the project’s duration is one quarter of a year, each member would receive $15,000 for the duration of the twelve weeks and be paid the same rate to maintain it after the final release. The project will also need to maintain a web space to host the web content and database. This will be approximately $100/year and $25 for the duration of the class. Office space will be needed and estimated at $250/month. Finally, the project will need a Google Android membership account for $25. These amounts sum to approximately $61,050 over the 12 week duration and about $250,000 per year.
The only real amount of money this project requires in the next 12 weeks is $25 in order to create an account for uploading Android applications. I plan on using web space and a database provided by University of New Mexico for this project.
Maintenance
The app will be maintained by myself and/or others who were involved on the project through
its beta release (estimating from May through July). If the app shows significant promise on the
Android market, a new version may be released for profit, to subsidize the work needed to
make this product viable for the long term future.
This project requires little overhead. Some of the requirements are, a computer with eclipse
and the Java SKD installed. Additionally, the Android SDK will need to be installed. A web
service backed by a database will also be needed. The code and other resources will be
protected using Subversion. Preferred, but not required is that anyone programming on this
Conclusion
People are given greater financial independence today more than ever before in recent history. We depend less on our partners, employers, and must then rely on our own ability to manage money. People however, are not prepared for this responsibility. Financial applications give people the control and education over their finances. This financial application has unique qualities that make it worthwhile to users. It allows for multiple users to affect the state of an account. It will be offered for Android mobile devices allowing people to have greater control over their finances at almost any moment they make purchases. It will be offered free of charge and if found to be a successful app, will have a strong foundation to be continued in the future. If the app does not have success on the Android market, the Software Developers are sure to have learned many new concepts that will be important for any professional and can be an addition to their resume.