One of our team members experienced the Interrail journey this summer. We thought that it was a great idea to visit many places in one single vacation. But we thought that we could improve upon this idea by using one of the fastest means of travel known to man: the airplane. Therefore, we decided to increase mobility between large cities by constructing an AI that could bring every user to every place in Europe that they decide with airplanes in the cheapest way possible.

What it does

Users can type up to 4 locations in Europe that they want to travel to and how many days they want to spend in each of them, as well as in which dates will their journey begin and end. Using this input, we give them the cheapest combination of flights that passes through all of these locations in the given days.

How we built it

This project integrates a data-related component, built in Python, which is provided by the SkyScanner API in the form of flight prices and destinations, and an algorithmic core built in C++ which uses this data to compute which will be the optimal set of flights that the user has to take using algorithms such as dynamic programming and segment trees. Furthermore, we wrap this up in an intuitive user experience, built in Flask, so that every user can suit the application to their needs.

Challenges we ran into

The very first challenge we ran up with was to map our general question into a specific algorithm that a computer could solve. After we got the idea which would let us complete the algorithm, what was left was the implementation, which presented us with other challenges. The first one and most obvious was to deal with a completely new API to us, but after we figured out how to query the information we needed, and since we already built the algorithm, it was time to present this in a user-friendly environment. We decided to go for a simple website that would include all the information necessary and would keep clutter to a minimum and simplicity to a maximum.

Accomplishments that we're proud of

First of all, the fact that we managed to complete a challenge with immediate real-world applications in under 36 hours without being professional coders is an achievement in itself, and more so considering that it's our first time ever competing in a hackathon. We're also happy to be allowed to tinker with external APIs, developed by professional companies and being able to use them to come up with results.

What we learned

The most fundamental values that we learned in this competition are not those of programming, but those of team building (which have a direct implication in using GitHub, as a side note). Besides that, we have learned how to use Flask from scratch to build a website and how to use multithreading to speed up queries over the Internet.

What's next for QuickEurope

A nice improvement we could add to our application (actually, on the way of adding) is a map that shows you the destinations and the flights you will be taking. This idea can also be extended to use a map to select which cities will the user want to visit. Another feature would be to refine the queries that the user can ask, such as adding support for maximum days he wants to stay at a certain place, or wanting to be in a certain place at a specific date (such as if he wanted to attend an event that is being held at a specific date) or only considering flights from certain airlines. Another idea would be to also tell the user which places should he visit in that city or where should he stay, or the best way to visit a country, to provide a more comprehensive outlook on the trip and allow for maximum optimality potential.

Share this project: