This project was inspired by the countless hours that went into trying to decide on a place to eat.
What it does
Using the Yelp Fusion API, our app provides a restaurant suggestion based on the top 20 restaurants nearby. The user should rate any restaurants on the list that they have been to, and information on the location and ratings is used to suggest the top restaurant that the user should go to.
How we built it
The app was built using Expo.io. Starting on the homepage, the user is prompted for information on their ratings of restaurants that they have been to in the list of restaurants nearby. The data is then sent to a Compute Machine on the Google Cloud Platform, where a machine learning model is created using the k-nearest neighbors algorithm of the scikit-learn machine learning package. Once a model has been trained, information on the user's current location is used to make a prediction, which is the suggested restaurant that the user should go to.
Challenges we ran into
We ran into many challenges while working on Magic Ate Ball. Since we were both inexperienced with using Expo.io and GCP, a lot of the time was spent trying to make the app function as we wanted it to as well as setting up the server.
Accomplishments that we're proud of
We are very proud that we were able to create a functional app that has many of the features we had originally planned. As we were unable to create a functional app in QHacks 2018, this was a very big improvement. Although we ran into many issues along the way, we managed to overcome them one step at a time. We were each able to do our parts, and pulled together a functioning project.
What we learned
We were both able to learn a lot while doing our respective parts of this project. Over this experience, we gained a lot of knowledge on the ins and outs of a machine learning app, how it works and how everything ties together.
What's next for Magic Ate Ball
There were still many features of Magic Ate Ball that we did not have time to implement, such as taking into account user preferences on types of food, whether they favor proximity, ratings, or price, and being able to suggest restaurants based on similar foods to the user's preferences.