Inspiration
This project was inspired by the fact that when I started moving my playlists over from a random collection of bookmarks to actual bookmarks in Spotify, there was a lot of information that I wanted to save, but didn't have a good way to do so. In addition, it took a lot of clicks to manually add one song to lots of playlists, and then when I thought of another playlist the whole process repeated again.
Therefore, the goal of this project was two fold:
- Figure out how to store external metadata for songs (and other media)
- Use that metadata to filter the media and automatically curate playlists
- If a new song is added that matches a filter, it should be added to that playlist automatically
- If a new playlist is created with already existing songs matching the filter, those songs should be added automatically
- Likewise for removal
What it does
(See the demo)
How we built it
This application is built using Firebase Functions and Firestore for the back end, which allows for a highly scalable and available service, so anyone can use it without me needing to worry about server capacity.
This application was built API first, so all of the processing happens on the server. This means that someone could programmatically call Media Metadata Manager if they wrote a script to transfer a lot of information. Likewise, anyone can add a new UI to it, possibly via something like a native app or even a Browser Extension to put the media management right on your preferred music platform like Spotify or YouTube.
Finally, the front end was built using React, MUI (formerly Material UI), and Typescript for a sleek, mobility responsive experience so anyone can use this from anywhere.
Everything was also managed using professional development standards on GitHub, including issues, milestones, labels, pull request, conventional commits, and testing being required as part of a pull request. This means that if I continue the service in the future, the ground is already set to open source this project with a little more work. (See the "Try it Out" link to view the GitHub repo and see what I did!)
Challenges we ran into
This was really my first time using Material UI... and Firebase... and Node... and Java... in a very long time. As a result, everything I thought I knew no longer applied due to major version upgrades, and a lot of time was spent trying to get my development environment working again.
Accomplishments that we're proud of
This was my first time finishing a GraphQL project, and I'm very happy with how well the API turned out.
What we learned
I learned how to use GraphQL, which was a really big thing for me.
What's next for Media Metadata Manager
While the API is complete, the UI still needs some work for mutation (create, update, delete) requests. I'd like to get that figured out, then move on to third party integrations with Spotify and YouTube.

Log in or sign up for Devpost to join the conversation.