Before we came to college, most of us went on trips. Take for example, London. While there we realized just how many different things there are to do and locations to visit, and at times we were overwhelmed. We had to spend quite a bit of time manually scrolling through review after review, travel blog after blog. In the end we realized we spent almost as much time planning some of the days on the trip as we spent on actually visiting places.

What it does

ItineGen takes basic travel/vacation preferences from the user, including how long they want to be out of the hotel. Users narrow down where they'd like to go by modifying slider values to their preferences (users can adjust slider values for categories such as art, parks, night life, museums, etc). Locations are generated based on user input of start location and the maximum distance they are willing to travel to, or they can simply search for results within the bounds of prominent cities for example. Results are ranked in using special weighting, determined by global Google Reviews and the preferences previously determined by the user.

How we built it

We built the frontend using angular.js and HTML+CSS. We built the backend with express.js and node.js. Using several Google Cloud Platform API's we can gather a lot of useful information regarding different locations. Then, based on user preference, global reviews, and distances between locations, we can compare said data to the Google API information to create a list of ideal locations for our user. The amount of locations to be visited is determined by the user's preference for when they want to start their day, and when they want to end it and head back home to the hotel.

Challenges we ran into

In order to identify to shortest route for users to take between locations, we had to use some advanced linear optimization, which proved more difficult than expected. Although our coding experience as individuals varied, we managed to work well together and work around all problems.

Accomplishments that we're proud of

In our weight assignment process we included a special decay factor. The decay factor ensures that although a user may have chosen the "Art" category to have the most priority, the decay factor ensures that other categories that had less priority are not completely blotted out (unless the user explicitly gave them a value of "0" on the slider).

What we learned

We learned to how to more effectively implement Google APIs, as well as the use of javascript for node.js, express.js, and angular.js.

What's next for ItineGen?

As of now, ItineGen can only generate an itinerary for one day of travel/vacation, but in the future we'd like to be able to create an entire vacation plan (some people like structure in their lives!). We'd like to also add live events, like Facebook, so that users can be aware of whats going around in the local area. Also, we'd like to fine-tune our algorithm and decay factor so that there is a more balanced mix of results for locations/events with different category tags.

Share this project: