Tourism is a growing industry but making an itinerary of destinations to visit can be unnecessarily long for unfamiliar tourists. Rather than hunting for tourist destinations in a city by googling for hours, TripGuru instantly builds a personal itinerary for the user.
What it does
TripGuru is an iOS application that utilizes Google Maps to minimize distance between destinations, Yelp to retrieve the user reviews with NLP sentiment analysis, and access hourly forecasts.
How we built it
The app is a native iOS app and is coded in swift. Python scripts which query information from various different APIs such as the Yelp Fusion, Apixu for weather data, and Google Directions.
Challenges we ran into
Yelp Returns Yelp’s API documentation does not specify whether the information it returns is JSON or not. After multiple attempts of treating it as a JSON, we realized that it the structure it returned was a series of dictionaries and arrays and would need to be called using string indices.
Heroku Server With many python scripts querying information at the same time, we ran into issues with non-asynchronous calls. This led to our server being overloaded and in the end timing out. In order to prevent this, we implemented asynchronous calls in swift and flask as well as used imported modules instead of query links to reduce latency.
Web Scraping Since Yelp’s API did not provide reviews for the businesses, we needed to scrape the top reviews of each sight’s Yelp page. We created a url that would allow us to reach any sight’s webpage.
Accomplishments that we're proud of
UI We were very impressed with how our UI design turned out. Because only one of our members knew swift, most of us were either working on the server scripts or ui design. As a result, we iterated through many versions of our UI before arriving at our final design.
What we learned
The most important thing we learned is the division of tasks and importance of team collaboration to advance our idea. By helping each other with our designated assignments, we were able to maximize productivity and have fun creating a team project. We also learned how to implement the BeautifulSoup 4 Python library which turned out to be vital to our application to receive Yelp reviews.
What's next for TripGuru
We would like to add a feature that provides information on the duration of your itinerary and by analyzing the time of day suggest food options during either breakfast , lunch, or dinner time. In addition, we would like to implement crowd-sourcing so as people complete their itineraries and rate them, TripGuru will progressively understand which locations are more popular and show these images first.