Giter Club home page Giter Club logo

googlegemini's Introduction

SnapEat

"Your Perfect Plate, One Snap Away"

SnapEat is your foodie bestie where you can get answers for the two most difficult questions: “Where to eat” and “What to eat”

This is a project for Google AI Hackathon 2014

Demo: https://proud-mud-016f9a510.5.azurestaticapps.net/

  • Please be patient for the Snap Menu feature. It might take up to 2 minutes to finish the request.

Overview

We built SnapEat using React for quick front-end development and Django for the back-end to isolate API logics from the front-end app. Both apps are hosted on Azure using a Static Web App for front-end and Azure App Service for back-end.

The React web app provides a responsive design, enabling users to seamlessly interact with our dynamic and intuitive application directly from their web browsers. We deliberately chose a web app over a mobile app for several reasons:

  • Cross-Platform Compatibility: A web app is platform-agnostic, meaning it works consistently across various devices and operating systems. Whether users access it from a desktop, laptop, tablet, or smartphone, they’ll experience the same functionality. This compatibility ensures that SnapEat reaches a broader audience without requiring separate development efforts for different platforms.

  • Rapid Development: Web apps allow us to swiftly develop and iterate on features. Unlike native mobile apps, which often involve complex setup and approval processes (such as app store submissions), web apps can be deployed instantly.

  • Accessibility: Our app is accessible via standard web browsers, making it available to a wide range of users, including those who might not have access to specific app stores or mobile devices. Our goal was to create a product that reaches as many people as possible, and a web app aligns perfectly with this objective for the current stage of development.

The Django back-end server serves as the central engine driving our app. Leveraging Google Gemini 1.5 Pro and other Google API products, it powers essential features like the Snap Menu and Find Restaurants functionalities. Django’s robust ecosystem of pre-built components and its adherence to the DRY (Don’t Repeat Yourself) principle allowed us to focus on validation and core functionality. Furthermore, Django grants us flexibility in security implementation as we can fine-tune access controls, authentication mechanisms, and data validation. Specifically, we limit the number of requests originating from the web app to prevent abuse, enhance performance, and safeguard against potential security threats.

React App

forthebadge

Please visit our react folder for more technical details: googlegemini-fe

Django App

forthebadge

Please visit our django folder for more technical details: googlegemini

Key Features

1. Dietary preference integration

  • During the onboarding process, users are presented with different prompts to input their dietary preferences and restrictions for the app
  • Users can also make changes to this information within the app through the profile tab as their preference grows.
  • The app accommodates a wide range of dietary needs, including but not limited to
    • Dietary (Optional): Soft Diet, Liquid Diet, Low Calories, Low Fat, Low Sodium, Low Carb, Vegan, Vegetarian, Pescatarian, etc.
    • Allergies (Optional): Nut Allergy, Shellfish Allergy, Soy Allergy, Gluten-Free, Lactose Intolerance, etc.
    • Cuisine: Accommodate all cultural cuisines within these regions: Asia, Americas, Europe, Africa, Oceania, as well as Religious and Fusion.
    • Flavor: Spicy, Salty, Sweet, Sour, Umami, Fatty, Herbal, Smoky, etc.

Provide dietary preference

During onboarding, user can choose their dietary preferences and restrictions.

2. Snap Menu (menu photo capture)

  • The app enables users to take pictures of extended menus of any restaurant using their smartphones’ camera.
  • Utilizing Gemini AI advanced image recognition technology, it swiftly processes the menu items captured in the photo and collect these information:
    • Name
    • Price
    • Description (Optional)
    • Category (Optional: Appetizer/Main/Dessert/Drink)
    • Ingredients (Optional)
    • Chef Recommendation (Optional)
    • Additionally, the app also asks for a search of Google pictures, user ratings and reviews of the dish if available.

3. Personalized recommendations

  • Based on the menu items detected and the users’ dietary preferences, the app incorporates Gemini AI to generate tailored suggestions that align with their needs.
  • SnapEat provides users with holistic descriptions of recommended dishes together with Google pictures, user ratings and reviews found throughout the web.
  • The recommendations are presented in the default view of a well balanced meal including 1 appetizer, 1 main, 1 dessert and 1 drink.

Snap Menu feature

After snapping the menu, user will receive a list of recommendations based on their food preferences.

4. Find Restaurants (restaurant discovery and food recommendation experience)

  • In addition to meal recommendations through Snap Menu, the app offers restaurant discovery features, helping users find eateries that cater to their dietary needs within their chosen location with the Find Restaurants feature.
  • Users can simply put information into the search bar and browse the suggestions. This will help with streamlining the dining experience and ensuring a seamless transition from menu exploration to making the final decision.
  • Personalized recommendations for users are available with this feature if the restaurant menu data is available.

Find Restaurants feature

User can also find restaurants that match their dietary needs.

googlegemini's People

Contributors

minhkhang1795 avatar myanhtran avatar rubyngo1610 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.