Files
Andreas eedb049bab feat: initial FitCoach Pro lead management app
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>
2026-04-02 14:20:51 +02:00

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

  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

# 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: 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