Files
klangkiste/README.md
T
2026-01-14 13:17:30 +00:00

3.4 KiB
Raw Blame History

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-Tests
  • gui/backend/ Backend (Node.js + SQLite, Box-Verwaltung, Media-API)
  • gui/frontend/ Control-Panel (React + Vite)
  • docs/ Dev-Playbook, API-Vertrag, Tests

Quickstart (lokal)

  1. Alles starten:
./dev.sh
  1. Setup-WebGUI (Box):
http://127.0.0.1:9000/setup
  1. Backend pruefen:
curl http://127.0.0.1:5001/api/boxes
  1. 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-Playbook
  • docs/dev-workflow.md Start/Stop, Ports, Logs
  • docs/api.md API-Vertrag