TasteSpace Journey Week 1: Building a menu recommendation app to help you order the food you really want

First week progress report for building TasteSpace with the Pioneer App.

TasteSpace
TasteSpace
5 min readApr 13, 2019

--

Think about the last time you tried to order food at a new restaurant. The number of options to choose from and the possibility that you might end up with a dish that you don’t like can be paralyzing. What if you had a foodie friend that can tell you exactly what you would like at that restaurant? What if there was a Spotify or Netflix for food that actually knows you better than you know yourself so that it recommends the perfect meal every time? Our TasteSpace journey is to build a mobile app that can do exactly that.

Our goal is to build a mobile app that you can pull out at a restaurant and it will immediately make dish recommendations of what to order based on your order history, dietary preferences, and similarity to other users. We would provide you with “match scores” so that you can gauge what items are most similar to what you usually like but also an option to tailor the recommendations so that you can explore dishes out of your comfort zone as well.

To commit ourselves to follow through with this project as well as get access to valuable resources and feedback from the global community, we registered our project with the Pioneer.app. At the time of writing, we are ranked 7th in the US-East and we’d love to hear your thoughts, feedback and guidance, as you join us on this journey of app development.

The plan

To complete this project in a 4 weeks when we would have an actual app that people can download and use, we built a roadmap of what we would need to accomplish each week. Week 1 is highlighted to indicate that progress will be discussed in this article.

  • Week 1: Collect survey data and build a prototype menu recommendation system tailored to individual restaurants.
  • Week 2: Build back-end infrastructure of database, prediction engine, and api to be consumed by the front end.
  • Week 3: Develop a mobile front end that can locate the restaurant the user is in and make menu recommendations.
  • Week 4. Close the loop by connecting integrating the front and back end as well as polishing up the user interface.

Week 1 progress: Collecting survey data of menu preferences

To build a recommendation system, we need user data. Since we don’t have user data because we don’t have an app yet, we thought the best way to see the viability of this engine is to collect user data through online surveys.

In this survey, we wanted users to be able to browse through a menu as they would at a restaurant and click on a few items they would be most likely to order. They would see menus from various cuisines including American, Thai, Indian, Chinese, Japanese, Korean, and diner food. To first get some menus, we visited a few local restaurants in town to take pictures or scan their menus like the one below:

Sample menu from a local restaurant pub

After we scanned menus from 8 different restaurants, we needed an interface through which people can click at the items they want. As regular web developers, some of us started messing around with ways to do this but it turned out such feature already existed with Qualtrics:

“Hot Spot” feature was just what we needed for this survey.

After painstakingly drawing boxes around the menu items for 8 different restaurants, we had a decent looking survey which people can click on the menu items they would like to order. Check out the final version of the survey here: https://dartmouth.co1.qualtrics.com/jfe/form/SV_3Jog1SYji7ra80B.

Users can simply click on the menus they like!

We deployed our survey to various message boards on the internet such as subReddits after carefully asking the moderators for permissions before posting. Many moderators were very supportive of what we were trying to do and more than a thousand people participated. We also got some great feedback including what other dietary restrictions we should consider:

We were grateful for the positive feedbacks we got

We also received feedback from people who shared exactly the same sentiment that led us to build this app

Now I feel like I need to check out Cheesecake Factory

We were so excited to play with this data that we went ahead and built a prototype of the recommendation engine to vet and validate the system. See the video below and feel free to play around with it too at https://dasilvaa10.shinyapps.io/tastespace/!

Demo of our recommendation engine

The goal of a recommender system is to predict future item preferences for a given user. One way to do this is with item-based collaborative filtering. This form of filtering consists of two stages: a model-building stage and a recommendation stage. In the model-building stage, the similarity between all item pairs is found. This can be done in any number of ways with different distance metrics (cosine similarity, Pearson correlation, or Jaccard distance for binary data). Once the between item similarity is calculated, a list of recommendations can be made by using the most similar items to items that the user has already rated. You can see how this plays out in our video where a hypothetical diner receives recommendations after indicating that they enjoy hummus and see how that recommendation further dynamically updates after they also indicate a preference for mussels.

Conclusion

So far we had an amazing first week in which we collected over a thousand people’s food preferences at various restaurants that we can use to build a recommendation engine. We have a prototype of the recommendation system which you can test out here, https://dasilvaa10.shinyapps.io/tastespace/, and will share the progress of how we built that in our next post.

Once again if you would like to check out our survey, please visit https://dartmouth.co1.qualtrics.com/jfe/form/SV_3Jog1SYji7ra80B and feel free to leave us any comments or feedback about the project below.

--

--

TasteSpace
TasteSpace

Helping people decide what to eat at any restaurant.