107 lines
5.2 KiB
Markdown
107 lines
5.2 KiB
Markdown
# Projektstatus
|
|
|
|
## Aktueller Umfang
|
|
|
|
Etappe 1 bis Etappe 4 sind abgeschlossen. Architektur, Gesamtdatenmodell,
|
|
Anmeldung, Rollen, persistente Inhaltsbearbeitung, Sendungsplanung und lokaler
|
|
Betriebsweg sind dokumentiert. Etappe 5 wurde nicht begonnen.
|
|
|
|
## Umgesetzter Stand Etappe 1
|
|
|
|
- SvelteKit-/TypeScript-Monolith mit Node-Adapter
|
|
- konfigurierbare lokale SQLite- und Uploadpfade
|
|
- wiederholbare Migrationen und realistischer Seed
|
|
- persistentes Light-/Dark-/System-Theme
|
|
- responsive Navigation und gekennzeichnete Vorschauen für Fundus,
|
|
Sendungsbau und Live-Modus
|
|
- kompakte Desktop-Arbeitsansicht mit fester Seitenleiste, Fundusliste und
|
|
zweigeteiltem Sendungsbau; auf schmalen Ansichten Umschaltung statt Engpass
|
|
- Healthcheck, Produktionsstart und frühes Cloudron-Paket
|
|
- getrennte Unit-/Integrations- und Browser-Testdaten
|
|
|
|
Die Vorschauen lesen echte Daten aus SQLite. Suche und mobile Pane-Umschaltung
|
|
funktionieren lokal; redaktionelle Schreiboperationen bleiben bewusst den
|
|
späteren Etappen vorbehalten.
|
|
|
|
Die abschließende Oberflächenüberarbeitung von Etappe 1 reduziert große
|
|
Seitenköpfe und verschachtelte Karten, bündelt den Schreibschutzhinweis
|
|
aufklappbar und hält Entwicklungsinformationen aus der Arbeitsoberfläche heraus.
|
|
Eingang und Archiv zeigen kurze Leerzustände, die Verwaltung trennt
|
|
Abschnittskategorien, Formate und Themen kompakt.
|
|
|
|
Die abschließende responsive Prüfung verdichtet Seitenleiste, Navigation und
|
|
Funduszeilen weiter. Mobile Funduskarten sind intern einspaltig; lange Titel,
|
|
Beschreibungen und Metadaten bleiben ohne feste Kartenhöhe sichtbar. Suche und
|
|
Statusfilter sind gleich hoch, und die Filtergruppe wird nur als Ganzes
|
|
umgebrochen.
|
|
|
|
## Noch nicht umgesetzt
|
|
|
|
Echte Live-Steuerung, Präsentationsfenster, Archivabschluss, Freigaben, RSS und
|
|
API. Die verbleibenden Vorschauen dürfen nicht als
|
|
Implementierung dieser späteren Funktionen verstanden werden.
|
|
|
|
## Umgesetzter Stand Etappe 2
|
|
|
|
- einmalige Erstadmin-Einrichtung mit externem Betreiber-Token
|
|
- Login und POST-Logout mit widerrufbaren Datenbanksitzungen
|
|
- Rollen Barkeeper und Thekencrew mit serverseitiger Prüfung
|
|
- Einladungen und Passwortreset über befristete, einmalige Links
|
|
- Kontensperrung mit sofortigem Entzug bestehender Sitzungen
|
|
- zeitfensterbasiertes Login-Rate-Limit ohne dauerhafte Kontensperre
|
|
- lokale Mail-Outbox als Vorgabe und explizit konfigurierbarer SMTP-Versand
|
|
- responsive Authentifizierungs- und Kontenverwaltungsoberflächen
|
|
|
|
## Umgesetzter Stand Etappe 3
|
|
|
|
- persistente Piece-Neuanlage aus leerem Entwurf oder drei redaktionellen Vorlagen
|
|
- Schnellaufnahme von Gedanken und HTTP-/HTTPS-Links im Eingang
|
|
- vollständiger Editor für Quellen, Dauer in Minuten, Status und getrennte
|
|
Einleitung, Recherche, Moderation, Überleitung und Präsentation
|
|
- serverseitig bereinigte Markdown-Vorschau
|
|
- unabhängige Themen, Formate und Abschnittskategorien mit Barkeeper-Verwaltung
|
|
- serverseitige Suche und Filter nach Status, Format, Thema und Abschnitt
|
|
- Autospeichern mit sichtbarem Zustand und Warten vor interner Navigation
|
|
- optimistische Revisionen verhindern unbemerktes Überschreiben
|
|
- Duplizieren einschließlich Quellen, Taxonomie und Bildern
|
|
- Archivieren und Wiederherstellen in den vorherigen Arbeitsstatus
|
|
- private Rasterbilder mit Größen-/Signaturprüfung und geschützter Auslieferung
|
|
- erweiterter Seed mit Eingangs-, Archiv-, Markdown- und Recherchebeispielen
|
|
|
|
## Umgesetzter Stand Etappe 4
|
|
|
|
- Sendungsübersicht mit leerem Start, Standardablauf und Spieleabend-Vorlage
|
|
- frei benennbare, kategorisierte und sortierbare Abschnitte einschließlich
|
|
eigenständiger Spieleblöcke
|
|
- Einplanung ausschließlich sendefertiger Pieces als unabhängige Text- und
|
|
Dauerkopien; Mehrfachverwendung desselben Originals ist möglich
|
|
- showweite Reservebank, die nicht in Abschnitts- oder Gesamtdauer einfließt
|
|
- explizite Abschnittsdauer ersetzt die Piece-Summe statt sie zu addieren
|
|
- Bearbeiten, Entfernen sowie Verschieben innerhalb und zwischen Abschnitten
|
|
- Piece-Dauern werden im Editor in Minuten eingegeben und intern weiterhin als
|
|
ganze Sekunden gespeichert
|
|
- Drag-and-drop über eindeutige Griffe, auch direkt aus gefilterten Quellen,
|
|
mit positionsgenauer Einfügevorschau, transparentem Original und
|
|
gleichwertigen Klick-, Touch- und Tastaturaktionen
|
|
- Planungsmutationen ohne Dokumentreload mit lokalem Speicherzustand und
|
|
animierter Neusortierung der betroffenen Elemente
|
|
- kopierbare Twitch-Titel und Ankündigungstexte
|
|
- showweite optimistische Revision schützt Metadaten, Reihenfolge und Inhalte
|
|
vor unbemerktem parallelem Überschreiben
|
|
- realistischer Seed mit Standardablauf und eigenständigem Spieleabend
|
|
|
|
## Bekannte offene Betriebsprüfung
|
|
|
|
Eine echte Cloudron-Installation samt Backup/Restore, Reverse-Proxy-Verhalten
|
|
und read-only Laufzeit konnte ohne bereitgestellten Cloudron-Server nicht
|
|
durchgeführt werden. Auch der lokale Container-Smoke-Test blieb offen, weil
|
|
auf der Prüfmaschine kein Docker-Daemon lief. Manifestkernfelder und
|
|
Startskript-Syntax wurden lokal geprüft.
|
|
|
|
## Verifizierte Umgebung
|
|
|
|
- Node.js 22.23.1, npm 10.9.8
|
|
- SvelteKit 3.1.0, Svelte 5.57.2, Vite 8.3.5
|
|
- SQLite-Treiber `better-sqlite3` 13.0.3
|
|
- Playwright 1.64.1 mit Chromium 156.0.8078.4 (Fallback-Build für Ubuntu 24.04)
|