Too many times you’re out in the city or at uni and you have no idea where to eat. It takes too long to search through hundreds of restaurants on google maps or download other restaurant apps and the longer you take to decide, the hungrier you become.

What it does

Conversational chatbot that you can talk to to get a shortlist of insta-worthy places to eat in your area. Once you’ve decided on a place it can provide you directions to get there and in future recommend new places to eat that would suit your taste.

How I built it

  • Created messenger chatbot in Python on Google Cloud - including all of the relevant design elements
  • Created a back-end that integrated location data from all relevant APIs (Google Maps, Zomato)
  • Runs a web-scraper in the background to scrape best photo urls for given location (location obtained from Instagram)
  • Create a Postgres database to store all location data
  • Create logic in chatbot to call and read-in location data
  • Add Google Vision API to filter images to only those with food
  • Add Google Maps API to add directions to the restaurant
  • Create logic in chatbot to store short-listed places

Challenges I ran into

  • Scraping instagram is very fiddly and not terribly fast. Ideally all the information should be cached
  • Hosting on the cloud and sorting auth and permissions is a huge pain
  • Some of the tagging of the images on instagram was faulty
  • Many of the photos we pulled from instagram didn’t necessarily display food - hence we filtered using computer vision API

Accomplishments that I'm proud of

  • Created a messenger bot from scratch
  • Utilised and integrated a range of APIs
  • Created a simple, usable product that solves a common problem

What I learned

  • How to create a messenger bot from scratch
  • How to export Postgres data
  • How to use Google Cloud
  • How to integrate instagram, Google maps API and Zomato API
  • How to map between our datasets

What's next for Easy Eats

  • Collate entire cities worth of data to reduce latency
  • Partner with zomato/instagram to increase API call limits
  • Partner with a bunch of restaurants and food instagram influencers
  • Advertise on social media
  • Run analytics on our users and learn from their preferences to provide better recommendations (better algorithm integrating instagram likes on photos, amount of recent posts etc.)
  • Provide in-app promotions for certain eateries

Built With

Share this project: