Not everyone has access to a stable internet connection on a mobile device, or may not want to download an application to complete seemingly simple tasks. We see the value in SMS and have leveraged this to automate a real world common task.
What it does
FlightBot is an SMS mobile application - where nothing is needed other than a phone with texting and calling capabilities and the phone number for FlightBot. FlightBot allows you to look up flights via a text message of no particular format and returns a list of roughly three flight choices - listed in order of price.
You can then select a flight for booking. A phone call is sent to the number prompting the user to insert payment information through keypad presses during the phone call. The payment process is then simulated and a text confirmation response is returned with a flight confirmation code - which can then be used at the airport to print the boarding pass.
How we built it
We built FlightBot using Python and Flask to set up a web server that would listen to calls from the Watson IBM chatbot. Our Python backend would then talk to the Amadeus API to get relevant information, parse that information, and send that back to Watson, which would then send out a text message through Twilio to the user.
When the user finds a flight s/he is interested in and sends out a text to book it, we send out a phone call to the user through Twilio to ask for payment information which is inserted as keypad presses during the phone call. The conversation is tracked on our Python backend, and a confirmation ID is generated and returned to the user via text message along with the flight itinerary.
Challenges we ran into
We were planning to build out the booking functionality far enough so that you could actually book your flight. However, after scouring the web for any signs of APIs that would allow us to do this, we discovered that no such service exists! We discussed possible workarounds (web bots) but decided that it would have caused problems that may have not allowed us to finish on time.
Accomplishments that we're proud of
We are proud that this is practically a complete product (minus the challenge we experienced above). We are proud of the way we were able to work together as a team to form this complex application in a reasonable amount of time, and we are also proud of the value of the product, and the potential to continue this after the hackathon.
What we learned
We learned how to use many many frameworks and APIs that we have never touched before - especially IBM watson, which proved to be a challenge at the beginning, but turned out to be a very powerful tool that made us very productive. We also discovered that there are no APIs out there that allows non-commercial parties to book flights - a potential opening in market.
What's next for FlightBot
Everyone we have demoed it to expressed interest in using FlightBot in their own lives due to the ease and convenience. We are discussing the possibility of continuing development on the product even after the hackathon... and then selling it to Google!