We wish to improve the student experience through the most accessible method of communication available to all students - the phone. More importantly - through a service that provides vital services a student should require on a day to day basis.
What it does
Our SMS chat bot and voice system includes functions such as, such as directions, campus security, where to find supplies or food, mental health services, and various other entertainment utilities such as jokes or interesting facts. Students can access the number by texting +1-510-8-CAMPUS (+1-510-822-6787), or call directly into the number to be presented with a menu option where you can use your dial pad to enter a command.
How we built it
We used the Twilio API to leverage their SMS and voice services to provide a customized student experience. We used libraries such as Twilio, Flask, and PRAW (Reddit), and utilized Dijkstra's shortest path algorithm to generate directions between buildings. The whole project was built in Python.
Challenges we ran into
Parsing SMS messages from the user, and tokenizing the message into keywords our application understands was a significant challenge. In addition, working with the Reddit API, and Twilio API was a challenge as most of us were brand new to it. We also had to carefully select which subreddits we serve jokes, quotes, facts, and comics from, in order to not provide a harmful experience.
Accomplishments that we're proud of
Our voice system is one of our most proudest accomplishments - students can simply call into the number and choose a menu option, from which our business logic takes over and serves the response back to the user over a detailed humanized voice via Twilio. Specifically, our joke generator (menu option 4), which pulls any random joke from /r/jokes, and reads the lead-in in one voice, and the punch line in another, slightly higher pitched voice.
Secondly, we are proud of our directions generator, where a user can simply text the bot "how do I get from ICT 102 to PF 100", from where the bot will generate a detailed paragraph, explaining step by step how to get to your final destination, taking care of any grammatical inconsistencies or run on sentences.
Finally, our SMS chat bot incorporates many various entertainment features available to the end user, for example "meme" which fetches a random meme from the top posts /r/memes, "fact" which fetches a random top post from /r/todayilearned, and "comic" which fetches a random top post from /r/polandball. Thus, while providing necessary student services, we can also provide a means to keep students entertained as well.
What we learned
Our project helped our team members learn how to interact with various APIs, such as Twilio and PRAW (Reddit), how to deliver customized responses to end users, and how to work with version control (Git). Overall, we had a ton of fun making it, and gave us all a glimpse into the world of programmable SMS and voice.
What's next for CAMPUS CHAT BOT
We plan to implement open course notifications, where a user can specify which course, and section they wish to be notified about, in addition to a stateful chat bot where you can have conversation flow like you would a human being - utilizing machine learning using Tensorflow. Users will be able to register themselves with the bot, which saves their details to a database, and the bot can learn from the user's experience to serve them better. Finally, clubs will be able to register themselves with the bot, and push notifications out to their club members over a single SMS message.