Skip to content

A project built to answer the quintessential question: who is the greatest rapper?

Notifications You must be signed in to change notification settings

fuwilliam/battle-rap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A project built to answer the quintessential question: who is the greatest rapper?

Demo

Architecture

Architecture

Summary:

  1. Compile artist & track data from Spotify's Web API based on genre/playlist criteria with Python + Pandas
  2. Load data to a Supabase Postgres database with SQLAlchemy
  3. Artist & track data is served to the web app (with Flask / SQLAlchemy), where the user makes their picks
  4. Matchup results are written back to Supabase
  5. Raw artist, track and matchup data is loaded to GCS
  6. Data is loaded from GCS to BigQuery
  7. Staging and mart models are built, tested and documented with dbt
  8. Models are loaded from BigQuery to a Power BI dashboard

Airflow (ran locally with Docker) orchestrates steps 1-2 and 5-7.

Dashboard

View live @ battlerap.app/visualize

Ideas for the future

  • 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

About

A project built to answer the quintessential question: who is the greatest rapper?

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published