Music analytics platform
- Year
- 2026

A streaming-chart ingestion and analytics platform I built solo for a music industry client. The platform pulls a regional top-200 chart on a daily schedule, keeps the full historical record, surfaces leaderboards and trends through a Django admin dashboard, and exports the same spreadsheet shape the client's analysts had been maintaining by hand.
Private client work — the project itself isn't public, so I'm keeping specifics light. There's a longer write-up of the engineering decisions in the blog post.
What it does
- Daily ingest of a regional streaming chart (rank, track, artists, label, play count, previous rank, status) with full history retained.
- Canonical catalog of artists, tracks and labels, decoupled from any single streaming source via per-source identifier tables — multi-source-ready from day one.
- Admin dashboard built on
django-unfoldwith KPI cards, today's #1, climbers, new entries, time-series charts, and per-entity drill-ins. Export XLSXon every analytics view, producing the same sixteen-column workbook the analysts already lived in, with rolling stats (peak position, days on chart, rank history) computed server-side.- Credentials encrypted at rest with Fernet, raw payloads archived to object storage, Cloud Scheduler driving the daily sync.
Stack
| Area | Tools |
|---|---|
| Language | Python |
| Backend | Django, Django REST Framework, PostgreSQL, django-unfold |
| ETL | openpyxl, requests, Playwright (fallback), Fernet (credential encryption) |
| Infrastructure | Google Cloud (Cloud Run, Cloud SQL, Cloud Storage, Cloud Scheduler, Secret Manager) |
- python
- django
- postgresql
- gcp
- cloud-run
- etl
- automation
- music
- analytics