Inspiration

We were heavily inspired by the theme of the hackathon, supporting mental health and wellness, as well as our individual backgrounds and appreciation for music being a contributor to good mental health. We also were influenced by the technical workshops held during the hackathon, and implemented the technologies learned from some of them.

What it does

Spotimood is a song recommender that works with user mood input from a web browser being hosted by an ESP32 microcontroller's network, displaying mood lights and textual LCD output. On the hardware side, we have a program that runs with an ESP32 microcontroller to host a local wifi network that a user can join. Once joined, the user is able to go to a browser and interact with the mood lights and see textual output from an attached LCD. Once selecting a mood, our recommender program would output a list of recommended songs based on the user's listening history and selected mood.

How we built it

The project is comprised of both hardware and software components. We used a Python library called Spotipy to streamline utilization of Spotify's Web API calls in order to perform analysis on the user's Spotify track listening history. We went through a lot of different renditions of the recommender algorithm, but settled on using Spotify's built in recommender for simplicity's sake. With the hardware end of things, we built off a workshop on using an ESP32 microcontroller to connect to the internet. An interesting application of the workshop was using C language to send HTTP requests to render HTML elements on a web page, which is how we built our user interface.

Challenges we ran into

Integration of the different platforms was a big challenge.

Accomplishments that we're proud of

All of our team members worked with unfamiliar tools and technologies during this project, and we came away learning much more about all portions of engineering design and implementation.

What we learned

We learned a lot about the different components required to run.

What's next for Spotimood

There's always room for improvement! Spotimood could use more streamlined installation and automated integration between its platforms, as it's a tad cumbersome to run at the moment. Users likely wouldn't be able to navigate the current experience it provides very well. Furthermore, its recommendation system could be improved, and the overall aesthetic of the web GUI and board setup lacks fine attention.

Built With

Share this project:

Updates