# Entwicklungs-Isolation — AssignmentMonitorV2 Dieses Projekt ist die **Neuentwicklung**. Das Produktivsystem darf nicht verändert werden. | | Produktiv | DEV (dieses Repo) | |---|---|---| | Ordner | `c:\dev\AssigmentMonitor` | `c:\dev\AssigmentMonitorV2` | | Frontend | http://localhost:5173 | http://localhost:5174 | | API | http://localhost:4000 | http://localhost:4001 | | SQLite | `server/data/assignment-monitor.sqlite3` | `server/data/assignment-monitor-v2-dev.sqlite3` | | PWA-Name | Assignment Monitor | Assignment Monitor DEV | ## Start ```bash # einmalig: .env aus Vorlage (bereits vorhanden, falls nicht:) copy .env.example .env npm run dev:all ``` Öffnen: **http://localhost:5174** (nicht 5173). ## Frische Datenbank ```bash npm run db:reset npm run dev:all ``` `db:reset` löscht nur die V2-Dev-Datei. Der Produktiv-Ordner wird per Pfad-Guard abgelehnt. ## Sicherheitsmechanismen 1. **Eigene Ports** (5174 / 4001) — Defaults und `.env`; Start bricht ab, wenn Port 5173 bzw. 4000 gewählt wird. 2. **Eigene DB-Datei** — anderer Dateiname; `SQLITE_FILENAME` darf kein Pfad sein. 3. **Pfad-Guard** in `server/database.ts` — DB nur innerhalb von `AssigmentMonitorV2`; Zugriff auf `AssigmentMonitor\server\data` wird blockiert. 4. **`server/data/` ist gitignored** — keine DB im Repo. 5. **strictPort** — Vite weicht nicht still auf den Produktiv-Port aus. ## Regeln - Niemals Skripte aus V2 gegen den Produktiv-Ordner ausführen. - Niemals die Produktiv-SQLite nach `AssigmentMonitorV2/server/data/` kopieren, außer bewusst als read-only Analyse (dann anderen Dateinamen verwenden und nicht als `SQLITE_FILENAME` setzen). - Backup-Import in V2 nur mit **anonymisierten / Testdaten**, nicht mit dem Produktiv-Backup, solange ihr an der Skala umbaut — sonst vermischt ihr personenbezogene Produktivdaten mit Experimenten.