Inspiration
For most of us, music is an integral part of our lives. We listen to it while we study, work, exercise, cook, relax, to help put us in the right mind space for whatever tasks we may have. Especially during a global pandemic where our mental health is more important than ever, our musical mood is also more important than ever.
What it does
Introducing Melodica, an emotional analysis application for your recent Spotify tracks. We analyze your recent tracks and determine your positivity and energy values, displaying the results in an intuitive data plot. We also send you song recommendations based on your current mood and your desired mood.
How we built it
On the front end, we used React Hooks and functional components. We also used d3.js to handle our data visualization.
On the back end, we primarily focused on serverless technologies that would allow us to get off the ground quickly, scale well, and work together without stepping on each other's toes. Our language of choice was Go for all our backend components and we used Google Cloud Functions to serve individual endpoints, Firebase for hosting and routing, and Firestore as our NoSQL database.
Challenges we ran into
We ran into some challenges trying to integrate d3.js into our front end, as we hadn’t really used it before in a React context. Knowing what to put where was definitely a great learning experience!
Additionally, very late into our build and deployment process, we discovered that the server we had been testing locally with the whole time did not work exactly as expected in the cloud. We learned that Google actually strips all cookies from requests going from Firebase hosting to Google Cloud Functions in order to allow for caching. However, our entire authentication flow relied on the passing of cookies so we had to scramble at the last minute to code up a fix.
Accomplishments that we're proud of
We’re really proud that we were able to deploy a functional project!
What we learned
How to use and coordinate serverless services in GCP React Hooks and functional components
What's next for Melodica
Using our database instance store and display time series data for musical positivity over time!
Built With
- firebase
- go
- google-cloud
- javascript
- react
- serverless





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