Lots of people struggle with money management. In college, we always hear students complaining that they regret after buying clothes, they failed to manage their monthly budget, etc. Therefore, we hope to create an app that helps users develop better money management awareness and skills.
What it does
The app helps users to develop money management skills through a simple but sometimes challenging activity, saving money for a specific goal. When entering the page, users can set goals of what to save for, how much is the product, and when do they need it by. Not only can users record revenue and expenses, the app offers a special "savings" section, that users can "save" money for their goal. Though the money is not taken away in reality, it is automatically understood as a "prepay" in the app. This serves as a great motivation for users to constantly look at their desired product to buy, and to save money daily. Relevant features are introduced to advance users' experience:
- Visualization of Saving Progress. The app visualizes the way of saving money as users going through a road to reach the finish line, with various time (time limit for desired product), exhaustion (money remained unused), and distance (amount of money to save). This offers users a clear understanding of their progress and motivates them to actively manage their money for the product they want.
- Detailed Record of All Transactions. The "record" page shows a detailed record of all transactions that have entered, including income, expenses, and savings. The record clearly labels the amount and type of transaction in chronological order. Users can easily scroll up and down to gain a clear view of their recent transactions.
- Analysis and Recommendations. The "analysis" page shows detailed summary and comparisons of weekly income, expenses, and savings, so users can gain a big picture of their general spending habits and trends. Besides, utilizing the forecast of time series on R, FortuneU predicts future transactions under all categories, allowing users to plan ahead their budgets accurately.
- Community and Users' Level. FortuneU creates a community for all users to post their accomplishments, helpful tips, or questions and concerns. When connecting to others with similar goals and interests, users are more engaged in completing their savings task each day. Besides, FortuneU develops a user level system. All users enter the system at LV1. As they save more money and reach more goals, their level gradually raise. On the other hand, if they constantly fail to meet their goals, their level drop. Each level is associated with a transportation icon that indicates the ability to reach the goals. This system further motivates users' desire to meet their goals.
- Clean, Simple, and Comfortable Design. FortuneU has clear instructions and comfortable designs, allowing users to easily use the product.
How I built it
FortuneU is an iOS app built with Xcode and Objective C. We started off by brainstorming ideas and discussing ideal user stories, and then we divided our work mainly into the development side and the product design side. In terms of iOS development, we used a variety of different tools and techniques: we used Parse as our database; we used combinations of tab bar view controller, table view controller, segue, protocols and delegates, segmented control and container views; we also applied xib file to customize table view cells, and made a lot of effort on polishing the UI by manually coding views. Moreover, we also applied R and other data analysis tools to generate analysis diagrams and charts for the user to know their weekly financial performances.
Challenges I ran into
One of the challenges that I went into is how to let the information listed on the “Record page” automatically gets updated once a user posts new income/expense/savings without doing manually refreshing. There are two main reasons that makes the implementation challenging: First, “Record page” first segues into a “Post page” containing 3 container views each of which then segues into the “post income page”, “post expense page” and “post savings” page. Second, buttons for posting is on “Post page” but the actual information that the user inputs would be from 1 of 3 sub pages, and we also want updates of information get sent all the way back to the “Record page”. These things make it complicated to find a clear way of passing data around. After drawing out a diagram that helps me better illustrating how data is passed around these pages, I ended up figuring out how to correctly set up all the corresponding protocols and delegates. It was amazing to see for the first time how it automatically updated other pages.
I also went over many challenges of building good design with Xcode and objective C. A lot of the UI we wanted to build could not be easily implemented through things that are already in the object library. So I ended up manually coding a lot of views, which was a bit overwhelming at first but it was interesting.
Accomplishments that I'm proud of
We are proud of solving all the above challenges and successfully developing a fully functional and original iOS app. Though problems occured in brainstorm, design, as well as implementation parts, we eventually overcame all these difficulties as a team, encouraging and helping each other. Most importantly, we are proud of designing the app that we, as consumers, would be willing to try and use.
What I learned
Product wise, we learned to think about a product from users' perspectives instead of developers'. We learned not to simply follow the easiest way to implement, but rather to create a product that is the most helpful to targeted users. Technical wise, we guided ourselves through the whole process of developing an iOS application. The process is extremely valuable for us to have a full understanding of the structure, design, and implementation of such applications. Communication wise, we learned how to cooperate as a functional and efficient team to develop an application, where every member better understood our own strengths and weaknesses.
What's next for FortuneU
- Better Analysis and Recommendations. FortuneU currently uses R packages for forecasting future savings. Some deeper research can be conducted to better predict users' future expenses and savings. For instance, machine learning can be utilized to constantly
- Better Visualization on Daily Progresses. The current home page (“goal” page) design includes the percentage of progress, time, and money remained for users. Besides serving as the big picture and showing constant progress, the page can also be designed to show clear progress on a daily or weekly basis. For example, a flag can be shown each day.
- Connect with Banks and Other Financial Organizations. FortuneU requires users to enter each of their transactions on themselves. It can be more convenient for users to directly connect their credit card records with FortuneU, so our application can directly read and process information.