3.4 KiB
3.4 KiB
Klangkiste
Klangkiste ist eine DIY-Kinder-Audiobox mit serverseitiger Verwaltung und vollstaendiger Offline-Faehigkeit. Ziel ist eine robuste, kindgerechte Box: Tags auflegen, Inhalte starten, und Eltern verwalten alles bequem ueber eine einfache Web-Oberflaeche.
Was die Box aktuell kann
- NFC-Workflow (simuliert): Tags auflegen, Tags erkennen, Tag-IDs in der Datenbank speichern, Tags Medienordnern zuordnen.
- Playback-Steuerung (simuliert): Play/Pause, Next, Prev, Stop, Volume.
- Spotify-Anbindung (Token-Flow, Playback-Integration vorbereitet).
- Webradio-Start ueber Tags (geplant/Workflow vorgesehen).
- Medienverwaltung: Ordnerstruktur anzeigen, Uploads, Umbenennen, Verschieben, Loeschen.
- Eigene Medienverwaltung ohne Cloud-Abhaengigkeit.
- Box-Verwaltung: Pairing/Unpairing, Box-Status, Commands an einzelne Boxen.
- Tag-Verwaltung: Alias, Zuordnung, Sperren pro Box, Import von lokalen Tags.
- Tag-Matrix mit Sperren pro Box (Whitelist/Block-Logik).
- Offline-Logik (simuliert): Box arbeitet mit lokalem Cache, Server kann wieder synchronisieren.
- Mehrere Boxen gleichzeitig (box + box2) fuer Multi-Box-Tests.
Was geplant ist
- Echte NFC-Hardware-Integration (Lesen/Schreiben von Tag-IDs).
- Reale Audio-Ausgabe auf der Box, nicht nur Simulation.
- Robuste Setup-Flows fuer WLAN, Updates und Fehlerdiagnose.
- Feinschliff der GUI (Mobile-Flows, Accessibility, klare Nutzerfuehrung).
- Vereinfachte Installation fuer Familien (Image/Installer).
- Anbindung externer Server und Rueckfuehrung der dortigen Medien auf den eigenen Server inkl. Tag-Erstellung.
Abgrenzung zu gaengigen Audioboxen
Klangkiste verfolgt einen anderen Ansatz als gaengige Audioboxen:
- Keine proprietaeren Cloud-Bindungen: Inhalte liegen lokal und bleiben voll kontrollierbar.
- Eigene Medien und Ordnerstrukturen statt geschlossener Oekosysteme.
- Flexible Server-Anbindung (geplant), inkl. Rueckfuehrung und Tag-Workflows.
- Tag-Matrix und Sperren pro Box fuer feinere Kontrolle in Mehrbox-Setups.
- Vollstaendige Transparenz durch offene APIs und lokale Datenhaltung.
Status
Phase 1.x – lokale Entwicklung ohne Hardware (Mocks + API + GUI)
Repo-Struktur
box/– Box-Software (Python, NFC/Playback/Resume, API)box2/– zweite Box-Instanz fuer Multi-Box-Testsgui/backend/– Backend (Node.js + SQLite, Box-Verwaltung, Media-API)gui/frontend/– Control-Panel (React + Vite)docs/– Dev-Playbook, API-Vertrag, Tests
Quickstart (lokal)
- Alles starten:
./dev.sh
- Setup-WebGUI (Box):
http://127.0.0.1:9000/setup
- Backend pruefen:
curl http://127.0.0.1:5001/api/boxes
- Frontend oeffnen:
http://127.0.0.1:5174
Ports (Default)
- Backend API:
5001 - Frontend GUI:
5174 - Box API:
8000 - Setup UI:
9000 - Box2 API (optional):
8001 - Box2 Setup (optional):
9001
Entwicklungsprinzipien (Kurz)
- Box und GUI/Backend teilen keinen Code.
- Kommunikation nur ueber JSON-APIs.
- Box ist Quelle der Wahrheit fuer Playback/State.
- Server verwaltet Tags, Medien und Boxen.
Technisch (kurz)
- Start via
./dev.sh(startet Frontend, Backend, Box-Simulation). - Frontend spricht mit Backend (
/api), Backend spricht mit Boxen (HTTP). - NFC/Playback sind aktuell simuliert; reale Hardware folgt.
Doku
docs/README.md– Startpunkt fuer den Dev-Playbookdocs/dev-workflow.md– Start/Stop, Ports, Logsdocs/api.md– API-Vertrag