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 time to make recommendations for items to purchase in the future, create grocery lists, 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 experience programming in Java. I personally have been a Software Developer professionally
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 see tabbed forms which will allow them to choose between different categories. Each tab
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 the user to help them achieve their goals.
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, and amount to learn in a short amount of time.
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 on the project. The team will need at least one Android for development / testing.
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. Milestone 3 (week 9):
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. Budget
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 project owns or have access to an android smart phone for development.
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.