Update Go4Champion Dokumentation authored by s93118's avatar s93118
---
title: Go4Champion - Dokumentation
---
## Inhaltsverzeichnis
1. [Projektbeschreibung](#1-projektbeschreibung)
2. [Team](#2-team)
3. [Tech-Stack](#3-tech-stack)
4. [Systemarchitektur & Datenmodell](#4-systemarchitektur--datenmodell)
5. [Benutzerdokumentation](#5-benutzerdokumentation)
6. [Developer Guide – Project Setup & Local Development](#6-developer-guide--project-setup--local-development)
7. [Testing](#7-testing)
8. [Arbeitsprozess](#8-arbeitsprozess)
9. [Reflexion](#9-reflexion)
1. [Projektbeschreibung](#1-projektbeschreibung)
2. [Team](#2-team)
3. [Tech-Stack](#3-tech-stack)
4. [Systemarchitektur & Datenmodell](#4-systemarchitektur--datenmodell)
5. [Benutzerdokumentation](#5-benutzerdokumentation)
6. [Developer Guide – Project Setup & Local Development](#6-developer-guide--project-setup--local-development)
7. [Testing](#7-testing)
8. [Arbeitsprozess](#8-arbeitsprozess)
9. [Reflexion](#9-reflexion)
10. [Ausblick & Future Work](#10-ausblick--future-work)
11. [Quellen](#11-quellen)
12. [Anhang](#12-anhang)
## 1. Projektbeschreibung
**Go4Champion** ist eine App, die Menschen beim Erreichen ihrer Fitnessziele unterstützt, egal ob man Muskeln aufbauen, abnehmen oder einfach gesünder leben möchte. Die App erstellt automatisch Trainingspläne und Rezeptvorschläge, die genau auf die eigenen Ziele und Bedürfnisse abgestimmt sind.
Eine integrierte KI erstellt individuelle Trainingspläne und Rezeptvorschläge, unter Berücksichtigung von Allergien, Krankheiten und Vorlieben. Gamification-Elemente wie Punkte, Ranglisten und Challenges mit Freund:innen steigern die Motivation.
**Go4Champion** ist eine mobile Web-Anwendung, welche Menschen beim Erreichen ihrer Fitnessziele unterstützt und motiviert; egal ob man Muskeln aufbauen, abnehmen oder einfach gesünder leben möchte. Die Anwendung erstellt KI-generierte Trainingspläne und Rezeptvorschläge, die genau auf die individuellen Ziele und Bedürfnisse abgestimmt sind. Dabei werden persönliche Angaben der Benutzer:innen bezüglich Allergien, Krankheiten und Vorlieben, sowohl des vorhandenen Equipments zum Trainieren, berücksichtigt. Gamification-Elemente wie Punkte, Ranglisten und Challenges unter Freund:innen steigern die Motivation und den Spaß.
### 1.1 Ziel & Motivation
Viele Fitness-Apps sind entweder zu allgemein, unübersichtlich oder verlieren nach kurzer Zeit ihren Reiz. Unser Ziel mit **Go4Champion** ist es, eine App zu schaffen, die Nutzer:innen langfristig motiviert, ihnen wirklich passende Trainings- und Ernährungspläne macht, und das auf eine einfache und verständliche Weise.
Unser Anspruch war es, eine App zu zu entwickeln, die personalisiert arbeitet, Ziele unterstützt, soziale Elemente integriert, langfristige Motivation bietet und einfach zu bedienen ist.
Viele Fitness-Anwendungen sind entweder zu allgemein, unübersichtlich oder verlieren nach kurzer Zeit ihren Reiz. Unser Ziel mit **Go4Champion** ist es, eine mobile Web-Anwendung zu schaffen, die Nutzer:innen langfristig motiviert und ihnen individuell angepasste Trainings- und Ernährungspläne auf eine einfache und verständliche Weise erstellt.
Unser Anspruch war es, eine Anwendung zu entwickeln, die personalisiert arbeitet, Ziele unterstützt, soziale Elemente integriert, langfristige Motivation bietet und einfach zu bedienen ist. Das Haupziel ist es, den Benutzer:innen, sowohl die Recherche für ihr Training, als auch die Denkarbeit abzunehmen.
### 1.2 Hauptfunktionen
- **KI-gestützte Trainingspläne**: automatisch erstellt basierend auf persönlichen Daten (Alter, Gewicht, Ziele)
- **KI-gestützte Ernährungspläne**: individuell generiert, unter Berücksichtigung von Allergien, Vorlieben und Ernährungstyp
- **Gamification**: Punkte, Ranglisten, Challenges
- **KI-generierte Trainingspläne**: automatisch erstellt basierend auf persönlichen Daten (Alter, Gewicht, Ziele) und Equipment
- **KI-generierte Ernährungspläne**: individuell generiert, unter Berücksichtigung von Allergien, Vorlieben und Ernährungstyp
- **Gamification**: Punkte, Ranglisten, Challenges, Badges
### 1.3 Was macht Go4Champion besonders?
- App passt sich individuell an jede Person an
- Kombination aus KI und Gamification
- Berücksichtigt gesundheitliche Einschränkungen und Vorlieben
- Gamification-Elemente erhöhen die Langzeitmotivation
- Nutzt die Claude API (von Anthropic) für die Erstellung personalisierter Trainingspläne und Vorschläge und für die Erstellung personalisierter Ernährungspläne
- Anwendung passt sich individuell an jeden Benutzer an
- Kombination aus KI-generiertem Training und Gamification
- Berücksichtigt gesundheitliche Einschränkungen und Vorlieben
- Gamification-Elemente erhöhen die Langzeitmotivation
- Nutzt die Claude API (von Anthropic) sowohl für die Erstellung personalisierter Trainingspläne und Vorschläge, als auch die Erstellung personalisierter Ernährungspläne
### 1.4 Zielgruppen
- Menschen, die gerne fitter werden wollen, aber nicht wissen, wie sie anfangen sollen
- Menschen, die gerne fitter werden möchten, aber nicht wissen, wie sie anfangen sollen
- Fortgeschrittene, mit konkreten Zielen
- Menschen mit Ernährungseinschränkungen
- Alle, die Spaß an Challenges und kleinen Erfolgen haben
- Alle, die Spaß an Challenges und kleinen Erfolgen haben
## 2. Team
### 2.1 Teammitglieder
Unser Team:
- Selma Sagun (951418) - s92379@bht-berlin.de
- Dilnur Akgün (100713) - diak6730@bht-berlin.de
- Mitra Dinar (944580) - s93118@bht-berlin.de
- Dila Gümüssoy (945656) - s92624@bht-berlin.de
- Süheyl Aslan (100703) - suas4491@bht-berlin.de
- Selma Sagun (951418) - s92379@bht-berlin.de
- Dilnur Akgün (100713) - diak6730@bht-berlin.de
- Mitra Dinar (944580) - s93118@bht-berlin.de
- Dila Gümüssoy (945656) - s92624@bht-berlin.de
- Süheyl Aslan (100703) - suas4491@bht-berlin.de
- Adham Khalil (952596) - s93338@bht-berlin.de
### 2.2 Rollen
**Frontend**
- Selma Sagun
- Dila Gümüssoy
- Mitra Dinar
- Dilnur Akgün
**Backend**
- Adham Khalil
- Süheyl Aslan
## 3. Tech-Stack
### 3.1 Übersicht des Tech-Stacks
**Frontend**
- **React**
- **JavaScript**
- **HTML** und **CSS**
- **TypeScript**
- **CSS**
**Backend**
- **Java**
- **Spring Boot**
- **Spring Boot**
- **MySQL**
**REST API**
- **Swagger API**
**REST API**
- **Swagger API**
**Künstliche Intelligenz (KI)**
- **Claude API (Anthropic)**
- **Claude API (Anthropic)**
### 3.2 Entwicklungsumgebungen
- **IntelliJ IDEA**
- **IntelliJ IDEA**\
Für das Backend
- **Visual Studio Code**
- **Visual Studio Code**\
Für das Frontend
### 3.3 APIs und externe Dienste
- **Claude API (Anthropic)**
Zur Generierung der Trainings- und Ernährungspläne per KI
- **Swagger UI**
Dokumentation und testen der API-Endpunkte
- **Claude API (Anthropic)**\
Zur Generierung der Trainings- und Ernährungspläne per KI
- **Swagger UI**\
Dokumentation und testen der API-Endpunkte
### 3.4 Datenbank
- **MySQL**
Ursprünglich wurde H2 verwendet. Im Verlauf der Entwicklung sind wir jedoch auf MySQL umgestiegen, um eine dauerhafte und zuverlässige Datenspeicherung zu ermöglichen.
- **MySQL**\
Ursprünglich wurde H2 verwendet. Im Verlauf der Entwicklung sind wir jedoch auf MySQL umgestiegen, um eine dauerhafte und zuverlässige Datenspeicherung zu ermöglichen.
## 4. Systemarchitektur & Datenmodell
### 4.1 Komponentendiagramm
Alle Komponenten kommunizieren über eine REST API. Die Architektur ist modular aufgebaut, damit einzelne Teile unabhängig weiterentwickelt werden können.
......@@ -156,10 +127,10 @@ Das folgende Komponentendiagramm visualisiert diese Struktur und zeigt den Aufba
![Komponentendiagramm](uploads/59806f309b97fbaf1f15bb145d557489/Komponentendiagramm.png)
### 4.2 Backend Struktur
Das Backend wurde mit **Java** und **Spring Boot** entwickelt. Es bietet:
- REST-API-Endpunkte
- Anbindung an die Claude API
- Zugriff auf SQL-Datenbank
......@@ -167,33 +138,28 @@ 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** 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
### 4.4 Datenmodell
Das folgende Diagramm zeigt unser ursprünglich geplantes **Entity-Relationship-Modell (ER-Modell)**, das wir zu Beginn der Entwicklung erstellt haben und an dem wir uns zunächst orientiert haben.
Im Verlauf der Programmierung hat sich jedoch gezeigt, dass wichtige Elemente gefehlt haben.
Daher wurde das Modell im Backend während der Umsetzung erweitert.
Das folgende Diagramm zeigt unser ursprünglich geplantes **Entity-Relationship-Modell (ER-Modell)**, das wir zu Beginn der Entwicklung erstellt haben und an dem wir uns zunächst orientiert haben. Im Verlauf der Programmierung hat sich jedoch gezeigt, dass wichtige Elemente gefehlt haben. Daher wurde das Modell im Backend während der Umsetzung erweitert.
![UML_Class_Diagramm](uploads/84e18287ddc62834f19df9d45eda0623/UML_Class_Diagramm.png)
Das folgende Diagramm zeigt die aktualisierte Version des Entity-Relationship-Modells, wie sie schließlich im Backend implementiert wurde.
![ER-Modell](uploads/514cf52ba2fd275a2b9ca59266dc810c/ER-Modell.jpg)
### 4.5 Sequenzdiagramm: Trainingsplan mit KI
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.
Der folgende Ablauf zeigt, wie ein personalisierter Plan mithilfe der **Claude API** erstellt wird. Um das zu ermöglichen, werden Benutzerdaten wie Alter, Gewicht, Zielgewicht und vorhandenes Equipment ausgelesen, zu einem Prompt verarbeitet und an die KI gesendet. Die generierten Übungen werden gespeichert und erscheinen anschließend direkt im Nutzerprofil.
```mermaid
sequenceDiagram
......@@ -220,9 +186,10 @@ sequenceDiagram
Backend-->>Frontend: Antwort mit neuem Plan
Frontend-->>User: Zeigt neuen Trainingsplan an
```
*Erstelle Prompt für KI (z. B. "Erstelle 3 Trainings für 25 Jahre, 85 kg...")
- Das Backend generiert dynamisch einen Prompt im JSON-Format. Dieses wird dann an die Claude API geschickt.
\*Erstelle Prompt für KI (z. B. "Erstelle 3 Trainings für 25 Jahre, 85 kg...")
- Das Backend generiert dynamisch einen Prompt im JSON-Format. Dieses wird dann an die Claude API geschickt.
### 4.6 Sequenzdiagramm: Ernährungsplan mit KI
......@@ -242,7 +209,7 @@ sequenceDiagram
Backend->>DB: Lade Nutzerdaten (Alter, Gewicht, Zielgewicht, Vorlieben, Allergien)
DB-->>Backend: Gibt Nutzerdaten zurück
Backend->>Backend: Erstelle Prompt für KI (z. B. "Erstelle 3 Rezepte für eine 25-jährige Person mit 85 kg, Ziel: 75 kg, vegan.")
Backend->>Backend: Erstelle Prompt für KI (z. B. "Erstelle 3 Rezepte für eine 25-jährige Person mit 85 kg, Ziel: 75 kg, vegan.")
Backend->>KI: Sende Prompt an Claude API
KI-->>Backend: Gibt JSON-Antwort mit Rezepten zurück
......@@ -253,64 +220,61 @@ sequenceDiagram
Backend-->>Frontend: Antwort mit neuem Ernährungsplan
Frontend-->>User: Zeigt neuen Ernährungsplan an
```
*Erstelle Prompt für KI (z. B. "Erstelle 3 Rezepte für eine 25-jährige Person mit 85 kg, Ziel: 75 kg, vegan.")
- Auch hier erstellt das Backend automatisch einen Prompt als Text. Der Output erfolgt im JSON-Format mit Titel, Zutatenliste und Zubereitung.
\*Erstelle Prompt für KI (z. B. "Erstelle 3 Rezepte für eine 25-jährige Person mit 85 kg, Ziel: 75 kg, vegan.")
## 5. Benutzerdokumentation
- Auch hier erstellt das Backend automatisch einen Prompt als Text. Der Output erfolgt im JSON-Format mit Titel, Zutatenliste und Zubereitung.
## 5. Benutzerdokumentation
### 5.1 Zielgruppen
Wer nutzt die App und was können die User in der App machen?
Die App richtet sich an Personen, die ihre Fitness verbessern möchten. Es gibt aktuell nur eine Rolle und das ist der User. Nutzer:innen können Trainings- und Ernährungspläne generieren lassen, an Challenges teilnehmen und Punkte sammeln.
Die App richtet sich an Personen, die ihre Fitness verbessern möchten. Es gibt aktuell nur eine Rolle und das ist der User. Nutzer:innen können Trainings- und Ernährungspläne generieren lassen, an Challenges teilnehmen und Punkte sammeln.
### 5.2 Navigation und Hauptfunktionen der App
Die App ist in folgende Hauptbereiche unterteilt:
Die App ist in folgende Hauptabschnitte unterteilt:
- **Home**: Übersicht und Einstieg
- **My Workouts**: Generierte Workouts durch KI
- **My Workout**: Generierte Workouts durch KI
- **Nutrition**: Generierte Rezepte durch KI
- **Challenges**: Rangliste und Punkte
- **Profil**: Einstellungen
- **Challenges**: Challenges unter Freunden, Freunde verwalten, Ranglisten, Punkte
- **Profil**: Persönliche Daten und Equipment
### 5.3 Hilfe & FAQ
Für allgemeine Fragen und Fragen zur Bedienung gibt es in der App einen eigenen FAQ-Bereich.
## 6. Developer Guide – Project Setup & Local Development
Welcome to this open-source project!
Welcome to this open-source project!\
This guide explains how to set up and run the application locally. It ensures that all contributors use a consistent environment to streamline development and collaboration.
---
### Prerequisites
### :white_check_mark: Prerequisites
To avoid compatibility issues, please use the following versions:
| Tool / Library | Required Version |
|--------------------------|------------------|
| IntelliJ IDEA | 2025.1 |
| Java JDK | 21 |
| Git | 2.49.0 |
| Node.js | 23.11.0 |
| npm | 10.9.2 |
| Spring Boot | 3.4.4 |
| Maven | 3.9.9 |
| MySQL | 9.3.0 |
| Tool / Library | Required Version |
|----------------|------------------|
| IntelliJ IDEA | 2025.1 |
| Java JDK | 21 |
| Git | 2.49.0 |
| Node.js | 23.11.0 |
| npm | 10.9.2 |
| Spring Boot | 3.4.4 |
| Maven | 3.9.9 |
| MySQL | 9.3.0 |
---
### 🔁 Clone the Repository
### :repeat: Clone the Repository
Make sure Git is installed:
👉 [Download Git](https://git-scm.com/downloads)
Make sure Git is installed:\
:point_right: [Download Git](https://git-scm.com/downloads)
Then clone the project:
......@@ -323,22 +287,22 @@ Replace the URL with the actual repository path.
---
## ⚙️ Backend Setup (Java + Spring Boot + Maven + H2)
## :gear: Backend Setup (Java + Spring Boot + Maven + H2)
### 1. Install Java 21
- **macOS**:
```bash
brew install temurin
```
- **Linux**:
```bash
sudo apt update
sudo apt install openjdk-21-jdk
```
- **Windows**:
- **Windows**:\
[Download Oracle JDK 21](https://www.oracle.com/java/technologies/javase/jdk21-archive-downloads.html)
**Check installation:**
......@@ -352,17 +316,17 @@ java -version
### 2. Install Maven
- **macOS**:
```bash
brew install maven
```
- **Linux**:
```bash
sudo apt update
sudo apt install maven
```
- **Windows**:
- **Windows**:\
[Download Maven](https://maven.apache.org/download.cgi)
**Check installation:**
......@@ -383,21 +347,21 @@ mvn spring-boot:run
When running:
- Swagger UI: [http://localhost:8080/swagger-ui.html](http://localhost:8080/swagger-ui.html)
- Swagger UI: http://localhost:8080/swagger-ui.html
**MySQL Login:**
- JDBC URL: `jdbc:mysql://localhost:3306/go4champ`
- Username: `go4champ_user`
- Password: <...>
- Password: \<...\>
---
## 💻 Frontend Setup (React + Node.js)
## :computer: Frontend Setup (React + Node.js)
### 1. Install Node.js and npm
👉 [Download Node.js](https://nodejs.org/)
:point_right: [Download Node.js](https://nodejs.org/)
**Verify installation:**
......@@ -423,20 +387,18 @@ npm install
npm run dev
```
This will launch the app at:
👉 [http://localhost:5173/](http://localhost:5173/)
This will launch the app at:\
:point_right: [http://localhost:5173/](http://localhost:5173/)
---
### 🧠 Notes & Conventions
### :brain: Notes & Conventions
- Backend port: `8080`
- Frontend port: `5173`
- Backend port: `8080`
- Frontend port: `5173`
- API requests from the frontend should use `http://localhost:8080`
## 🧪 Testing
## :test_tube: Testing
### Backend
......@@ -450,20 +412,18 @@ mvn test
npm test
```
### 💡 Suggestions
### :bulb: Suggestions
To further improve the project setup:
- Add `.env` files for API URLs and secrets
- Use ESLint and Prettier for consistent code formatting
- Provide Git hooks (e.g., Husky) to check commits
- Create a `CONTRIBUTING.md` with collaboration guidelines
- Add `.env` files for API URLs and secrets
- Use ESLint and Prettier for consistent code formatting
- Provide Git hooks (e.g., Husky) to check commits
- Create a `CONTRIBUTING.md` with collaboration guidelines
---
### 🚀 Quick Setup Summary
### :rocket: Quick Setup Summary
```bash
# Clone the project
......@@ -481,167 +441,155 @@ npm run dev
---
## 🙌 Contribution
## :raised_hands: Contribution
Feel free to fork, branch, and open merge requests!
Feel free to fork, branch, and open merge requests!\
We welcome all contributions.
## 7. Testing
### 7.1 Playtest
Unsere App wurde in einem Playtest hinsichtlich auf Bedienung, Funktionen und Design getestet.
- **Ergebnisse vom Playtest:** [Playtest_Auswertung.pdf](uploads/389799bece71bafedbfa93dbed9283f4/Playtest_Auswertung.pdf)
- **Unsere Schlussfolgerung:** [Nach_Playtest.pdf](uploads/502893bde951d61a727881c1f41f17a1/Nach_Playtest.pdf)
Was wir danach verbessert haben:
- Dark Mode und Media Queries wurden überarbeitet
- Selbst erstellte Workouts werden jetzt richtig gespeichert und gelöscht
- KI-Prompt wurde ausgebessert
- CSS verbessert
### 7.2 Integrationstests
Framework: **JUnit 5** mit **Spring Boot @SpringBootTest** und **MockMvc**
Unter anderem getestete Komponenten:
- **UserController:** Registrierung, Login, E-Mail-Verifizierung
- **TrainingController:** Erstellen, Abrufen, Löschen von Trainings
- **TrainingsPlanController:** KI-generierte Pläne erstellen, abrufen, ändern
- **AiController:** KI-Aufruf, Validierung und Speicherung von Antworten
**Ziel:**
Sicherstellen, dass die wichtigen REST-Endpunkte korrekt funktionieren, erwartete HTTP-Codes zurückgeben und mit der Datenbank kommunizieren.
**Ziel:** Sicherstellen, dass die wichtigen REST-Endpunkte korrekt funktionieren, erwartete HTTP-Codes zurückgeben und mit der Datenbank kommunizieren.
**Mocking:**
Für Authentifizierung wurde @WithMockUser eingesetzt, um Token-basierte Schutzmechanismen zu simulieren.
**Testabdeckung:**
Erfolgsfälle (200 OK), Fehlerfälle (400, 403, 404) sowie typische Nutzerszenarien wurden abgedeckt.
**Mocking:** Für Authentifizierung wurde @WithMockUser eingesetzt, um Token-basierte Schutzmechanismen zu simulieren.
**Testabdeckung:** Erfolgsfälle (200 OK), Fehlerfälle (400, 403, 404) sowie typische Nutzerszenarien wurden abgedeckt.
### 7.3 Testreport
Unsere Tests werden automatisiert bei jedem Push in GitLab über die .gitlab-ci.yml ausgeführt.
**Testausführung:**
Maven (mvn test) führt alle Integrationstests aus
**Testausführung:** Maven (mvn test) führt alle Integrationstests aus
**GitLab zeigt nach jeder Pipeline:**
- Anzahl der durchgeführten Tests
- Anzahl der fehlgeschlagenen Tests
- Laufzeit der Testphase
- Logausgaben mit Fehlerdetails
- Logausgaben mit Fehlerdetails
Die automatisierten Reports helfen, Fehler frühzeitig zu erkennen und schnell zu beheben.
## 8. Arbeitsprozess
### 8.1 Tools für die Zusammenarbeit
- GitLab: Codeverwaltung, Versionskontrolle, Wiki (Dokumentation), Issues
- GitLab: Codeverwaltung, Versionskontrolle, Wiki (Dokumentation), Issues
### 8.2 Meetings
- Teammetings über Discord
- On-Demand-Calls bei Fragen (ebenfalls über Discord)
- Sonst über WhatsApp
### 8.3 Vorgehen
Aufgaben wurden entweder über GitLab Issues verteilt, die im Verlauf des Semesters teilweise verloren gingen, oder direkt in Meetings besprochen und zugewiesen.
## 9. Reflexion
### 9.1 Was lief gut?
- Nach klarer Aufgabenverteilung konnten alle gezielter und effizienter arbeiten.
- Die Zusammenarbeit in kleineren Gruppen hat sich als besonders produktiv erwiesen.
### 9.2 Besonderheiten & Herausforderungen
- Zu Beginn war die Kommunikation innerhalb der Gruppe eher unregelmäßig.
- Es fehlten feste Meeting Zeiten.
- Es fehlten feste Meeting-Zeiten.
- Die Aufgabenverteilung war anfangs unstrukturiert und unklar.
### 9.3 Persönliche Learnings
- Ohne regelmäßige Kommunikation entstehen schnell Missverständnisse oder doppelte Arbeit.
- Eine strukturierte Projektplanung mit visuellen Konzepten, Aufgabenverteilung und technischer Vorbereitung ist wichtig und sollte frühzeitig erfolgen.
### 9.4 Rückblick & Verbesserungen
- Für zukünftige Projekte würden wir von Anfang an feste wöchentliche Meetings vereinbaren, um Fortschritte, offene Punkte und Probleme gemeinsam zu besprechen.
- Auch eine verbindliche Aufgabenverteilung zu Wochenbeginn wäre hilfreich, um strukturierter zu arbeiten.
- Für zukünftige Projekte würden wir von Anfang an feste wöchentliche Meetings vereinbaren, um Fortschritte, offene Punkte und Probleme gemeinsam zu besprechen und die Kommunikation zu verfestigen/verbessern.
- Auch eine verbindliche Aufgabenverteilung zu Wochenbeginn wäre hilfreich, um strukturierter und effizienter zu arbeiten.
- Es wäre hilfreich gewesen, sich konsequenter an die GitLab Issues und Milestones zu halten, um einen gemeinsamen Zeitplan zu haben und mehr Transparenz sowie Klarheit im Projektverlauf zu schaffen.
### 9.5 Was wir aus der Veranstaltung mitgenommen haben
### 9.5 Was ich aus der Veranstaltung mitgenommen habe
- Die Bedeutung von Teamorganisation und klarer Kommunikation wurde im Projektverlauf deutlich.
- Technisch habe wir gelernt, wie man eine App mit Frontend, Backend, KI-Anbindung und Datenbank aufbaut.
- Die Bedeutung und Notwendigkeit von Teamorganisation und klarer Kommunikation wurde im Projektverlauf deutlich.
- Technisch haben wir gelernt, wie man eine Anwendung mit Frontend, Backend, KI-Anbindung und Datenbank aufbaut.
- Frontend- und Backend-Teammitglieder konnten dabei gegenseitig voneinander lernen. Sei es beim Verständnis von API-Schnittstellen oder beim Design nutzerfreundlicher Oberflächen.
- Besonders für Teammitglieder ohne Vorerfahrung war der Einsatz von Tools wie GitLab und Swagger sehr lehrreich.
## 10. Ausblick & Future Work
### 10.1 Offene Punkte
- Nutrition-Bereich
- KI-Chatbot
- Badges (Ausarbeitung der Gamification)
### 10.2 Ideen für zukünftige Features
- Vollständige Umsetzung des Nutrition-Bereichs inklusive Erstellung individueller Ernährungspläne durch die KI
- Vollständige Umsetzung des KI-Chatbots zur Unterstützung und weiteren Motivation
Die folgenden Screenshots zeigen eine erste Umsetzung dieser Ideen:
![Ausblick_FutureWork](uploads/2d9febbdfe2c70f0c4a0af99f93e03dc/Ausblick_FutureWork.png)
Die folgenden Screenshots zeigen eine erste Umsetzung dieser Ideen: ![Ausblick_FutureWork](uploads/2d9febbdfe2c70f0c4a0af99f93e03dc/Ausblick_FutureWork.png)
## 11. Quellen
- KI (ChatGPT, Gemini): Hilfe zur Beseitigung von Fehlern im Code
- KI (ChatGPT, Gemini): Hilfe zur Beseitigung von Fehlern im Code
- YouTube Tutorials: Um neue Konzepte zu verstehen, Videos zu Thymeleaf, React Tutorials und Maven Installierung
- Mermaid: für die Sequenzdiagramme
- React Library: [React](https://react.dev/)
## 12. Anhang
### 12.1 Meeting-Protokolle
- 1. [Protokoll_16.04..pdf](uploads/3b7d40cd6b8dbcfbfc71934c0dd3ef0a/Protokoll_16.04..pdf)
- 2. [Protokoll_23.04..pdf](uploads/85a9b7f1d9673a1b955d83a7cf8bd774/Protokoll_23.04..pdf)
- 3. [Protokoll_07.05..pdf](uploads/3ebb13ccd789a38fa44bb7325b3010b6/Protokoll_07.05..pdf)
- 4. [Protokoll_21.05..pdf](uploads/f9e7457a5ae4d6cda96ff1d4db136c93/Protokoll_21.05..pdf)
- 5. [Protokoll_05.06..pdf](uploads/f38787bf0962d0dd86cf4eeae7f11ed2/Protokoll_05.06..pdf)
- 6. [Protokoll_18.06..pdf](uploads/38a6e4db560c3c50559018f8aa9e5ef7/Protokoll_18.06..pdf)
- 7. [Protokoll_25.06..pdf](uploads/12f9bb232a43fbba1e03a05f3e4f976f/Protokoll_25.06..pdf)
- 8. [Protokoll_02.07..pdf](uploads/1bf2669133f359470133e7b7e98f30a4/Protokoll_02.07..pdf)
- 9. [Protokoll_09.07..pdf](uploads/9d6ece53c7e44e437da23a6f5a9ee6f0/Protokoll_09.07..pdf)
- [Protokoll_16.04..pdf](uploads/3b7d40cd6b8dbcfbfc71934c0dd3ef0a/Protokoll_16.04..pdf)
- [Protokoll_23.04..pdf](uploads/85a9b7f1d9673a1b955d83a7cf8bd774/Protokoll_23.04..pdf)
- [Protokoll_07.05..pdf](uploads/3ebb13ccd789a38fa44bb7325b3010b6/Protokoll_07.05..pdf)
- [Protokoll_21.05..pdf](uploads/f9e7457a5ae4d6cda96ff1d4db136c93/Protokoll_21.05..pdf)
- [Protokoll_05.06..pdf](uploads/f38787bf0962d0dd86cf4eeae7f11ed2/Protokoll_05.06..pdf)
- [Protokoll_18.06..pdf](uploads/38a6e4db560c3c50559018f8aa9e5ef7/Protokoll_18.06..pdf)
- [Protokoll_25.06..pdf](uploads/12f9bb232a43fbba1e03a05f3e4f976f/Protokoll_25.06..pdf)
- [Protokoll_02.07..pdf](uploads/1bf2669133f359470133e7b7e98f30a4/Protokoll_02.07..pdf)
- [Protokoll_09.07..pdf](uploads/9d6ece53c7e44e437da23a6f5a9ee6f0/Protokoll_09.07..pdf)
### 12.2 Skizzen & Ideen
- Userboard Skizze: [Userboard.pdf](uploads/ee3c3cbf726d881e577fcb77f5e3aa81/Userboard.pdf)
- Userboard Skizze: [Userboard.pdf](uploads/ee3c3cbf726d881e577fcb77f5e3aa81/Userboard.pdf)
### 12.3 Mock-ups
- Home: [Home.pdf](uploads/f97bc5e4b10f7d0b252631a8b7ba2ccb/Home.pdf)
- Mein Bereich: [Mein_Bereich.pdf](uploads/bad46d85818b87959da52f2721bba36f/Mein_Bereich.pdf)
- Training: [Training.pdf](uploads/a0c13fd89bcf5b9c31ee5a74d9f5a36b/Training.pdf)
- Equipment: [Equipment.pdf](uploads/d8dc05b4710965168362d896990a8afc/Equipment.pdf)
- Ernährung: [Ernährung.pdf](uploads/167b6839a06a9d526cb5e6546fe2b31f/Ernährung.pdf)
- Ernährung: [Ernährung.pdf](uploads/167b6839a06a9d526cb5e6546fe2b31f/Ern%C3%A4hrung.pdf)
### 12.4 Pitch & Abschlusspräsentation
- Pitch: [Go4Champion.pdf](uploads/868866eb43bf1cd9d4bea4d6bd271910/Go4Champion.pdf)
- Abschlusspräsentation: [GO4CHAMPION_PRÄSI.pdf](uploads/ac82a5e607d3994e4a71ff1cfeac3939/GO4CHAMPION_PRÄSI.pdf)
- Abschlusspräsentation: [GO4CHAMPION_PRÄSI.pdf](uploads/ac82a5e607d3994e4a71ff1cfeac3939/GO4CHAMPION_PR%C3%84SI.pdf)
\ No newline at end of file