Next.js 16, Prisma 7, Tailwind 4 und Vitest/Playwright, Konfiguration aus Laufzettel übernommen, weil dort derselbe Stack erprobt ist. Die Farben der Branding-Vorgabe stehen als Tokens in globals.css, das helle Theme setzt dieselben Namen neu. Amber und Rot sind dort abgedunkelt, sonst reicht der Kontrast nicht – ein Test prüft beide Themes gegen 4,5:1. Anmeldung mit lokalem Benutzer, Rolle je Anfrage aus der Datenbank, Audit-Log per Trigger nur anhängbar. Geprüft im gebauten Stand auf 1440 px und 390 px. Closes #001 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1.7 KiB
1.7 KiB
#001 Projekt-Setup
Status: erledigt Meilenstein: v0.1.0 Labels: chore, infrastruktur Geschätzt: 4 h Tatsächlich: 0 h 50 min
Ziel
Lauffähiges Grundgerüst mit Projektorganisation, Design-Tokens und Prüfwerkzeugen.
Aufgaben
- Git,
.gitignore, CHANGELOG, DEVLOG, Issues,docs/architektur.md,CLAUDE.mdmit Namensabbildung - Next.js 16, TypeScript strict, Tailwind 4 mit Tokens aus der Farbtabelle (dunkel + hell)
- Prisma 7 + Docker-Compose für Entwicklung (Postgres auf 5437 mit Testdatenbank), Vitest mit Test-DB, ESLint/Prettier, commitlint + husky
- Versionen exakt pinnen und begründen (
CLAUDE.md) - Grundlayout: Seitenleiste mit Wortmarke, Theme-Umschalter,
<Status>-Komponente, Handy-Schublade - Lokale Anmeldung (erster Admin aus
.env), Sitzungs-Cookie,/api/v1/gesundheit,/api/v1/ich - pino-Logger (JSON),
.env.example - AES-256-GCM-Helfer (vorgezogen aus #002, weil der Start ihn prüft)
Akzeptanzkriterien
lint,typecheck,format:pruefen,testgrün (60 Tests, davon 15 gegen die Datenbank)- Anmeldung funktioniert im gebauten Stand; Playwright: 8 Abläufe auf 1440 px und 390 px grün
- Keine Secrets im Repo
Abhängigkeiten
–
Notizen / Entscheidungen
- Node läuft über nvm (nicht systemweit) – Docker ist für die Builds nicht nötig.
- Server-Umschalter in der Seitenleiste folgt mit #002, wenn es Server gibt.
- Navigationseinträge tragen
ab: "#NNN"und erscheinen erst, wenn ihr Issue fertig ist. - Anmeldesperre: 10 Fehlversuche je Benutzername und Adresse in 15 min, im Speicher.
- Das Protokoll ist per Trigger nur anhängbar; nur das Nullsetzen von
benutzerIdbeim Löschen eines Benutzers ist erlaubt.