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.
- wit.ai is used to parse addresses and provide the user a direction to the restaurant of choice
- The Facebook API is connected to wit.ai and Heroku on the backend
Challenges we ran into
- 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 Wit.ai
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 wit.ai models to understand location content and separate addresses
What we learned
- 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 wit.ai 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)