Inspiration

One of the most challenging things about going out with friends is actually choosing where to go; be it because of a lack of knowledge of what's available, the abundance of options, or just the matter of being equivocal, agreeing on where to go is a problem that could be made easier through tech.

What it does

GrubIt presents the dining options in the area to each member of the group in a webapp, one at a time, allowing them to consider it, and easily swipe yes or no on whether they want to eat there or not. The first option that all friends agree on is the one you go with, and the details of the location are sent to everyone's personal devices via StdLib's SMS API. The places to choose from can be manually entered by a member of the "grub group", and additional suggestions are made by a machine learning algorithm, choosing venues based on natural language processing of Yelp reviews, and evaluating the choices against it's knowledge of the users' preferences.

How we built it

Used Google APIs to retrieve information on nearby dining locations (maps api, reviews api), managed as json objects and passed to the user interface, where the images and names are displayed. Node.js is used to receive and display the data to the user. Yelp API used to retrieve descriptive restaurant reviews, used to train the Machine Learning model. Model built in NLTK used to preprocess the text, build, train, and evaluate the model. Model performs a classification task determining option_fit_for_user, or option_not_fit_for_user. LocalStorage database is used to track how many positive swipes a venue has gotten. StdLib SMS MessageBird is used to send a text to all members of the group once a consensus is reached.

Challenges we ran into

Were very new to Node.js and Javascript and were challenged to get familiar with two new languages to develop the project.

Accomplishments that we're proud of

Integration of several complex software tools; diverse data sourcing through various APIs; Learned two new languages in developing the product; Functional Natural Language Processing sentiment analysis ML model; Functional and attractive UI

What we learned

Two new languages; how to do various software platform integrations; data pipelineing for machine learning

What's next for grubit.tech

The current sentiment analysis is trained on data about the quality of restaurants as user data is unavailable. The next step would be to generate or acquire user data that would allow the bot to be trained for personalize recommendation

Share this project:

Updates