Inspiration
We found that students don't often plan ahead for their retirement and investment strategies. Retirement and investment planning can be daunting and we want to create a tool that will make planning less daunting and learn how to plan for retirement. With this web app, we hope to make planning for retirement easier and fun.
What it does
Our web app helps you plan for your retirement. First users must enter their information such as age and income, so that the app can calculate an estimate of their taxes. Based on this information, users are given a budget amount in which they can correctly allocate their living expenses and investments.
After allocating living expenses and investments, our web app creates metrics and analytics that show how much you will have by the time you want to retire. On the right side of the page, there are two graphs that show these metrics. The first graph is a pie chart that displays the user's monthly budget. The second graph displays how much your investments grow over time by the time they hit retirement age.
Users have an option to download their retirement plan in the form of a spreadsheet. Our web app takes the inputted information and creates the spreadsheet for the user.
How I built it
The web app was built with Angular.js, firebase, and chart.js. However, we started on pen and paper laying out exactly what information our app would handle, locking down our idea. After we were clear on our goals, we made a mockup of the user Interface using colored blocks in order to see the general shape and form of the app. After some tweaking we landed on a pleasing layout that was both aesthetically pleasing and functional. Next came the core functionality and logic of our application. We started by creating both a static form and a dynamic form. We then took these basic inputs and used them to lay the groundwork for our firebase backend. One of our key features that we wanted implemented is seamless saving, like what is available with google docs. We were able to achieve this by using rxjs observables to sync data across our app making all of our content dynamic and very user friendly.
The other major feature we implemented was dynamic data visualization using the chart.js library. By using the same rxjs features we used for our backend, we were able to make the graphs update automatically and even animate to their new states.
Finally, what sets our app apart from other financial planning webapps is the ability to download your plan as a dynamic spreadsheet that you can modify to your heart's content. This allows users to implement custom financial rules / situations that can not be accounted for currently existing expense calculators. We achieved this using a Google Cloud Function running a Python script that generates dynamic spreadsheets based on the user input data. The function receives a JSON object as a request, parses through the data, and then uses the OpenPYXL library for Python to generate a formatted spreadsheet.
Challenges I ran into
We found that CSS was a major pain point. Even though it is one of the first languages most people use it can get very complicated with many nested elements that need to be in specific places. The hardest part of this we found was debugging errors. Naming inconsistencies would not show up between html and css files. This led to some twenty minute tyrades claiming css was broken until realizing our simple errors. One of the major general challenges of the project was being able to link up all the technologies we were using and not knowing how to handle certain inputs and files. For example, taking in a JSON object in Python and changing it to a dictionary that could then be used.
Accomplishments that I'm proud of
We set out to make a user friendly retirement and investment planning application. We are proud that our web app works and displays exemplary design. In addition, being able to make our design dynamic across the board was something we were particularly proud of, as it allows for future scaling of the project.
What we learned
The way we divided up the project among our team members allowed us to build on our existing knowledge of things like JavaScript and Python, while allowing each of us to tackle a new technology. For example, none of us had created an app in Angular, and so we got to learn about the entire process of building the app from scratch and integrating it with other libraries like rxjs. Additionally, we got to learn about the different uses of the Google Cloud family of products and had to determine which ones would ultimately suit our needs for the project. We eventually settled on Firebase and Cloud Functions, which were also new for our team, and learned about the benefits and practical uses of cloud computing, like scalability, which was important for us as we continue to build our app. Also, we were able to do some research and find some cool libraries like OpenPYXL that allowed us to work with Python and transferring input data into the Excel spreadsheets. On top of all the technical knowledge we acquired over the weekend, we also learned a lot about the process of building a project from initial conception, to development, to pushing out a finished product.
What's next for RIPE (Retirement and Investment Planning Education)
We have a lot of ideas to improve our web app. The current app shows the general plan on how a user would start planning for their retirement. We have broken down what we would like to do into 3 main ideas. Education notes There are a lot of things that people might not know when planning for retirement. One of the most confusing parts of retirement is the different investing strategies. For example many people don’t know the difference between Roth and traditional IRA. The goal of the website is for people to learn about the different investing strategies as they go through our web app. Having education notes would allow people to learn more and do more research on these topics. More complex calculations Our current web app makes simple calculations for the growth of retirement assets. Calculating for these things would require more research and expert knowledge. We have put the groundwork to expand it. Personalized Retirement People have different goals and lifestyles such as raising a family and kids. This can affect one’s goal for retirement. We’d like to put those factors into account in our web app.

Log in or sign up for Devpost to join the conversation.