diff --git a/ZUSAMMENFASSUNG.md b/ZUSAMMENFASSUNG.md new file mode 100644 index 0000000..c9e80b4 --- /dev/null +++ b/ZUSAMMENFASSUNG.md @@ -0,0 +1,158 @@ +# LevelRep – Zusammenfassung & aktueller Stand + +> Stand: 25.08.2026 · Schnellüberblick +> +> Diese Datei ist der **Einstiegspunkt**. Für Details: +> - **Was & Warum** → `idee.md` +> - **Trainingspläne (Zahlen)** → `progress.md` +> - **Entscheidungen & Begründungen** → `offene-fragen.md` +> - **Verbleibende offene Fragen** → `offene-fragen-v2.md` +> - **Schritt-für-Schritt-Umsetzung** → `implementation-plan.md` + +--- + +## 🎯 Was ist LevelRep? + +Bodyweight-Workout-App mit mehreren lokalen Profilen. Vier Kernübungen +(Liegestütze, Kniebeugen, Klimmzüge, Sit-ups) mit progressiven +30-Tage-Plänen in drei Tiers (Beginner / Fortgeschritten / Pro). +Sensorbasierte Wiederholungserkennung über Smartphone-Sensoren, +Level-/EXP-System mit Tier-Wechsel. Komplett offline, DSGVO-clean. + +--- + +## ✅ Wichtige Entscheidungen (kurz) + +### Plattform & Tech + +* **Flutter / Dart** · **Android only** · **Offline-First, kein Backend** +* **minSdk = 36** (Android 16+, bewusste Entscheidung für aktuelle Geräte) +* **targetSdk = 36** (Play-Store-Pflicht ab 31.08.2026) +* **compileSdk = 36** +* **State**: Riverpod · **Navigation**: go_router +* **DB**: Drift + SQLite · **Sensoren**: sensors_plus +* **Notifications**: flutter_local_notifications +* **Sound**: audioplayers · **Icons**: font_awesome_flutter + +### Trainingssystem + +* 30 Tage / 13 Einheiten / Trainingstage: `1, 3, 5, 8, 10, 12, 15, 17, 19, 22, 24, 26, 29` +* 4 reguläre Sätze pro Einheit · 60 s Satzpause (manuell bis 5 s) +* Optionaler **Max-Rep** nach letztem Satz +* Restdays empfohlen, aber überspringbar + +### EXP & Level + +* 1 EXP pro reguläre Wiederholung, 2 EXP pro Max-Rep-Wiederholung +* Satz-Bonus: +5 / +10 / +15 (Beginner / Fortgeschritten / Pro) +* Jedes Tier beginnt bei Level 0 +* Level-Cap: Beginner 25 · Fortgeschritten 50 · Pro ∞ +* **EXP-Kurve quadratisch** (konkrete Formel nach M3-Praxistests final) + +### Tier-Wechsel + +* Freigeschaltet wenn: alle 13 Einheiten bestanden + Level-Cap erreicht + + Max-Rep-Zielwert bei ≥ 3 der letzten 5 Einheiten +* **Manuell** durch User, App zeigt „Tier-Up verfügbar" +* **Kein** Überspringen von Tiers + +### Sensorik + +* Accelerometer + Gyroskop +* Kalibrierung: 5 Referenzwiederholungen, **Pflicht** beim ersten Öffnen +* Eine Kalibrierung pro Übung pro Profil +* Smartphone-Position pro Übung per Piktogramm erklärt +* **Fallback**: manueller Rep-Counter + +### Profile + +* Unbegrenzte Anzahl, **kein PIN** in v1.0 +* Daten: Name, Größe, Gewicht, Aktivitätslevel, Emoji-Avatar +* JSON-Export/Import für Backup/Umzug +* Multi-User auf einem Gerät = bewusstes Feature + +### Daten & DSGVO + +* Alles lokal · keine Cloud · keine Telemetrie · keine Analytics +* Schema-Versionierung + Migrationen +* App-Updates dürfen User-Daten **nie** löschen + +--- + +## 📋 Übungen (v1.0) + +| Übung | Farbe | Piktogramm-Position | +|---|---|---| +| Liegestütze | Rot | Smartphone unter dem Körper, Nase berührt Display | +| Kniebeugen | Blau | wird durch Praxistests festgelegt | +| Klimmzüge | Grün | wird durch Praxistests festgelegt | +| Sit-ups | Gelb | wird durch Praxistests festgelegt | + +Detaillierte Progressionstabellen in `progress.md`. + +--- + +## 🛣️ Roadmap (Meilensteine) + +| M | Inhalt | Status | +|---|---|---| +| **M1** | App-Grundgerüst (Flutter, Profile, DB v1, Navigation, Theme) | 📋 geplant | +| **M2** | Erste Übung komplett (Liegestütze + Kalibrierung + Training + Max-Rep) | 📋 geplant | +| **M3** | Trainingssystem (Tiers, EXP, Level) | 📋 geplant | +| **M4** | Alle 4 Übungen + Sensorprofile | 📋 geplant | +| **M5** | Gamification & Statistik (Achievements, Streaks, Charts) | 📋 geplant | +| **M6** | Stabilisierung (Crash, Sensor-Fallback, Akku, Backup) | 📋 geplant | +| **M7** | v1.0 Release | 📋 geplant | + +→ Vollständige Tasks pro Meilenstein in `implementation-plan.md`. + +--- + +## ⚠️ Verbleibende offene Punkte (4 + 3 zurückgestellt) + +**Aktiv zu klären während der Entwicklung:** + +| # | Thema | Wann | +|---|---|---| +| 1 | EXP-Kurve / benötigte EXP pro Level | nach M2-Praxistests | +| 2 | Max-Rep-Zielwerte pro Übung / Tier | nach M4-Praxistests | +| 3 | Tier-Up-Visualisierung | in M5 | +| 4 | Sensor-Schwellwerte für Warnungen | durch M4+M6-Praxistests | + +**Zurückgestellt** (Sonderregeln zeitbasierter Übungen, exakte Smartphone-Positionen +für Kniebeugen/Klimmzüge/Sit-ups, konkrete Erkennungsalgorithmen) — werden **erst +relevant**, wenn das entsprechende Feature gebaut wird. Details in `offene-fragen-v2.md`. + +--- + +## ❌ Bewusst nicht in v1.0 + +* Cloud / Account-System / Online-Sync +* Freunde, Leaderboards, Challenges +* iOS, Wearables +* Übungsvariationen (enge/breite Griffe etc.) +* Übungs-Erstellung durch User + +--- + +## 📊 Repository-Stand + +``` +LevelRep/ +├── idee.md ← Vision & App-Ablauf +├── progress.md ← 30-Tage-Pläne (Zahlen pro Übung × Tier) +├── offene-fragen.md ← Decision-Memo: alle 14 Themenblöcke + Antworten +├── offene-fragen-v2.md ← Nur die noch offenen ⚠️-Punkte +├── implementation-plan.md ← 7 Meilensteine, task-by-task umsetzbar +├── ZUSAMMENFASSUNG.md ← Diese Datei +└── (noch kein Code) +``` + +--- + +## 🔜 Nächster Schritt + +Wenn du irgendwann loslegst (oder ich loslegen soll): **M1 Task 1.2 — +Flutter-Projekt anlegen.** Bis dahin: Repo ist das vollständige +Dokumentationspaket, du kannst es mit jedem beliebigen Coding-Agent oder +selbst durchgehen. diff --git a/implementation-plan.md b/implementation-plan.md index 9a24b48..604a952 100644 --- a/implementation-plan.md +++ b/implementation-plan.md @@ -6,6 +6,10 @@ > genug, um in einer Session abgeschlossen zu werden. Keine parallelen > Branches, keine halben Sachen. > +> **Hinweis:** Stand 25.08.2026 ist **bewusst noch kein Code** im Repo — +> nur Dokumentation. Sobald du grünes Licht zum Coden gibst, starten wir +> mit **M1 Task 1.2 (Flutter-Projekt anlegen)**. +> > **Stack-Realität:** Flutter · Drift+SQLite · Riverpod · go_router · > sensors_plus · flutter_local_notifications · audioplayers · > font_awesome_flutter. Diese Festlegungen stammen aus `offene-fragen.md`