Inspiration

After the Great Depression, the 1950s introduced a new culture of consumerism through catalogs, malls, and easier access to goods. Today, that culture has only intensified with advancements in technology, as online shopping platforms and targeted digital ads make spending faster and more convenient than ever, leading to a resurgence in impulse buying. This inspired us to create a tool that helps people slow down and make more intentional financial decisions.

What it does

Juniper is an app that helps users make smart spending decisions to combat consumerism. The app guides the user on their shopping habits. The user inputs something they want to buy, and Google's API will scan the current market and historical trends of the item and rate the item on an “impulse” scale. The LLM will either tell the user that what they want to buy is an impulse buy, and ask the user if they would still like to purchase the item, or "discard" the item. If the user decides to purchase the item, the purchase will be added to the user's budget on the "budgeting" page, and the purchase will be deducted from their budget. If the user decides to discard the item, the AI will remember this impulse item and discourage the user from buying the item even more. This emphasizes that the historical purchases the user makes are tracked, and the app tries to adapt the user's behavior to fit within their budget goals. The budgeting feature allows the user to set their budgeting goals based on their monthly income. Expenses, purchases, and savings will be deducted from the income.

How we built it

For our IDE, we used VSCode. We split the project into frontend and backend. For our frontend, we used JavaScript and Typescript on the React Native framework, running on Expo. We coded the backend in Python and utilized Google Gemini's API for our AI framework.

Challenges we ran into

While trying to add Gemini’s AI into our app, we learned a lot throughout our struggles with the usage of Gemini studio’s api. Trying to learn how to use an API and AI in a program from the ground up as first timer hackers was extremely difficult. At first we were getting so many different errors, whether it was quota errors or not found errors, it took us a long time trying to figure out why these errors were popping up with a working API. Even after figuring out and combating these errors, we struggled with the ai timing out without a response given. Eventually after immense research and hours of trying to learn more about API’s, we figured out the issue with our code. The model of Gemini’s api has to be updated to the most recent and current model that gemini is using now. With the quota error, we discovered that with Gemini studio’s free API, we were extremely limited to what the AI could do in regards to how many times we could use it. We then updated the subscription in Gemini Studio, and our code was able to run correctly.

Accomplishments that we're proud of

Working on this app has been a groundbreaking accomplishment for us, not only because we successfully made an app as first-time hackers, but we pushed our limits and boundaries by trying to achieve something bold and out of our comfort zone, and achieved it. The greatest things we were able to achieve were being able to have amazing graphics on our app while also achieving the functionality we were aiming for.

What we learned

We came into this Hackathon with varying skillsets, but we all challenged ourselves to our strengths, in which we all learned differently as well. We had never encountered building AI, so we gained experience in building and configuring Gemini to meet our project needs. We learned new coding structures and APIs to incorporate the AI, and learned how to use GitHub collaboratively. We also gained new skills from the Hackathon's provided workshops that gave us insights into different fields of technology. And at WeHack, we learned more about each other and how to work together as a group, which is the most valuable experience gained.

What's next for Juniper

Next for Juniper, we want to expand beyond real-time purchase decisions by adding long-term tracking. This will allow users to see their spending over time through weekly spending and saving reports, helping them better understand their habits and reduce blind spending. By linking their bank accounts, Juniper can automatically track transactions, making the reports accurate and convenient.

Built With

Share this project:

Updates