The Interactive Intelligence API allows creating custom Interactive Voice Response systems (e.g., "Press 1 for X, Press 2 for Y"). This inspired us to find interesting ways to use IVR.
"Which menu would you like to hear? Press 1 for Earhart. Press 2 for Ford." First, we created an IVR that allows users to select a dining court at Purdue and hear its menu.
But we wanted to do something bigger.
"You are standing at the end of a path in front of a mansion. To go in, press 1. To take the path, press 2." Our next project allows users to build choose-your-own adventure stories using the IVR Adventure web application. Then, users can experience their stories through IVR. Each story is made of chapters, and each chapter presents the user with a list of choices that lead to other chapters. Notably, the users of the IVR Adventure application have complete control over their stories -- they can be short and linear or long and complex. Who knows what will happen?
One of our biggest challenges was dynamically building a new IVR system for each story. Typical IVR systems are static, but we didn't have that option. Each story has its own unique plot, and users can seamlessly move from one story to another.
To build a unique IVR system for each story, we needed a lightweight and agile language, so we used Node.js and Express. Our web application needed a powerful framework and a sleek interface, so we used Ruby on Rails and Bootstrap. Our IVR server runs on a Raspberry Pi along with our database.