Inspiration

This was inspired by the frustration of countless get-togethers where people constantly ask to play different songs.

What it does

Allows people to connect to a Spotify room in order to add songs to a queue to play off the room owner's device.

How we built it

We built it using a node server which handles client connections and authentication. We used Express as the web framework and passport for authentication. Socket.io was used to push updates to all connected room clients. MondoDB was used to store room information, the session token, connected users, and the queue. The frontend was built using bootstrap, EJS, socket.io, and jquery.

Challenges we ran into

Maintaining the queues and making requests to Spotify on time. Handling multiple rooms at one time on a single server. Syncing app state with Spotify current state.

Accomplishments that we're proud of

Getting it to work with multiple rooms. Our ability to work around the lack of features in the Spotify API.

What we learned

A lot of js, how web sockets work, managing the state of multiple sessions on a single server in real time

What's next for Qzik

Adding redis or distributed store so it can run on multiple servers at the same time. Long polling on the Spotify API to constantly update the state on the server side. Rewriting the frontend with a frontend library that manages states such as react.

Share this project:

Updates