Plattentests.de - Highlights der Woche
👨💻👩💻 Please note that this project currently serves multiple purposes 👨💻👩💻
- The original purpose of generating a Spotify playlist that lists all "highlights" of the week of my personal favourite music website Plattentests.de.
- The purpose of getting to know more about serverless and Azure functions
- A playground for features like
- Codespaces & devcontainers,
- GitHub actions,
- GitHub co-pilot and other features of GitHub.
Therefore, some commit messages might not be useful at the moment :)
Usage
💡 For your own convenience, make use of Codespaces or run it locally as devcontainer.
There is a Makefile
with multiple targets to be used.
⚠️ Make sure you have the proper ENV
variables set in a .env
file.
-
To create a token and store it in Azure:
make token
-
To run the project locally as Go binary:
make run
-
To run the project locally as a function:
make run-function
-
To run the web-frontend of the project (located in ./webui
):
make web
As Docker container
You can also run the project as a Docker container.
Architecture
Get records
sequenceDiagram
actor User
participant ACA as Azure Container App (Web UI)
participant Function as Azure Function
participant Plattentests as Plattentests.de Website
User->>ACA: get request
ACA->>Function: get records
Function->>Function: update token
Function->>Plattentests: get records
Plattentests->>Function: records
Function->>ACA: records
ACA->>User: records
Create Playlist
sequenceDiagram
actor User
participant ACA as Azure Container App (Web UI)
participant Function as Azure Function
participant Plattentests as Plattentests.de Website
participant Spotify
User->>ACA: create playlist (id)
ACA->>Function: create playlist
Function->>Function: update token
Function->>Plattentests: get records
Plattentests->>Function: records
loop for each record
Function->>Spotify: search record
Spotify->>Function: record
Function->>Spotify: add record to playlist
end
Function->>ACA: records
ACA->>User: records