One of my favorite things to do over the weekends is to take a sidestep from full time development of Hitlist, my startup, and poke at other ideas that we’d love to eventually address within the travel space. In 48 hours I get to meet new people, learn about the latest technologies, and build and hopefully validate a feature that we might eventually incorporate into Hitlist.
This weekend I teamed up with Matt Duran, a student at University of Maryland Baltimore County; Dan Zhang, who is doing grad work at UT Austin; Drew Desautels, a Boston-based transport industry consultant; and Brian Shaler, a vagabond programmer (and teammate from the Playover project at the Mashable hackathon) to build VAMOOSE, a flight/hotel/car search plugin, for the Amadeus HACK@1050 in Waltham, MA.
The idea behind Vamoose is pretty straightforward: we wanted to create something that would make it easy to check how realistic it might be to travel to places that you’re reading about/investigating online. So we built a simple chrome extension that allows you to check air, hotel, and car rental costs without leaving the page you’re on.
By far the coolest thing about this is the NLP work that Brian Shaler put together. It parses the available information on the page you’re viewing – text, metadata, etc – and tries to guess which location is being discussed, then fetches the prices automatically, so it’s one click to get a snapshot of your overall trip cost. Compare this to the process of opening a new tab, going to Kayak.com, typing in your origin, destination, picking a random date that might not be optimal, and waiting for the flight search results… then doing the same on booking.com and carrentals.com.
How this works:
- the app used Readability to parse the relevant article text out of the page,
- then used Node Natural to extract the root words in the piece (ie to identify ‘Chile’ from ‘Chilean’ and ‘Santiago’ from ‘Santiago’s’),
- then looked for matches in the geonames.org City Names 1000 data set, an open source database of all cities with a population of >1000 people.
- When there are duplicates (as in the case with Portland Maine / Oregon, Birmingham Alabama / UK, etc), we default to the city with higher population, which is not the most sophisticated way to handle this but hey, it’s a hackathon. With more time we might have searched for other context on the page, or tried to use browsing history to inform the prediction.
- Once we have a city name, we use the Google places API to get lat/lon coordinates, which we then plug into the Amadeus ‘nearest airport’ API to figure out the destination airport. We use the individual’s IP address to predict the origin airport, and then plug both into Amadeus’s ‘inspiration’ API, which returns low fares for random dates (drawn from a cache of recent searches called from the Amadeus API). If for some reason the inspiration API doesn’t return anything, we fall back to the Low Fare API, which requires a specific date – we arbitrarily picked a week long trip two weeks from the current date. Again, if we’d had more time, we would have tried to make it easier to adjust the dates and built a settings page where you could pre-select dates that you were interested in traveling.
- We also plug the destination city into the Amadeus hotel search API and the car rentals API to get an approximation of the costs for both.
If for some reason Vamoose isn’t able to detect the location you’re considering, you can alway manually enter the location you’re looking at. We use Google Places Query Autocomplete to get the city name, then the same process as above to return your results.
Dan Zhang also built a very cool plugin for Facebook that automatically scans the page for place names and inserts a small symbol, , right next to them so you can find the nearest airport. So when you’re looking at pictures of your friend’s cute kids that you’d like to visit – or the wild beach party in Mexico you want to join – you can find out where you’d need to fly without having to leave the page. It takes the place name and plugs it into the Google Places API and then the Amadeus nearest airport API, as above. We wanted to link this up to the the other search function so that it would also show flight, hotel, and car rental prices with one click, but we ran out of time.
And because it wouldn’t be a hackathon if we didn’t have a little fun, we attempted to address the ‘sustainability’ challenge by introducing a new way to measure carbon emissions: Camel Count. Put simply, no one knows what a ton of CO2 really is. You can’t envision it. Camels, on the other hand, apparently emit 42 kg of CO2 per day, according to this article which posits that Australia should get carbon credits for killing feral camels (#notanonionarticle). You can understand, sort of, what someone is saying when they say that a trip from New York to Paris will do the same damage to the environment as nine camels will do in a day.
The code for the hack can be found on github here: https://github.com/dzhang50/rlt
If you’d like to install the hack, you can:
- download a ZIP file from github (at the bottom of the column on the right) and unzip the file
- go to the hamburger menu at the right end of the search bar in Google Chrome > Settings > Extensions > Load unpacked extension
- Select the ‘ext’ folder from the unzipped github file
- You should notice a blue circular Chrome logo at the top right of your search bar and the Vamoose logo next to locations on Facebook
It was a huge pleasure to play with the Amadeus APIs and meet such awesome people. And the judges seemed to like us too: we were awarded the ‘Entrepreneurial Prize’ as the overall winner.