The inspiration came from the existing social features integrated into Spotify and Apple music. However, we found the existing services could embrace group based, cross platform user interaction more.
What it does
Music is becoming more and more social, with friends following each other on streaming services like Spotify and Apple music. Although not complete, the goal for GroupMusic is to apply the same music recommendation already built into these streaming services, but allow users to form groups to which they can contribute data. Let's say you and you're friends really like Rock music. You can all upload your favourite tracks and GroupMusic will provide suggestions based on the data provided to the party. GroupMusic is designed to help groups find music all members are likely to enjoy and to help individuals discover music based on the people in their lives.
How we built it
GroupMusic is a web application built using React on the front-end, Node on the back, a MongoDB database and the Spotify API. Our node server acts as an API and allows us to interact with our database, while sending requests to the Spotify API gives us user data and authentication, as well as providing an outlet for song recommendations.
Challenges we ran into
While boilerplates can help you get going quickly, it is often difficult and time consuming to understand how to diagnose bugs without a solid understanding of what's going on under the hood. Furthermore, situations where an arbitrary number of requests have to be fired and managed presented a considerable challenge to our team.
Accomplishments that we're proud of
With a small and relatively inexperienced team we were able to implement many of the basic features we had in mind. The current iteration of GroupMusic has Spotify based authentication, allows users to create 'parties' and contribute music to them. Finally, we're able to generate playlists in the users Spotify library based on the playlists added to a particular listening party.
What we learned
We learned a great deal about dealing with APIs and networking in general. In particular, we learned a little about issuing HTTP requests, and how to properly handle the responses using promises.
What's next for GroupMusic
We'd like to apply what we learned here and recreate GroupMusic from the ground up, properly implementing all the features we think users will enjoy.