Add detailed design document for Asteroid Music radio station (#1)

This commit is contained in:
Glenneth 2025-08-12 18:32:39 +03:00 committed by GitHub
parent 7b8e727dfd
commit 6adf23aee7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 96 additions and 0 deletions

View File

@ -6,3 +6,99 @@ project is imagined as a shared endeavour undertaken among the
denizens of the [[https://www.twitch.tv/systemcrafters][#systemcrafters community]] on twitch and the libera
chat IRC network.
* Feature Breakdown for Internet Radio Service
A breakdown of must-have and optional features for a Common Lisp-based streaming platform.
** Core Music & Content Management
- Playlist CRUD, Track Library Management
- Auto-DJ mode with randomization and repeat avoidance
- Metadata broadcasting
- Cue points & crossfades
** Live DJ Integration
- Live DJ handoff with authentication
- Mic & voice-over support
- Remote cueing, hot swap
- Jingles & soundboard
** Scheduling & Automation
- Show scheduling
- Pre-recorded shows
- Event triggers
- Failover streams
** Listener Features
- Web player with live metadata
- Song requests
- Dedications & shoutouts
- Live chat
- Track voting
** DJ & Admin Dashboard
- User roles & permissions
- Track queue control
- Upload system
- Analytics
- Audit logs
** Streaming Infrastructure
- Multiple bitrate streams
- Podcast export
- Replay system
- Recording
** Cool Extras
- Social push for 'now playing'
- Visualizer output
- Listener polls
- API for automation
* System Architecture Overview
Architecture layers and data flow from DJs to listeners, with Common Lisp core handling business logic and integration with streaming backend (Liquidsoap + Icecast).
** Components
- Ingest & Switchboard
- Transcoder/Packager
- Delivery layer
- Web Player
- Common Lisp Core
- Database/Storage
- Analytics/Observability
* MVP Definition
In this context, MVP (Minimum Viable Product) means the smallest set of features that allows the station to operate live to listeners, reliably, with essential functionality.
MVP for this project includes:
- Auto-DJ playback
- Scheduled playlists
- Icecast streaming
- Live DJ handoff
- Basic admin dashboard
- Postgres-backed library
- Now-playing metadata
- Basic web player
* MVP vs Later Feature Checklist
This checklist helps ensure Phase 2 features do not slip into the MVP development window.
** MVP Features (Weeks 17)
| Feature | Description |
|---------|-------------|
| Project bootstrap | Lisp API skeleton, DB schema v0, Icecast + Liquidsoap dev stack |
| Library ingest | Metadata extraction |
| Auto-DJ in Liquidsoap | Crossfade, loudness norm, now-playing metadata |
| Scheduler engine | Recurring shows/playlists |
| Live DJ handoff | Auth & smooth transitions |
| Listener requests | Endpoint, queue control, audit log |
| Show recording | Archive (local/7 days?) |
** Later / Phase 2 Features (Weeks 810)
| Feature | Description |
|---------|-------------|
| Roles & permissions | Admin/DJ/Curator, login/password reset |
| Nightly backups | - |
| Analytics dashboard | Listener count, time-on-station |
| Prometheus/Grafana | Metrics, incident alerts |
| QA | Runbook, load testing, public landing page skin |
| Stability test | 48h uninterrupted operation |