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>
124 lines
3.6 KiB
Markdown
124 lines
3.6 KiB
Markdown
@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
|
|
1. **Deutsche UI-Texte**: Echte Umlaute verwenden, kein AI-Sprech
|
|
2. **Code-Sprache**: Englisch (Variablen, Funktionen, Kommentare)
|
|
3. **Kommunikation**: Deutsch, direkt, ohne Floskeln
|
|
4. **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
|
|
|
|
```bash
|
|
# 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](docs/API.md)
|
|
|
|
## Git Workflow
|
|
|
|
- **Branch-Strategie**: `main` fuer 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
|