cms.c2sgmbh/docs/anleitungen/TODO.md
Martin Porwoll a88e4f60d0 test: add E2E and integration tests with documentation
Tests:
- Update frontend.e2e.spec.ts with locale testing
- Add search.e2e.spec.ts for search functionality
- Add i18n.int.spec.ts for localization tests
- Add search.int.spec.ts for search integration
- Update playwright.config.ts

Documentation:
- Add CLAUDE.md with project instructions
- Add docs/ directory with detailed documentation
- Add scripts/ for utility scripts

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 08:19:52 +00:00

6.3 KiB

To-Do-Liste - Payload CMS Multi-Tenant Projekt

Legende

  • Offen
  • Erledigt
  • [~] In Bearbeitung
  • [!] Hohe Priorität
  • [?] Klärungsbedarf

Phase 1: Grundlagen (Abgeschlossen)

Infrastruktur

  • Payload CMS 3.x Installation
  • PostgreSQL-Datenbank eingerichtet
  • PM2 Process Manager konfiguriert
  • Caddy Reverse Proxy mit SSL
  • Multi-Tenant Plugin aktiviert

Basis-Collections

  • Users Collection
  • Media Collection
  • Tenants Collection
  • Pages Collection

Globals

  • SiteSettings
  • Navigation

Phase 2: Universal Features (Abgeschlossen)

Collections

  • Posts Collection (Blog, News, Presse, Ankündigungen)
    • Feld type (blog, news, press, announcement)
    • Feld isFeatured
    • Feld excerpt
  • Categories Collection
  • Testimonials Collection
  • Newsletter Subscribers Collection
    • Double Opt-In Support
    • DSGVO-konforme Felder (IP, Timestamps)
  • Social Links Collection

Blocks

  • Hero Block
  • Text Block
  • Image Text Block
  • Card Grid Block
  • Quote Block
  • CTA Block
  • Contact Form Block
  • Video Block
  • Divider Block
  • Timeline Block
  • Posts List Block
  • Testimonials Block
  • Newsletter Block
  • Process Steps Block
  • Cookie Configurations Collection
  • Cookie Inventory Collection
  • Consent Logs Collection
  • Privacy Policy Settings Collection

Phase 3: Offene Aufgaben

Hohe Priorität

  • [!] Tenant-Domains konfigurieren

    • Domains in Tenants Collection eintragen
    • DNS-Einträge prüfen
    • Caddy-Konfiguration für alle Domains
  • [!] E-Mail-Adapter einrichten

    • SMTP-Konfiguration
    • Newsletter Double Opt-In E-Mails
    • Kontaktformular-Benachrichtigungen
  • [!] Frontend-Komponenten entwickeln

    • React/Next.js Komponenten für alle Blocks
    • Newsletter-Anmelde-Formular
    • Cookie-Banner implementieren

Mittlere Priorität

  • Bild-Optimierung (Erledigt: 30.11.2025)

    • Sharp Plugin konfiguriert
    • 11 Responsive Image Sizes definiert (thumbnail, small, medium, large, xlarge, 2k, og + AVIF-Varianten)
    • WebP/AVIF Format aktiviert
    • Fokuspunkt-Support
    • Zusätzliche Felder (caption, credit, tags)
    • Dokumentation: docs/anleitungen/BILDOPTIMIERUNG.md
  • SEO-Erweiterungen (Erledigt: 30.11.2025)

    • Sitemap-Generator (/sitemap.xml)
    • robots.txt (/robots.txt)
    • Structured Data (JSON-LD) Helpers
    • SEO Settings Global im Admin-Panel
    • Dokumentation: docs/anleitungen/SEO_ERWEITERUNG.md
  • Suche implementieren (Erledigt: 30.11.2025)

    • Volltextsuche für Posts (/api/search)
    • Filterbare Kategorie-Ansichten (/api/posts?category=...)
    • Auto-Complete Funktion (/api/search/suggestions)
    • Rate Limiting (30 Requests/Minute)
    • TTL-Caching (60 Sekunden)
    • Dokumentation: src/lib/search.ts
  • Mehrsprachigkeit (i18n) (Erledigt: 30.11.2025)

    • Admin UI: Deutsch & Englisch (@payloadcms/translations)
    • Content Localization: DE (default), EN mit Fallback
    • Alle Collections lokalisiert (Pages, Posts, Categories, Testimonials)
    • Alle 14 Blocks lokalisiert
    • Alle Globals lokalisiert (SiteSettings, Navigation, SEOSettings)
    • 36 _locales Tabellen in PostgreSQL
    • Search API mit locale Parameter
    • Frontend Locale Routing (/[locale]/...)
    • Hinweis: Datenbank wurde zurückgesetzt (war leer)

Niedrige Priorität

  • Analytics Integration

    • Google Analytics 4 / Plausible
    • Event-Tracking für Newsletter
    • Conversion-Tracking
  • Caching-Strategie

    • Redis-Cache für API
    • CDN-Integration (Cloudflare)
    • Invalidierung bei Updates
  • Backup-System

    • Automatische Datenbank-Backups
    • Media-Backup zu S3/MinIO
    • Disaster Recovery Plan
  • Monitoring & Logging

    • Sentry Error Tracking
    • Prometheus Metrics
    • Grafana Dashboard

Phase 4: Tenant-spezifische Features

porwoll.de

  • Immobilien-Collection (falls benötigt)
  • Objektsuche
  • Kontaktformular mit Objekt-Referenz

complexcaresolutions.de (C2S)

  • Team-Collection
  • Leistungs-Übersicht
  • Karriere-Seite mit Stellenangeboten

gunshin.de

  • Portfolio-Collection
  • Projekt-Galerie
  • Referenzen-Slider

zweitmein.ng

  • Produkt-Collection (falls E-Commerce)
  • FAQ-Collection
  • Preistabellen

Technische Schulden

  • TypeScript Strict Mode aktivieren
  • Unit Tests für Access Control
  • E2E Tests für kritische Flows
  • API-Dokumentation automatisch generieren (OpenAPI)
  • Code-Review für Security-relevante Bereiche
  • Performance-Audit der Datenbank-Queries

Dokumentation

  • CLAUDE.md (Projekt-Übersicht)
  • UNIVERSAL_FEATURES.md (Collections & Blocks)
  • API_ANLEITUNG.md (REST API Guide)
  • TODO.md (Diese Datei)
  • BILDOPTIMIERUNG.md (Sharp & Image Sizes)
  • SEO_ERWEITERUNG.md (SEO Features)
  • DEPLOYMENT.md (Deployment-Prozess)
  • FRONTEND_INTEGRATION.md (Next.js Guide)
  • SECURITY.md (Sicherheitsrichtlinien)

Regelmäßige Wartung

Wöchentlich

  • PM2 Logs prüfen
  • Datenbank-Größe überwachen
  • Media-Storage prüfen

Monatlich

  • Dependencies aktualisieren (pnpm update)
  • Sicherheitsupdates prüfen (pnpm audit)
  • Backup-Restore testen

Quartalsweise

  • Performance-Review
  • Security-Audit
  • Dokumentation aktualisieren

Notizen

Bekannte Probleme

  1. Tenant-Isolation bei localhost: API gibt 403 zurück, wenn kein Tenant zur Domain passt. Das ist gewolltes Verhalten für Multi-Tenant-Sicherheit.

  2. GraphQL Playground deaktiviert: Route wurde entfernt. Bei Bedarf wieder aktivieren.

  3. PM2 Cluster Mode: Aktuell 1 Instanz. Für Skalierung instances: "max" setzen.

Nächste Schritte

  1. Tenant-Domains in DB eintragen
  2. E-Mail-Adapter konfigurieren
  3. Frontend-Entwicklung starten
  4. Erste Inhalte einpflegen (DE + EN)
  5. Admin-User für Tenants erstellen

Kontakte & Ressourcen


Letzte Aktualisierung: 30.11.2025 (Suche + Mehrsprachigkeit implementiert)