LA is a very multicultural community and with that comes a huge selection of different types of foods. It can be hard to make a choice on different types of foods, and Dish Pics aims to solve that by digitalizing menus. We hope that by providing a digital interface for ANY menu in ANY restaurant, we can

  • Cut down on the use of paper menus
  • Improve the bonds across different cultures through food

So send your dish pics ;)

What it does

Dish Pics aims to allow users to take a picture of a menu and then select an item. Dish Pics will then get a picture of the item on the menu, or if the picture doesn't exist, a google search result. Dish Pics will rely on users taking pictures of the dishes they've had to show future customers what the dishes look like.

In the era of user experience, Dish Pics champions the customer and has an emphasis on providing a simple yet universal, service.

How we built it

Dish Pics is split into a Java backend, React frontend, and MySQL database. The backend is implemented using the Dropwizard framework for Java that packages various underlying libraries necessary to make dev ops-friendly, high-performance, RESTful web services. We use Google Cloud Storage to store our image objects, a Google Cloud SQL instance for our Database, and a Compute Engine instance that hosts our frontend and backend.

When a user uploads an image, we run it through Google Vision OCR (Detect Text) to get the name of the dish and return an image of the dish from Google Custom Search Engine or from our Google Storage Bucket.

The frontend utilizes a simple React framework for users to upload, select, and view pictures. The SQL database is used to store saved results so users can see previous images.

Challenges we ran into

The biggest challenge was setting up the Java framework, hosting all our pieces on google cloud, and setting up authentication for all of our API requests. In fact, we even switched to node.js for 2 hours to see if it would be easier due to Javascript's native JSON support.

Accomplishments that we're proud of

  • Switched to compute engine when app engine wouldn't play nice with our Java codebase
  • Learned React from scratch
  • Figured out Google auth - service accounts vs API keys
  • Switched to Node at 3am, realized it was not a good idea, and then switched back
  • Hosted frontend, backend, and database all on compute engine and then can all talk to each other!

What's next for Dish Pics

  • Expand to the B2B market

    • Restaurants can take all their menus online by taking a picture of their menu through our webpage.
    • As more and more restaurants are moving towards online ordering platforms, we can provide a simple service that will give smaller mom and pop stores access to making an online menu easily
    • We would then generate an interactive menu where the owners can upload pictures for dishes, or let the users upload dishes
    • Restaurant owners can then upload pictures for all the dishes themselves or make it a game of sorts where the customers to first take a picture of a dish can get a prize
    • This will drive a large number of consumers to their restaurant, and encourages them to try foods that they have not heard of in order to win prizes
    • This will also improve and encourage culture diversity across different culinary background
  • Integration with Google Maps and Yelp

    • Many popular locations have pictures of their menu or food items on google maps or yelp.
    • We can connect with this information to either expand our own databases or to integrate with them to provide users a much better understanding of a restaurants food offerings
  • Language translation for multi-language support

Share this project: