As your typical university students living away from home, we found ourselves with little-to-no money in our bank accounts more often than we'd like to admit. We also had no idea about the amount of money we were spending on activities such as eating out and shopping. We weren't very informed about the possible grants and bursaries we were eligible for, as well as the best investment strategies with our then financial circumstances. So we created ManageIT as a common solution to all these problems.
What it does
ManageIT is a financial management app that deploys cutting-edge features such as personalized investment and scholarship (for students) recommendations as well as spending projections and analytics. Users can manually input their expenses or they could opt to take a picture of their receipts or record a voice memo. Their expenses will then be categorized and displayed in various different graphs that show monthly spending habits and a distribution of their monthly expenses. Users can also set monthly spending limits and will receive a text message when they approach them.
Based on the information the user inputs in their profile, they will get investment recommendations (such as putting their money in a tfsa or a high-interest savings account) or information about scholarships/grants/bursaries that they are eligible for, if they are students.
How we built it
We used react for the frontend and flask for the backend. MongoDB was used as the database to store user data. We used python as well as the tesseract and Pillow libraries to process and parse the user-inputted receipts. Google Cloud's natural-language-processing API was used to categorize the items the user purchased. Twilio was used to send the user a text message if they were nearing their monthly spending limits. For capturing the voice memos, we used Alan AI.
Challenges we ran into
One significant challenge we ran into was getting the tesseract library to parse the receipts. We initially thought the library would be easy and straight-forward to work with, but it came with its own set of challenges. In order for the library to work, the images had to be pre-processed with another library, Pillow. Understanding how to process an image for OCR detection came with a very steep learning curve, and we spent much more time than anticipated trying to implement it within our project. In addition, two of our three members weren't previously familiar with react, so trying to understand the framework and implementing its features also took a relatively long time.
Another challenge we faced was getting the Alan AI to recognize various different speech patterns. People can say a word in many different ways, so calibrating the api to catch those cases was significantly difficult and time-consuming.
Accomplishments that we're proud of
In regards to the visual aspects of ManageIT, our group is very proud that we managed to make a highly visually appealing GUI for our web app. We are also proud to have been able to use OCR to convert and image to text as it's a technology we have been fascinated for a long time.
However, we are most proud of our ability to come together and work as a team during the most stressful of times. Whether it be trying to debug a crucial aspect of our project, or making last-minute changes we never lost faith in each other and put full trust in the process.
What we learned
One key thing that we learned was how to efficiently work as a team. We learned how to identify each other's strengths and weaknesses and in addition to delegating tasks in such a way in which were working as efficiently as possible. In addition, we got a greater grasp for what technical features are possible to implement within a short timeframe. We started hackWestern with some very ambitious ideas for ManageIT, but we were only able to implement a handful of them. Lastly, we got a greater understanding of our own abilities and what we need to improve in order to be the best engineers we could be.
What's next for ManageIT
ManageIT's lifespan does not end here. We are planning on improving the app by increasing the accuracy in which the receipt is parsed and devising new algorithms that will better decide which investment strategy is best for a certain individual. Once we come up with more detailed use cases, we'll vigorously test the app until we have it fully functioning with all the features we need. We'll first use the app for a few weeks ourselves, and once we deem the app to be ready for early deployment, we'll have our close family and friends test it too. If everything goes well according to our plans, then we'll attempt to publish ManageIT on various app stores, such as the google play store and the apple app store.