# Tri-Hub Ernährungsberatung ## Im Dev Container starten 1. Repository klonen und in VS Code „Dev Containers: Reopen in Container“ wählen. Bei einem bereits vorhandenen Container einmal „Dev Containers: Rebuild Container“ ausführen, damit Mailpit installiert wird. 2. Die Einrichtung installiert automatisch die npm-Abhängigkeiten und erstellt `.env` aus `.env.example`, sofern noch keine `.env` vorhanden ist. 3. In drei getrennten Terminals in dieser Reihenfolge starten: ```bash npm run dev:mail ``` ```bash npm run dev:server ``` ```bash npm run dev ``` Startseite: http://localhost:5173 — über „Beratung kennenlernen“ zur Angebotsübersicht und von dort zum Buchungsformular des gewählten Pakets. Direkt: http://localhost:5173/angebotsuebersicht.html Mailansicht: http://localhost:8025. Beide Web-Ports werden vom Dev Container weitergeleitet. Mailpit läuft im selben Container auf SMTP-Port 1025 und fängt Testmails lokal ab, ohne sie extern zu versenden. Die Container-Konfiguration installiert Mailpit v1.31.2 aus dem [offiziellen Docker-Image](https://mailpit.axllent.org/docs/install/docker/). Die Binärdatei, lokale Mails, `.env` und Buchungsdaten werden nicht committed. Mailpit verwendet ohne Datenbankpfad einen temporären Speicher; Testmails müssen nach einem Neustart nicht erhalten bleiben. Ohne Dev Container: Node.js 24 und Mailpit installieren, `npm ci` ausführen und `.env.example` nach `.env` kopieren, falls `.env` fehlt. Danach dieselben drei Startbefehle verwenden. Ohne Mailpit wird die Buchung gespeichert, aber der fehlgeschlagene Mailversand angezeigt. Der Ablauf bleibt eine Simulation ohne Zahlung oder verbindliche Beratung. Buchungen liegen lokal in `src/server/data/bookings.csv`. Diese Datei nicht vorab leer anlegen: Das Backend erzeugt sie bei der ersten Buchung selbst. ## Prüfen ```bash npm test npm run build npm run test:browser ``` Die Browsertests starten eigene Server auf 3000 und 5173; diese Ports vorher freihalten. Sie verwenden eine temporäre CSV und simulierten Mailversand. Falls Chromium fehlt: `npx playwright install chromium`. Der Build enthält Startseite, Angebotsübersicht und Buchungsseite. Für ein Deployment zusätzlich das Node-Backend betreiben und `/api` dorthin weiterleiten.