feat: Großes v3-Update – Sterne-Rating, Ranking, Kommentare, eigene Ideen gleichberechtigt

 Sterne-Bewertungs-System (1-5 pro Person, Till + Lea unabhängig)
🏆 Dynamische Ranking-Liste mit Top-3-Badges (Gold/Silber/Bronze)
💬 Kommentare unter jeder Karte (aufklappbar, eigene löschbar)
👤 User-Profil-Switch (Till ↔ Lea) – Header-Pill mit Modal
💜 Eigene Ideen sind jetzt vollwertige Karten (im Ideen-Tab gemischt)
✏️ Eigene Ideen bearbeitbar + löschbar (eigener Tab)
📊 Sortierung: Ranking / Status / Preis / Name / Eigene zuerst
📈 Live-Stats: Ideen, Bewertet, Kommentare, Tage bis Reise
🎨 Bottom-Navigation mit 5 Tabs + Badge für eigene Ideen
📋 JSON-Export aller Daten für Codex
🔧 Daten-driven: destinations.json + dynamisches Rendering
📱 Mobile-optimiert mit Safe-Area-Insets

Datenstruktur:
- localStorage.f24_ratings, f24_comments, f24_own, f24_user
- 18 built-in Destinations aus data/destinations.json
- Gleiche Render-Pipeline für built-in und own
This commit is contained in:
Till Heidrich
2026-05-26 14:03:55 +00:00
parent eca5dbd866
commit f622dc0619
3 changed files with 1336 additions and 1075 deletions
+104
View File
@@ -0,0 +1,104 @@
# Fredi24 Feature-Übersicht
**Live:** https://holiday.heidrich-digital.de · Passwort: `frediurlaub26`
## Kern-Features (v3.0)
### ⭐ Sterne-Bewertungs-System
- Jede Destination kann von Till + Lea unabhängig bewertet werden (15 Sterne)
- Klick auf Stern setzt/entfernt Bewertung
- Durchschnitt wird automatisch berechnet
- Persistent in localStorage (`f24_ratings`)
### 🏆 Dynamische Ranking-Liste
- Eigener Tab "Ranking" (Bottom-Nav)
- Sortiert automatisch nach Durchschnitt aller Sterne
- Top 3 bekommen Gold/Silber/Bronze Badge
- Klick auf Ranking-Eintrag → springt zur Detail-Karte
- Zeigt Till's und Lea's Bewertungen separat
### 💬 Kommentar-System
- Unter jeder Karte aufklappbar
- Aktiver User (Till oder Lea) postet als sich selbst
- Eigene Kommentare löschbar
- Timestamp ("gerade", "5 Min", "2 Std", Datum)
- Lea's Kommentare in coral, Till's in teal markiert
### 👤 Profil-Switch
- Top-rechts: User-Pill mit aktuellem Profil
- Klick → Modal: Till oder Lea auswählen
- Aktive Identität wird für Sterne + Kommentare verwendet
- Speichert in localStorage (`f24_user`)
### 💡 Eigene Ideen einreichen (gleichberechtigt!)
- FAB-Button rechts unten (✚)
- Modal mit allen Feldern (Emoji, Name, Land, Budget, Status, Begründung, Subtext, Flugzeit)
- **Eigene Ideen erscheinen im Ideen-Tab gleichberechtigt** (lila Border, "💜 Eigener Vorschlag"-Marker)
- Können bewertet & kommentiert werden wie alle anderen
- Eigener Tab "💜 Eigene" zeigt nur eigene Vorschläge
- Bearbeitbar + löschbar (nur eigene)
- Badge auf Nav-Item zeigt Anzahl
### 📊 Sortierung (im Ideen-Tab)
- Bewertung (höchste zuerst) nutzt Sterne-Durchschnitt
- Status (TOP → SPÄTER)
- Preis aufsteigend / absteigend
- Name A-Z
- Eigene zuerst
### 📈 Live-Statistik-Dashboard
- 4 Kacheln oben im Ideen-Tab:
- Ideen gesamt (built-in + eigene)
- Bewertet (wie viele schon Sterne haben)
- Kommentare (Summe aller)
- Tage bis Reise (Countdown zum 13. Juli 2026)
### 🎨 Mobile-First UI
- Bottom-Navigation (5 Tabs: Ideen, Ranking, Eigene, Archiv, Info)
- Sticky Header mit User-Profil
- Safe-Area Padding für iOS Notch
- Optimiert für Touch (große Tap-Targets)
- 1-Spalten-Layout auf < 660px
### 🔓 Passwort-Schutz
- Client-side Gate (`frediurlaub26`)
- Session-basiert (`sessionStorage`)
- Schützt vor zufälligem Zugriff (kein hartes Security)
### 📋 Daten-Export
- JSON-Export aller Bewertungen + Kommentare + eigener Ideen
- Direkt in Zwischenablage → Codex kann auslesen
- Im Ranking-Tab über "📋 Export"-Button
## Datenstruktur
### LocalStorage Keys
- `f24_user` → aktiver User: "Till" | "Lea"
- `f24_ratings``{destId: {Till: 1-5, Lea: 1-5}}`
- `f24_comments``{destId: [{user, text, ts}]}`
- `f24_own` → Array eigener Destinationen
- `sessionStorage.f24` → "1" wenn eingeloggt
### Built-in Destinations (data/destinations.json)
18 vorgefertigte Destinationen mit allen Feldern:
- Sardinien, AIDA, Algarve, Glamping, Schweiz, Côte d'Azur
- Taurito, Fuerteventura, Menorca, Kapverden, Malta, Lanzarote, Costa del Sol
- MSC, Korsika, Madeira (später), Schweden (später), Bali (später)
## Codex-Integration
Codex kann über git.heidrich-digital.de/till/holiday-2026:
1. `data/destinations.json` erweitern → neue eingebaute Destinationen
2. Aus `export`-JSON die User-Daten auslesen → Ratings/Kommentare analysieren
3. HTML-Templates erweitern (siehe README.md für Card-Format)
4. Auto-Deploy via Coolify bei Push auf main
## Roadmap (Ideen für später)
- [ ] Bilder pro Destination (CDN/Unsplash)
- [ ] Wettervorhersage-Widget je Reisezeitraum
- [ ] Direkte Booking-Links (HRS, Booking.com)
- [ ] PDF-Export einer "Shortlist"
- [ ] Reise-Notizen pro Destination (Hotel-Links, Mietwagen-Codes)
- [ ] Felix-Geburtstag-Counter ("Felix ist X Jahre alt während Reise")
- [ ] Multi-Year-Planning (2026, 2027, 2028)