In den letzten Tagen hat sich auf der Plattform viel getan. Hier die wichtigsten Änderungen seit der Initialversion (M1).
Repertoire (M2 + M2.5)
- Lieder anlegen, editieren, archivieren, löschen mit allen Metadaten: Komponist, Textdichter, Arrangeur, Stimmlage, Tonart, Sprache, Rechtsstatus, Verlag, Sichtbarkeit, Status.
- File-Upload (bis 100 MB) für PDF-Partituren, MIDI, MP3 (mit Stimm-Tracks Sopran/Alt/Tenor/Bass), MusicXML, Songtexte. Storage über S3-kompatibles MinIO mit SHA-256-Verifikation.
- Inline-Vorschau auf der Lied-Detailseite:
- PDFs werden im Browser-PDF-Viewer geöffnet
- MP3s spielen mit Wellenform-Player (wavesurfer.js)
- Wenn alle vier Stimm-Tracks (S/A/T/B) hochgeladen sind, erscheint ein synchronisierter Stimm-Player mit Mute/Solo pro Stimme — ideal zum Üben der eigenen Stimme
- MIDI-Player mit Klavier-Roll-Anzeige und Track-Mute pro Stimme (siehe MIDI-Files zum Üben)
Suche & Discover (M3 + M5)
- Volltext-Suche im eigenen Repertoire (Postgres-FTS über Titel, Komponist, Textdichter, Arrangeur) plus Filter nach Stimmlage, Rechtsstatus, Status (archivierte ein-/ausblenden).
/entdecken: kantonsweite Suche über Lieder, die andere Chöre als „im Kanton sichtbar” oder „öffentlich” markiert haben. Mit einem Klick lässt sich ein Lied in das eigene Repertoire kopieren (als Entwurf, mit Quell-Vermerk in den internen Notizen).
Setlisten (M4)
- Konzert-Programme mit Anlass, Datum, Ort, geplanter Dauer, internen Notizen und öffentlichem Programm-Text.
- Drag-and-Drop-light über ↑↓-Buttons; Lieder lassen sich aus dem Repertoire hinzufügen/entfernen.
- Programmheft als druckbare Print-CSS-Route — der Browser erzeugt ein PDF auf Knopfdruck, ohne Server-Render-Engine.
Probenmodus offline (M6 / PWA)
- Service Worker + Web-Manifest — die App lässt sich auf Mobile-Geräten als PWA installieren.
- „Probe-Pack laden” auf jeder Setliste: alle Audio- und PDF-Dateien werden in den Browser-Cache geschrieben. Setlist und Lied-Detailseiten funktionieren danach ohne Internet.
Mitgliederverwaltung + Einladungen
- Rollen: Chorleitung, Vorstand, Sänger:in, Gast — mit Last-Leiter-Schutz (die letzte Chorleitung kann sich nicht selbst entfernen).
- E-Mail-Einladungen: Personen ohne Konto bekommen einen Token-Link (14 Tage gültig); Personen mit Konto werden direkt hinzugefügt.
- Magic-Link-Login als Alternative zum Passwort.
Mehr-Chor-Mitgliedschaften
/meine-choerefür Personen, die in mehreren Chören Mitglied sind./chor/[slug]öffentliches Profil pro Chor mit Basisinfos und sichtbarem Repertoire — ohne Login einsehbar.
Datenhoheit + Datenschutz
- ZIP-Export pro Chor im Chor-Dashboard — alle Lieder, Files (echte Bytes), Setlisten und Mitgliederlisten als JSON + Originaldateien.
- Konto löschen unter Einstellungen — DSGVO/nFADP-konform mit Cascading-Delete und Audit-Pseudonymisierung.
/datenschutzund/agbals Vorlagen veröffentlicht (vor Going-Live durch Datenschutz-Berater:in zu prüfen).
Operations
- Health-Endpoint
/api/healthtestet PostgreSQL + Storage. - Tägliche verschlüsselte Backups via restic nach Backblaze B2 (Postgres-Dump + MinIO-Volume).
- CI/CD: GitHub-Actions mit Type-Check + Lint + Production-Build.
- Deploy-Skript
infra/deploy.shfür Self-Hosting auf Schweizer VPS.
Pilot-Chor
- Chor Tägerwilen ist als erster Pilot eingerichtet — gemischter SATB-Chor mit 5 Test-Konten (Chorleitung, Vorstand, zwei Sänger:innen, ein Gast), 6 gemeinfreien Werken (Mozart, Bach, Pachelbel, Mendelssohn, Gruber) und einer Setliste „Adventskonzert 2026” passend zum dokumentierten Probenprogramm.
- Reproduzierbar via
bun --env-file=.env scripts/seed-pilot.ts(siehe README).