With the world in a technology age, it is easy to lose track of human emotions when developing applications to make the world a better place. Searching for restaurants using multiple filters and reading reviews is often times inefficient, leading the customer to give up searching and settle for something familiar. With a more personal approach, we hope to connect people to restaurants that they will love.
What it does
Using Indico’s machine learning API for text analysis, we are able to create personality profiles for individuals and recommend them restaurants from people of a similar personality.
How we built it
Backend: We started with drafting the architecture of the application, then defining the languages, frameworks and API's to be used within the project. We then proceeded on the day of the hackathon to create a set of mock data from the Yelp dataset. The dataset is then imported into MongoDB and managed through Mlab. In order to query the data, we used Node.js and Mongoose to communicate with the database.
Frontend: The front end is built off of the semantic ui framework. We used default layouts to start and then built on top of them as new functionality was required. The landing page was developed from something a member had done in the past using modernizer and bootstrap slideshow functionality to rotate through background images. Lastly we used ejs as our templating language as it integrates with express very easily.
Challenges we ran into
- We realized that the datasets we've compiled was not diverse enough to show a wide range of possible results.
- The team had an overall big learning curve throughout the weekend as we all were picking up some new languages along the way.
- There was an access limit to the resources that we were using towards testing efforts for our application, which we never predicted.
Accomplishments that we're proud of
- Learning new web technologies, frameworks and APIs that are available and hot in the market at the moment!
- Using the time before the hackathon to brainstorm and discussing a little more in depth of each team member's task.
- Collaboratively working together using version control through Git!
- Asking for help and guidance when needed, which leads to a better understanding of how to implement certain features.
What we learned
Node.js, Mongoose, Mlab, Heroku, No SQL Databases, API integration, Machine Learning & Sentiment Analysis!
What's next for EatMotion
We hope that with our web app and with continued effort, we may be able to predict restaurant preferences for people with a higher degree of accuracy than before.