Finding the ideal restaurant to go to might be extremely difficult for a group of people who have different tastes and dietary requirements. Some people might be a bit more adventurous and want to try out new cool meals while others have very strict criteria for their meal of choice. Our goal was to develop a tool that allows anyone to choose their preferred meals from nearby restaurants based on their criteria. This saves a lot of time and energy, since users only need to focus on their own picks (which take up to 2 minutes), while feed.us does the dirty work by finding the place with the most popular meal.
What it does
The app can be accessed via a unique link posted to the group's slack channel as a response to the "/feedus" slack command. At first, the user is presented with a selection of criteria to describe their ideal meal. Then he gets to select from a list of daily menu items in the nearby restaurants, that all fulfill his critera. All selected menu items raise the score of the restaurant the item is from. After a user has finished voting, the restaurant with the current highest score is displayed on the screen. By pressing the "Eat" button, the voting comes to an end, and the winning restaurant is posted to the group's slack channel along with its location.
How we built it
The initial slack slash command was creating using the slack UI. Our API was built using python, flask and socket.io. To translate a GPS location into a postcode we used api.posthost.io. The source of daily menu items for given restaurants is deliveroo.co.uk. Our frontend is built using HTML, React, Bulma and webpack.
Challenges we ran into
Probably our biggest challenge throughout the entire hacking was finding a reliable API that would provide us information on daily menu items. Most of the APIs either had very few restaurants in their database, or provided data only on remote places, such as Mumbai or Bangalore, but we wanted to create our prototype for London. Our second challenge was time management, since due to the complexity of the problem, we were required to split the work between team members according to their strengths to maximise productivity.
Accomplishments that we're proud of
We're proud that after spending multiple hours on acquiring daily menu items information, in the end we managed to successfully scrape deliveroo.co.uk which gave reliable and consistent information to work with.
What we learned
We learned to create slash commands on slack and how to send messages to a workplace via a webhook. We also expanded our knowledge on React and creating a good looking front-end.
What's next for feed.us
Find and experiment with other daily menu APIs for better meal choices and bigger support in more cities. Possibly create our own API for daily menus, so that restaurants can submit their daily menu information directly to us. Make our slack app distributable, so it can be installed into any workspace via the Slack App Directory.