174 lines
11 KiB
Markdown
174 lines
11 KiB
Markdown
# 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
|
||
|
||
- [x] **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
|
||
- [x] **Phase 2: Authentifizierung & Firebase Integration**
|
||
- Firebase-Projekt Setup & Anbindung
|
||
- Newsletter-System (Firebase Firestore)
|
||
- Benutzerprofile (Registrierung, Login, Favoriten)
|
||
- [x] **Phase 3: Nährwerte & Rezepterweiterung**
|
||
- Datenmodell & Admin.php Erweiterung
|
||
- Visuelles Nährwert-Widget (Floema-Präzision)
|
||
- Makro-/Diät-Filter & Kategorisierung
|
||
- [x] **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
|
||
- [x] **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: Firebase Firestore Datenbank-Migration & Seeding**
|
||
- Firebase CLI-Login & Projekt-Initialisierung
|
||
- .env-Konfiguration mit Firebase App Credentials
|
||
- Client-seitiger "Seed Firestore"-Button in admin.php
|
||
- Firestore REST API Integration in helpers.php
|
||
- Echtzeit-Zwei-Wege-Sync bei Rezeptänderungen in admin.php
|
||
|
||
---
|
||
|
||
## 🛠️ 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.
|
||
|
||
- [x] **Globale Token-Etablierung**
|
||
- [x] CSS-Variablen in `assets/style.css` auf Basis der edlen Capitolium- & Floema-Farbpalette definieren (Creme-Elfenbein `--color-bg-light`, Steinkohle-Braun `--color-bg-dark`, Gold `--color-accent-gold`, Terracotta `--color-terracotta`).
|
||
- [x] Schriftarten einbinden (Serifen-Pracht für Überschriften, cleanes Inter für Lesbarkeit) in `partials/head.php` → Playfair Display + Manrope
|
||
- [x] **Atmosphärische Grundlagen**
|
||
- [x] `AuraMarbleBackground` implementieren: Dezente Stein-Textur mit Mix-Blend-Mode und optionalem SVG-Papier-Rauschen (Noise) auf allen PHP/HTML Seiten im Hintergrund verankern.
|
||
- [x] Skalierungen für alle Paddings, Margins und Schriften mittels CSS `clamp()` definieren, um stufenlose Responsivität (Mobile bis 4K) zu garantieren.
|
||
- [x] **Asymmetrisches Layout-Raster**
|
||
- [x] Das modulare 24-Spalten-Raster (`FloemaLayoutGrid`) in den Haupt-Templates (`index.php`, `recipe.php`) integrieren.
|
||
- [x] Bestehende Rezeptkarten und Detailblöcke an das neue Grid anpassen.
|
||
- [x] **High-End Navigation & Header**
|
||
- [x] Den bestehenden Header zu `LiquidOverlayMenu` umbauen: Hamburger-Button morpht weich zum Schließen-Kreuz.
|
||
- [x] Vollbild-Navigationsmenü mit geschmeidigem `clip-path` (von oben nach unten gleitend) implementieren.
|
||
- [x] Menü-Links mit dem animierten `SlideUpTextHover` (Text verdoppelt und verschiebt sich beim Hover) ausstatten.
|
||
- [x] **Flüssige Scroll-Erfahrung**
|
||
- [x] `LenisSmoothScroll` (CDN) im Footer/Head einbinden und initialisieren für samtweiches Scrollverhalten.
|
||
- [x] Seitliche Fortschrittsanzeige (`IndexSectionIndicator`) auf `index.php` integrieren, um aktuelle Scroll-Position und Sektionsnamen elegant anzuzeigen.
|
||
- [x] **Premium Mikro-Interaktionen**
|
||
- [x] Primäre Buttons auf den Reveal-Effekt von `CapitoliumRevealButton` umstellen (von unten aufsteigende Gold-Fläche + Spationierungseffekt beim Hover).
|
||
- [x] Textlinks mit der anwachsenden Unterstreichung von `UnderlineExpandHover` versehen.
|
||
- [x] **CapitoliumPreloader** (Landing Page Ladebildschirm mit Fortschrittsbalken)
|
||
- [x] **Recipe Showcase Stage** (GSAP ScrollTrigger Bühnenpräsentation: Bilder von rechts → Mitte → links)
|
||
|
||
---
|
||
|
||
### 🔒 Phase 2: Authentifizierung & Firebase Integration
|
||
Das Fundament für Personalisierung und Newsletter-Abos über eine sichere Firebase-Anbindung (Auth & Firestore).
|
||
|
||
- [x] **Firebase Setup & Initialisierung**
|
||
- [x] Firebase SDK Client-Side Einbindung in `partials/head.php` or separaten Helper
|
||
- [x] Firebase Config in umweltabhängigen Settings/Variablen auslagern
|
||
- [x] Firestore-Datenbank initialisieren (`subscribers` und `users` Collections)
|
||
- [x] **Premium Login- & Registrierungsseite**
|
||
- [x] Erstellung der Seite `login.php` (und optional `signup.php`) im neuen Design-System-Stil
|
||
- [x] Firebase Authentication (Email/Passwort Login & Registrierung) implementieren
|
||
- [x] Responsive UI mit sanften Error- & Success-Meldungen und Eingabefeldern im Glasmorphismus-Look
|
||
- [x] Client-seitige und Server-seitige Session-Synchronisation (z.B. Firebase Session Tokens an PHP-Session via Ajax senden)
|
||
- [x] **Favoriten-Funktion (Rezept-Bookmarks)**
|
||
- [x] Firestore-Collection `user_favorites` anlegen (Format: `userId` -> Liste von `recipeSlugs`)
|
||
- [x] "Rezept speichern" Button (Herz-Icon) auf den Rezeptkarten und Rezept-Details mit dynamischem Login-Check
|
||
- [x] Mikro-Animationen für das Herz-Icon (Scale up/down, Fülleffekte mit `var(--ease-overshoot)`)
|
||
- [x] **Firebase-gestütztes Newsletter-Abo**
|
||
- [x] Newsletter-Eingabefeld im Footer (`partials/footer.php`) implementieren
|
||
- [x] AJAX-Submit-Handler: E-Mail-Adresse prüfen und in Firestore Collection `subscribers` speichern
|
||
- [x] Elegantes Feedback-UI (Erfolgsmeldung ohne Page-Reload)
|
||
|
||
---
|
||
|
||
### 🥗 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.
|
||
|
||
- [x] **Datenmodell & Admin-Panel Erweiterung**
|
||
- [x] `data/recipes.json` Struktur anpassen: Hinzufügen von `nutrition` (`calories`, `protein`, `carbs`, `fat`)
|
||
- [x] `admin.php` Formular erweitern:
|
||
- [x] Eingabefeld für Kalorien (kcal)
|
||
- [x] Eingabefeld für Eiweiß / Protein (g)
|
||
- [x] Eingabefeld für Kohlenhydrate (g)
|
||
- [x] Eingabefeld für Fett (g)
|
||
- [x] Validierung & Speicherung der Nährwertdaten in `admin.php` absichern
|
||
- [x] **Premium Nährwert-Widget (`recipe.php`)**
|
||
- [x] Layout-Integration basierend auf dem `FloemaLayoutGrid` (24-Spalten-Asymmetrie)
|
||
- [x] Visuelle Visualisierung der Makroverteilung (z. B. feine kreisförmige SVG-Fortschrittsanzeigen oder elegante horizontale Balken in Gold `var(--color-accent-gold)`)
|
||
- [x] Hover- und Lade-Mikroanimationen für die Diagramme (Wachstumseffekt mit `var(--ease-out-expo)`)
|
||
- [x] Tooltips mit Prozentangaben am Tagesbedarf
|
||
|
||
---
|
||
|
||
### ⏱️ 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.
|
||
|
||
- [x] **Video-Verknüpfung im Admin-Panel**
|
||
- [x] Rezeptstruktur in `data/recipes.json` erweitern, damit jeder Arbeitsschritt (`steps`) eine optionale `video_url` (MP4 aus Firebase Storage oder extern) besitzen kann
|
||
- [x] `admin.php` erweitern, um Video-URLs pro Einzelschritt einzugeben
|
||
- [x] **Fullscreen Cooking-Mode Overlay**
|
||
- [x] Trigger-Button "Kochmodus starten" (`CapitoliumRevealButton` Stil) auf `recipe.php` einbauen
|
||
- [x] Fullscreen Overlay mit flüssigem `clip-path` Öffnungseffekt (analog zu `LiquidOverlayMenu`)
|
||
- [x] Lenis Scroll-Lock während der Kochmodus aktiv ist, um störendes Scrollen im Hintergrund zu verhindern
|
||
- [x] **Interaktives Koch-Interface**
|
||
- [x] Schritt-für-Schritt Slider/Karussell (Tastatur- & Touch-Navigation)
|
||
- [x] Fortschrittsanzeige (z.B. "Schritt 3 von 8" + Fortschrittsbalken)
|
||
- [x] Autolooping Video-Player: Zeigt das Kurzvideo zum aktuellen Zubereitungsschritt, stummgeschaltet und nahtlos wiederholend
|
||
- [x] 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.
|
||
|
||
- [x] **Karussell-Architektur & Integration**
|
||
- [x] Touch-Swipe Karussell Container direkt unter der Landing-Page (vor `#basics`) auf `index.php` einbetten
|
||
- [x] CSS-Klammern (`clamp()`) für responsive Skalierung der Karten
|
||
- [x] Flüssiges Einblenden per Scroll-Reveal (`reveal-target`) mit Anbindung an `LenisSmoothScroll`
|
||
- [x] **Personalisiertes Goal-Matching**
|
||
- [x] Falls der Benutzer eingeloggt ist, sein Ernährungsziel aus den Firebase-Profildaten abrufen
|
||
- [x] Rezepte dynamisch filtern (z.B. High-Protein Rezepte bei Ziel "Muskelaufbau", Low-Carb Rezepte bei Ziel "Abnehmen")
|
||
- [x] Personalisierte "Für dich empfohlen"-Badge auf den Karten anzeigen
|
||
- [x] **Mikro-Interaktionen & Quick-Save**
|
||
- [x] Touch-Gesten-Unterstützung (Wischen zum Blättern mit sanftem Trägheits-Feedback)
|
||
- [x] Quick-Save Button direkt auf den Karussell-Karten (Herzeffekt mit direktem Firebase Firestore Sync)
|
||
- [x] Hover-Reveal-Effekte für Rezeptdetails (Zutaten-Vorschau oder Kochzeit-Highlight schiebt sich weich hoch)
|
||
|
||
---
|
||
|
||
### 🔥 Phase 6: Firebase Firestore Datenbank-Migration & Seeding
|
||
Migration des lokalen JSON-Flachdateispeichers auf eine skalierbare, cloudbasierte Firestore-Struktur.
|
||
|
||
- [/] **Firebase-Projekt & CLI-Setup**
|
||
- [x] Firebase-Verzeichnis-Umgebung initialisieren und anbinden
|
||
- [/] Firebase CLI Login durchführen und aktiven Account verknüpfen
|
||
- [ ] Firebase Project & Web App ermitteln oder neu anlegen
|
||
- [ ] Lokale `.env`-Konfiguration mit Firebase SDK Parametern befüllen
|
||
- [ ] **Client-seitiges Daten-Seeding**
|
||
- [ ] "Seed Firestore"-Aktion im Admin-Bereich (`admin.php`) einbauen
|
||
- [ ] Batch-Dokumentenupload der `recipes.json`-Einträge in die Firestore Collection `recipes` über JS SDK
|
||
- [ ] Firestore Security Rules für den öffentlichen Lesezugriff anpassen
|
||
- [ ] **Firestore Server-seitiger Abruf (PHP REST API)**
|
||
- [ ] Firestore REST API Parser-Helfer in `helpers.php` implementieren (Transformation von Firestore Key-Maps in Standard-Arrays)
|
||
- [ ] `load_recipes()` auf REST API GET `/recipes` umstellen
|
||
- [ ] Neue Funktion `load_recipe_by_slug($slug)` für gezielten Einzelabruf implementieren und in `recipe.php` integrieren
|
||
- [ ] **Zwei-Wege-Echtzeit-Synchronisierung (Admin)**
|
||
- [ ] `save_recipes()` so anpassen, dass lokales JSON als Fallback-Backup erhalten bleibt
|
||
- [ ] Client-seitigen Trigger nach erfolgreichem PHP-Speichern in `admin.php` ausführen, um Änderungen sofort in Firestore zu spiegeln
|
||
- [ ] Funktionstest: Hinzufügen, Editieren und Löschen von Rezepten über die Admin-Konsole verifizieren
|
||
|
||
---
|
||
|
||
## 📈 Status-Legende
|
||
- `[ ]` Noch nicht begonnen
|
||
- `[/]` In Bearbeitung
|
||
- `[x]` Erfolgreich abgeschlossen
|