💡 Inspiration

Getting the trip out of the group chat ✈️ As a team, we found that getting trips to escape the dreaded 'group chat phase' was nigh impossible. Insert Wanderlust, the easiest tool to catch flights, not feelings... and more!

We were inspired by the tools available to us at HackUPC 2025 to create a fully immersive, whilst (ironically) simultaneously asynchronous AI-enabled travel agent application!

🧑‍💼 What it does

📝 TL;DR

Aspiring holidaymakers can input their travel desires – but as a group using their own private code. Once the whole group has entered their wishes, or someone gets a bit impatient, their inputs are selected, and processed by the following APIs:

  • Google Gemini API creates an ideal itinerary for the trip
  • Skyscanner API finds the best flight options for the travellers
  • Bitly API shortens the deep links provided by the Skyscanner API
  • Twilio API messages everyone in the group with their specific flight details and unique booking link

💭 Asynchronous Input

Each member of the group enters their travel desires on our custom-built web form, which is stored permanently into a MongoDB database. We ask for the following details:

  • Group Code so we know which trip this is
  • Name to know who this traveller is
  • Phone Number in order to send the trip results and booking link
  • Closest Airport to give the simplest travel suggestions
  • Interests & Preferences so that the trip can be just to this traveller's liking
  • Date and Length to pick the ideal trip departure/arrival dates for the group

🏝️ Trip Creation

🤖 Itinerary Curation

Once the trigger is pressed, our software gets hard to work! First, the Google Gemini API is sent all the travellers' desires. It uses the preferences to pick the perfect location (e.g. sun, sea, sand preferences might suggest Barcelona; cold, northern lights, mountains preferences may suggest Iceland). An average is selected from the group's preferred lengths, and an average is chosen for the departure date (the return is calculated based on adding the length). Finally, the API selects the best currency based on the departure airports, so this can be used when selecting flights

🛫 Flight Selection

Next up, the combined departure (user input) and arrival (Gemini generated) airports are sent to the Skyscanner API, alongside the given dates and a currency. Skyscanner then finds all flights, and the 'best' is selected based on its Skyscanner score.

🧑‍🧑‍🧒‍🧒 Group Notifications

When the itinerary and flights have been selected, each member of the group will receive a notification. As Skyscanner provides a deep link that is too long for a single SMS, the Bitly API is used to shorten the deep link into one that is more user- and SMS-friendly. The flight details as well as the required personal details (name, group identifier and phone number) are sent to the Twilio API, which then sends a personalised text to each group member.

📖 Full Details

If the trigger chosen is the web application, the group member who ran it gets the full details of everyone's flights, as well as the full multi-day itinerary provided by Gemini.

How we built it

Challenges we ran into

Accomplishments that we're proud of

What we learned

What's next for Wanderlust

Share this project:

Updates