We are all big music listeners, and wanted to be able to listen collaboratively. We found that there aren't really any ways to collaboratively listen without just one person taking over as the DJ.
What it does
Users can queue up songs, and vote on their favorites. The most favorited song will be poped from the queue and played next, maximizing the likelihood that everyone will love the music.
How we built it
We built the app with react and express, and the Spotify API. We also used Socket.io for communicating between the backend and the frontend. Collin and Ben focused on the backend, while Hunter and Siman focused on the frontend. By the end of development, our roles relaxed and we were focusing on authentication and later Socket.io.
Challenges we ran into
We ran into lots of challenges with the authorization of the Spotify API, and on using web sockets to create the rooms. This ate into a lot of our time, but we still got quite a bit of our goals finished. While it ended up not being as collaborative as we had hoped (due to our 9+ hours on Socket.io alone), it was able to control the Spotify player from our web app, and we have a good basis for growth.
Accomplishments that we're proud of
We are very proud of how well our app looks and how well it plays music and stays synced up. We're glad that it can perform the basic functionalities we cared the most about.
What we learned
A good design is worth hours of coding. We got behind on our time schedule because we chose some very finicky technologies, including the Spotify API and the Socket.io library, and in the future we'd want to make sure we can test these technologies to a greater degree before we start.
What's next for Albump
Our first goal would be to ensure that the rooms are being created and maintained to the standards we want. We hope to add a more user-specific experience by storing user information persistently, and add more functionality to allow our users to use other music providers (such as Apple Music, Youtube Music, and SoundCloud). While this wasn't currently possible due to the beta APIs, we see that as our most ambitious and important future goal.
Feel free to check out our Gitlab!