Interner Projektbericht

Echo-Station

Eine stationäre Such- und Kopierstation für Predigten und andere Audiobeiträge der Gemeinde. Besucher suchen, filtern und kopieren Inhalte am Touchscreen auf einen USB-Stick – ohne technische Vorkenntnisse.

Stand: 9. Juni 2026 Technischer MVP aktiv Andreas Driss

Funktionsübersicht

Überblick über alle Bereiche des Projekts mit aktuellem Status. Grün = fertig, Gelb = teilweise umgesetzt, Rot = noch offen.

📋 Inhaltsliste anzeigen
Fertig
Besucher sehen eine vollständige Liste verfügbarer Audiobeiträge mit Titel, Sprecher, Kategorie und Datum.
🔍 Suche & Filter
Teilweise
Volltextsuche im Hintergrund fertig. Kategorie, Filter und Sortierung im Frontend bereits aktiv. Suche über das Eingabefeld steht noch aus.
🔊 Audio-Wiedergabe
Nicht im MVP
Direktes Anhören am Kiosk ist bewusst aus dem aktuellen MVP gestrichen. Kein Stream-Endpunkt, kein Player. Fokus liegt auf Suchen und USB-Export.
💾 USB-Stick kopieren
Im Repo umgesetzt
USB-Export-Flow im Repo umgesetzt: Job-API, Mehrfachauswahl, Speicherprüfung und Fortschritt per Polling. Der Frontend-Auswahl-Bug im USB-Status-Polling ist behoben; offen bleibt der Pi-Smoke-Test mit echtem USB-Stick und produktiver Mount-Konfiguration.
🔄 Daten-Synchronisation
Fertig
Audiodateien werden aus lokalem Ordner und NAS eingelesen, ausgewertet und in der Datenbank gespeichert. Produktiv verifiziert.
🗄️ NAS als Quelle
Teilweise
Index funktioniert; das Übertragen der NAS-Aufnahmen in den lokalen Cache ist noch offen. Breite Jahresbäume sind weiterhin nicht als stabiler Weg freigegeben.
🏷️ Inhaltstypen
Fertig
Predigt, Lied, Bibelarbeit, Zeugnis, Moderation und weitere werden automatisch erkannt und in der Datenbank gespeichert.
🖥️ Kiosk-Betrieb
Fertig
Der Raspberry Pi startet automatisch im Vollbild-Kiosk-Modus. Besucher sehen nur die Anwendung, kein Betriebssystem.
🧹 Cache-Verwaltung
Teilweise
Cache-Abruf ist vorhanden. Automatischer Timer und NAS-Cachen bleiben offen.
🔧 Wartung & Fernzugriff
Teilweise
Fernwartung via Tailscale dokumentiert und teilweise eingerichtet. Deployment-Ablauf für Updates ist klar definiert.
💿 Backup
Fertig
Automatisches Backup der Datenbank per Script und Timer ist eingerichtet. Wiederherstellung nach Fehler ist möglich.
🔐 Admin-Bereich
Offen
Schutzfunktionen für Sync und Verwaltung sind technisch vorbereitet. Admin-Oberfläche und PIN-Schutz noch nicht umgesetzt.

Was das System kann

Übersicht der vorhandenen und geplanten Funktionen in Kurzform.

🗂️
Medienkatalog
Alle Audiodateien werden automatisch eingelesen. Titel, Sprecher, Datum, Dauer und Kategorie werden aus den Datei-Informationen ausgelesen und gespeichert.
Aktiv
🔎
Volltextsuche
Schnelle Suche über Titel und Sprecher. Auch Teilbegriffe werden gefunden. Technisch fertig, im Frontend noch nicht vollständig eingebunden.
Teilweise
📂
Kategorien & Filter
Predigt, Lied, Bibelarbeit, Zeugnis, Moderation, Geschichte, Gedicht, Einleitung, Familienvortrag. Kategoriefilter im Frontend bereits nutzbar.
Aktiv
🔉
Audio-Wiedergabe
Direktes Anhören am Kiosk ist nicht Teil des aktuellen MVP. Stream-Endpunkt und Player sind bewusst aus dem Scope genommen.
Nicht im MVP
📤
USB-Export
Besucher wählen Beiträge aus und kopieren sie auf ihren USB-Stick. Mehrfachauswahl, Speicherprüfung, Fortschrittsanzeige und Fehlerbehandlung im Repo umgesetzt; der Auswahl-Reset durch USB-Polling ist behoben.
Im Repo umgesetzt
🔗
NAS-Integration
Die NAS bleibt die Hauptquelle aller Aufnahmen. Der Index funktioniert; das Übertragen der NAS-Aufnahmen in den lokalen Cache ist noch offen.
Teilweise

Was bisher umgesetzt wurde

Alle abgeschlossenen Arbeitsschritte seit Projektbeginn – chronologisch und sachlich.

Projektstruktur angelegt
Backend, Frontend, Infrastruktur und Dokumentation klar getrennt. Qualitätsregeln eingerichtet (TypeScript, Linting, Tests, Git-Hooks).
Backend aufgebaut
API-Server mit Fehlerbehandlung, Logging und Validierung. Läuft stabil auf dem Raspberry Pi.
Datenbank erstellt
SQLite mit Migrationen für Grundmodell, Volltextsuche, Cache-Felder und Inhaltstypen. Automatisches Backup eingerichtet.
Synchronisation implementiert
Audiodateien aus lokalem Ordner und NAS werden eingelesen, analysiert und in der Datenbank gespeichert. Duplikate werden erkannt.
NAS produktiv verifiziert
Verbindung zur echten NAS auf dem Pi geprüft. Ein enger Unterordner erfolgreich synchronisiert. Erste reale Datenstichprobe erhoben und dokumentiert.
Inhaltstypen (v1) eingeführt
Fachliche Zuordnung festgelegt und umgesetzt: Predigt, Lied, Bibelarbeit, Zeugnis, Moderation, Geschichte, Gedicht, Einleitung, Familienvortrag. Mit Tests abgesichert.
Frontend-Basis umgesetzt
Inhaltsliste mit Kategoriefilter, Sortierung und Kategorieanzeige. Filter-Verhalten stabilisiert und verifiziert.
Kiosk-Betrieb eingerichtet
Raspberry Pi startet automatisch in den Vollbild-Kiosk-Modus. Systemd-Konfigurationen versioniert und dokumentiert.
Deployment-Ablauf definiert
Klarer Prozess für Updates: Entwicklung auf Mac → Git Push → Pull und Build auf dem Pi → Neustart. Übergabedokumentation gepflegt.
Projektdokumentation aufgebaut
Backlog, Architektur, Handover, NAS-Analyse und Mapping-Entscheidungen als eigene Dokumente gepflegt.
USB-Export-Flow umgesetzt
Backend-Job-API, Mehrfachauswahl, Speicherprüfung und Fortschritt per Polling im Repo umgesetzt. Audio-Wiedergabe bewusst aus dem MVP gestrichen.
USB-Auswahl-Bug behoben
Das USB-Status-Polling setzte die Beitragsauswahl wiederholt zurück, solange kein Stick steckte. Behoben per Flanken-Logik: Die Auswahl wird nur noch beim tatsächlichen Abziehen des Sticks geleert. Build, Lint und Format-Check sind grün.
Cache-Abruf erweitert (Backend)
Logik zum gezielten Abrufen in den lokalen Cache ergänzt und mit Tests abgesichert.

Was noch aussteht

Punkte, die für einen vollen Besucherbetrieb noch fehlen, geordnet nach Priorität.

!
Echte Besucheroberfläche sichtbar schalten
Am Kiosk ist aktuell noch eine Baustellenseite aktiv, die echte App liegt im Hintergrund. Nächster Schritt: produktiven Besucher-Flow als Standardansicht sichtbar machen und Touchscreen-UX schärfen.
!
USB-Export am echten Pi verifizieren
USB-Export-Flow ist im Repo umgesetzt. Offen ist der Pi-Smoke-Test: echter USB-Stick, produktive Mount-Konfiguration, Mehrfachkopie und Abziehen während des Kopiervorgangs.
!
NAS-Cachen noch offen
Die NAS bleibt die Quelle, der Pi der lokale Cache. Das automatische Übertragen von NAS-Aufnahmen in den lokalen Cache ist noch nicht umgesetzt. Bis dahin sind nur bereits lokal vorliegende Aufnahmen am Kiosk auf USB kopierbar.
!
Produktiver Sync-Weg für das Technikteam
Aktuell existieren nur Diagnose- und Dry-Run-Werkzeuge. Ein wartbarer, produktiver Weg zum Einspielen neuer Aufnahmen in die Datenbank steht noch aus.
~
Breite NAS-Jahrespfade
Vollständiges Einlesen größerer NAS-Ordner noch nicht verifiziert. Performance und Traversal-Verhalten müssen geprüft werden, bevor das als stabiler Weg gilt.
~
Cache-Cleanup automatisieren
Endpunkt vorhanden, automatischer Timer fehlt noch. Nötig, damit der Speicher auf dem Pi langfristig nicht voll läuft.
~
Datenmodell schärfen
Ursprünglicher NAS-Begriff, interner Typ, Herkunft und Verfügbarkeit sauber trennen. Regeln für unklare Begriffe wie „Gebet" und „Abschluss" festlegen.
Admin-Bereich
Wartungsfunktionen für das Technikteam. PIN-Schutz erst sinnvoll, wenn schützenswerte Funktionen vorhanden sind.
Betriebsregeln finalisieren
Langfristige Strategie für Speicher, Archiv, On-demand-Abruf von der NAS und Retention noch nicht ausgearbeitet.

Nächste Schritte

Phasenbasierter Plan ohne feste Termine. Reihenfolge orientiert sich am Nutzwert für Besucher und Betrieb.

Phase 1
Dokumentation & Katalogwahrheit
Alle Beteiligten auf denselben Stand bringen. Ist-Stand und geplante Funktionen klar trennen. NAS-Analyse-Dokumente konsolidieren.
Doku NAS-Mapping v1
Phase 2
Breite NAS-Daten untersuchen
Echte NAS-Jahresordner analysieren. Performance prüfen. Neue Begriffe sammeln und zuordnen. Klären, wie große Datenmengen sicher eingelesen werden.
NAS inspect Performance
Phase 3
Datenmodell festigen
Rohen NAS-Begriff separat speichern. Herkunft, Cache und Verfügbarkeit sauber unterscheiden. Grundlage für langfristigen Katalog legen.
Datenmodell raw_category
Phase 4
Besucher-Frontend sichtbar & touch-tauglich
Baustellenseite ablösen, echte App als Standard zeigen. Such-Eingabefeld anbinden. Auswahl- und Fehlerzustände am Touchscreen verständlich anzeigen.
Frontend Touch-UX
Phase 5
USB-Export am Kiosk abnehmen
Copy-Job-Flow ist im Repo umgesetzt. Jetzt am echten Pi mit realem USB-Stick verifizieren: Mehrfachkopie, Speicherprüfung, Stick-Abziehen und Mount-Konfiguration.
USB Pi-Smoke-Test
Phase 6
Betrieb, Wartung & Langzeit
Admin-Bereich ausbauen. Cache-Cleanup aktivieren. Backup- und Restore-Ablauf absichern. Betriebscheckliste fertigstellen.
Admin Wartung

Offene Fragen & Risiken

Bekannte Unsicherheiten, die den weiteren Verlauf beeinflussen können.

⚠️
Breite NAS-Pfade
Vollständiges Einlesen großer NAS-Jahresordner noch nicht belastbar geprüft. Wichtigstes technisches Risiko für einen vollständigen Medienkatalog.
⚠️
Datenqualität NAS
Bisherige Stichproben sind hilfreich strukturiert. Ältere Dateien können abweichen. „Unbekannt" bleibt nötig als sicherer Fallback für nicht erkannte Begriffe.
⚠️
USB-Robustheit
USB-Kopieren ist für Besucher wichtig, aber fehleranfällig. Zu langsame, volle oder falsch formatierte Sticks sowie Abziehen während des Kopiervorgangs müssen abgefangen werden.
⚠️
Besucherbedienung
Das aktuelle Frontend ist noch kein finales Kiosk-Interface. Für den echten Betrieb braucht es klare Abläufe für den Touchscreen und verständliche Fehlermeldungen.
⚠️
Inhalt-Verfügbarkeit
Solange das NAS-Cachen aussteht, ist nur ein Teil des Katalogs lokal verfügbar und damit kopierbar. Klare Unterscheidung zwischen lokal, NAS-bekannt und Cache bleibt wichtig.

Nicht Teil des Projekts

Folgende Punkte sind kein Ziel – jetzt und auf absehbare Zeit nicht.

Online-Streaming Inhalte bleiben lokal. Kein Cloud-Zugriff, kein öffentlicher Stream.
Benutzerkonten Für einen lokalen Kiosk nicht nötig. Keine Logins für Besucher.
Cloud-Synchronisation Die NAS bleibt die einzige Quelle. Kein Sync mit externen Diensten.
Mobile App Keine separate App. Alles läuft am stationären Kiosk-Touchscreen.
Termine / Kalender Tabelle in der Datenbank vorbereitet, aber kein Ziel des aktuellen Projekts.
Video-Inhalte Ausschließlich Audio. Keine Video-Dateien oder -Streams geplant.