We have probably all been there: Our budget is used up and there are still several days of the month left. A simple reason for this widespread issue (especially among students) may be that we just do not deal particularly well with our money. In order to tackle this problem, our group decided to build a budgeting app, which should facilitate seeing how much you are spending and keep you from overspending.
There is of course a large number of money management apps in the market already, ranging from simple expense trackers to apps that basically keep track of your entire financial transactions. However, we wanted to use our within the TechLabs’ tracks newly acquired skills to create an app that exactly fits our personal needs.
So far, so good. The initial idea was born, but there was still a long way to go to the final app. In the following, we want to give you a brief description of our working process, including methods and tools we employed, issues we faced and solutions we found. If you are eager to know whether we can proudly call ourselves “app developers” now, keep reading.
After our goal was set in its broadest sense, we worked on specifying it. For this purpose, we developed a basic sketch of our app, which captured its main structure and functionalities. We wanted the app to be as simple as possible while simultaneously offering a high level of customization. Thus, on top of the common budgeting app features like expense tracking and viewing a history of actions, we wanted to enable the user to freely create and name expenditure categories and set personal budget limits for the different categories. Taking into account that none of us had prior knowledge in programming, we refrained from including advanced features like managing multiple accounts and planning future expenses. Moreover, we decided to go for a web app rather than a mobile app to reduce programming complexity. Regarding design, we decided to keep it simple as well and to create a clean but visually appealing interface.
The basic sketch provided the foundation for all our subsequent actions. However, actually starting to work on the app was one of the hardest parts and in fact quite some time passed before we did so, as we were all eagerly working on our personalized TechLabs curricula during the first weeks of the semester. Fortunately, we had great support from our (project) mentors. Besides having a mentor for each track, every group gets assigned a mentor for their individual project. Within the scope of the so called “Hacking Day”, an event organized by TechLabs to facilitate groups working on their projects, our project mentor helped us setting up a detailed project schedule specifying milestones, due dates and corresponding responsibilities. This schedule has proven to be very helpful during the project phase, as it provided us with a clear plan we could always fall back on whenever we felt like losing our actual objective out of sight.
By the way, apart from those (not mandatory) Hacking Days, basically all of our project work has been done online. So, if you are not in Muenster or have little time to meet personally, that should not stop you from taking the great opportunity to join TechLabs. The TechLabs team introduces you to various tools such as Slack and GitHub that make it easy for you to keep in touch and work together with your group. These tools are also commonly used in many businesses and professional environments today, so knowing how to work with them might benefit you for your future career as well.
The groups for the practice projects at TechLabs are interdisciplinary, meaning that they do not only bring together people from different fields but also from the three different tracks offered by TechLabs. Talking about our group that means that we had two people from the Web Development track and one from the Data Science track. Simply put, Web Development was concerned with creating the applications interface while Data Science was responsible for the underlying analyses.
In the field of Data Science, we worked with the programming language Python. By means of Python’s graphing library Plotly, we created line plots, bar charts and pie charts to clearly visualize the user’s expenses. In doing so, an aggravating factor was the necessity of coding visualizations without having the actual data at hand, as the data is only generated the moment the user enters expenses into the app. To address this issue, we started using mock data, i.e. fake data, which we artificially inserted into a function in order to check whether our codes actually created the visualizations we were aiming at.
Despite facing the above-named difficulties (and some more that shall not be mentioned here), we eventually managed to build our own budgeting web application. To be perfectly honest, we had to leave off a few of our initial ideas due to time pressure and not (yet) existing programming skills. However, that brings us directly to one of our key takeaways from this project: you are never really finished with working on a project and learning a programming language, because there is certainly always something new to add and find out about it. Two other major (and unexpected) insights we gained from our TechLabs experience include: first, programming is probably one of the most frustrating and simultaneously fun things you will ever do. And second, you are very likely to spend more time on Google searching for solutions than you are actually spending on coding.
Finally, we would like to share some concluding thoughts with you. Most important, we truly want to encourage you to join the TechLabs community and start challenging yourself. It honestly does not matter whether you are a complete beginner or consider yourself an advanced programmer already. Due to TechLabs’ personalized curricula you can adapt your programming education according to your individual preferences and needs. However, before you start you must be aware of the fact that completing your online courses and the practical project does require a significant amount of time. Our team started the project with five members and finished it with only three, because two of them quit due to time constraints. So, TechLabs is not something which you can do “just like that”, but if you are prepared to invest some time and effort, you are good to go. And we do promise you, that it is worth it. Besides taking a deep dive into cutting-edge digital skills, you also get to know a bunch of tech-interested people from different fields, which whom you can communicate and share experiences. Talking about the social aspect of TechLabs, we would like to thank the whole TechLabs team and especially our mentors at this point for putting so much effort into offering young people the opportunity to acquire state-of-the-art tech skills. We will definitely keep going and continue our journey to become digital shapers.
Niklas Kosel, Jin Rhee, Clara Oppermann