All content (recipes + imprint/privacy settings) now lives exclusively in Postgres. The app no longer requires a seed step on first deploy. Changes: - helpers.php: load_site_settings() returns defaults when site_settings table is empty instead of throwing DatabaseUnavailableException; removes legacy JSONB migration path - data/recipes.json, data/site.json: deleted (content already in DB) - scripts/db-seed.php: deleted (no longer needed) - docker-compose.yml: remove RUN_DB_SEED env var and data/ volume mount - docker/entrypoint.sh: remove RUN_DB_SEED seed block - docs/COOLIFY.md: update deployment guide to reflect seedless workflow - .claude/launch.json: add dev server configurations for preview tool Fresh deploys now start with placeholder legal pages and an empty recipe list; the admin fills in real content via /admin.php without any CLI step. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
8.8 KiB
FlixCooks Development Roadmap & Tasks
Dieses Dokument enthält den aktuellen Entwicklungsstand und detaillierte Aufgabenlisten für die neuen Premium-Features von FlixCooks. Die Entwicklung erfolgt in Phasen, aufgeteilt in atomare, überprüfbare Arbeitsschritte.
🚀 Übersicht der Entwicklungsphasen
- Phase 1: UI/UX Rebase & Globales Design-System (Fundament)
- Globale CSS-Tokens & Farbpaletten-Setup
- Atmosphärischer Stein-Hintergrund (
AuraMarbleBackground) - Fullscreen Overlay-Navigation (
LiquidOverlayMenu&SlideUpTextHover) - Geschmeidiges Scrollverhalten (
LenisSmoothScroll&IndexSectionIndicator) - Layout-Raster (
FloemaLayoutGrid) & Premium-Buttons
- Phase 2: Profil & Personalisierung (lokal)
- Ernährungsziel & Favoriten im Browser (
fc-local.js) - Newsletter per Mailto
- Profilseite
login.php
- Ernährungsziel & Favoriten im Browser (
- Phase 3: Nährwerte & Rezepterweiterung
- Datenmodell & Admin.php Erweiterung
- Visuelles Nährwert-Widget (Floema-Präzision)
- Makro-/Diät-Filter & Kategorisierung
- Phase 4: Interaktiver Step-by-Step Rezept-Assistent
- Admin-Erweiterung für Step-Videos
- Fullscreen Cooking-Mode Overlay (mit Lenis scroll lock)
- Timers & Looping Video Players pro Zubereitungsschritt
- Phase 5: Sleek Swipe Discovery (Personalisiertes Empfehlungskarussell)
- Touch-Swipe-Karussell direkt auf index.php (unter Landing-Page)
- Filteralgorithmus nach Benutzer-Ernährungszielen
- Mikro-Animationen & Quick-Save Funktion
- Phase 6: PostgreSQL Datenbank
DATABASE_URLin.env, Docker Compose für lokale Dev-DBinit_db()/save_recipe()/save_site_settings()inhelpers.php- Kein JSON-Fallback; Rezepte und Site-Daten liegen in Postgres
🛠️ Detaillierte Checklisten
🎨 Phase 1: UI/UX Rebase & Globales Design-System
Das visuelle Fundament der Website. Die Etablierung des Premium-Designs stellt sicher, dass alle darauffolgenden Phasen direkt im finalen Look entwickelt werden können.
- Globale Token-Etablierung
- CSS-Variablen in
assets/style.cssauf Basis der edlen Capitolium- & Floema-Farbpalette definieren (Creme-Elfenbein--color-bg-light, Steinkohle-Braun--color-bg-dark, Gold--color-accent-gold, Terracotta--color-terracotta). - Schriftarten einbinden (Serifen-Pracht für Überschriften, cleanes Inter für Lesbarkeit) in
partials/head.php→ Playfair Display + Manrope
- CSS-Variablen in
- Atmosphärische Grundlagen
AuraMarbleBackgroundimplementieren: Dezente Stein-Textur mit Mix-Blend-Mode und optionalem SVG-Papier-Rauschen (Noise) auf allen PHP/HTML Seiten im Hintergrund verankern.- Skalierungen für alle Paddings, Margins und Schriften mittels CSS
clamp()definieren, um stufenlose Responsivität (Mobile bis 4K) zu garantieren.
- Asymmetrisches Layout-Raster
- Das modulare 24-Spalten-Raster (
FloemaLayoutGrid) in den Haupt-Templates (index.php,recipe.php) integrieren. - Bestehende Rezeptkarten und Detailblöcke an das neue Grid anpassen.
- Das modulare 24-Spalten-Raster (
- High-End Navigation & Header
- Den bestehenden Header zu
LiquidOverlayMenuumbauen: Hamburger-Button morpht weich zum Schließen-Kreuz. - Vollbild-Navigationsmenü mit geschmeidigem
clip-path(von oben nach unten gleitend) implementieren. - Menü-Links mit dem animierten
SlideUpTextHover(Text verdoppelt und verschiebt sich beim Hover) ausstatten.
- Den bestehenden Header zu
- Flüssige Scroll-Erfahrung
LenisSmoothScroll(CDN) im Footer/Head einbinden und initialisieren für samtweiches Scrollverhalten.- Seitliche Fortschrittsanzeige (
IndexSectionIndicator) aufindex.phpintegrieren, um aktuelle Scroll-Position und Sektionsnamen elegant anzuzeigen.
- Premium Mikro-Interaktionen
- Primäre Buttons auf den Reveal-Effekt von
CapitoliumRevealButtonumstellen (von unten aufsteigende Gold-Fläche + Spationierungseffekt beim Hover). - Textlinks mit der anwachsenden Unterstreichung von
UnderlineExpandHoverversehen.
- Primäre Buttons auf den Reveal-Effekt von
- CapitoliumPreloader (Landing Page Ladebildschirm mit Fortschrittsbalken)
- Recipe Showcase Stage (GSAP ScrollTrigger Bühnenpräsentation: Bilder von rechts → Mitte → links)
🔒 Phase 2: Profil & Personalisierung (lokal)
Favoriten, Ernährungsziel und Newsletter ohne Cloud-Backend.
- Profilseite
login.php- Ernährungsziel wählen und in
localStoragespeichern (fc-local.js) - Gespeicherte Favoriten anzeigen
- Ernährungsziel wählen und in
- Favoriten-Funktion (Rezept-Bookmarks)
- Herz-Icon auf Karten, Speicherung in
localStorage - Mikro-Animationen für das Herz-Icon
- Herz-Icon auf Karten, Speicherung in
- Newsletter
- Footer-Formular mit
mailto:-Weiterleitung
- Footer-Formular mit
🥗 Phase 3: Nährwerte & Rezepterweiterung
Jedes Rezept erhält präzise Makronährstoffe (Kalorien, Proteine, Kohlenhydrate, Fette), die vom Admin gepflegt und dem Nutzer edel präsentiert werden.
- Datenmodell & Admin-Panel Erweiterung
- Rezeptstruktur um
nutrition(calories,protein,carbs,fat) erweitern admin.phpFormular erweitern:- Eingabefeld für Kalorien (kcal)
- Eingabefeld für Eiweiß / Protein (g)
- Eingabefeld für Kohlenhydrate (g)
- Eingabefeld für Fett (g)
- Validierung & Speicherung der Nährwertdaten in
admin.phpabsichern
- Rezeptstruktur um
- Premium Nährwert-Widget (
recipe.php)- Layout-Integration basierend auf dem
FloemaLayoutGrid(24-Spalten-Asymmetrie) - Visuelle Visualisierung der Makroverteilung (z. B. feine kreisförmige SVG-Fortschrittsanzeigen oder elegante horizontale Balken in Gold
var(--color-accent-gold)) - Hover- und Lade-Mikroanimationen für die Diagramme (Wachstumseffekt mit
var(--ease-out-expo)) - Tooltips mit Prozentangaben am Tagesbedarf
- Layout-Integration basierend auf dem
⏱️ Phase 4: Interaktiver Step-by-Step Rezept-Assistent
Ein immersiver Kochmodus, der Anwendern Schritt-für-Schritt durch die Zubereitung führt – inklusive Videoanleitungen und integrierten Timern.
- Video-Verknüpfung im Admin-Panel
- Rezeptstruktur erweitern, damit jeder Arbeitsschritt (
steps) eine optionalevideo_url(externe MP4-URL) besitzen kann admin.phperweitern, um Video-URLs pro Einzelschritt einzugeben
- Rezeptstruktur erweitern, damit jeder Arbeitsschritt (
- Fullscreen Cooking-Mode Overlay
- Trigger-Button "Kochmodus starten" (
CapitoliumRevealButtonStil) aufrecipe.phpeinbauen - Fullscreen Overlay mit flüssigem
clip-pathÖffnungseffekt (analog zuLiquidOverlayMenu) - Lenis Scroll-Lock während der Kochmodus aktiv ist, um störendes Scrollen im Hintergrund zu verhindern
- Trigger-Button "Kochmodus starten" (
- Interaktives Koch-Interface
- Schritt-für-Schritt Slider/Karussell (Tastatur- & Touch-Navigation)
- Fortschrittsanzeige (z.B. "Schritt 3 von 8" + Fortschrittsbalken)
- Autolooping Video-Player: Zeigt das Kurzvideo zum aktuellen Zubereitungsschritt, stummgeschaltet und nahtlos wiederholend
- Integrierte Koch-Timer: Falls im Schritt eine Zeit angegeben ist, wird automatisch ein interaktiver Timer mit Start/Pause/Reset und akustischem Endsignal eingebunden
🎡 Phase 5: Sleek Swipe Discovery (Empfehlungskarussell)
Ein hochgradig interaktives, touch-freundliches Karussell direkt auf der Startseite, das Nutzern Rezepte basierend auf ihren Zielen empfiehlt.
- Karussell-Architektur & Integration
- Touch-Swipe Karussell Container direkt unter der Landing-Page (vor
#basics) aufindex.phpeinbetten - CSS-Klammern (
clamp()) für responsive Skalierung der Karten - Flüssiges Einblenden per Scroll-Reveal (
reveal-target) mit Anbindung anLenisSmoothScroll
- Touch-Swipe Karussell Container direkt unter der Landing-Page (vor
- Personalisiertes Goal-Matching
- Ernährungsziel aus
localStorage(fc-local.js) für Karussell-Filter - Rezepte dynamisch filtern (z.B. High-Protein Rezepte bei Ziel "Muskelaufbau", Low-Carb Rezepte bei Ziel "Abnehmen")
- Personalisierte "Für dich empfohlen"-Badge auf den Karten anzeigen
- Ernährungsziel aus
- Mikro-Interaktionen & Quick-Save
- Touch-Gesten-Unterstützung (Wischen zum Blättern mit sanftem Trägheits-Feedback)
- Quick-Save Button direkt auf den Karussell-Karten (Herzeffekt,
localStorage) - Hover-Reveal-Effekte für Rezeptdetails (Zutaten-Vorschau oder Kochzeit-Highlight schiebt sich weich hoch)
🔥 Phase 6: PostgreSQL Datenbank
Rezepte und Site-Daten in normalisierten Postgres-Tabellen, optional lokal per Docker.
DATABASE_URL& Docker Composedocker-compose.dev.ymlfür lokale Postgres-Instanzinit_db()legt Tabellen an;scripts/db-seed.phpseedet ausscripts/seed-data.php
- PHP-Datenzugriff
load_recipes()/save_recipe()ohne JSON-Fallbackload_recipe_by_slug()inrecipe.php
📈 Status-Legende
[ ]Noch nicht begonnen[/]In Bearbeitung[x]Erfolgreich abgeschlossen