So many of us are new: to college, to California, to Berkeley. Those of us that aren't new are tired of doing the same tourist attractions over and over again when it comes time to go to the city and explore a little. What if you could customize your travel experiences to suit your own personal preferences with practically no effort?
What it does
MileStones is a scavenger hunt that takes users from one location to the next, based on user feedback, allowing them to discover and explore new places that match their taste. Over the course of a vacation, the user is able to go from destination to destination, earning points and achieving milestones along the way! This intelligent app allows the user to explore a new city and enjoy activities that they love - with no planning necessary.
How we built it
General Overview: MileStones is built using the Yelp API and Watson Alchemy API, coded up in Python. At a high level, the user inputs their location, which is sent to the Yelp API to determine nearby attractions. Next, Watson's Alchemy API helps determine which attractions would be most suitable for the user, based on their preferences. The Technical Details: MileStones takes in a pair of geographic coordinates and uses the Yelp API to generate a list of URLs corresponding to businesses at or near that location. For each link generated, we use Watson's Alchemy API to examine the taxonomy of each page and determine keywords; we then use this information to compile a comprehensive list of possible categories. These categories are placed in a dictionary called “ranks” with initial value 0. At the start, we give the user two choices from the URLs. After they reach the location they choose, they select whether or not they liked the destination; if they did, the location’s categories’ values increase by 1 in ranks. We then identify the category with the max rank and give the user two new options: the first link that maps to that same category and another random location.
Challenges we ran into
The main challenge we faced was with the Watson API: we ran into http 405 errors, which meant that the links generated from the Yelp API had trouble communicating with Watson. Another issue we faced was with creating a front-end for our product: we looked into IBM Bluemix and Flask to deploy our application.
Accomplishments that we're proud of
We are very proud of how we parsed and categorized the keywords provided by the Alchemy API in order to group the destinations; we are also proud of our integration of Yelp's and IBM's APIs. Many of us are first-time programmers and all of us are freshmen, so we are incredibly excited to have put together a predictive algorithm/product that actually works!
What we learned
We learned a lot about various APIs and how they work; we also know much more about web development (Django, Flask) despite not having fully implemented our app in web form. Perhaps the most significant thing we learned was the power of Watson's APIs and how to leverage them for future improvement and other project ideas.
What's next for MileStones
In the future, we want to add better machine learning algorithms and put the app on a mobile platform. Watson's Alchemy API sometimes errors and works very slowly on yelp.com due to images and links within each webpage that cause the API to error, so we want to find a more efficient way to gather information from each site. We also want to implement k-means in order to cluster the various categories and avoid complications.