Inspiration

Like many people, I have friends and family living all over the world and I love to travel and find new places. We're all busy though and want to be able to maximise our time away – whilst finding something new that's easy for us all to get to. Trying to plan a trip starting in more than one place, with several people can quickly become a headache. Who in this position hasn't spent ages flipping between spreadsheets, email/messenger, and your favourite travel search engine? Where can we fly to that will suit us both? How busy will it be? What's the easiest and cheapest way to get there? All this data is out there, but it can be a hassle to gather together and process, and kind of feels like work!

What it does

Meet Me Halfway takes two starting cities, and finds suggestions that, whilst not exactly half way (for most people that'll probably be the ocean!) are about the same flight time and price from each origin. Then people can find out more about the city and check out flight times and costs from both places at once. Meet Me Half Way tries to search for and suggest flights that arrive at around the same time (no one wants to wait in Arrivals for 8 hours!) .

How I built it

I used Python for the back-end (it's my daily driver) and JavaScript, Vue and Bootstrap (none of which I've used before) for the front-end. The great APIs from Amadeus are the source of the data along with AWS's Dynamo DB for providing cached approximated results for data that it's seen before for instant search results in the initial stage. The most interesting part of this was coming up with a model that would come up with good suggestions for places roughly halfway between the cities. Originally, I thought that just taking the geographical halfway point between two cities and searching for airports wouldn't produce good results, so I tried to use the flight inpiration search API and look for destinations that would appear in results for this from both cities. This didn't work very well as there was no way of constraining which 'direction' to look for. In the end, simply taking the geographical midpoint and searching around there seemed to give good results, but mainly for city pairs within either Europe or the US.

Challenges I ran into

Not knowing anything about front-end web programming was the biggest for me personally! Seriously, all I knew was how to make an alert('Hello world') in JavaScript and use CSS to make something red! Also there are a lot of variances when searching for flights, which I was hoping that this app would help distill into a nice-easy way to search, but I had to constantly get my head around (i.e. layovers, different tickets, stopovers etc). I also really wanted to make a 'social' aspect of it, so you could share your pinned flights and city choices - which whilst technically straightforward, I ended up not having enough time to do it.

Accomplishments that I'm proud of

Making something that actually looks like a website you might see in 2019! I work on gnarly desktop applications in C++ for a job and whilst I love using beautiful and responsive web-apps, I was always mystified by how to create them, and I feel like a got a bit closer. I've also not seen anything like it in the travel industry ('2D travel search' I guess!) so I'm quite happy that it's something that I think is unique and has a lot of potential.

What I learned

A lot about Vue and JavaScript. Also how much data there is in the travel world and the complexities and variables of a simple query such as 'what are the best flights for my circumstances', and of course how easy it is to be able to access it through the Amadeus API.

What's next for Meet Me Half Way

I want to expand it to include further city insights, and also hotel rates and recommendations. The suggestion algorithm could then be expanded to use more of this data (and some AI perhaps). I really can't wait for the ability to actually complete a purchase/booking through the API too! Longer term, I can see a tool like this having amazing business potential for large organisations, and helping travellers and planners answer questions such as 'I've got 70 employees in London, 50 in Paris and 50 in Helsinki - find me a good location for my conference with easy and cheap flights there' - and then book and manage it through that.

Built With

Share this project:

Updates

posted an update

Haven't been great at updating it here, but the GitHub commit log describes how it went pretty well. Watch how the code gets a bit more 'sporadic' towards the end of the process. One thing that really really saved me a couple of times on the backend, was doing the 'right' and some might say boring thing of creating tests and (relatively) robust components to handle the data, do the calculations etc. This made coming back to the project and picking up where I left off so much easier.

Log in or sign up for Devpost to join the conversation.