A project built to answer the quintessential question: who is the greatest rapper?
Summary:
- Compile artist & track data from Spotify's Web API based on genre/playlist criteria with
Python
+Pandas
- Load data to a Supabase Postgres database with
SQLAlchemy
- Artist & track data is served to the web app (with
Flask
/SQLAlchemy
), where the user makes their picks - Matchup results are written back to Supabase
- Raw artist, track and matchup data is loaded to GCS
- Data is loaded from GCS to BigQuery
- Staging and mart models are built, tested and documented with dbt
- Models are loaded from BigQuery to a Power BI dashboard
Airflow (ran locally with Docker) orchestrates steps 1-2 and 5-7.
View live @ battlerap.app/visualize
- Play song snippet when hovering on artist picture
- Create a bracket mode (March Madness style) to force user into "harder" choices and crown a champion
- Login to see your personal ranking
- Elo rating or MaxDiff to rank artists
- Popularity filter to narrow down matchup possibilities for user