CG-Feedback-Monitor/docs/DEV_ISOLATION.md

61 lines
2.4 KiB
Markdown
Raw Permalink Normal View History

# 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.
## Team-Verteilung
Struktur an Kollegen weitergeben über das **Starter-Paket** (keine Personen-/Meeting-Daten):
```bash
npm run starter:export # Maintainer: Struktur aus V2-Dev exportieren
npm run setup # Team: frische V2-DB mit Struktur befüllen
npm run pack:zip # Versand-ZIP (ohne DB)
npm run pack:laptop # Umzug: Code + volle Dev-DB (personenbezogen)
```
Assignment-Übergabe Lead→Lead: UI **↔ Übergabe** / **↔ Import** (`assignmentTransfer`).
Details: [`TEAM_SETUP.md`](./TEAM_SETUP.md), [`HANDOVER.md`](./HANDOVER.md). Produktiv bleibt davon unberührt.