Inspiration

We noticed how often food gets thrown out just because no one knew what to cook with what was already in the fridge. Grocery prices are rising so we wanted a tool that turns random ingredients and a tight budget into an actual meal plan.

What it does

GeminiEats takes a user's ZIP code, shopping budget, at home ingredients, cravings, and allergies, then suggests recipes they can make. Each recipe includes an estimated shopping list with prices, a total cost estimate, step-by-step instructions, and a link to nearby grocery stores based on their ZIP code.

How we built it

We built the frontend with HTML, CSS, and JavaScript, with a form that collects the user's budget, ingredients, cravings and allergies. Submitting the form sends the data to a backend endpoint that returns recipe suggestions, which are displayed for the user to scroll through. We integrated Gemini API to generate these results as well as Google Maps API that returns nearby grocery stores based on the users ZIP code. For accessibility and user preference we added a light and dark mode toggle.

Challenges we ran into

We ran into issues connecting our frontend form data to our backend fetch requests, and had to debug asynchronous error handling so users get clear feedback instead of the page silently failing.

Accomplishments that we're proud of

The work flow as a whole and how each piece comes together in the end felt very accomplishing to us. With thorough planning and resources we were able to execute the project to the best of our abilities and comfortably do so without getting stuck in long stretches of not knowing what to do next.

What we learned

We learned how to structure JavaScript for real world API calls, handle errors confidently, and learning how to integrate API's. Implementing Python into backend. Adding an accessibility feature like dark/light mode into the UI.

What's next for GeminiEats

Next steps include further tweaking for best possible flow for the user. Enhancing style of Gemini eats also is in our plans to make it aesthetic for users to use.

Built With

Share this project:

Updates

Submission history