Software Engineer & Scrum Master @ Paycor
Project Topic Area
Application for matching users based on Spotify-based activity
Kickstart our project, creating a service to "intersect" user playlists, as well as a basic front-end that can access the service and view its results.
How we built
This is essentially three portions: database, server, and front-end.
Web app driven via React and Electron, allowing us to distribute to both a basic website as well as desktop applications. In the future, we hope to utilize this with React Native for iOS/Android development, but this was not yet developed at Hackathon.
README.md in the
front_end/ of the repo for more details
Our python code to process requests from the front-end and interact with the Spotify API is hosted on a Django server. This python code handles authenticating the user's Spotify account, writing the required data to our database, and handling requests for the data from the front-end.
We are using a MySQL database to store the Meetify user data. Currently, we are only storing the users' account IDs and the IDs or their Liked Songs for our "Playlist Intersection" functionality. This functionality is handled by a stored procedure in the database that takes two account IDs as inputs and outputs the IDs of ONLY the songs that are liked by both accounts.
With the progress made during the hackathon, Meetify is currently a bare-bones, functional prototype:
- Users can login to their Spotify account from the Meetify front-end.
- The Django server makes calls to the Spotify API to read and store the user's liked songs in our MySQL database.
- Users can then request a "Playlist Intersection" (a list of songs that both accounts have in their "Liked Songs" playlist) with any other user who has authorized their Spotify account to be used by Meetify (further development will allow for this intersection to be written as a new playlist on the user's own Spotify account).
The origin of the idea and what we hope to achieve in the future
We used the MakeUC Hackathon as a great way to get a jump-start on our group's Senior Design project. The idea for our project started as an idea for a small personal project I wanted to do, but has now evolved into a large-scale project that my original idea is just a small part of. I listen to a lot of music, and love sharing music I’m into with others. When I meet someone new, one of the first topics of conversation is usually out music tastes. I had the idea to write some code to create an intersection of two people’s “Liked Songs” playlists on Spotify so that the people could see what songs they both liked in one playlist. Surprisingly, I was not able to find any service that already existed that could do playlist intersections, so I wanted to do it myself. I also enjoy using services that are already available that let you analyze your own Spotify data. Since the process for intersecting two playlists is not complicated enough to justify being a Senior Design project, my teammates and I came up with the idea to create a service that takes your Spotify data (like existing services already do using the Spotify API), and matches you with other people whos’ Spotify data shows similar characteristics. When users match, they will be given an intersection of their liked songs, as well as shown the music similarities that caused them to match. This would be a great way for people to find others who share the same tastes in music as they do! During the hackathon, we were able to implement the original idea for the project (intersecting playlists), but we will continue to develop the Meetify service as our Senior Design project. We will be adding a lot more features and functionality that will allow users to create accounts, match with each other based on their listening history (not just what songs are found in their "Liked Songs" playlist, view their similarities in Spotify data, chat features, etc.