Most people would prefer to spend less and save more, but the day-to-day reality of work, family life, and other commitments makes it impractical, if not seemingly impossible. Especially if you are grocery shopping, and just want to plan ahead on what to buy and how much it will cost.
For these and many other reasons, I made a budgeting app. This software makes it easier to monitor your spending habits at the grocery store by tracking your cash flow via user input as well as shopping sessions and product barcode scanning!
What it does
BudgetShop has your typical budgeting features such as tracking past purchases at the store and incomes, and graphs that help visualize your budget. But it has one feature that stands out from others, which is the addition of scanning barcodes! This feature allows for the convenience of simply scanning the items you buy, rather than manually entering every detail about the products! You can also search for products, and simply click them to add them into your expenses.
How I built it
I used Android Studio (Java), CockroachDB, Python, Zxing library, Phil Jay's MP Android Chart library, Firebase deployed on Herokuapp.
Technical specifications for the app: Backend requirements: Django==3.1.2 django cockroachdb==3.1.1 psycopg2-binary==2.8.6
Frontend requirements: API 17: Android 4.2 (Jelly Bean) Language used: Python, Java AWS Instance: EC2 Ubuntu Web server: Nginx and gunicorn Database host: CockroachDB Cloud API: https://www.getpostman.com/collections/8a8c086865cc8c4a7b2b
Challenges I ran into
One of the challenges I ran into was the difficulty of finding an API library for ring charts that were quick and easy to use, specifically for android. Another is designing the model classes associated with the database.
Accomplishments that I'm proud of
I am proud of finishing all of the functionalities I envisioned for this project for this hackathon successfully and the amount of work I had completed.
What I learned
How to work with fragments, how to work with recyclerview. How to communicate data between fragments (by cheating with cockroachDB). Implementing ringcharts. Implementing many libraries and APIs.
What's next for BudgetShop
Possible additional features could be using AI to automatically categorize all products chosen in a shopping session (Sodas as beverages, ground beef and pork chops as meat, etc). Also adding additional stores and locations the application retrieves data from. Implementing a signin with Google to generate unique user IDs, storing user data on firestore with unique user IDs, more features and a more intuitive UI