We both travel a lot, and thought about new ways to explore possible destinations and get an impression without having to search for a lot of information. We created this bot to make it easy to find cheap flights, get inspired to visit new destinations, and to streamline the booking process, all in one simple interface.
What it does
Our solution is realized as a Telegram bot that anyone can talk to. You can tell the bot where you want to go, or just ask for some suggestions. We use the Skyscanner API to find the most affordable destinations from your location, and Yelp to give you information on some popular local spots. You can also query the bot for hotels in the area, as well as photos. Finally, if you're convinced you like the destination, the bot can directly link you to a selection of cheap flights!
You can even communicate with the bot via voice messages, just like any regular Telegram user. We use Google's Speech API to transcribe what you said and answer the query like a text message.
How we built it
We use a mixed backend of Python and Node.js. The Python backend handles the core bot features, i.e. primarily deals with generating and understanding natural language and conversational flow. It also implements the image search via Bing's API. The Node.js server was built with the idea in mind that we might extend our project with a webapp, but currently already hosts all the business logic of communicating with the Skyscanner and Yelp APIs.
Both parts of the backend are hosted on an AWS EC2 instance, and the bot is accessible at telegram.me/FrugalGoose_bot.
Challenges we ran into
Accomplishments that we're proud of
The bot operates very smoothly, and is quite nice to use in the end. It's the first time we've tried implementing a full chat bot. We also have very little JS experience, so what we did on that end was also a bit new for us.
What we learned
Telegram has an awesome chatbot API, Google APIs are nicely featured, Bing image search is useful.