diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..dce1321 Binary files /dev/null and b/.DS_Store differ diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..61e188b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "gitea.profiles": { + + } +} \ No newline at end of file diff --git a/projektplan_wm2026_tippspiel.docx b/projektplan_wm2026_tippspiel.docx new file mode 100644 index 0000000..2127068 Binary files /dev/null and b/projektplan_wm2026_tippspiel.docx differ diff --git a/projektplan_wm2026_tippspiel.md b/projektplan_wm2026_tippspiel.md new file mode 100644 index 0000000..f76050e --- /dev/null +++ b/projektplan_wm2026_tippspiel.md @@ -0,0 +1,403 @@ +# Projektplan: WM 2026 Tippspiel — Staffbase Custom Plugin + +**Projekt:** WM 2026 Tippspiel +**Auftraggeber:** GEALAN Fenster-Systeme GmbH +**Erstellt:** April 2026 +**Version:** 1.0 +**Status:** Initialisierung + +--- + +## 1. Projektziel & Vision + +### 1.1 Zielsetzung + +Entwicklung eines interaktiven Tippspiel-Plugins für die FIFA Weltmeisterschaft 2026 (USA/Kanada/Mexiko, 11. Juni – 19. Juli 2026), das nahtlos in die bestehende Staffbase-Mitarbeiter-App von GEALAN integriert wird. Alle Mitarbeitenden können über die gewohnte Staffbase-Oberfläche — auf Mobile und Desktop — ihre Tipps abgeben, Ergebnisse verfolgen und die Rangliste einsehen. + +### 1.2 Kernziele + +- Mitarbeiterbindung und -engagement rund um die WM 2026 stärken +- Niedrigschwellige Teilnahme: kein separates Login, keine externe App nötig +- Vollständige Integration in die bestehende Staffbase-Instanz von GEALAN +- Mehrsprachige Unterstützung (Deutsch, Englisch — erweiterbar) +- Skalierbar für zukünftige Turniere (EM, CL etc.) + +### 1.3 Nicht-Ziele (Out of Scope v1.0) + +- Echte Geldwetten oder externe Zahlungsabwicklung +- Integration mit externen sozialen Netzwerken +- Eigene mobile App (kein separates iOS/Android-App-Release) + +--- + +## 2. Technische Architektur + +### 2.1 Integrationsmodell: Staffbase Custom Plugin + +Das Tippspiel wird als **Staffbase Custom Plugin** realisiert. Custom Plugins sind externe Web-Applikationen, die per **iFrame** in die Staffbase-Plattform eingebettet werden. Staffbase übernimmt die Authentifizierung der Mitarbeitenden automatisch über **JWT-Tokens (RS256)**, sodass kein separates Benutzerkonto für das Tippspiel benötigt wird. + +**Vorteile dieses Ansatzes:** +- Vollständige technische Freiheit bei Backend, Frontend und Datenbank +- Automatisches Single Sign-On via Staffbase JWT +- Funktioniert auf iOS-App, Android-App und Web-Browser +- Keine Änderungen an der Staffbase-Instanz selbst notwendig + +### 2.2 Architektur-Übersicht + +``` +┌─────────────────────────────────────────────┐ +│ Staffbase-Plattform (GEALAN) │ +│ │ +│ ┌──────────────────────────────────────┐ │ +│ │ Custom Plugin (iFrame) │ │ +│ │ → Tippspiel-Frontend (React) │ │ +│ └──────────────┬───────────────────────┘ │ +│ │ JWT Token (automatisch) │ +└─────────────────│───────────────────────────┘ + │ HTTPS + ┌────────▼─────────┐ + │ Backend API │ + │ (Node.js/Express)│ + │ + JWT-Validierung│ + └────────┬──────────┘ + │ + ┌────────▼──────────┐ + │ Datenbank │ + │ (PostgreSQL) │ + │ Supabase Managed │ + └───────────────────┘ + │ + ┌────────▼──────────┐ + │ WM-Spielplan API │ + │ football-data.org│ + └───────────────────┘ +``` + +### 2.3 Technologie-Stack + +| Schicht | Technologie | Begründung | +|---|---|---| +| **Frontend** | React + TypeScript | Moderner Standard, große Community, passt zu Staffbase Client SDK | +| **Staffbase Integration** | @staffbase/plugins-client-sdk | Offizielle Brücke zwischen iFrame und Staffbase-App | +| **Backend** | Node.js + Express | Passt nahtlos zum Staffbase Node.js SDK | +| **Auth / SSO** | @staffbase/staffbase-plugin-sdk | JWT-Validierung (RS256/PKCS8) | +| **Datenbank** | PostgreSQL via Supabase | Managed, DSGVO-konform (EU-Region wählbar), einfaches Setup | +| **Hosting** | Railway oder Render | HTTPS out-of-the-box, einfaches Deployment, kostengünstig | +| **WM-Spielplan** | football-data.org API | Kostenfreie WM-Daten inkl. Ergebnisse, Teams, Gruppen | +| **Caching** | Redis (optional) | Spielplandaten cachen, Rate-Limit-Entlastung | +| **CI/CD** | GitHub Actions | Automatisiertes Deployment | + +### 2.4 Staffbase SDK — Verfügbare Nutzerdaten via JWT + +Bei jedem Aufruf des Plugins stellt Staffbase automatisch folgende Nutzerdaten bereit: + +| Feld | Beschreibung | Verwendung im Tippspiel | +|---|---|---| +| `userId` | Eindeutige Staffbase-User-ID | Primärschlüssel für Tipps & Rangliste | +| `fullName` | Vollständiger Name | Anzeigename in der Rangliste | +| `locale` | Spracheinstellung (z.B. `de_DE`) | Automatische Sprachumschaltung | +| `role` | Staffbase-Rolle (admin, reader…) | Admin-Bereich nur für Admins sichtbar | +| `branchId` | Instanz-/Bereichs-ID | Für standortbezogene Auswertungen | + +--- + +## 3. Funktionsumfang (Features) + +### 3.1 Kernfunktionen (MVP — Pflicht für v1.0) + +#### F1 — Benutzer & Authentifizierung +- Automatischer Login via Staffbase SSO (JWT) — kein separates Konto +- Benutzerprofil mit Name und Gesamtpunkten +- Rollenbasierter Zugriff: Normaler Nutzer vs. Admin + +#### F2 — WM-Spielplan +- Anzeige aller 104 WM-Spiele (Gruppenphase + KO-Runde) +- Automatische Synchronisation mit football-data.org API +- Anzeige von Datum, Uhrzeit (lokalisiert), Stadion, Teams, aktueller Ergebnisstatus + +#### F3 — Tipp-Eingabe +- Tipp abgeben: Ergebnis (Heimtore : Auswärtstore) pro Spiel +- Tipp nur möglich bis Anpfiff (Deadline-Schutz) +- Tipp-Änderung bis zur Deadline erlaubt +- Visuelle Bestätigung bei gespeichertem Tipp + +#### F4 — Punkte-System +- **Ergebnis exakt richtig:** 3 Punkte +- **Tendenz richtig (Sieg/Remis/Niederlage):** 1 Punkt +- **Falsch:** 0 Punkte +- Bonus-Punkte für KO-Runde konfigurierbar (z.B. ×2 ab Halbfinale) +- Automatische Berechnung nach Ergebnis-Eintrag durch Admin + +#### F5 — Rangliste +- Live-Gesamtrangliste aller Teilnehmenden +- Anzeige: Platz, Name, Punkte, Tipp-Quote +- Filterbar nach Abteilung oder Standort (via Staffbase-Gruppen) +- Eigene Position stets sichtbar (auch wenn außerhalb der Top 10) + +#### F6 — Admin-Bereich +- Spielergebnisse manuell eintragen / korrigieren +- Punkte automatisch neu berechnen nach Eintrag +- Übersicht aller Tipps pro Spiel +- Teilnahme-Statistiken (Anzahl Tipps, aktive Nutzer) + +### 3.2 Erweiterungen (Nice-to-have — v1.1 oder später) + +| Feature | Beschreibung | Aufwand | +|---|---|---| +| **Push-Benachrichtigungen** | Ergebnisse-Update via Staffbase News API | Mittel | +| **Gruppenphase-Tipper** | Tipp auf Gruppensieger/-zweiten | Mittel | +| **Turniersieger-Tipp** | Einmaliger Tipp auf WM-Sieger (×5 Punkte) | Klein | +| **Mini-Ligen** | Interne Teams (z.B. nach Abteilung) | Groß | +| **Kommentar-Funktion** | Tipps kommentieren | Klein | +| **Tipp-Analyse** | Auswertung: beliebteste Tipps, Überraschungen | Mittel | +| **Automatische Ergebnis-Synchronisation** | Polling football-data.org, kein manuelles Eintragen | Mittel | + +--- + +## 4. Datenbankschema + +### 4.1 Kerntabellen + +```sql +-- Nutzer (befüllt automatisch via JWT bei erstem Login) +CREATE TABLE users ( + id VARCHAR(64) PRIMARY KEY, -- Staffbase userId + full_name VARCHAR(255) NOT NULL, + locale VARCHAR(10) DEFAULT 'de_DE', + role VARCHAR(20) DEFAULT 'reader', + branch_id VARCHAR(64), + created_at TIMESTAMPTZ DEFAULT NOW(), + last_seen_at TIMESTAMPTZ DEFAULT NOW() +); + +-- WM-Spiele (synchronisiert via football-data.org) +CREATE TABLE matches ( + id SERIAL PRIMARY KEY, + external_id VARCHAR(32) UNIQUE NOT NULL, -- ID aus football-data.org + stage VARCHAR(50) NOT NULL, -- 'GROUP_STAGE', 'ROUND_OF_16', ... + group_name VARCHAR(10), -- 'A', 'B', ... (NULL in KO-Runde) + home_team VARCHAR(100) NOT NULL, + away_team VARCHAR(100) NOT NULL, + kickoff_at TIMESTAMPTZ NOT NULL, + home_score SMALLINT, -- NULL bis Abpfiff + away_score SMALLINT, + status VARCHAR(20) DEFAULT 'SCHEDULED' -- SCHEDULED, IN_PLAY, FINISHED +); + +-- Tipps +CREATE TABLE predictions ( + id SERIAL PRIMARY KEY, + user_id VARCHAR(64) REFERENCES users(id), + match_id INTEGER REFERENCES matches(id), + predicted_home SMALLINT NOT NULL, + predicted_away SMALLINT NOT NULL, + points_earned SMALLINT, -- NULL bis Spiel ausgewertet + created_at TIMESTAMPTZ DEFAULT NOW(), + updated_at TIMESTAMPTZ DEFAULT NOW(), + UNIQUE (user_id, match_id) +); + +-- Rangliste (materialized view oder separate Tabelle für Performance) +CREATE MATERIALIZED VIEW leaderboard AS + SELECT + u.id AS user_id, + u.full_name, + u.branch_id, + COALESCE(SUM(p.points_earned), 0) AS total_points, + COUNT(p.id) AS total_predictions, + COUNT(CASE WHEN p.points_earned = 3 THEN 1 END) AS exact_hits, + RANK() OVER (ORDER BY COALESCE(SUM(p.points_earned), 0) DESC) AS rank + FROM users u + LEFT JOIN predictions p ON p.user_id = u.id + GROUP BY u.id, u.full_name, u.branch_id; +``` + +--- + +## 5. API-Design (Backend) + +### 5.1 Endpunkte + +| Method | Endpunkt | Beschreibung | Auth | +|---|---|---|---| +| `GET` | `/api/matches` | Alle Spiele mit Status | JWT | +| `GET` | `/api/matches/:id` | Einzelnes Spiel | JWT | +| `GET` | `/api/predictions/me` | Eigene Tipps | JWT | +| `POST` | `/api/predictions` | Tipp abgeben | JWT | +| `PUT` | `/api/predictions/:id` | Tipp ändern (vor Deadline) | JWT | +| `GET` | `/api/leaderboard` | Gesamtrangliste | JWT | +| `GET` | `/api/leaderboard/me` | Eigene Position | JWT | +| `PUT` | `/api/admin/matches/:id/result` | Ergebnis eintragen | JWT + Admin | +| `POST` | `/api/admin/recalculate` | Punkte neu berechnen | JWT + Admin | +| `GET` | `/api/admin/stats` | Teilnahmestatistiken | JWT + Admin | + +### 5.2 Authentifizierung + +Jeder Request vom Frontend sendet den Staffbase JWT im Header: + +``` +Authorization: Bearer +``` + +Das Backend validiert den Token mit dem `@staffbase/staffbase-plugin-sdk` (RS256, Public Key aus Staffbase Studio). Bei gültigem Token werden Nutzer-ID, Name, Rolle und Locale aus dem Token extrahiert und der Nutzer automatisch in der `users`-Tabelle angelegt (upsert). + +--- + +## 6. Projektphasen & Zeitplan + +### Gesamtlaufzeit: 10 Wochen (April — Mitte Juni 2026) + +### Phase 1 — Setup & Fundament (Woche 1–2) + +| Aufgabe | Verantwortlich | Aufwand | +|---|---|---| +| Staffbase Plugin registrieren (Plugin-ID + Public Key) | Admin | 0,5 Tage | +| Node.js Projekt-Skeleton generieren (`create-staffbase-plugin-nodejs`) | Entwicklung | 0,5 Tage | +| Git-Repository anlegen, CI/CD konfigurieren (GitHub Actions) | Entwicklung | 1 Tag | +| Hosting-Umgebung aufsetzen (Railway/Render) | Entwicklung | 0,5 Tage | +| Supabase-Projekt anlegen, Datenbankschema deployen | Entwicklung | 1 Tag | +| JWT-Authentifizierung implementieren und testen | Entwicklung | 1 Tag | +| football-data.org API-Key beantragen und testen | Entwicklung | 0,5 Tage | + +**Meilenstein:** Authentifizierter API-Call von Staffbase-Plugin zu Backend funktioniert. + +### Phase 2 — Kern-Backend (Woche 3–4) + +| Aufgabe | Verantwortlich | Aufwand | +|---|---|---| +| Spielplan-Synchronisation (football-data.org → DB) | Entwicklung | 2 Tage | +| REST API vollständig implementieren | Entwicklung | 3 Tage | +| Tipp-Logik mit Deadline-Prüfung | Entwicklung | 1 Tag | +| Punkte-Berechnungslogik | Entwicklung | 1 Tag | +| Ranglisten-Abfrage (inkl. Materialized View) | Entwicklung | 1 Tag | +| Unit-Tests für Kernlogik | Entwicklung | 1 Tag | + +**Meilenstein:** Vollständige Backend-API testbar via Postman/API-Client. + +### Phase 3 — Frontend (Woche 5–7) + +| Aufgabe | Verantwortlich | Aufwand | +|---|---|---| +| React-Projekt aufsetzen, Staffbase Client SDK integrieren | Entwicklung | 1 Tag | +| Spielplan-Übersicht (nach Datum / Gruppe filtern) | Entwicklung | 2 Tage | +| Tipp-Eingabeformular mit Validierung | Entwicklung | 2 Tage | +| Rangliste mit Pagination | Entwicklung | 1,5 Tage | +| Admin-Bereich (Ergebnis eintragen, Statistiken) | Entwicklung | 2 Tage | +| Responsive Design (Mobile-first für Staffbase App) | Entwicklung | 1,5 Tage | +| Mehrsprachigkeit DE/EN | Entwicklung | 1 Tag | + +**Meilenstein:** Vollständige App funktionsfähig im Browser (ohne Staffbase-Integration). + +### Phase 4 — Staffbase-Integration & Test (Woche 8–9) + +| Aufgabe | Verantwortlich | Aufwand | +|---|---|---| +| Plugin-URL in Staffbase Studio hinterlegen | Admin | 0,5 Tage | +| iFrame-Test in Staffbase Web und Mobile App | Entwicklung | 1 Tag | +| End-to-End-Tests mit echten Staffbase-Nutzern | Entwicklung + QA | 2 Tage | +| Bugfixing aus Testphase | Entwicklung | 2 Tage | +| Performance-Test (Last: viele gleichzeitige Tipps) | Entwicklung | 1 Tag | +| DSGVO-Check: keine unautorisierten Daten gespeichert | PM/Legal | 1 Tag | + +**Meilenstein:** Plugin läuft stabil in der Staffbase-Staging-Umgebung. + +### Phase 5 — Launch & Betrieb (Woche 10 + laufend) + +| Aufgabe | Verantwortlich | Aufwand | +|---|---|---| +| Go-Live in Staffbase Produktivumgebung | Admin + Entwicklung | 1 Tag | +| Kommunikation an Mitarbeitende (via Staffbase News Channel) | Kommunikation | 0,5 Tage | +| Monitoring & Alerting einrichten (Uptime, Fehler-Logs) | Entwicklung | 1 Tag | +| WM-Start-Phase begleiten (Hotfixes, Support) | Entwicklung | laufend | +| Tägliche Ergebnispflege (manuell oder automatisch) | Admin | laufend | + +--- + +## 7. Ressourcen & Rollen + +| Rolle | Verantwortlichkeiten | Zeitaufwand | +|---|---|---| +| **Projektleiter/PM** | Steuerung, Stakeholder-Kommunikation, Abnahme | ~20% (verteilt) | +| **Fullstack-Entwickler (1–2)** | Backend, Frontend, Deployment, Tests | 100% über 8 Wochen | +| **Staffbase-Admin** | Plugin-Registrierung, Studio-Konfiguration, Rollout | ~5% | +| **Kommunikation** | Launch-Kommunikation, Mitarbeitende informieren | ~5% | +| **QA (optional)** | Testen, Bugmeldungen | ~20% in Phase 4 | + +--- + +## 8. Infrastruktur & Kosten + +### 8.1 Hosting (monatlich, geschätzt) + +| Dienst | Zweck | Kosten/Monat | +|---|---|---| +| **Railway / Render** | Backend-Hosting (Node.js) | ~5–15 € | +| **Supabase** | PostgreSQL (Free Tier reicht für ~500 User) | 0 € (Free) / 25 € (Pro) | +| **football-data.org** | WM-Spielplan API | 0 € (Free Tier) | +| **GitHub** | Code-Repository + CI/CD | 0 € (Free) | +| **Gesamt** | | ~5–40 € / Monat | + +### 8.2 Einmalige Kosten (Entwicklung) + +Gemäß separater Aufwandsschätzung (siehe Projektphasen). Bei internem Entwicklerteam: reine Zeitkosten. Bei externer Vergabe: ca. 15.000–25.000 € (je nach Erfahrungsniveau und Scope). + +--- + +## 9. Risiken & Maßnahmen + +| Risiko | Wahrscheinlichkeit | Auswirkung | Maßnahme | +|---|---|---|---| +| Staffbase JWT-Integration schlägt fehl | Niedrig | Hoch | Frühzeitig in Phase 1 testen, Staffbase Support einbinden | +| football-data.org API unzuverlässig | Mittel | Mittel | Spielplandaten lokal cachen, manuelle Eingabe als Fallback | +| Zu viele gleichzeitige Nutzer (WM-Start) | Mittel | Mittel | Load-Test vor Go-Live, Auto-Scaling auf Hosting-Plattform | +| DSGVO: unbeabsichtigte Datenspeicherung | Niedrig | Hoch | Nur JWT-Daten speichern, kein Tracking, Datenschutzprüfung | +| Entwicklungsrückstand (Urlaube, Krankheit) | Mittel | Mittel | Puffer von 1 Woche eingeplant, MVP-Scope reduzierbar | +| WM-Spielplan ändert sich (Absagen, Verlegungen) | Niedrig | Niedrig | Automatische API-Synchronisation | + +--- + +## 10. Definition of Done (DoD) + +Ein Feature gilt als fertig, wenn: + +1. Funktionalität implementiert und manuell getestet +2. Unit-Tests vorhanden (Backend-Logik) +3. Responsive auf Mobile und Desktop +4. In Staffbase-iFrame getestet (Web + App) +5. Kein Fehler in den Browser-Konsolen-Logs +6. Code reviewed und in `main`-Branch gemergt + +Das Gesamtprojekt gilt als abgenommen, wenn: + +1. Alle MVP-Features (F1–F6) funktionsfähig sind +2. Mind. 20 Test-Nutzer einen Tipp abgegeben haben (Pilottest) +3. Performance-Test bestanden (< 2 Sekunden Ladezeit) +4. DSGVO-Prüfung abgeschlossen und dokumentiert +5. Go-Live in Produktivumgebung erfolgt + +--- + +## 11. Nächste Schritte (Sofortmaßnahmen) + +1. **Plugin bei Staffbase registrieren** → Staffbase Studio → Einstellungen → Plugins → neues Plugin anlegen → Plugin-ID und Public Key notieren +2. **Entwicklungsumgebung aufsetzen** → `npx create-staffbase-plugin-nodejs@latest wm2026-tippspiel` +3. **football-data.org API-Key beantragen** → https://www.football-data.org/client/register +4. **Supabase-Projekt anlegen** → https://supabase.com (EU-Region Frankfurt) +5. **Kickoff-Meeting** mit allen Beteiligten (PM, Entwicklung, Staffbase-Admin, Kommunikation) + +--- + +## Anhang A: Nützliche Links & Ressourcen + +| Ressource | URL | +|---|---| +| Staffbase Developer Portal | https://developers.staffbase.com | +| Staffbase Custom Plugin Übersicht | https://developers.staffbase.com/concepts/customplugin-overview/ | +| Staffbase Plugins Client SDK | https://github.com/Staffbase/plugins-client-sdk | +| Staffbase Node.js SDK | https://github.com/Staffbase/plugins-sdk-nodejs | +| Staffbase Plugin Skeleton Generator | https://github.com/Staffbase/create-staffbase-plugin-nodejs | +| football-data.org API | https://www.football-data.org | +| Supabase | https://supabase.com | +| Railway Hosting | https://railway.app | +| Render Hosting | https://render.com | +| WM 2026 Spielplan (FIFA) | https://www.fifa.com/worldcup | diff --git a/prototyp_wm2026.html b/prototyp_wm2026.html new file mode 100644 index 0000000..adc6f2f --- /dev/null +++ b/prototyp_wm2026.html @@ -0,0 +1,1123 @@ + + + + + + WM 2026 Tippspiel – GEALAN + + + + + +
+
+
GEALAN Tippspiel
+ ⚽ WM 2026 +
+
+
RK
+ Ronny K. + 12 Pkt. +
+
+ + + + + + + +
+
+
+
+
12
+
Meine Punkte
+
+
+
7.
+
Mein Platz
+
+
+
18
+
Tipps abgegeben
+
+
+
4
+
Exakte Treffer
+
+
+ +
+ +
+
+
+ 📅 Nächste Spiele zum Tippen + 3 offen +
+
+
+
+
+
+ +
+
+
📊 Meine letzten Auswertungen
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpielTippErg.Pkt.
🇩🇪 vs 🇯🇵2:12:13
🇧🇷 vs 🇫🇷1:02:01
🇦🇷 vs 🇲🇽0:12:00
🇵🇹 vs 🇺🇸3:13:13
+
+
+
+
+ + +
+
+
+ 🏆 Aktuelle Rangliste (Top 5) + Alle anzeigen → +
+
+ + + + + + + + + +
#NameTippsExaktPunkte
🥇Sandra W.22621
🥈Markus H.20518
🥉Julia B.21416
4.Thomas K.19415
5.Anna S.20313
+
+ + + + + + + + + +
7.Ronny K. (ich)18412
+
+
+
+
+
+
+ + + + +
+
+
⚽ Spielplan & Tippen
+
+ So funktioniert's: Klicke auf „Tippen" bei einem Spiel, um dein Ergebnis einzugeben. Tipps sind bis zum Anpfiff möglich. Exakter Tipp = 3 Punkte, richtige Tendenz = 1 Punkt. +
+ + +
+ + + + +
+ +
+
+
+ + + + +
+
+
🏆 Gesamtrangliste
+
+ Stand nach Spieltag 3 der Gruppenphase. Rangliste aktualisiert sich automatisch nach Eintrag der Ergebnisse. +
+
+
+ Rangliste — 47 Teilnehmer + nach 22 Spielen +
+ + + + + + + + + + + + + + +
#NameAbt.TippsExaktTendenzPunkteTrend
+
+
+
+ + + + +
+
+
🗂 Gruppenphase WM 2026
+
+ WM 2026 Format: 48 Teams in 12 Gruppen à 4 Teams. Die Top 2 jeder Gruppe sowie die 8 besten Dritten ziehen ins Achtelfinale ein. +
+
+
+
+ + + + + +
+ + + + + diff --git a/prototyp_wm2026_mobile.html b/prototyp_wm2026_mobile.html new file mode 100644 index 0000000..cb4b1d6 --- /dev/null +++ b/prototyp_wm2026_mobile.html @@ -0,0 +1,1650 @@ + + + + + +WM 2026 Tippspiel – Mobile + + + + +
+
+ + +
+ 9:41 + ●●●●○ 5G 🔋 +
+ + +
+
+ GEALAN + ⚽ WM 2026 +
+
RK
+
+ + +
+ + +
+ + +
+
🏆
+
+
FIFA World Cup 2026
+
USA · Kanada · Mexiko
+
+
+
+
Tage noch
+
+
+ + +
+
Willkommen zurück,
+
Ronny Kramer 👋
+
+
+ 12 + Punkte +
+
+ 7. + Platz +
+
+ 4 + Exakt +
+
+ 18 + Tipps +
+
+
+ + +
+
+ Jetzt tippen + Alle → +
+
+
+ + +
+
+ Letzte Ergebnisse +
+
+
+
🇩🇪 vs 🇯🇵
+
+ 2:1 + + 2:1 +
+ +3 Pkt. ✓✓ +
+
+
🇧🇷 vs 🇫🇷
+
+ 1:0 + + 2:0 +
+ +1 Pkt. ✓ +
+
+
🇦🇷 vs 🇲🇽
+
+ 0:1 + + 2:0 +
+ 0 Pkt. ✗ +
+
+
🇵🇹 vs 🇺🇸
+
+ 3:1 + + 3:1 +
+ +3 Pkt. ✓✓ +
+
+
🇪🇸 vs 🇲🇦
+
+ 2:0 + + 1:0 +
+ +1 Pkt. ✓ +
+
+
+ + +
+
+ Rangliste + Alle → +
+
+
+ +
+ + +
+
+
Spielplan & Tippen
+
+
+ + + + +
+
+
+ + +
+
+
Gesamtrangliste
+
+
+
+ + +
+
+
Gruppen WM 2026
+
+
+
+ + +
+
+
RK
+
Ronny Kramer
+
IT · GEALAN Fenster-Systeme
+
🏆 Platz 7 von 47
+
+
+
+
12
+
Punkte
+
+
+
4
+
Exakt
+
+
+
18
+
Tipps
+
+
+
67%
+
Trefferquote
+
+
+
7
+
Tendenz
+
+
+
0.67
+
Pkt/Tipp
+
+
+
+
Tipp-Genauigkeit
+
+ Exakt (3 Pkt.) +
+ 22% +
+
+ Tendenz (1 Pkt.) +
+ 39% +
+
+ Falsch (0 Pkt.) +
+ 39% +
+
+
+ +
+ + + + + +
+
+
+
+
Gruppe A
+
+
+
+
+ 🏳 + +
+ : +
+ 🏳 + +
+
+
+
+ +
1
+ +
+
:
+
+ +
1
+ +
+
+
⏰ Deadline:
+ +
+
+ + +
+ +
+
+ + + + diff --git a/prototyp_wm2026_v2_home.html b/prototyp_wm2026_v2_home.html new file mode 100644 index 0000000..81ca1f8 --- /dev/null +++ b/prototyp_wm2026_v2_home.html @@ -0,0 +1,1272 @@ + + + + + +WM 2026 Tippspiel – Home v2 + + + + +
+ + +
+ 9:41 + ●●●● 5G + 🔋 87% +
+ + +
+
+ + WM 2026 Tippspiel +
+
+ 🔔 +
+
+
+ + +
+ + +
+
🏆
+
The Countdown Begins
+
WM 2026
+
WORLD CUP FINALS
+
+
+
69
+
Days
+
+
:
+
+
14
+
Hrs
+
+
:
+
+
08
+
Min
+
+
:
+
+
33
+
Sec
+
+
+
+ + +
+
+
+
Points
+
12
+
+3 letzte Runde
+
+
+
🏆
+
Global Rank
+
#7
+
Top 15% Overall
+
+
+
🎯
+
Exact Hits
+
4
+
Perfect Predictions
+
+
+
📋
+
Total Tips
+
18
+
von 104 Spielen
+
+
+ + +
+ Upcoming Matches + View All → +
+
+ + +
+
+ Gruppe B · Match 15 +
+
+
+
🇩🇪
+ Germany +
+
+
VS
+
14. Jun
21:00
+
+
+
🇪🇸
+ Spain +
+
+ +
+ + +
+
+ Gruppe C · Match 18 +
+
+
+
🇧🇷
+ Brazil +
+
+
VS
+
15. Jun
18:00
+
+
+
🇫🇷
+ France +
+
+ +
✅ Tipp gespeichert
+
+ + +
+
+ Gruppe A · Match 6 + Live 67' +
+
+
+
🇦🇷
+ Argentina +
+
+
2:0
+
Laufend
+
+
+
🇨🇦
+ Canada +
+
+ +
+ +
+ + +
+ Letzte Ergebnisse +
+
+
+
🇩🇪🇯🇵
+
GER vs JPN
+
+ 2:1 + + 2:1 +
+ +3 Pkt ✓✓ +
+
+
🇧🇷🇫🇷
+
BRA vs FRA
+
+ 1:0 + + 2:0 +
+ +1 Pkt ✓ +
+
+
🇦🇷🇲🇽
+
ARG vs MEX
+
+ 0:1 + + 2:0 +
+ 0 Pkt ✗ +
+
+
🇵🇹🇺🇸
+
POR vs USA
+
+ 3:1 + + 3:1 +
+ +3 Pkt ✓✓ +
+
+ + +
+ Office Top 3 + Full Leaderboard → +
+
+ +
+
+ MH +
2
+
+
Markus H.
+
18 Pkt
+
+ +
+
+
👑
+ SW +
1
+
+
Sandra W.
+
21 Pkt
+
+ +
+
+ JB +
3
+
+
Julia B.
+
16 Pkt
+
+
+ + +
+
+ 4. +
TK
+
+
Thomas K.
+
Einkauf
+
+
+ 15 + +
+
+
+ 5. +
AS
+
+
Anna S.
+
HR
+
+
+ 13 + +
+
+
+ 6. +
KM
+
+
Klaus M.
+
IT
+
+
+ 13 + +
+
+ +
+ 7. +
RK
+
+
Ronny K. (Ich)
+
IT · Aufholjagd! ↑
+
+
+ 12 + +
+
+
+ + +
+
+
+
Punkte sichern!
+
Tippe die nächsten Spiele und klettere nach oben.
+
+ +
+
+ +
+ + + + +
+ + + +