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. Not only that, but most budget apps require us to manually input information for every single expense. Let’s face it, it’s tough to find the time or motivation for budgeting, and some folks skip it altogether.
For these and many other reasons, we made a budgeting app. This software makes it easier to monitor your spending and saving habits by tracking your cash flow via user input as well as shopping sessions and product barcode scanning!
What it does
Expen has your typical budgeting features such as tracking expenses 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 we built it
We 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 we ran into
One of the challenges we 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 we're proud of
We are proud of finishing all of the functionalities we envisioned for this project for this hackathon successfully and the amount of work we had completed.
What we 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 Expen
Possible additional features could be using AI to automatically categorize all products chosen in a shopping session. 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 usre IDs, more features and a more intuitive UI