OpenTok Apps: Lollapaloobox

It’s been three weeks since I’ve started my internship.  Since then, I have worked on quite a few projects, ranging from showcase to prototype apps. The one in particular that I’m quite proud of is Lollapaloobox; a mash-up between the OpenTok & Hacklolla APIs. The web app allows users to enjoy the full concert experience from the comfort of their homes.

How does it work? Glad you asked.When users go to the web app, they are presented with the bands who are currently playing (or until Lollapalooza starts, who will be opening) on each of the eight stages. Users select a stage, and they are taken to the stage’s green. Here they can choose to “Just Watch” or “Dive into the Mosh Pit”.  Either way, they will be able to see the livestream of the band (since Lollapalooza hasn’t started, right now they’ll see a music video) and see other audience members rocking out. By choosing the mosh pit, their webcams are activated, allowing them to be part of the concert experience minus the body odors and occasional foot to the head.

That’s all good, but how does it “work”?

When the user lands on the web app, a function is executed to pull data from the bands who are currently playing. The exact bands are figured out by comparing current system time with band start times. Users can also learn more about each band by reading its biography, provided by the HackLolla API.

Once the user selects a band, they are taken to stage’s green. This is where the OpenTok API kicks into gear. People that either want to watch or participate, are placed in a session which can have up to 10 participants and 200 viewers. To control quality, if a new user wants to view or participate in a full session, a new session is dynamically created by the web app. That means multiple sessions are running at once for a given stage. A database keeps tracks of which sessions are associated with which stage, and the number of users in each session.

A nifty feature in the app is that it updates the database automatically when a user leaves a stage. When a new user wants to join a stage, the app searches for the first available session with open slots, and places the user there. This allows for each session to be packed to the brim with users.

Overall, I had a great time designing and developing Lollapaloobox.  I got to play around with APIs, solve scalability and design problems, work with databases, and overall develop a sweet app for people to use. I would also like to personally thank Lollapalooza for opening up their API to the public; allowing developers, hackers, and tinkerers like myself to come up with some sweet apps in return.