Home
ContactAbout
Logo of MiniWrapped

MMiniWrapped

PythonFlaskDockerHTMLCSSGitHub Actions

Idea

Everyone loves Spotify Wrapped at the end of the year - let's get insights regardless of what season it is.

Purpose

This small project shall was built for learning and demonstration purposes. While there is some basic styling done via Flask-templates using plain HTML and CSS, the focus of the project is on the backbone and deployment of the application.

The backend of the application is basically the SpotifyAPI. The authorization via OAuth was set up with Python. For deployment, the application was containerized with Docker and is deployed on an Oracle Cloud Infrastructure VM. As CI/CD pipeline, GitHub Actions is used to build the container, set environment variables and secrets, and push the container to DockerHub.

The public GitHub repository can be found here:
https://github.com/MaximilianLetter/docker-flask-spotifyAPI

The deployed container is running - however, one environment variable, the callback URI retrieved from Spotify after OAuth, does not behave as first expected. This shall be fixed in the coming days. When it's ready, the web application will be linked.

Potential Future Plans

The project was originally planned out to be an Android app with the focus on a widget that shows some insights on what you are currently listening to. However, I was first interested in exploring development with Python and Flask and how to properly deploy such a web application.

The next interesting features would be:

  • add links to Spotify related listings
  • allow the user to logout and login as someone else
  • let the user change between time-frames for their top artists and tracks
  • building dedicated subpages for tracks, artists, and playlists
  • using Three.js for 3D visualizations of the content
  • using another API for including quotes of the tracks
Screenshot of the Webapplication. Header in the top showing whose data is used, main content showing a list of artists, tracks, and playlists.