Ride hailing services have revolutionized transportation, but the gains provided by these services have for now been limited to those with a reliable internet connection. However, those without a mobile data plan have until now been left out of this ever growing share of the economy. Our Chatbot provides an opportunity for those without mobile data plans to share in the benefits of these ride hailing services, by allowing access through sms to which almost 75% of the world’s population has access.
What it does
Ridebot is an Skype / Facebook Messenger chatbot that you can contact without an Internet connection in order to book a Lyft ride. After authenticating their Lyft account for the first time, the user sends their destination and pickup locations. The user can select between the different Lyft ride types, such as Lyft Line, Lyft, Lyft Plus, Lyft Premier, and Lyft Lux. The bot sends you an estimated time of arrival as well as an estimated price for each ride. After booking the ride, the bot can send you information about your driver, the time until arrival, and the driver’s contact information in case of a problem. In addition, the user can cancel the ride. All of this is done without the use of the Lyft app or an Internet connection.
How we built it
We developed the chat bot using Node.JS to build our bot with the Microsoft Bot Framework. We also used LUIS(Language Understanding Intelligent Service) to add language understanding features to our bot, so the user doesn’t have to type exact ‘codes’. We used REST API calls to interact with the Lyft APIs. We also used Google Maps Geocoding services to convert addresses to coordinates.
Challenges we ran into
Uber requires you to go through an approval process for your application in order to be granted full access to their API. Because of the time constraints of the hackathon, we would not have been able to be approved in time. Uber integration is planned for the future however. In addition, Twilio (SMS) integration proved to be a problem because we need to upload the bot to a server that can receive the user messages. Also, there are monetary fees for using Twilio, which were outside of our current budget. Once this server is created, however, Twilio integration will be complete.
Accomplishments that we’re proud of
We fully integrated the Lyft API into our chatbot, from login to ride request. We are able to request any type of Lyft including Lyft line, which isn’t officially supported by the Lyft API. In addition, we added support to cancel rides and to check on the status of the ride request.
What we learned
One thing we learned about was Oauth2 authentication, which both Lyft and Uber use to let customers grant account permissions to third party apps in a safe manner. We learned how to interface with the Uber, Lyft, and Google Maps geocoding API.
What's next for Ridebot
We have applied to Uber to have full access to their API and plan to integrate Uber into Ridebot as well. The user will be able to compare prices as well as book both Uber and Lyft rides. We also plan to upload our bot to a server so Twilio integration can be achieved. We will also try to add functionality for drivers.