Review the dish, not the restaurant. Compare it with similar dishes. Get a ranking for exactly what you are craving for. YumYumRank.
We took inspiration in the ELO ranking systems used for games such as chess, or videogames such as League of Legends, as well as restaurant's crowd-sourced reviews such as Yelp or Trip Advisor. We believe that users can find it easier to choose where to eat when they can compare more specifically what they are craving for, instead of reading multiple reviews hoping the dish they are interested in gets mentiones and luckily, well-described in their multiple place options.
What it does
Self-regulating recommendation engine, directly guided by the binary comparisons submitted by the users for different dishes that they have already eaten, providing direct, unique and more human feedback to get to know the food that surrounds us.
As one of the apps serving as the foundation for our project, Yelp. is an app that works with restaurants and other business, their search engine can focus on key words which can include specific parameters. However, this insights is only limited to the experience at the restaurant as a whole and it's difficult to get a comparison on specific flavors or dishes within or across different establishmens.
Up until now, we couldn't find an app which could rank an specific dish across multiple restaurants, so it was time for YumYumRank to become a reality.
How we built it
For the majority of the project we worked using the MERN framework, Mongo, Express, ReactJS, Express. We also used Google Cloud Platform for our files storage, including multiple gigabytes of businesses photos! We saved in our database our collections of users, restaurants, dishes, reviews, comparisons, multiple of which are provided and updated by the users. Based on the elections of the user and the dishes they had tasted, the system makes recommendations that other people with similar tastes may share. The restaurant collection also got filled with a subset of restaurants from the Yelp Database .
Elo Rating System
This is a system that works based around comparisons and is specifically design for ranking. One of the main advantages is its self regulation, being free from having an average from years ago ponder the growth a business may have.
Recommendation works in a similar way to Amazon. When comparing other users, the system detects similarities between reviews and adds any dish the user hasn't reviewed yet that is similar to their own tastes into the recommendation list.
Challenges we ran into
Handling around 100GBs of restaurants data was not an easy task, multiple scripts were needed to properly organize and structure the raw data coming from yelp databases. The amount of data necesary for testing these algorithms meant that substantial quantities of mocks were needed, a relevant portion of the teams time.
Accomplishments that we're proud of
The feeling of getting a personalized recommendation based on what your friend with similar tastes likes is a priceless feeling that lets you know that something within the model is being done right. We are thrilled for the potential this data structuring may have and the business impact this can generate for all kinds of businesses.
What we learned
When handling radical maths like ELO rating systems with uses in multiple areas, rather than just games, you gotta make your research about which rules can be stretched out and the hidden potentials that may lie hidden within the numbers.
What's next for YumYumRank
- Recommendation of Restaurants by combining Rating from multiple dishes.
- Adding more specific information for instance comparison review(why do you choose this dish over the other one?)
- Explore implicit features for recommendation engine(review length, number of dishes on one same category, recommendations by zone, etc.)