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:
+104
@@ -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 (1–5 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)
|
||||
Reference in New Issue
Block a user