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.

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. ↩