Files
Lifton/PLAN2.md
T
2026-04-24 12:58:17 +02:00

6.1 KiB

Lifton Gesamtplan

Zusammenfassung

Lifton ist eine Windows-Desktop-Fitness-App mit WPF und C#. Die App hilft Nutzern, Workouts detailliert zu erfassen, Fortschritt durch XP und Level sichtbar zu machen, Coins zu verdienen und Avatare im Store freizuschalten. Die Architektur folgt MVVM: Views zeigen die Oberfläche, ViewModels steuern die Interaktion, Services enthalten die Logik, und Repositories verbinden die App mit SQL Server über EF Core.

Muss-Funktionen

  • Benutzerkonto:
    • Registrierung und Login mit Benutzername und Passwort.
    • Passwörter werden mit BCrypt gehasht.
    • Nutzerprofil mit Anzeigename, Fitnessziel, Wochenziel und ausgewähltem Avatar.
  • Dashboard:
    • Übersicht über aktuelles Level, XP, Streak, Coins und letzte Workouts.
    • Anzeige des ausgerüsteten Avatars.
    • Schneller Einstieg zu Neues Workout, Verlauf, Store und Freunde.
  • Neues Workout:
    • Nutzer wählt zuerst den Workout-Typ: Beine, Brust, Rücken, Schultern, Arme, Core, Cardio, Ganzkörper, Custom.
    • App zeigt passende Übungen, zum Beispiel bei Beine: Squat, Leg Press, Leg Extension, Leg Curl, Calf Raise, Lunges.
    • Nutzer kann Übungen auswählen und pro Übung mehrere Sets eintragen.
    • Pro Set werden Gewicht, Wiederholungen und Pausenzeit gespeichert.
    • Nutzer legt am Anfang eine Standardpause fest, zum Beispiel 2 Minuten.
    • Einzelne Sets können eine eigene Pausenzeit haben.
  • Workout-Verlauf:
    • Alle vergangenen Workouts anzeigen.
    • Workouts filtern, bearbeiten und löschen.
    • Änderungen an Sets oder Übungen berechnen XP und Coins neu.
  • Gamification:
    • Workouts geben XP für Level-Fortschritt.
    • Workouts geben Coins für den Avatar-Store.
    • XP wird durch Gewicht, Wiederholungen, Sets und Pausen-Konstanz berechnet.
    • Coins werden getrennt von XP behandelt und beeinflussen das Level nicht.
  • Avatar-Store:
    • Eingebaute Avatare mit Varianten.
    • Avatare können Coins kosten, ein Mindestlevel verlangen oder beides.
    • Nutzer können Avatare kaufen und einen Avatar ausrüsten.
    • Ausgerüsteter Avatar erscheint im Profil und Dashboard.
  • Freunde und Privatsphäre:
    • Freundschaftsanfragen senden, annehmen und ablehnen.
    • Freunde-Liste anzeigen.
    • Freundesprofil anzeigen, abhängig von Privatsphäre-Einstellungen.
    • Nutzer kann festlegen, ob Freunde Level, Streak, Verlauf und Statistiken sehen dürfen.

Datenmodell und Klassen

  • Zentrale Models:
    • UserProfile: Nutzerdaten, Login-Name, Anzeigename, Ziel und Wochenziel.
    • ProgressState: XP, aktuelles Level, Streak, Coin-Guthaben und letztes Workout.
    • WorkoutSession: ein komplettes Workout an einem Tag.
    • WorkoutExercise: eine Übung innerhalb eines Workouts.
    • ExerciseSet: ein einzelnes Set mit Gewicht, Wiederholungen, Pause und XP.
    • ExerciseCatalogItem: Übungskatalog nach Workout-Typ.
    • AvatarCatalogItem: Avatar im Store.
    • UserAvatarOwnership: welche Avatare ein Nutzer besitzt.
    • Friendship, FriendRequest, PrivacySettings: Social- und Privatsphäre-Funktionen.
  • Wichtige Services:
    • AuthService: Login, Registrierung, Logout, Passwortprüfung.
    • WorkoutService: Workouts, Übungen und Sets speichern, bearbeiten und löschen.
    • ProgressService: XP, Level, Streak und Coins berechnen.
    • AvatarStoreService: Avatare kaufen und ausrüsten.
    • FriendshipService: Freundschaften und Anfragen verwalten.
    • PrivacyService: Sichtbarkeit von Freundesprofilen prüfen.
    • NavigationService: Wechsel zwischen Views.
  • SQL-Tabellen:
    • UserProfiles
    • ProgressStates
    • WorkoutSessions
    • WorkoutExercises
    • ExerciseSets
    • ExerciseCatalogItems
    • AvatarCatalogItems
    • UserAvatarOwnerships
    • Friendships
    • FriendRequests
    • PrivacySettings

XP- und Coin-Regeln

  • XP pro Kraft-Set:
    SetXP = 5 + floor((GewichtKg * Wiederholungen) / 20)
    
  • Wenn Gewicht 0 kg ist, gilt Bodyweight:
    SetXP = 5 + floor(Wiederholungen / 2)
    
  • Pausenbonus:
    +2 XP pro Set, wenn die echte Pause maximal 30 Sekunden von der Standardpause abweicht
    
  • Abschlussbonus:
    +10 XP pro abgeschlossener Übung
    
  • Coins:
    Coins = floor(GesamtWorkoutXP / 10)
    
  • Wichtig:
    • XP erhöht Level und Fortschritt.
    • Coins werden nur im Avatar-Store ausgegeben.
    • Avatar-Käufe dürfen XP oder Level nie reduzieren.

Nice-to-Have Funktionen

  • Mahlzeiten- und Kalorienrechner:
    • Lebensmittel suchen.
    • Mahlzeiten zusammenstellen.
    • Kalorien berechnen.
    • Gespeicherte Mahlzeiten oder Rezepte wiederverwenden.
    • Diese Funktion bleibt getrennt von XP, Coins und Level.
  • Leaderboard:
    • Freunde nach XP oder Level sortieren.
    • Erst sinnvoll, wenn Freundesystem fertig ist.
  • Achievements:
    • Badges für Meilensteine wie 100 Workouts oder 30 Tage Streak.
  • Personal Bests:
    • Beste Leistung pro Übung speichern, zum Beispiel höchstes Gewicht bei Leg Press.
  • Workout Posts:
    • Nutzer können ein abgeschlossenes Workout mit Freunden teilen.
  • Weitere Cosmetics:
    • Profilrahmen, Themes oder andere Store-Items.

Testplan

  • Registrierung erstellt Nutzerprofil, ProgressState und PrivacySettings korrekt.
  • Login funktioniert nur mit korrektem Passwort.
  • Neues Workout kann mit mehreren Übungen und mehreren Sets gespeichert werden.
  • Standardpause wird automatisch auf neue Sets angewendet.
  • Gewicht, Wiederholungen und Pausenzeit berechnen XP korrekt.
  • Coins werden aus Gesamt-XP korrekt berechnet.
  • Bearbeiten oder Löschen eines Sets berechnet XP, Coins und Fortschritt neu.
  • Avatar kann nur gekauft werden, wenn Level und Coins ausreichen.
  • Nutzer kann immer nur einen Avatar gleichzeitig ausrüsten.
  • Freunde sehen nur Daten, die durch PrivacySettings erlaubt sind.
  • Datenbankabfragen filtern immer nach eingeloggtem Nutzer.

Annahmen

  • Zielplattform ist Windows mit WPF.
  • Programmiersprache ist C#.
  • Datenbank ist SQL Server.
  • EF Core wird für den Datenbankzugriff genutzt.
  • Architektur ist MVVM.
  • Die App ist für interne oder kontrollierte Nutzer gedacht.
  • Der erste Fokus liegt auf Workout, Fortschritt, Avatar-Store und Social-Funktionen.
  • Kalorienrechner, Leaderboard, Achievements und Posts kommen später.