
My First Hackathon
Since I started teaching myself to program, I’ve been intrigued by hackathons. I love the idea of a short intense team competition but I had stayed away, concerned my programming chops might not be up to par. Last November, I decided to bite the bullet and enter the travel-themed HACK@1050 held by Amadeus, figuring that if my programming skills weren’t sufficient, at least my domain knowledge would be useful. As it turns out, my concerns were unfounded—I met some incredibly talented people, had a great time, and was able to contribute to a prize-winning hack, which is detailed in the rest of this post.
Before I go into details, let me set the scene…
Imagine you’re browsing the web, reading a story about an amazing travel destination. You’re overdue for a vacation, and you’ve finally found the perfect place to go. You make a note to yourself to check airfares and hotel rates, but then life gets in the way. Three months later—and even more stressed—you find your note, and immediately regret not following up.
Enter Vamoose—a context-aware Chrome extension that helps you bridge the gap between dreaming and booking travel. With a single click, Vamoose determines what place you’re reading about, and delivers costs for flights, hotels, and rental cars without leaving the page—giving you an idea what it might cost to make your travel dream a reality.
After a brief installation process, Vamoose can be triggered by clicking on the Vamoose button in the Chrome toolbar or by clicking on a Vamoose icon embedded in a Facebook page.
-
Vamoose toolbar button: When its toolbar button is clicked, Vamoose applies a natural language processing algorithm1 to determine the location most prominently featured in the text of the current page. If Vamoose is unable to determine a corresponding location, the user is prompted to enter one manually.
-
Vamoose Facebook icons: When you’re on a Facebook page, Vamoose inserts an airplane icon next to each geotagged post. When one of these icons is clicked, the Vamoose pane is activated with the corresponding location as the destination.
Once a location is determined (regardless of trigger method), Vamoose uses the Google Places API and multiple Amadeus APIs2 to retrieve an airfare between your closest major airport and the closest major airport to the destination, hotel and rental car rates at the destination, an estimate of carbon emissions for the corresponding air travel3, and a booking link. This information is then presented in a small overlay.
In an attempt to address the sustainability component of the competition—and to have a little fun—emissions estimates are expressed in terms of Camel Count, with 1 unit of Camel Count equivalent to the average daily CO2 emissions of one camel4. While this might not be the ideal measure of emissions, it’s much more tangible than X kilograms of CO2. Putting a fun spin on this also draws attention to an aspect of travel that usually goes ignored.
For a more detailed description of Vamoose, check out this blog post from Gillian Morris, one of my teammates.
You can view/download the source for Vamoose on GitHub here. Please excuse the lack of refinement; it was a 24-hour hackathon after all.
Vamoose is written in JavaScript, and uses the AngularJS framework. Other tools used include Readability, Node Natural, the GeoNames.org City Names 1000 dataset, the Google Places API, and multiple Amadeus APIs. The Vamoose team consisted of Matt Duran (undergrad at UMBC), Gillian Morris (co-founder and CEO of the excellent travel app Hitlist), Brian Shaler (freelance developer), Dan Zhang (PhD student at UT-Austin), and me.
Here’s a photo of us collecting the Entrepreneurial Prize as the overall winners!
Footnotes
-
Vamoose first uses Readability to parse the page content, then uses Node Natural to extract root words, and finally matches the resulting roots with the GeoNames.org City Names 1000 dataset. In cases where more than one location is mentioned, Vamoose chooses the more frequently mentioned location, and in cases where multiple cities share a name, Vamoose chooses the one with the greatest population. ↩
-
Amadeus APIs used include Flight Inspiration Search, Flight Low Fare Search, Hotel Geo-Search, Car Rental Shopping, CO2 Emission, and Nearest Relevant Airport. ↩
-
Emissions estimates are only available for markets with non-stop flights. ↩
-
Approximately 41 kg per day, according to this article. ↩