CG-Feedback-Monitor/docs/STATUS_UND_OFFENE_PUNKTE.md
2026-07-02 10:10:06 +02:00

6.1 KiB
Raw Blame History

Projektstatus und offene Punkte — Assignment Monitor

Stand: 2026-07-02


Implementierungsstatus

Vollständig implementiert

Feature Seite / Datei
Dashboard: Assignment-Liste Dashboard.tsx
Assignment anlegen (Typ, Institutees, Phasen-Preview) AssignmentCreate.tsx
Assignment nachbearbeiten (Nummer, Typ-Wechsel-Warnung, Institutee-Laufzeiten) AssignmentEdit.tsx
Phasen-Flow-Ansicht pro Assignment AssignmentDetail.tsx
Soft-Delete + Papierkorb für Meetings AssignmentDetail.tsx
Bewertungs-Chips je Institutee + Kategorie in der Übersicht AssignmentDetail.tsx
Live-Gesprächsprotokoll mit Sprecher-Zeitlinie MeetingView.tsx
Schnellnotation (+, !, >, […]) mit farbigem Rendering MeetingView.tsx, notationParser.tsx
Äh-Counter pro Institutee (live + nachträgliche Anpassung) MeetingView.tsx
Gesamtbewertung auf Kriterium-Ebene (Accordion, farbige Kategorie-Header) MeetingView.tsx
Auto-Calc Bewertung aus Protokoll-Kategorie-Scores MeetingView.tsx
Allgemeine Notizen mit Auto-Resize + Notation-Rendering MeetingView.tsx
Meeting-Export: Markdown + JSON, strukturierter Dateiname meetingExport.ts
Assignment-Nummer im Dateinamen MeetingView.tsx, AssignmentDetail.tsx
Strukturiertes Abschluss-Feedback pro Institutee AssignmentFeedbackPage.tsx
KI-Feedback-Generierung via OpenRouter AssignmentFeedbackPage.tsx
Feedback-Status: Entwurf → Final AssignmentFeedbackPage.tsx
Feedback-Dimensionsstruktur CRUD mit Gewichtung ×1×5 FeedbackStructureConfig.tsx
AssignmentTyp CRUD mit Phasen-Templates AssignmentTypeConfig.tsx
Kriterien-Auswahl je Typ (Baumstruktur, Indeterminate) AssignmentTypeConfig.tsx
Kriterien-Filterung je Typ in Meetings + Übersicht MeetingView.tsx, AssignmentDetail.tsx
Vollständiges DB-Backup (JSON Export/Import) dbBackup.ts, Configuration.tsx
Berater/Gruppen-Verwaltung Consultants.tsx
PWA (installierbar, Offline-fähig) Vite-PWA-Plugin

⚠️ Offene Punkte / Bugs

Priorität Hoch

# Beschreibung Datei Aufwand
H1 IndexedDB-Robustheit: Browser kann IndexedDB unter Speicherdruck löschen. Migration zu SQLite WASM + OPFS geplant. Bis dahin: regelmäßige Backups als einzige Sicherheit. db/index.ts L (Wochen)
H2 Backup-Reminder fehlt: Es gibt keine automatische Erinnerung / keinen Hinweis nach abgeschlossenem Meeting, dass ein Backup erstellt werden sollte. MeetingView.tsx S

Priorität Mittel

# Beschreibung Datei Aufwand
M1 Evaluation.tsx veraltet: Nutzt die Legacy-Category/Criterion-Tabellen, nicht die neue feedbackCriterionItems-Struktur. Zeigt falsche / keine Daten aus neuen Meetings. Evaluation.tsx M
M2 AI-Prompt veraltet: AssignmentFeedbackPage liest db.criteria (alt) für Score-Zeilen. Sollte auf feedbackCriterionItems + assessments umgestellt werden. AssignmentFeedbackPage.tsx M
M3 meetingExport.md veraltet: Kriterien-Scores werden über db.criteria aufgelöst, nicht feedbackCriterionItems. Kategorie-Namen fehlen im Export. meetingExport.ts S

Priorität Niedrig

# Beschreibung Datei Aufwand
N1 Dashboard: Zeigt keine Assignment-Nummer. Nur Titel + Kunde + Typ. Dashboard.tsx XS
N2 AssignmentCreate: Kein Feld für Assignment-Nummer. Muss nachträglich über Edit eingegeben werden. AssignmentCreate.tsx XS
N3 FeedbackStructureConfig: Toter Code — Funktionen für AssignmentType-CRUD wurden verschoben, Deklarationen blieben (assignmentTypes, phaseTemplates State + alle zugehörigen Handler). FeedbackStructureConfig.tsx XS
N4 Evaluation-Route: Zeigt Scores als Dezimalzahlen /5 mit alter Skala statt neuer Rating-Labels. Evaluation.tsx S
N5 AssignmentCreate: Erstellt keine instituteeEnrollments. Von/Bis-Daten können nur über Edit gepflegt werden. AssignmentCreate.tsx S
N6 Meeting-Route: URL ist /assignment/:id/meeting/:meetingId:id ist die Assignment-ID, aber die Assignment-Nummer (z.B. CGI-2024-001) ist nicht in der URL. Akzeptiert als nice-to-have. App.tsx M

Geplante Erweiterungen (Roadmap)

SQLite WASM + OPFS (Datenbankevolution)

Ziel: Robuste lokale Datenhaltung ohne Installation, ohne Risiko durch Browser-Speicherdruck.
Technologie: SQLite compiled to WebAssembly, persistiert via Origin Private File System (OPFS).
Vorteil: Echte Datei auf Gerät, nicht löschbar wie IndexedDB. Kein Server nötig.
Status: Konzept beschlossen. Implementierung steht aus. Paralleles Backup-System ist die aktuelle Notlösung.

Evaluation neu (M1 oben)

Auswertungsseite auf neue Datenstruktur migrieren. Soll zeigen:

  • Pro Institutee: aggregierte Kriterien-Scores über alle Meetings
  • Trend über mehrere Assignments
  • Vergleich zwischen Institutees

Dashboard-Verbesserungen (N1 oben)

  • Assignment-Nummer anzeigen
  • Filtern nach Status (aktiv/abgeschlossen)
  • Sortierung nach Datum / Assignment-Nummer

Bekannte Datenkonsistenz-Risiken

Risiko Beschreibung Mitigation
criteriaIds auf AssignmentType Referenziert FeedbackCriterionItem.id. Wenn Kriterien gelöscht werden, bleiben verwaiste IDs in criteriaIds. Filter ignoriert fehlende IDs stillschweigend. Beim Löschen von Items: criteriaIds in allen AssignmentTypes bereinigen
Assessment.criteriaId Referenziert FeedbackCriterionItem.id. Kein FK-Constraint in IndexedDB. Beim Löschen von Items: zugehörige Assessments löschen
ConversationSkillScore.criteriaId Referenziert FeedbackCategory.id. Gleiche Gefahr. Beim Löschen von Kategorien: ConversationSkillScores bereinigen
Typ-Wechsel bei Assignment Zeigt Warnung, löscht aber keine alten Meeting-Bewertungen. Bewertungen mit IDs aus dem alten Typ-Kriteriensatz bleiben erhalten, werden aber möglicherweise nicht mehr angezeigt. Dokumentiertes Verhalten, absichtlich so gestaltet