Project: Budget Buddy
This is a project of the CIIS course (WS 2020/21). The content below was created by Sven Goller.
Budget Buddy - a smart budget tracking assistant
In today's world, you are confronted with shiny new products, delicious food and drinks, beautiful clothes, and other goods wherever you go.
And while buying those things might often bring about an enjoyable rush of dopamine, your financial situation at the end of the month will often outweigh those short feelings of joy by a lot.
Budget Buddy will help you achieve your financial goals.The smart budget tracking assistant helps you do that by letting you track your spending easily.The days of having to track your budget manually are finally over! With Budget Buddy, all your need to do is take a picture of a receipt. The smart assistant will then use its smart AI capabilities to automatically recognize and categorize each item on the receipt for you.Using the gathered data Budget Buddy creates insightful statistics on your spending. This way, you gain in-depth knowledge of your spending habits so that you can easily recognize and change the bad ones. Which will ultimately allow you to achieve your financial goals.
With Budget Buddy you can track your spending by either creating a transaction manually or by taking a picture of a receipt with your camera (currently tested for DM and Denn's Biomarkt).
The user then crops the image so that only the items and the total sum are left.
The single items on the receipt will then extracted with the help of a text recognition API.
To fully automate the process of tracking your spending, each item will then be automatically classified in its corresponding category using AI.
Google Firebase is used to store and sync data between devices.
The phone's default camera app is used to take the picture of the receipt. To crop the image to size the open-source library uCrop (github.com/Yalantis/uCrop) is implemented in this app.
The text is then recognized by the Google Cloud Vision API. The automatic product categorization was realized by training a fastText model with data gathered on the Rewe website.
This model was then exported to the app, where it is interpreted by the fastText Java port fastText4j (github.com/linkfluence/fastText4j).