eedb049bab
Next.js 16 app with full CRUD lead management: - REST API (/api/leads) with GET (pagination), POST, PUT, DELETE (soft delete) - Zod validation (server + client), Supabase (PostgreSQL) - Responsive UI: leads table (desktop) + cards (mobile), modal form, toast notifications - 43 tests (Vitest + React Testing Library): validation, components, pagination - Docker setup (multi-stage build, health check) - Supabase migration + 15 seed leads - Documentation (CLAUDE.md, README, API docs) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
3.6 KiB
3.6 KiB
@AGENTS.md
FitCoach Pro
Dieses Dokument ist die zentrale Referenz fuer Claude Code in diesem Projekt. Alle hier definierten Regeln und Konventionen sind verbindlich.
Projekt-Uebersicht
- Name: FitCoach Pro
- Beschreibung: Lead-Erfassung und Verwaltung fuer ein Online-Fitness-Coaching-Business
- Typ: WEB_APP
- Status: IN_ENTWICKLUNG
Tech Stack
| Komponente | Technologie | Version |
|---|---|---|
| Frontend | Next.js (App Router) | 16.x |
| UI | Tailwind CSS | 4.x |
| Sprache | TypeScript (strict) | 5.x |
| Datenbank | Supabase (PostgreSQL) | - |
| Validierung | Zod | 4.x |
| Tests | Vitest + React Testing Library | 4.x |
| Container | Docker Compose | latest |
| Package Manager | pnpm | 10.x |
KRITISCH: Versionen
- NIEMALS veraltete Versionen oder deprecated APIs verwenden
- IMMER vor der Implementierung die aktuellste stabile Version pruefen
- Bei Unsicherheit:
pnpm info <package> version/ offizielle Docs pruefen
Architektur
fitcoachpro/
├── src/
│ ├── app/ # Next.js App Router
│ │ ├── api/leads/ # REST API Endpoints
│ │ ├── layout.tsx # Root Layout
│ │ └── page.tsx # Lead-Verwaltung (Startseite)
│ ├── components/ # React Components
│ ├── lib/
│ │ ├── supabase/ # Supabase Client
│ │ ├── types/ # TypeScript Types
│ │ └── validations/ # Zod Schemas
│ └── test/ # Test Setup
├── supabase/
│ ├── migrations/ # SQL Migrationen
│ └── seed.sql # Testdaten (15 Leads)
├── docs/ # Dokumentation
├── temp/ # Lokale Notizen (GITIGNORED!)
├── Dockerfile # Multi-Stage Build
└── docker-compose.yml
Kritische Regeln
Allgemein
- Deutsche UI-Texte: Echte Umlaute verwenden, kein AI-Sprech
- Code-Sprache: Englisch (Variablen, Funktionen, Kommentare)
- Kommunikation: Deutsch, direkt, ohne Floskeln
- temp/ Ordner: NUR fuer lokale Notizen, NIEMALS committen
Sicherheit
- Keine Credentials im Code oder Git
- Secrets: Ueber .env (gitignored)
- .env.example: Template ohne echte Werte committen
- SUPABASE_SERVICE_ROLE_KEY: Nur serverseitig, niemals NEXT_PUBLIC_
- Input-Validierung: Immer serverseitig mit Zod
Tests
- Nichts ungetestet committen
- Coverage-Minimum: 80%
- Vitest + React Testing Library
- cleanup() in afterEach (React 19 + jsdom Pflicht)
Development Commands
# Entwicklung starten
pnpm dev
# Tests
pnpm test
pnpm test:watch
pnpm test:coverage
# Lint
pnpm lint
# Build
pnpm build
# Docker
docker compose up --build
Datenbank
| Tabelle | Beschreibung | Besonderheiten |
|---|---|---|
| leads | Lead-Erfassung | Soft Delete (deleted_at), UUID PK, unique email (aktive) |
API Endpunkte
| Method | Endpoint | Beschreibung |
|---|---|---|
| GET | /api/leads?page=1&limit=10 | Leads mit Pagination |
| POST | /api/leads | Neuen Lead erstellen |
| GET | /api/leads/[id] | Einzelnen Lead abrufen |
| PUT | /api/leads/[id] | Lead aktualisieren |
| DELETE | /api/leads/[id] | Lead soft-deleten |
Details: docs/API.md
Git Workflow
- Branch-Strategie:
mainfuer Deployments, Feature-Branches fuer Entwicklung - Commit-Format: Conventional Commits (
feat:,fix:,refactor:,docs:,test:,chore:) - Vor jedem Commit: Tests laufen lassen
- Merge: Squash-Merge in main