mirror of
https://github.com/complexcaresolutions/cms.c2sgmbh.git
synced 2026-03-17 20:54:11 +00:00
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>
6.3 KiB
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
- Feld
- 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
Consent Management
- 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
- Sitemap-Generator (
-
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
- Volltextsuche für Posts (
-
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
_localesTabellen in PostgreSQL - Search API mit
localeParameter - Frontend Locale Routing (
/[locale]/...) - Hinweis: Datenbank wurde zurückgesetzt (war leer)
- Admin UI: Deutsch & Englisch (
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
-
Tenant-Isolation bei localhost: API gibt 403 zurück, wenn kein Tenant zur Domain passt. Das ist gewolltes Verhalten für Multi-Tenant-Sicherheit.
-
GraphQL Playground deaktiviert: Route wurde entfernt. Bei Bedarf wieder aktivieren.
-
PM2 Cluster Mode: Aktuell 1 Instanz. Für Skalierung
instances: "max"setzen.
Nächste Schritte
- Tenant-Domains in DB eintragen
- E-Mail-Adapter konfigurieren
- Frontend-Entwicklung starten
- Erste Inhalte einpflegen (DE + EN)
- Admin-User für Tenants erstellen
Kontakte & Ressourcen
- Payload CMS Docs: https://payloadcms.com/docs
- GitHub Issues: https://github.com/payloadcms/payload/issues
- Discord Community: https://discord.com/invite/payload
Letzte Aktualisierung: 30.11.2025 (Suche + Mehrsprachigkeit implementiert)