Initial: Projektstruktur, Referenz-Dokument, Implementierungsplan, Test-Skripte

This commit is contained in:
Hermes Agent
2026-07-02 15:29:19 +00:00
commit 5a7db008ee
5 changed files with 710 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
# Whiteboard URL-Referenzen
> **Ziel:** Nextcloud Whiteboard von Base64-Bildern auf URL-Referenzen umstellen — 50+ Bilder ohne Browser-OOM.
## Problem
Das Nextcloud Whiteboard (Excalidraw) speichert jedes importierte Bild als Base64-Data-URL inline im Board-JSON. Ein 4000×3000px Bild belegt ~50 MB RAM. Ab 3 Bildern crasht Chrome mit Out-of-Memory.
## Lösung
Statt Base64 wird das Bild als Datei in Nextcloud gespeichert. Im Board-JSON steht nur eine URL. Der Browser lädt Vollbilder nur bei Bedarf (lazy, beim Reinzoomen) — ähnlich wie Miro.
## Projektstruktur
```
whiteboard-url-refs/
├── README.md ← diese Datei
├── docs/
│ ├── 01-reference.md ← Recap aller bestehenden Patches
│ └── 02-implementierungsplan.md ← 4-Phasen-Plan + 23 Test-Gates
├── patches/
│ └── (kommende JS-Patches für Phase 24)
└── test-scripts/
├── generate-test-images.sh ← Testbilder (5008000px)
├── verify-phase1.sh ← CORS + WebDAV prüfen
└── (weitere Test-Skripte pro Phase)
```
## Phasen
| Phase | Beschreibung | Status |
|---|---|---|
| **0** | Baseline: RAM messen, bestehende Patches verifizieren | ⬜ |
| **1** | CORS + WebDAV: Ordner anlegen, Cross-Origin erlauben | ⬜ |
| **2** | Import-Handler: Bild als Datei speichern, Thumbnail generieren | ⬜ |
| **3** | Rendering/LOD: Lazy-Loading, Viewport-Culling | ⬜ |
| **4** | Migration: Bestehende Boards konvertieren, Stress-Test | ⬜ |
Jede Phase hat ein **🚦 GATE** — alle Checks müssen grün sein, bevor die nächste beginnt.
## Setup
```bash
git clone http://192.168.178.94:3000/Hermes/whiteboard-url-refs.git
```