Alle Komponenten kommunizieren über eine REST API. Die Architektur ist modular aufgebaut, damit einzelne Teile unabhängig weiterentwickelt werden können.
## 4.2 Backend Struktur
Das Backend wurde mit **Java** und **Spring Boot** entwickelt. Es bietet:
Swagger wurde verwendet, um die API-Endpunkte zu dokumentieren und zu testen.
## 4.3 Frontend-Struktur
Das Frontend basiert auf **React Native mit Expo Go** und **JavaScript**. Hauptfunktionen sind:
- Nutzeranmeldung und Profilerstellung
- Anfragen an das Backend (z.B. Trainings- und Ernährungsplan generieren)
- Darstellung von Trainings, Rezepten und Punkten
- Gamification-Elemente (Ranglisten)
## 4.4 Datenmodell
### Systemarchitektur & Datenmodell
**UML-Klassendiagramm**
Das folgende Diagramm stellt unser **Entity-Relationship-Modell (ER-Modell)** dar. Es bildet die Grundlage für die Datenbankstruktur. Die wichtigsten Entitäten wie 'User', 'Training', 'Friendships', 'Recipe' oder 'Challenges' sowie deren Beziehungen sind dargestellt.
Das folgende Klassendiagramm zeigt die wichtigsten Entitäten und ihre Beziehungen. Es bildet die Grundlage für die Datenbankstruktur und API-Logik.
Dieses Sequenzdiagramm zeigt, wie ein personalisierter Trainingsplan mithilfe der KI erstellt wird. Um das zu ermöglichen, werden Benutzerdaten wie Alter, Gewicht und Zielgewicht ausgelesen, zu einem Prompt verarbeitet und an die KI gesendet. Die generierten Übungen werden gespeichert und erscheinen anschließend direkt im Nutzerprofil.
Der folgende Ablauf zeigt, wie ein personalisierter Plan mithilfe der Claude API erstellt wird. Um das zu ermöglichen, werden Benutzerdaten wie Alter, Gewicht und Zielgewicht ausgelesen, zu einem Prompt verarbeitet und an die KI gesendet. Die generierten Übungen werden gespeichert und erscheinen anschließend direkt im Nutzerprofil.