6.1 KiB
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,StoreundFreunde.
- 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.
- Nutzer wählt zuerst den Workout-Typ:
- 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:
UserProfilesProgressStatesWorkoutSessionsWorkoutExercisesExerciseSetsExerciseCatalogItemsAvatarCatalogItemsUserAvatarOwnershipsFriendshipsFriendRequestsPrivacySettings
XP- und Coin-Regeln
- XP pro Kraft-Set:
SetXP = 5 + floor((GewichtKg * Wiederholungen) / 20) - Wenn Gewicht
0 kgist, 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 Workoutsoder30 Tage Streak.
- Badges für Meilensteine wie
- 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.