A common dilemma we face as a group is deciding where to eat. We wanted to create a fun and interactive app that outputs the best place while taking into account everyone's preferences in a fast and collaborative way.

What it does

RESTO BOT is a Facebook messenger app that a group can message to determine where to eat. The bot starts a session for a specific set of users and displays several restaurants with the location, pictures, reviews, price range and more. Each user indicates if they like or dislike a restaurant, and the bot decides the best restaurant for the group.

How we built it

  • Information about restaurants is retrieved using Yelp fusion API and Radar API.
  • Group rooms and restaurants are saved on the cloud using MongoDB.
  • is used to parse addresses and provide the user a direction to the restaurant of choice
  • The Facebook API is connected to and Heroku on the backend

Challenges we ran into

  • Asynchronous programming with JavaScript
  • Setting up the MongoDB endpoints
  • Working with web-hooks for the first time
  • Working with the Facebook messenger developer functions
  • Calling API's and bypassing CORS errors
  • Setting up the project to work with

Accomplishments that we're proud of

  • Getting through most of the challenges!
  • Setting up a functional Facebook chatbot
  • Parsing restaurant data from Yelp and location data from Radar
  • Training our models to understand location content and separate addresses

What we learned

  • A TON of JavaScript, Node.js, MongoDB, and Express
  • How to think about programming asynchronously
  • How to collaborate on a shared IDE using VSCode's liveshare extension
  • How web-hooks work
  • How to setup remote servers using Heroku
  • How to work efficiently and remotely with a team

What's next for Resto Bot

  • Hopefully publishing the app after bug fixing!
  • Adding more filter parameters for our search (perhaps asking for maximum price level the group is willing to spend)
  • Making the smarter! Training it on additional models, giving a direct from the addresses given by implementing Google Maps API or Radar's Distance API
  • Adding some collaborative features for friends (emote to respond to restaurants, replying to restaurants to store and display their comments (for example: replying by describing your past experience at a given restaurant)
Share this project: