Web version's queue
Web version's search interface
iOS app's search interface
iOS app's queue
Whenever we play music with friends, one person usually controls the whole playlist. Our app aims to crowdsource the music playing experience by giving everyone an equal say.
What it does
Disco allows users to add songs to the queue and up vote existing songs to rearrange the playlist towards the general opinion in real time. We offer both a web and an iOS client for convenience's sake, and album art adds to the colorful interface.
How we built it
Disco uses Spotify's iOS API to stream songs and retrieve song data, and we supported the iOS app with a node.js and socket.io backend to manage each playlist. The web client was created with socket.io, jQuery, the Spotify REST API, and most prominently, block.js, a custom web frontend development framework with its own language that we created to modularize UI design and ease event management.
Challenges we ran into
Accomplishments that we're proud of
As we originally built the app with RESTful architecture, the transition to a realtime application with websockets was a huge improvement. Additionally, the successful use of our own framework has inspired us to use it for future web applications. We are also proud of ourselves for staying up for 24 hours.
What we learned
We learned how to work with a rudimentary API, connect software on different platforms, and tag team (we each have very different skills/areas of expertise, so we learned how to delegate tasks).
What's next for Disco
We plan to expand the Disco client and server to various platforms to reach a much larger audience of users. We also plan to market Disco to high school students to test out its impact in a social environment. Future versions of Disco will allow the host to sync Disco queues to existing Spotify playlists, as well as play songs from other sources, such as YouTube and SoundCloud.