Inspiration
This project was first born out of an interest in the Spotify Web API and what could be done with it. After much consideration and brainstorming, the understanding of how mood can be directed by music led to the making of a tool that would help a user be mindful of both facets.
What it does
Feel The Beat! utilizes Flask and the Spotify Web API to present the user with their most recent songs, which then can be recorded with the daily mood the user is associating with their music. The user can then look back and track how their musical-based daily emotion has changed in their recorded history. This is displayed dynamically in the page with a combination of Javascript and the HTML, which uses an internal API to get song data from the Postgres database of the user from a specific day, as well as saving the songs independently.
How we built it
For the frontend we use HTML, CSS, Bootstrap and JavaScript. For the backend we use Python, Flask, PostgreSQL Database. We used Git for version control. We use Docker to containerize our application, GitHub Actions fo CI/CD. We also used Prometheus, cAdvisor and Grafana for monitoring. We made requests to the Spotify API in order to get information about songs and user listening data.
Challenges we ran into
One issue we experienced was with our version control with Github. With so many moving parts, we had many merge conflicts that introduced many bugs. This was a great learning experience with learning the QA testing process. Updating the database schema was another challenge. We were pretty new to using SQLAlchemy, Postgres, and Flask migrate, so whenever we made the changes we struggled a bit with how to use migrate and upgrade, but were eventually able to figure out the issue and learn more about how versions work with flask migrate.
Accomplishments that we're proud of
We're very proud of the APIs that we created in order for the front end Javascript to communicate with the back end Python.
What we learned
Create Database and work with it. Create and work with APIs. We learned how to how to query and update databases. We learned how to authenticate and direct users based on authentication, as well as how have Flask to manage authentication.
What's next for Feel The Beat!
For the Feel the Beat!, we would like to implement in the future more about analytics. There is some great data the Spotify API provides about specific tracks, such as danceability levels, which would be really cool to display. It would also be great to implement more to the user experience such as a settings page so that they could better manage their account.
Built With
- bootstrap
- css
- docker
- flask
- grafana
- html
- javascript
- nginx
- postgresql
- prometheus
- python
Log in or sign up for Devpost to join the conversation.