One of my biggest influences is the music and personality of Frank Zappa. I also happen to like going to concerts a lot. Therefore, I tried to create a goofy chatbot which can share my love for Frank Zappa and music while being able to recommend me some concerts happening around Pittsburgh.
You can reach him at +1 (412) 444-7673
PS: You might need to hurry because I'm using free accounts on both Heroku and Twilio
There are a lot of goofy chatbots across the web that one can interact to pass the time or to simply have some fun. Most of those chatbots only entertain you within the conversation and just for a small duration of time, since chatbots are not fully capable of going off script yet. What Johnny Restless does differently than those chatbots is that; by helping you find a concert to attend, it provides entertainment outside of the conversation, in the real world. Therefore, it can be your weekend companion not just once but for multiple times, as long as you want to go watch another show.
To be honest, I had much greater expectations from my work and the chatbot itself. The original goal was to create a chatbot that can get your address from you and recommend you a variety of shows to attend while being a big Frank Zappa fan.
I tracked down a couple of APIs to transform and gather the necessary information such as Songkick API to search concerts, Spotify API to find songs by the artist playing in the recommended shows, Nominatim API to figure out where you are and Giphy API to send the user GIFs. Most of this capabilities are still intact within the code and can be utilized through a web browser.
I followed a bottom-up approach. I first figured out the capabilities I would like to have and did research some on suitable APIs. I created necessary functions and made sure they work on their own, which they still do. Then I tried to take what I have created, to the chatbot environment.
Unfortunately, as with all coding projects, things have a high tendency of not working out in the end. Due to various bugs that I discovered while testing with SMS messages, I had to strip down some of the more complex capabilities to make a simpler and almost-bug free chatbot.
As Johnny Restless would say "It's a work in progress!"
The project is created using the Ruby on Rails coding language and the Sinatra framework.
Twilio API along with Heroku's cloud platform was utilized to make the messaging part possible.
The final product can respond to prompts that contain the words Hi, Who, What, Where, When, Why, Joke, Lol, Fact, Zappa, Concert and Song, with some room for variations such as Hello, Haha, Listen.
Throughout the process, I learned a lot about how APIs work and how to interact with APIs through their own SDKs and with other tools like a web browser or httparty gem. Which led me to fully realize the power of APIs.
I had the opportunity to get hands-on experience in developing a chatbot which is invaluable to me. I learned about Ruby and how to deal with its internal affairs while being introduced to Heroku and Twilio.
I will definitely continue to work on improving this project to take it to the next level That way, I may reach my ultimate goal of helping some music fans find concerts in their hometown while spreading the love of Frank Zappa's music.