Ronny
6a0b267660
docs: Phase 1 implementation plan — 14 tasks
...
Step-by-step plan covering:
- Cleanup (remove AgentChat, simplify TipModal)
- Bottom Nav, Dashboard, Smart Sections
- Match Card states, animations, confetti
- Streak tracker, rank toasts, rich profile
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-11 18:34:24 +02:00
Ronny
053afcdc26
docs: Phase 1 Design-Spec — Engagement & UX-Polish
...
Umfassendes Design-Dokument für das App-Redesign:
- Dashboard als neue Startseite (Hero + Stats + Nudges)
- Bottom Navigation Bar (Mobile-First)
- Smart Sections im Spielplan
- 5 emotionale Momente (Konfetti, Countdown, Streak etc.)
- Zustandsbasierte Match-Cards
- Reiches Profil mit Stats-Ring und Tipp-Historie
- Cleanup: KI-Agent entfernen, Modal verschlanken
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-11 18:26:32 +02:00
Ronny
6b6e555e32
ci: trigger rebuild for devUser fix
...
Build & Deploy Tippspiel / build (push) Successful in 16s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-11 17:16:08 +02:00
Ronny
d02e81851e
fix: devUser-Parameter an alle API-Calls weiterleiten
...
Build & Deploy Tippspiel / build (push) Successful in 30s
Im Dev-Modus wurde der devUser Query-Parameter aus der Browser-URL
nicht an die Backend-API-Calls weitergegeben. Dadurch liefen alle
Requests immer als devUser=1 (Ronny), unabhängig vom gewählten User.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-11 17:03:11 +02:00
Ronny
e86ae62309
fix: Health-Check vereinfacht – kein DB-Query mehr bei /health
...
Build & Deploy Tippspiel / build (push) Successful in 30s
Verhindert unnötige SELECT 1 Abfragen gegen Supabase alle 30s.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-11 16:45:39 +02:00
Ronny
7be0418a3e
style: Lucide Icons für Theme-Toggle + stärkerer Glossy-Effekt auf Flag-Boxen
...
Build & Deploy Tippspiel / build (push) Successful in 31s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-06 14:09:36 +02:00
Ronny
c0c0b3bef5
style: stärkerer Glossy-Effekt auf Flag-Boxen im Light Mode
...
Glanz-Overlay auf 55% angehoben, inset-Highlight und Border ergänzt
für MatchCard flagBox, TipModal flagLarge und pickerBtn.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-06 14:02:21 +02:00
Ronny
04a117cb61
chore: add Claude Code config and local docs to .gitignore
...
Build & Deploy Tippspiel / build (push) Successful in 16s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-06 14:00:27 +02:00
Ronny
624e359d6f
feat: Light Mode mit Theme-Toggle
...
Build & Deploy Tippspiel / build (push) Successful in 30s
Fügt vollständigen Light Mode hinzu – umschaltbar per ☀️ /🌙 -Button
im Header, Auswahl wird in localStorage persistiert.
- index.css: Light-Mode-Variablen unter [data-theme="light"], neue Tokens --border-subtle, --shadow-card, --card-shine
- App.tsx: Theme-State + useEffect setzt data-theme auf <html>
- App.module.css: Toggle-Button gestylt, Header-Background auf CSS-Var umgestellt
- Komponenten-CSS: Hardcodierte rgba-Werte auf CSS-Variablen migriert
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-06 12:50:04 +02:00
Ronny
948f9800d5
ci: Credentials aus Workflow entfernen, Portainer-Config dynamisch lesen
...
Build & Deploy Tippspiel / build (push) Successful in 17s
Statt Credentials im Workflow hardcoden:
- Compose-File und Env-Vars werden zur Laufzeit aus Portainer gelesen
- Einziges Secret im Workflow: PORTAINER_TOKEN
- Keine sensiblen Daten mehr in git-versionierten Dateien
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-06 13:41:19 +02:00
Ronny
92b68a8b2e
ci: curl via apk installieren (Alpine runner hat kein curl)
...
Build & Deploy Tippspiel / build (push) Successful in 45s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-06 11:48:35 +02:00
Ronny
20f61a0417
fix: Gitea CI/CD und Blank-Page-Fehler behoben
...
Build & Deploy Tippspiel / build (push) Successful in 15s
- Helmet CSP: upgrade-insecure-requests und HSTS für HTTP-Deployments deaktiviert
(war die Ursache der leeren Seite - Browser versuchte JS über HTTPS zu laden)
- Backend: statische Dateien werden jetzt in allen NODE_ENV-Modi serviert
- Frontend: IS_DEV erkennt auch VITE_TEST_MODE=true (Build-Zeit Variable)
- Dockerfile: VITE_TEST_MODE=true beim Vite-Build, NODE_ENV=development
- docker-compose.yml: NODE_ENV=development, CORS_ORIGIN=*
- Gitea Workflow: Auth-Token für git clone, Build via Portainer API statt lokaler Docker CLI
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-06 11:46:56 +02:00
Ronny
f500f5f900
fix: skip tsc in frontend Docker build, use vite build directly
...
Build & Deploy Tippspiel / build (push) Has been cancelled
CSS modules and Vite types not available during tsc check.
Vite build works without prior tsc step.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-06 10:28:00 +02:00
Ronny
41a21b5606
fix: use shell-based checkout for self-hosted runner
...
Build & Deploy Tippspiel / build (push) Has been cancelled
actions/checkout@v4 needs Node.js which isn't available in host mode.
Use git clone directly instead.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-06 10:09:33 +02:00
Ronny
832a3d3677
feat: add Gitea Actions CI pipeline for Docker build
...
Build & Deploy Tippspiel / build (push) Failing after 5s
Builds Docker image on push to main via self-hosted runner on NAS.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-06 10:08:01 +02:00
Ronny
7bd22b53e9
feat: add Docker containerization (Dockerfile, compose, dockerignore)
...
Multi-stage build: frontend (Vite) + backend (TypeScript) in one container.
Production image based on node:20-alpine with health check.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-06 10:05:10 +02:00
Ronny
06ed0ec3ce
fix: Expertenblick-Dialog auf Vorschau-Ton, deutsche Anführungszeichen & sequenzielle TTS
...
- Dialog-Prompt verwendet Zukunftsformen statt Vergangenheit (Vorschau, nicht Nachbetrachtung)
- Regex für parseDialogTurns erkennt jetzt deutsche Anführungszeichen (typografisch)
- ElevenLabs TTS sequenziell statt parallel (Free Tier max 2 concurrent)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-06 09:40:06 +02:00
Ronny
ef501a8de4
chore: add Netzer/Expertenblick image assets
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-06 09:01:35 +02:00
Ronny
32de9cd5fd
feat: ElevenLabs Audio-Dialog für Expertenblick (Netzer/Delling TTS)
2026-04-05 23:05:53 +02:00
Ronny
07e0705380
feat: Günther-Agent (Netzer-Style) + Expertenblick im TipModal
...
- AgentChat-Widget mit SSE-Streaming, Quick-Actions, Multiple-Choice
- /api/agent/chat + /api/agent/insight Routen
- Expertenblick-Panel im TipModal (lazy load)
- Günther-Icon
2026-04-05 21:45:08 +02:00
Ronny
4234269ba0
chore: add .gitignore and remove tracked artifacts
...
Remove node_modules/, .DS_Store, .vscode/ and build output from
git tracking. Adds .gitignore to prevent future accidental commits
of dependencies and generated files.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-04 01:14:59 +02:00
Ronny
3d3ff097cf
feat: Ergebnis-Banner, Dev-Simulations-Panel & Spiele-Reset
...
- MatchCard: farbiger Ergebnis-Banner (Exakt/Tendenz/Falsch) ersetzt
tipRow, passender Card-Glow je Ergebnis; Lucide-Icons (lucide-react)
- MatchCard: Ändern-Button links, vertikal mittig zur Tipp-Box ausgerichtet
- DevPanel: Simulationsmodus mit User-Switcher, Zeit- & Status-Presets
- DevPanel: Reset-Section mit "Spiel zurücksetzen", "Alle Spiele" und
"Tipps löschen" (3 Buttons, farblich differenziert)
- Backend: dev.ts mit set-time, set-status, reset-tips, reset-match
- reset-match stellt Original-Datum wieder her (original_utc_date Spalte)
- set-time sichert Original-Datum per COALESCE beim ersten Aufruf
- Supabase Migration: original_utc_date TIMESTAMPTZ zu matches hinzugefügt
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-04 01:10:55 +02:00
Ronny Mueller
e27a62a37b
feat: Stadium Elite Design, Rangliste, Profil-Team, User-Upsert & n8n Cronjob
...
- MatchCard + TipModal: Uhrzeit statt VS zwischen Flaggen, Gruppe zentriert
- LeaderboardPage: Podium (2./1./3.), DU-Badge, Trend-Pfeile, Team-Zeile, CTA-Card
- AdminPage: Stadium Elite Redesign mit Result-Bar und Inline-Spinner
- ProfilePage: Team-Feld inline editierbar (PATCH /api/profile/team)
- User-Upsert beim ersten App-Aufruf (Matches-Route) statt erst beim Tipp
- DB Migration 002: team-Spalte in users, Leaderboard View aktualisiert
- Leaderboard-Refresh automatisch nach Tipps-Auswertung
- n8n Workflow angelegt: stündlicher Sync + Auswertung (ID: t3SDspIGDXwkfOt3)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-03 23:37:38 +02:00
Ronny Mueller
e967f36f6c
feat: WM2026 Tippspiel - Initial Backend + Frontend
2026-04-03 22:02:05 +02:00
Ronny Müller
1c685b90a0
feat: WM2026 Tippspiel - Initial Backend + Frontend
2026-04-03 21:41:19 +02:00