diff --git a/docs/requirements.md b/docs/requirements.md index 69b58bc..21410b9 100644 --- a/docs/requirements.md +++ b/docs/requirements.md @@ -2,8 +2,8 @@ **Project:** web-cad – Web-basiertes 2D-CAD für Event-Bestuhlungspläne **Phase:** 1 (Intake) -**Date:** 2026-06-19 (updated v4) -**Status:** Draft v4 – ready for user review +**Date:** 2026-06-19 (updated v5 – quality review fixes) +**Status:** Draft v5 – quality review fixes applied --- @@ -47,16 +47,19 @@ Das Ziel von **web-cad** ist eine web-basierte 2D-CAD-Anwendung, die: |---|---|---| | F-CAD-01 | **Zeichnen von Grundelementen:** Linie, Kreis, Bogen, Rechteck, Polygon, Ellipse, Polylinie (PLINE) | Alle genannten Elemente können erstellt, ausgewählt, verschoben und gelöscht werden | | F-CAD-02 | **Bearbeiten:** Verschieben (MOVE), Kopieren (COPY/CO), Rotieren (ROTATE/RO), Skalieren (SCALE/SC), Spiegeln (MIRROR/MI), Trimmen (TRIM), Verlängern (EXTEND), Abrunden (FILLET), Versatz (OFFSET) | Jede Operation verändert die Geometrie korrekt und kann rückgängig gemacht werden (Undo/Redo) | -| F-CAD-03 | **Bemaßung:** Lineare (DIM), winkelige, radiale Bemaßung mit automatischer Maßberechnung basierend auf dem Hintergrund-Grundriss-Maßstab | Bemaßung zeigt korrekte Werte in realen Maßeinheiten (m/cm) an | -| F-CAD-04 | **Raster & Fang:** Rasteranzeige, Snap-to-Grid, Snap-to-Endpoint, Snap-to-Midpoint, Snap-to-Intersection, Ortho-Modus, Polar Tracking | Fangpunkte werden visuell hervorgehoben und beim Zeichnen exakt eingefangen | +| F-CAD-03 | **Bemaßung:** Lineare (DIM), winkelige, radiale Bemaßung mit automatischer Maßberechnung basierend auf dem Hintergrund-Grundriss-Maßstab | Bemaßung zeigt korrekte Werte in konfigurierter Maßeinheit an | +| F-CAD-04 | **Raster & Fang:** Rasteranzeige, Snap-to-Grid, Snap-to-Endpoint, Snap-to-Midpoint, Snap-to-Center, Snap-to-Intersection, Snap-to-Perpendicular, Snap-to-Tangent, Snap-to-Nearest, Snap-to-Quadrant, Ortho-Modus, Polar Tracking | Alle Snap-Typen sind einzeln aktivierbar/deaktivierbar und visuell unterscheidbar (verschiedene Marker-Symbole). Snap-Toleranz ≤ 5 Pixel bei aktuellem Zoom. F3 toggled Snap; Status-Bar zeigt aktive Snaps | | F-CAD-05 | **Eingabefeld (Command Line):** Befehlseingabe via Tastatur wie in AutoCAD (z. B. "L" für Line, "PL" für Polyline, "C" für Circle) | Befehle können über die Tastatur eingegeben und ausgeführt werden; Autovervollständigung vorhanden | | F-CAD-06 | **Eigenschaften-Panel:** Anzeige und Bearbeitung von Element-Eigenschaften (Position, Größe, Winkel, Farbe, Linientyp, Linienstärke, Transparenz) | Eigenschaften können angezeigt und geändert werden; Änderungen sind sofort sichtbar | -| F-CAD-07 | **Auswahl-Methoden:** Einzelauswahl, Fenster-Auswahl, Kreuz-Auswahl, Selektion-Filter, Quick-Select (Eigenschafts-basierte Auswahl) | Alle Auswahlmethoden funktionieren und können kombiniert werden | +| F-CAD-07 | **Auswahl-Methoden:** Einzelauswahl, Fenster-Auswahl, Kreuz-Auswahl, Lasso-/Polygon-Auswahl (Freihand-Selektion durch Ziehen einer geschlossenen Linie), Selektion-Filter, Quick-Select (Eigenschafts-basierte Auswahl) | Alle Auswahlmethoden funktionieren und können kombiniert werden; Lasso-Auswahl wählt alle Elemente innerhalb der gezeichneten Region aus | | F-CAD-08 | **Gruppierung:** Elemente zu Gruppen zusammenfassen, Gruppen verschachteln, Gruppen speichern | Gruppen können erstellt, aufgelöst und in der Bibliothek gespeichert werden | -| F-CAD-09 | **Undo/Redo:** Strukturierte Undo/Redo-Historie mit beliebig vielen Schritten | Undo und Redo funktionieren für alle Operationen; Historie kann eingesehen werden | +| F-CAD-09 | **Undo/Redo:** Strukturierte Undo/Redo-Historie mit konfigurierbarer Schrittzahl (Default: 100) | Mindestens 100 Undo-Schritte; Historie zeigt Aktion-Beschreibung und Zeitstempel; älteste Schritte werden rotiert wenn Speicherlimit erreicht | | F-CAD-10 | **Kopieren zwischen Dateien:** Elemente können via Zwischenablage zwischen Projekten kopiert werden | Kopierte Elemente behalten ihre Eigenschaften und relative Position | | F-CAD-11 | **Annotation & Text:** Einzel- und Mehrzeilentext (TEXT/MTEXT), Revision Clouds (REVCLOUD), Leaders (MLEADER) | Text kann erstellt, formatiert und platziert werden; Leaders und Revisionswolken funktionieren | | F-CAD-12 | **Muster-/Schraffurfunktion:** Flächen können mit Mustern/Schraffuren gefüllt werden (HATCH) | Muster können ausgewählt, skaliert und angewendet werden | +| F-CAD-13 | **Autosave / Crash Recovery:** Zeichnung wird automatisch in konfigurierbaren Intervallen (Default: 60 Sekunden) gespeichert. Bei Browser-Neustart wird Wiederherstellung angeboten | Nach Crash/Tab-Schließen wird beim erneuten Öffnen die letzte Autosave-Version angeboten; Datenverlust max. 60 Sekunden | +| F-CAD-13a | **Units Management:** Projekteinheit konfigurierbar (mm, cm, m, inches, feet). Bemaßungen, Maßstab und Import/Export verwenden konfigurierte Einheit. Einheiten-Konvertierung bei gemischten Einheiten in Import/Export | Projekteinheit ist in Settings konfigurierbar; Bemaßungen und Exporte verwenden konfigurierte Einheit; Import mit abweichender Einheit wird korrekt konvertiert | +| F-CAD-14 | **Suche/Find:** Elemente können nach Eigenschaften gesucht werden (Layer, Block-Name, Farbe, Linientyp) | Suchergebnisse werden in Liste angezeigt; Klick auf Ergebnis zoomt zum Element und highlightet es | ### 3.2 Ebenen-System (Layers) @@ -68,6 +71,7 @@ Das Ziel von **web-cad** ist eine web-basierte 2D-CAD-Anwendung, die: | F-LAY-04 | **Element-Zuordnung:** Elemente können zwischen Ebenen verschoben werden | Drag-and-Drop oder Kontextmenü zum Verschieben von Elementen zwischen Ebenen | | F-LAY-05 | **Aktive Ebene:** Neue Elemente werden auf der aktiven Ebene erstellt | Aktive Ebene ist klar markiert; neue Elemente erscheinen auf der aktiven Ebene | | F-LAY-06 | **Ebenen-Filter:** Filter nach Eigenschaften (Farbe, Linientyp, Name) | Gefilterte Ebenen werden korrekt angezeigt; Filter können gespeichert werden | +| F-LAY-07 | **Layer-State Import/Export:** Layer-Konfiguration (Name, Farbe, Linientyp, Sichtbarkeit) kann exportiert und in anderen Projekten importiert werden | Layer-State wird als JSON exportiert; Import in anderes Projekt erstellt/aktualisiert Layer entsprechend | ### 3.3 Bibliothek (Block-Bibliothek) @@ -80,13 +84,14 @@ Das Ziel von **web-cad** ist eine web-basierte 2D-CAD-Anwendung, die: | F-LIB-05 | **Block-Bearbeitung:** Blöcke können nach dem Einfügen bearbeitet, skaliert, rotiert und gespiegelt werden | Alle Bearbeitungsoperationen funktionieren auf eingefügten Blöcken | | F-LIB-06 | **Bibliotheks-Verwaltung:** Blöcke umbenennen, duplizieren, löschen, in Ordner verschieben | Alle Verwaltungsoperationen funktionieren; Änderungen werden persistent gespeichert | | F-LIB-07 | **Block-Definition vs. Block-Referenz:** Blöcke werden als Definition gespeichert; Instanzen referenzieren die Definition (wie AutoCAD Blocks) | Änderung an der Block-Definition aktualisiert alle Instanzen; Instanzen können unabhängig transformiert werden | +| F-LIB-08 | **Bibliotheks-Paket-Import:** Batch-Import von SVG-Dateien als Block-Paket (ZIP-Import) | ZIP mit SVG-Dateien wird importiert; alle SVGs werden als Blöcke in einem Ordner gespeichert | ### 3.4 Hintergrund & Grundriss | ID | Anforderung | Akzeptanzkriterium | |---|---|---| | F-BG-01 | **Grundriss laden:** Bild- oder Vektor-Datei (PNG, JPG, SVG, PDF-Seite) als Hintergrund laden | Datei wird als Hintergrund-Ebene geladen und im Zeichenbereich angezeigt | -| F-BG-02 | **Maßstabs-Definition:** Maßstab des Grundrisses kann definiert werden (z. B. 1:100, Referenzstrecke) | Nach Maßstabsdefinition werden Bemaßungen in realen Maßeinheiten (m/cm) angezeigt | +| F-BG-02 | **Maßstabs-Definition:** Maßstab des Grundrisses kann definiert werden (z. B. 1:100, Referenzstrecke) | Nach Maßstabsdefinition werden Bemaßungen in konfigurierter Maßeinheit angezeigt | | F-BG-03 | **Hintergrund-Positionierung:** Hintergrund kann verschoben, rotiert und skaliert werden | Transformationen sind möglich und Bemaßungen aktualisieren sich entsprechend | | F-BG-04 | **Hintergrund-Sichtbarkeit:** Hintergrund kann ein- und ausgeblendet werden | Sichtbarkeit kann pro Ebene oder global geschaltet werden | @@ -122,9 +127,11 @@ Das Ziel von **web-cad** ist eine web-basierte 2D-CAD-Anwendung, die: | F-MU-02 | **Konfliktfreie Bearbeitung:** Gleichzeitige Bearbeitung desselben Elements führt nicht zu Konflikten oder Datenverlust | CRDT-basierte Synchronisation stellt Konsistenz sicher; keine Merge-Konflikte | | F-MU-03 | **Nutzer-Anwesenheit:** Sichtbare Anzeige welcher Nutzer online ist und an welcher Zeichnung arbeitet | Avatar/Farbmarkierung pro Nutzer; Liste der aktiven Nutzer im Panel | | F-MU-04 | **Cursor-Anzeige:** Position und Aktionen anderer Nutzer in Echtzeit sichtbar | Cursor anderer Nutzer wird mit Name/Farbe in Echtzeit angezeigt | -| F-MU-05 | **Berechtigungs-System:** Rollenbasierte Zugriffskontrolle (Planer, Betrachter, Admin, Gast) | Berechtigungen werden enforced; Betrachter kann nicht bearbeiten; Gast hat nur Zugriff auf freigegebene Pläne | -| F-MU-06 | **Offline-Unterstützung:** Offline-Änderungen werden synchronisiert, wenn Verbindung wiederhergestellt ist | Offline-Änderungen werden automatisch synchronisiert; keine Datenverluste | -| F-MU-07 | **Versionshistorie:** Änderungen werden protokolliert; Versionen können eingesehen und wiederhergestellt werden | Historie zeigt Zeitstempel und Nutzer; Versionen können wiederhergestellt werden | +| F-MU-05 | **Berechtigungs-System:** Rollenbasierte Zugriffskontrolle (Planer, Betrachter, Admin, Gast) mit projekt-spezifischer Rollenzuweisung. Berechtigungs-Matrix: Planer = CRUD auf Zeichnungen/Layer/Blöcke innerhalb zugewiesener Projekte, kein Projekt-Delete; Betrachter = Read-Only + Kommentieren; Admin = volle Projekt-Verwaltung; Gast = Read-Only auf freigegebene Pläne mit zeitlichem Limit | Berechtigungen werden server-seitig enforced; Nutzer können pro Projekt unterschiedliche Rollen haben; Planer kann keine Projekte löschen; Gast-Zugang hat zeitliches Limit | +| F-MU-05a | **Permission-Matrix dokumentiert:** Berechtigungs-Matrix ist als Referenzdokument hinterlegt und wird server-seitig enforced | Permission-Matrix-Dokument im Repo; Server verweigert unautorisierte Aktionen mit HTTP 403 | +| F-MU-06 | **Offline-Unterstützung:** Offline-Änderungen werden synchronisiert, wenn Verbindung wiederhergestellt ist. Service Worker / PWA-Technologie; IndexedDB für lokales Caching; UI-Indikation des Offline-Status | Offline-Änderungen werden automatisch synchronisiert; UI zeigt Offline-Status klar an; keine Datenverluste | +| F-MU-06a | **Offline-Konflikt-Behandlung:** Bei Reconnect nach längerer Offline-Phase werden CRDT-Merges visualisiert; Nutzer wird über zusammengeführte Änderungen informiert | Merge-Report wird angezeigt; Nutzer kann zusammengeführte Änderungen einsehen und ggf. korrigieren | +| F-MU-07 | **Versionshistorie:** Änderungen werden protokolliert; Versionen können eingesehen und wiederhergestellt werden. (a) Automatische Versionen bei Save/Export, (b) Manuelle Versionen mit Label/Beschreibung, (c) Mindestens 50 Versionen pro Projekt, (d) Diff-View zeigt Änderungen zwischen zwei Versionen visuell, (e) Wiederherstellung erstellt neue Version (nicht-destruktiv), (f) Alte Versionen rotieren nach konfigurierbarem Limit | Historie zeigt Zeitstempel, Nutzer und Label; Diff-View verfügbar; Wiederherstellung ist nicht-destruktiv; min. 50 Versionen speicherbar | ### 3.8 UI / UX @@ -133,13 +140,15 @@ Das Ziel von **web-cad** ist eine web-basierte 2D-CAD-Anwendung, die: | F-UI-01 | **AutoCAD Web-ähnliche Oberfläche:** Ribbon-/Menü-Band, Werkzeug-Paletten, Eigenschaften-Panel, Command-Line, Status-Bar, Blocks-Tab, Layers-Tab | Layout orientiert sich an AutoCAD Web; Hauptwerkzeuge sind sichtbar und erreichbar | | F-UI-02 | **Zeichenbereich:** Großer Canvas-Bereich mit Zoom, Pan, und View-Controls (Zoom-to-Fit, Zoom-to-Window) | Zoom und Pan funktionieren flüssig (60fps); View-Controls sind erreichbar | | F-UI-03 | **Kontextmenüs:** Rechtsklick-Kontextmenüs mit relevanten Aktionen | Kontextmenü zeigt aktionsabhängige Einträge | -| F-UI-04 | **Tastatur-Shortcuts:** Standard-CAD-Shortcuts (z. B. L, C, M, CO, RO, SC, MI, PL, H) | Shortcuts funktionieren und sind dokumentiert | +| F-UI-04 | **Tastatur-Shortcuts:** Standard-CAD-Shortcuts (z. B. L, C, M, CO, RO, SC, MI, PL, H) sowie: Undo/Redo (Strg+Z/Y), Save (Strg+S), Select All (Strg+A), Delete (Entf), Copy (Strg+C), Paste (Strg+V), Zoom-to-Fit, Ortho Toggle (F8), Snap Toggle (F3), Layer-Dialog (LA) | Alle Shortcuts funktionieren und sind dokumentiert; vollständige Shortcut-Referenz in Dokumentation | +| F-UI-04a | **Shortcut-Customization:** Nutzer kann Tastatur-Shortcuts anpassen und eigene definieren | Shortcut-Editor in Einstellungen; Custom-Shortcuts werden persistent gespeichert | | F-UI-05 | **Responsive Design:** UI funktioniert auf Desktop-Bildschirmen (min. 1280px) | Bei 1280px Breite sind alle Panels nutzbar; kleinere Bildschirme werden in späterer Phase unterstützt | | F-UI-06 | **Theme-Unterstützung:** Dark- und Light-Mode | Theme kann umgeschaltet werden; alle UI-Elemente passen sich an | | F-UI-07 | **Sidebar-Panels:** Tabs für Blocks, Layers, Eigenschaften (wie AutoCAD Web Side Panel) | Side-Panel-Tabs sind erreichbar und zeigen entsprechenden Inhalt | | F-UI-08 | **Streamlined UI:** UI fokussiert auf 2D-Drafting – nicht überladen wie Desktop-CAD | Wesentliche Werkzeuge sichtbar; erweiterte Funktionen in Untermenüs oder ausblendbar | | F-UI-09 | **KI Copilot Panel:** Eingebettetes Chat/Command-Panel für KI-Interaktion | KI-Panel ist sichtbar; Nutzer kann Texteingaben machen; Antworten und Aktionen werden angezeigt | | F-UI-10 | **Voice Input:** Spracheingabe für KI Copilot (optional, Web Speech API) | Spracheingabe kann aktiviert werden; erkannter Text wird an KI Copilot gesendet | +| F-UI-11 | **i18n-Readiness:** UI-Texte sind über i18n-Framework (z. B. i18next) organisiert – nicht hardcodiert. Initial nur Deutsch, aber Architektur unterstützt weitere Sprachen ohne Code-Changes | Alle UI-Texte werden über i18n-Framework geladen; Sprach-Wechsel ist durch Konfiguration möglich | ### 3.9 Erweiterbarkeit & Plugin-System @@ -276,6 +285,14 @@ User Input (Text/Sprache) | NF-SEC-03 | **Daten-Transport:** HTTPS/WSS für gesamte Kommunikation | TLS für alle Verbindungen; keine unverschlüsselte Kommunikation | | NF-SEC-04 | **Input-Validierung:** Import-Dateien werden validiert (DXF, SVG, PDF) | Maliziöse Dateien werden abgewiesen; Schema-Validierung erfolgt vor Verarbeitung | | NF-SEC-05 | **KI-Safety:** KI-Copilot-Operationen haben Guardrails (keine destruktiven Operationen ohne Bestätigung) | Safety-Checks verhindern ungewollte Datenlöschung; Bestätigung erforderlich für kritische Operationen | +| NF-SEC-06 | **GDPR-Compliance:** Nutzerdaten können auf Anfrage exportiert und gelöscht werden (Right to Access, Right to Erasure). Datenschutzerklärung erforderlich | Datenexport und -löschung funktionieren; Datenschutzerklärung ist hinterlegt | +| NF-SEC-07 | **API Rate Limiting:** REST-API hat Rate Limiting (konfigurierbar, Default: 100 Requests/Minute pro Nutzer). Bei Überschreitung: HTTP 429 mit Retry-After Header | Rate Limiting ist aktiv; bei Überschreitung wird HTTP 429 mit Retry-After zurückgegeben | + +### 4.6a Barrierefreiheit + +| ID | Anforderung | Akzeptanzkriterium | +|---|---|---| +| NF-A11Y-01 | **WCAG 2.1 AA:** WCAG 2.1 AA für alle UI-Elemente außer Canvas-Zeichenbereich; Command Line als barrierefreie Alternative zum Canvas | UI-Elemente (Menüs, Panels, Dialoge, Command Line) erfüllen WCAG 2.1 AA; Canvas hat eingeschränkte Barrierefreiheit mit Command Line als Alternative | ### 4.7 Deployment @@ -291,9 +308,10 @@ User Input (Text/Sprache) | ID | Anforderung | Akzeptanzkriterium | |---|---|---| -| NF-PLAT-01 | **Browser-Unterstützung:** Chrome, Firefox, Edge, Safari (aktuelle Versionen) | Anwendung läuft in allen genannten Browsern; keine Browser-spezifischen Fehler | +| NF-PLAT-01 | **Browser-Unterstützung:** Unterstützt werden die letzten 2 Major-Versionen von Chrome, Firefox, Edge und Safari | CI/CD-Browser-Tests via Playwright gegen definierte Browser-Matrix; alle Tests grün | | NF-PLAT-02 | **WebAssembly-Unterstützung:** Browser muss WebAssembly unterstützen | Fallback-Strategie für Browser ohne WebAssembly oder klare Fehlermeldung | | NF-PLAT-03 | **Web Speech API:** Browser muss Web Speech API unterstützen (für optionale Voice-Input) | Voice-Input funktioniert in unterstützten Browsern; Fallback auf Text-Eingabe | +| NF-PLAT-04 | **PWA-Unterstützung:** Anwendung ist als PWA installierbar (manifest.json, service worker, install prompt) | Anwendung kann in Chrome/Edge/Brave/Safari installiert werden; funktioniert offline mit Service Worker | --- @@ -332,7 +350,7 @@ User Input (Text/Sprache) 8. **Keine Multi-Tenant-Isolierung auf Organisationsebene** – initiale Version ist Single-Tenant; Multi-Tenant später. 9. **Keine erweiterten Druck-Layouts** – keine Plot-Styles, Linienstärken-Tabellen oder Print-Studio-Konfigurationen. 10. **Keine Video-/Audio-Kommunikation** – keine integrierte Video- oder Audio-Calls zwischen Nutzern. -11. **Keine automatische Flächenberechnung / Mengenermittlung** – in der ersten Version nicht enthalten. +11. **Keine automatische Flächenberechnung / allgemeine Mengenermittlung** – keine BOQ/Bill of Quantities. Bestuhlungs-Zählung (Stühle pro Reihe/Block/Gesamt) ist Teil der Bestuhlungs-Tools und kein Non-Goal. 12. **Kein OAuth2/OIDC/SSO** – E-Mail/Passwort reicht; SSO kann später als Plugin nachgerüstet werden. 13. **Keine AutoCAD-Block-Editor-Äquivalenz** – Block-Definitionen können bearbeitet werden, aber kein vollständiger Block-Editor wie in Desktop-AutoCAD. 14. **Keine CAD-Standards-Verwaltung** – keine DWS-Dateien oder Standards-Checking wie in Desktop-AutoCAD. @@ -364,9 +382,9 @@ User Input (Text/Sprache) | Q-07 | Sollen Bestuhlungs-Tools weitere Event-Elemente unterstützen (Tische, Bühnen, Absperrungen)? | Mittel | Tool-Scope, Bibliothek | | Q-08 | Ist eine Kommentar-/Annotations-Funktion für Kollaborateure gewünscht? | Niedrig | UI-Design, Kollaborations-Features | | Q-09 | Sollen Projekte in Ordnern/Projektgruppen organisiert werden können? | Niedrig | Projekt-Management-UI | -| Q-10 | Gibt es Anforderungen an Barrierefreiheit (WCAG 2.1 AA)? | Niedrig | UI-Design, Testing-Aufwand | +| Q-10 | Gibt es Anforderungen an Barrierefreiheit (WCAG 2.1 AA)? | Entschieden: Mittel | UI-Elemente (nicht Canvas) müssen WCAG 2.1 AA erfüllen; siehe NF-A11Y-01 | | Q-11 | Soll es ein API für externe Integrationen geben (REST/GraphQL)? | Niedrig | Architektur-Erweiterung | -| Q-12 | Welche Maßeinheiten sollen unterstützt werden (metrisch, imperial, beides)? | Niedrig | Bemaßungs-Logic, UI | +| Q-12 | Welche Maßeinheiten sollen unterstützt werden (metrisch, imperial, beides)? | Entschieden: Hoch | mm, cm, m, inches, feet werden unterstützt; siehe F-CAD-13a | | Q-13 | AGPL-3.0 oder MIT als Lizenz? | Niedrig | Lizenz-Datei, Copyleft vs. Permissive | | Q-14 | Soll der KI Copilot Spracheingabe (Voice) von Anfang an unterstützen oder erst später? | Niedrig | UI-Design, Web Speech API Integration | @@ -485,6 +503,9 @@ User Input (Text/Sprache) | KI-Latenz | LLM-Inferenz beim externen API-Provider kann mehrere Sekunden dauern | Streaming-Responses; Fortschrittsanzeige; Timeout-Handling;Fallback auf manuelle Bedienung | | KI-API-Verfügbarkeit | Externer KI-API-Endpoint kann nicht erreichbar sein (Netzwerk, Wartung, Rate-Limit) | Klare Fehlermeldungen; Retry-Logik; CAD bleibt ohne KI voll nutzbar | | KI-Kontext-Größe | CAD-Zustand kann groß sein (viele Elemente); LLM-Context-Limit begrenzt | Context-Summary statt vollständiger Zeichnung; nur relevante Ausschnitte senden | +| Datenverlust bei Browser-Crash | Browser-Absturz oder versehentliches Tab-Schließen kann ungespeicherte Arbeit verlieren | Autosave (Default 60s); IndexedDB-Persistenz; Crash-Recovery-Dialog beim Neustart | +| Blockierende UI bei großem Datei-Import | DXF/DWG mit 50k+ Elementen kann UI einfrieren | WebWorker für asynchronen Import; Fortschrittsanzeige; Streaming-Parser | +| Cross-Browser Rendering-Differenzen | Canvas 2D rendert leicht unterschiedlich in Chrome/Firefox/Safari (Anti-Aliasing, Linien-Kappen) | Visuelle Regression-Tests in Browser-Matrix; Rendering-Toleranz in Akzeptanzkriterien definieren | --- @@ -607,12 +628,13 @@ Basierend auf Recherche (Scan2CAD Review, Autodesk Produktseiten, Softonic Revie ### Requirements Status - **Draft v4 erstellt:** Ja (2026-06-19) -- **Entschiedene Fragen:** Q-01 (Open Source) ✅, Q-02 (E-Mail/Passwort) ✅, Q-03 (SQLite + API-first) ✅, Q-15 (Remote/OpenAI-kompatibel) ✅, Q-16 (User-Sache) ✅ +- **Entschiedene Fragen:** Q-01 (Open Source) ✅, Q-02 (E-Mail/Passwort) ✅, Q-03 (SQLite + API-first) ✅, Q-10 (Accessibility/WCAG 2.1 AA) ✅, Q-12 (Units: mm/cm/m/inches/feet) ✅, Q-15 (Remote/OpenAI-kompatibel) ✅, Q-16 (User-Sache) ✅ - **Testbare Anforderungen:** Ja – alle funktionalen und nicht-funktionalen Anforderungen haben konkrete Akzeptanzkriterien - **Akzeptanzkriterien konkret:** Ja - **Assumptions:** 18 dokumentiert (erweitert um OpenAI-kompatiblen KI-Endpoint) -- **Non-Goals:** 17 dokumentiert -- **Offene Fragen:** 7 (0 hoch, 3 mittel, 4 niedrig priorisiert) +- **Non-Goals:** 17 dokumentiert (Non-Goal #11 präzisiert: Bestuhlungs-Zählung ist kein Non-Goal) +- **Quality Review (v5):** 3 kritische + 8 major + 8 minor/suggestion Findings aus Quality Gate Review behoben – Autosave, Snap-System, Units, Lasso-Selection, Shortcuts, Browser-Compat, Offline/PWA, Versionshistorie, Accessibility, RBAC, GDPR, Rate Limiting, i18n, Suche/Find, Layer-State-Export, Bibliotheks-Paket-Import, 3 neue Risiken +- **Offene Fragen:** 5 (0 hoch, 2 mittel, 3 niedrig priorisiert; Q-10 und Q-12 entschieden) - **AutoCAD Web Referenz:** Vollständige Feature-Analyse inkl. Limitierungen und Vergleich - **Open-Source-Stack:** Vollständiger Stack mit Lizenzen (KI-Anbindung: OpenAI-kompatibler Endpoint, user-provided) - **KI Copilot:** 15 detaillierte Anforderungen (F-AI-01 bis F-AI-15) mit Function Calling Pattern, Guardrails, OpenAI-kompatibler Endpoint @@ -620,7 +642,7 @@ Basierend auf Recherche (Scan2CAD Review, Autodesk Produktseiten, Softonic Revie - **Plugin-System:** 8 Anforderungen (F-EXT-01 bis F-EXT-08) für universelle Erweiterbarkeit ### Ready for Architecture -- **Ja** – alle hoch- und mittel-priorisierten Fragen geklärt; Architektur-Phase kann starten +- **Ja** – alle hoch-priorisierten Fragen geklärt (Q-12 Units entschieden); Architektur-Phase kann starten - KI-Copilot-Architektur: OpenAI-kompatibler API-Endpoint + Function Calling + CAD-Function-Registry - API-First-Design ist als Architektur-Vorgabe definiert - Deployment: 2 Docker-Container (CAD-Backend + Frontend); KI ist externer API-Call