Project for Dohop's five day hackathon 2015.
For normal people: Ever wanted to take a trip around the world? Well now it is cheaper than ever! Just tell us where you want to go and we will find the cheapest way to get you to all those places. In less than a second!\~\ For engineers: We created a web application that finds the cheapest possible flight-route for a given set of user-specified destinations-duration tuples, based on the api provided by Dohop.
The user inputs a starting location and then a set of places he would like to go to along with the duration that he would like to stay at each place. As the user inputs information it is displayed on a large map on his display. When the user is finished inputting data into the application he presses a button and gets shown the cheapest available route that goes to his selected locations. This route is shown graphicly on the map.
Find a round world trip.
- Primary actor: Any person that wants to go for a trip around the world.
- Scope: The browser.
- Brief: The user enters data about where he wants to go and interacts with the UI to create the cheapest available trip.
We always find the cheapest solution for the data we have!
- Build project: Execute
npm install
andbower install
- Serve website:
grunt serve
This is our landing page, clean and simple.
On the landing page the user specifies the starting location and the starting date.
After specifying the starting location and pressing Search, the user is taken to a map where he can see his starting location.
Here the user can choose the locations he wants to visit and for how many days he would like to stay at each location.
When the user is done entering in locations he presses Create trip and is shown the cheapest route graphicly on the screen along with the total price of the trip.
After creating a trip the user can click individual locations on the map to view information about that particular stop.
What makes our solution cool is the algorithm behind it. In the first draft of this application we used a greedy algorithm that simply searched for flights to all the locations in the set we had not visited and chose the cheapest one. This algorithm often returned a decent solution but sometimes ran into trouble when some flight were not available in the API. When we swapped that algorithm for a better algoritm, based on the Traveling Salesman problem, things got really interesting. Not only did the new algorithm find cheaper solutions, but it was faster using asynchronous methods and found full solutions more often.