Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
194 commits
Select commit Hold shift + click to select a range
38c9474
Added Algorithm, which returns a sorted list of recipes of an matchin…
PrussianBaron May 4, 2026
ef43421
Added Filtering
PrussianBaron May 4, 2026
e701e83
Tests für Database, passwort überprüfung und email überürufung wurden…
Nicoolaus May 4, 2026
ef3fd46
ci pipeline abhägigkeit mit rein gemacht
Nicoolaus May 4, 2026
d2c72c0
Feat bei Ci yml entfernt
Nicoolaus May 5, 2026
70b7d97
Delete project/data/LazyCookDB.sqlite3
GalacticCodeGambit May 5, 2026
7b20faf
Feature: Forgot Password link in signin modal. Popup for Email Input.…
EdenBernhard May 5, 2026
0885213
Feat/ci cd add lint (#142)
GalacticCodeGambit May 5, 2026
a0b9722
Merge remote-tracking branch 'origin/feat/test' into blatt15
GalacticCodeGambit May 5, 2026
534fef4
Merge remote-tracking branch 'origin/blatt15' into blatt15
GalacticCodeGambit May 5, 2026
05c6f83
update super-linter to version 8.6.0 in CI configuration
GalacticCodeGambit May 7, 2026
e821f76
Test Linter
GalacticCodeGambit May 7, 2026
1930c91
Test Linter
GalacticCodeGambit May 7, 2026
68dcdef
Feature: Email and Password change popup width changed
EdenBernhard May 8, 2026
2225fab
Separate linter configuration into its own workflow file (#149)
GalacticCodeGambit May 8, 2026
7f7f042
Update Node.js version in Dockerfile-frontend to 24.1.0
GalacticCodeGambit May 8, 2026
de9f3e4
Merge remote-tracking branch 'origin/blatt15' into RecipeAlgorithm
PrussianBaron May 8, 2026
64be75d
Tested the recipe algorithim
PrussianBaron May 9, 2026
fb33247
Feature: Fix problem with refresh token and include show Password
EdenBernhard May 9, 2026
48251d2
Feature: forgot password functionality works with redirection to home…
EdenBernhard May 10, 2026
c42c310
Merge branch 'feat/forgot-password-functionality'
EdenBernhard May 10, 2026
bee70b0
added SaveInDB Methods
PrussianBaron May 10, 2026
38dbb2d
Potential fix for pull request finding
EdenBernhard May 10, 2026
b09dcbd
Potential fix for pull request finding
EdenBernhard May 10, 2026
833b80e
Potential fix for pull request finding
EdenBernhard May 10, 2026
9f34b74
Fix: Copilot review suggestion
EdenBernhard May 10, 2026
bb1a733
Fix: Copilot review suggestion
EdenBernhard May 10, 2026
86d97a2
Fix: Copilot review suggestion
EdenBernhard May 10, 2026
a495626
Fix: Copilot review suggestion
EdenBernhard May 10, 2026
0501cd8
Feat: forgot password functionality (#151)
EdenBernhard May 10, 2026
9f2abc6
Merge remote-tracking branch 'origin/blatt17'
EdenBernhard May 10, 2026
e90f276
Feat: show top 5 incredients as options (#152)
EdenBernhard May 11, 2026
8ec11cb
Merge remote-tracking branch 'origin/blatt17' into RecipeAlgorithm
PrussianBaron May 11, 2026
a47db44
Black used
PrussianBaron May 11, 2026
0670d45
Merge pull request #153 to blatt17 from RecipeAlgorithm
PrussianBaron May 11, 2026
4f6c21d
Merge remote-tracking branch 'origin/blatt17'
EdenBernhard May 11, 2026
3c02e9f
Info: Standort von Impressum und Datenschutz
EdenBernhard May 11, 2026
a7ceb96
Added Review-Protokoll-01
GalacticCodeGambit May 12, 2026
42e06bb
Clear participant roles in review protocol
GalacticCodeGambit May 12, 2026
e27f003
Update participants and review focus in documentation
GalacticCodeGambit May 12, 2026
3792403
Made the required RecipeSUCUK changes
PrussianBaron May 18, 2026
5db1e8d
Rename RecipeSucuk.py to RecipeSUCUK.py
PrussianBaron May 18, 2026
ce37d75
Merge remote-tracking branch 'origin/main'
EdenBernhard May 18, 2026
4073d82
rezepteanzeige für die rezepte
Nicoolaus May 19, 2026
8e71f2d
Python Black Formatierung umgesetzt
GalacticCodeGambit May 20, 2026
dde8ebd
Fix typo in findRecipes function parameter name
GalacticCodeGambit May 20, 2026
68c92f3
Add import statement for Database module in RecipeSUCUK.py
GalacticCodeGambit May 20, 2026
db157cb
Upgrade actions/checkout from v4 to v5 in CI configuration files
GalacticCodeGambit May 20, 2026
e002531
Correct directory name in README and update email variable for clarity
GalacticCodeGambit May 20, 2026
e7a7603
Improve grammar and punctuation in README description
GalacticCodeGambit May 20, 2026
65c9fc2
Refactor CSS class names for consistency and clarity (#171)
GalacticCodeGambit May 21, 2026
d440801
Upgrade CodeQL action versions from v3 to v4 in CI configuration
GalacticCodeGambit May 22, 2026
e751663
Pin npm dependencies to specific versions for stability and update ve…
GalacticCodeGambit May 22, 2026
4d1a692
Rezeptanzeige ohne match.
Nicoolaus May 22, 2026
c6b08b8
Merge remote-tracking branch 'refs/remotes/origin/blatt18' into feat/…
Nicoolaus May 23, 2026
8d51081
Rezeptanzeige mit match aber auf english
Nicoolaus May 23, 2026
3b021a7
Merge remote-tracking branch 'origin/main'
EdenBernhard May 26, 2026
7aa6840
Fix: Kein Plan
EdenBernhard May 26, 2026
1df3440
Add SonarCloud badge to README
GalacticCodeGambit May 27, 2026
3baf871
Merge remote-tracking branch 'origin/main'
EdenBernhard May 27, 2026
b933bfc
defined most of the overall Structure in ImportRecipe
PrussianBaron May 27, 2026
c739970
Merge branch 'Projektabschluss' of https://github.com/GalacticCodeGam…
PrussianBaron May 27, 2026
49b8728
rezepteanzeige für die rezepte
Nicoolaus May 27, 2026
2918ec1
Fix: Kein Plan
EdenBernhard May 27, 2026
fa1d2ab
suchleiste und direkte rezeptanzeige
Nicoolaus May 27, 2026
9b4b47c
Merge remote-tracking branch 'origin/Projektabschluss'
EdenBernhard May 27, 2026
c6152a7
Docs: Updaten des Status der Risiken
EdenBernhard May 27, 2026
eb9be01
Merge remote-tracking branch 'origin/Projektabschluss' into feat/Reze…
Nicoolaus May 27, 2026
5477a9b
finished the ImportRecipes method (json still need to be read) + Chan…
PrussianBaron May 27, 2026
f3f558f
Merge branch 'Projektabschluss' of https://github.com/GalacticCodeGam…
PrussianBaron May 27, 2026
ccd48cd
Refactor: Update class names for consistency in popup components
GalacticCodeGambit May 27, 2026
b27806f
Refactor: Update class and CSS class names for consistency in change …
GalacticCodeGambit May 27, 2026
f73188a
normalized the json data and fclompeted Import Recipes.py (there may …
PrussianBaron May 28, 2026
4b19a5e
recipes_perfect added to project
PrussianBaron May 28, 2026
0912654
Restrict SonarCloud workflow to main branch only
GalacticCodeGambit May 29, 2026
f86aa1e
Restrict SonarCloud analysis to 'main' branch only
GalacticCodeGambit May 29, 2026
9b4330d
suchleiste und direkte rezeptanzeige mit allen changes von projektabs…
Nicoolaus May 30, 2026
f6f8440
rezepteanzeige mit popup für zubereitung
Nicoolaus May 31, 2026
e5cdcfe
Docs: Upload ERM Diagramm
EdenBernhard Jun 2, 2026
78dd742
Docs: Delete old ERM Diagramm
EdenBernhard Jun 2, 2026
540b90a
Docs: Delete old ERM Diagramm
EdenBernhard Jun 2, 2026
a5968b3
Test: New Backend Test for Database.py
EdenBernhard Jun 2, 2026
f876920
Fix: Delete old RecipeSUCUK.py
EdenBernhard Jun 2, 2026
35bfa85
Tests: New Test for RecipeSucuk.py
EdenBernhard Jun 2, 2026
daef0cc
Fix: Sonarqube Warning
EdenBernhard Jun 2, 2026
fa45f9f
Fix: Security Hotspots
EdenBernhard Jun 2, 2026
6cc9bf2
Fix: Some refactoring
EdenBernhard Jun 2, 2026
f07c6da
Update of our famed Class Diagram
PrussianBaron Jun 2, 2026
60b0edc
Oh sorry mate, here comes the fabulous Class Diagram
PrussianBaron Jun 2, 2026
32c50c0
Merge branch 'Projektabschluss' of https://github.com/GalacticCodeGam…
PrussianBaron Jun 2, 2026
774f182
Docs: Klassendiagramm hinzugefügt
EdenBernhard Jun 3, 2026
857fbdd
Docs: Klassendiagramm hinzugefügt
EdenBernhard Jun 3, 2026
f45a7ed
Rename "RecipeSucuk.py" to "RecipeSUCUK.py"
GalacticCodeGambit Jun 3, 2026
dd67d95
Remove placeholder text from Impressum page
GalacticCodeGambit Jun 3, 2026
dae4d1e
Update: Upgrade @types/react to version 19.2.16 and react-markdown to…
GalacticCodeGambit Jun 3, 2026
2b93a4a
Update: Add default JWT_SECRET_KEY for local development in compose.y…
GalacticCodeGambit Jun 3, 2026
3a7e924
Docs: Update UML-Diagramme
EdenBernhard Jun 3, 2026
67a0d1e
Merge remote-tracking branch 'origin/Projektabschluss'
EdenBernhard Jun 3, 2026
7f0363e
Fix UML diagram link in SRS document
EdenBernhard Jun 3, 2026
d92c2ac
Fix UML activity diagram link in SRS
EdenBernhard Jun 3, 2026
0a1df0b
Docs: Update UML-Diagramme
EdenBernhard Jun 3, 2026
b8ef582
Merge remote-tracking branch 'origin/Projektabschluss'
EdenBernhard Jun 3, 2026
0aee0c5
Fix UML diagram links in SRS
EdenBernhard Jun 3, 2026
10310ca
Fix grammar and clarify impact on recipe suggestions
EdenBernhard Jun 3, 2026
054a7ba
Fix: compose.yml
EdenBernhard Jun 3, 2026
fcf45f2
Merge remote-tracking branch 'origin/Projektabschluss'
EdenBernhard Jun 3, 2026
779ac92
Revise recipe display decision and limits
EdenBernhard Jun 3, 2026
1734fcb
Update non-functional requirements in SRS
EdenBernhard Jun 3, 2026
7cce687
Remove local development fallback comments from compose.yaml
GalacticCodeGambit Jun 3, 2026
141b00c
Merge remote-tracking branch 'origin/Projektabschluss' into Projektab…
GalacticCodeGambit Jun 3, 2026
11986e6
Refactor: Update Datenschutz and Review-Protokoll documentation for c…
GalacticCodeGambit Jun 3, 2026
0f55b32
Add Testbericht documenting testing scope and strategy for LazyCook
GalacticCodeGambit Jun 3, 2026
743222b
Update Testbericht with detailed code coverage metrics for backend tests
GalacticCodeGambit Jun 3, 2026
2c5fe1b
Update recipe display and API endpoints
EdenBernhard Jun 3, 2026
d286136
Enhance documentation with new user scenarios
EdenBernhard Jun 3, 2026
963dd8f
Update responsibilities and deadlines in review document
EdenBernhard Jun 3, 2026
f1ca9d8
Update CodeReafktorisierungZusammenfassungen.md
EdenBernhard Jun 3, 2026
50f129e
Docs: CI/CD-Übersicht
EdenBernhard Jun 3, 2026
86fece4
Add Projekt-Retrospektive.png
GalacticCodeGambit Jun 3, 2026
777896d
Add Names
GalacticCodeGambit Jun 3, 2026
01b59d9
Merge remote-tracking branch 'origin/Projektabschluss' into Projektab…
GalacticCodeGambit Jun 3, 2026
4d03b81
Update architectural decision to use SRP instead of LSP
EdenBernhard Jun 3, 2026
dedb3f6
Update design principles from LSP to SRP
EdenBernhard Jun 3, 2026
e9526e8
Update non-functional requirements to reflect design principles
EdenBernhard Jun 3, 2026
6d71761
Fix RecipeSUCUK test module references
Copilot Jun 3, 2026
22043ff
Update JWT secret key default value in compose.yaml
GalacticCodeGambit Jun 3, 2026
32cc8c2
Added missing space
GalacticCodeGambit Jun 3, 2026
1e883d8
Refactor: Umstellen der Codebasis auf SRP
EdenBernhard Jun 3, 2026
72e6b17
Merge remote-tracking branch 'origin/Projektabschluss'
EdenBernhard Jun 3, 2026
e7f60df
Refactor: Umstellen der Codebasis auf SRP
EdenBernhard Jun 3, 2026
556db23
Refactor: Umstellen der Codebasis auf SRP
EdenBernhard Jun 3, 2026
4ca8adb
Refactor: Umstellen der Codebasis auf SRP
EdenBernhard Jun 3, 2026
25f728e
Refactor: Umstellen der Codebasis auf SRP
EdenBernhard Jun 3, 2026
3e88f88
Refactor: Umstellen der Codebasis auf SRP
EdenBernhard Jun 3, 2026
3005050
Added missing space
GalacticCodeGambit Jun 3, 2026
6bcca35
Merge remote-tracking branch 'origin/Projektabschluss' into Projektab…
GalacticCodeGambit Jun 3, 2026
0ced807
Rename screenshots
GalacticCodeGambit Jun 3, 2026
4c9adf4
Rename screenshots
GalacticCodeGambit Jun 3, 2026
9aa9695
Lint Python Code
GalacticCodeGambit Jun 3, 2026
770ae1b
Added Star History
GalacticCodeGambit Jun 3, 2026
eb98e79
Add files via upload
PrussianBaron Jun 5, 2026
27f773d
import of recipes should work fine, but why destroy our backend qwq?
PrussianBaron Jun 6, 2026
e01d4b1
Update ADR05.md
GalacticCodeGambit Jun 7, 2026
6c4b7b6
Update ADR05.md
GalacticCodeGambit Jun 7, 2026
c8a9538
Merge remote-tracking branch 'origin/Projektabschluss' into feat/Reze…
Nicoolaus Jun 7, 2026
6cb54d4
Merge remote-tracking branch 'origin/Projektabschluss' into feat/Reze…
Nicoolaus Jun 8, 2026
61586ea
Datenbank mit Rezepten adden
EdenBernhard Jun 8, 2026
cb6fbd4
Update: Klassendiagramm
EdenBernhard Jun 8, 2026
3379bac
Update: Softwarearchitekturdokument.md an neue Backendstruktur angepasst
EdenBernhard Jun 8, 2026
a666538
Update: Handout fertig & zusätzliche Dokumente
EdenBernhard Jun 8, 2026
64520b8
Update: Aufräumen
EdenBernhard Jun 8, 2026
00a10cd
Update Handout_LazyCook.md
GalacticCodeGambit Jun 8, 2026
cc811e4
Fix
EdenBernhard Jun 8, 2026
b2cccbf
Merge remote-tracking branch 'origin/Projektabschluss'
EdenBernhard Jun 8, 2026
fd07858
Update Handout_LazyCook.md
GalacticCodeGambit Jun 8, 2026
6864982
Update README.md
GalacticCodeGambit Jun 8, 2026
167155a
Linting Python Black
GalacticCodeGambit Jun 8, 2026
69caca4
Fix
EdenBernhard Jun 8, 2026
5adb17e
Merge remote-tracking branch 'origin/Projektabschluss'
EdenBernhard Jun 8, 2026
12c5944
Merge remote-tracking branch 'origin/Projektabschluss' into feat/Reze…
Nicoolaus Jun 8, 2026
3ac7f9b
neue json datei eingebunden und neu gemacht
Nicoolaus Jun 8, 2026
426d579
Change Name to "Lint Code Base"
GalacticCodeGambit Jun 9, 2026
2b003b5
Merge remote-tracking branch 'origin/feat/Rezeptanzeige' into feat/Re…
Nicoolaus Jun 9, 2026
63e5a85
Fix
EdenBernhard Jun 10, 2026
ed9a7ae
Merge remote-tracking branch 'refs/remotes/origin/Projektabschluss' i…
Nicoolaus Jun 10, 2026
3782e87
Merge remote-tracking branch 'refs/remotes/origin/Projektabschluss' i…
Nicoolaus Jun 10, 2026
23aba1e
Fix
EdenBernhard Jun 10, 2026
6c868d6
Merge remote-tracking branch 'refs/remotes/origin/Projektabschluss' i…
Nicoolaus Jun 10, 2026
d9c82f9
Rename CodeReafktorisierungZusammenfassungen.md to CodeRefaktorisieru…
GalacticCodeGambit Jun 10, 2026
be98996
Update README.md
GalacticCodeGambit Jun 10, 2026
e9d0fd9
Update README.md
GalacticCodeGambit Jun 10, 2026
2e30b7d
Update README.md
GalacticCodeGambit Jun 10, 2026
d059ce1
Update README.md
GalacticCodeGambit Jun 10, 2026
30c0e7c
CI/CD Fix hopefully
EdenBernhard Jun 10, 2026
af9340c
Merge remote-tracking branch 'origin/Projektabschluss'
EdenBernhard Jun 10, 2026
42aa048
CI/CD Fix hopefully
EdenBernhard Jun 10, 2026
223b413
CI/CD Fix hopefully
EdenBernhard Jun 10, 2026
5c5f325
CI/CD Fix hopefully
EdenBernhard Jun 10, 2026
5711b05
CI/CD Fix hopefully
EdenBernhard Jun 10, 2026
d8e7e47
Update Pictures
GalacticCodeGambit Jun 10, 2026
41b176d
CI/CD Fix hopefully
EdenBernhard Jun 10, 2026
390bc89
Merge remote-tracking branch 'origin/Projektabschluss'
EdenBernhard Jun 10, 2026
929fcba
es fucking funktioniert alles: wuhuuuuuuu
Nicoolaus Jun 10, 2026
0c95dd0
Merge pull request #205 from GalacticCodeGambit/feat/Rezeptanzeige
Nicoolaus Jun 10, 2026
0964163
Update README.md
GalacticCodeGambit Jun 10, 2026
86054c3
Update Pictures
GalacticCodeGambit Jun 10, 2026
8d4e080
Anpassung Klassendiagramm
EdenBernhard Jun 10, 2026
f268d78
Merge remote-tracking branch 'origin/Projektabschluss'
EdenBernhard Jun 10, 2026
934c808
Linter Python Black
GalacticCodeGambit Jun 10, 2026
312e4a3
Anpassung Tests
EdenBernhard Jun 10, 2026
65384b8
Merge remote-tracking branch 'origin/Projektabschluss'
EdenBernhard Jun 10, 2026
14221bd
SonarQube Full Metrics Report
EdenBernhard Jun 10, 2026
8486244
Merge remote-tracking branch 'origin/main'
EdenBernhard Jun 10, 2026
920586f
SonarQube Full Metrics Report
EdenBernhard Jun 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 51 additions & 28 deletions docs/Handout_LazyCook.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,29 +26,30 @@
![Stunden pro Person](statistics/Time.png)

| Person | Stunden (ca.) |
|--------|--------------|
| Samuel Göbel (GalacticCodeGambit) | ~37 h |
| Eden Bernhard (EdenBernhard) | ~25 h |
| Niclas Matzke (Nicoolaus) | ~18 h |
| Alexander Groer (PrussianBaron) | ~10 h |
| Frederik Behne (Hellocrafting) | ~6 h |
|--------|---------------|
| Samuel Göbel (GalacticCodeGambit) | ~31.69 h |
| Eden Bernhard (EdenBernhard) | ~83 h |
| Niclas Matzke (Nicoolaus) | ~40.46 h |
| Alexander Groer (PrussianBaron) | ~13.46 h |
| Frederik Behne (Hellocrafting) | ~89.82 h |
Comment on lines +30 to +34

### Stunden pro Disziplin

![Disziplin: Zeit pro Sprint](statistics/Discipline-Time-per-Sprint.png)

Die Implementierung dominiert klar in Sprint 4 und 6 (~15 h/Sprint). Sprint 1 war anforderungslastig, danach verschob sich der Fokus auf Analyse & Entwurf und schließlich auf reine Implementierung.
Die Implementierung dominiert klar in Sprint 4 und 6 (~15 h/Sprint). Sprint 1 war anforderungslastig, danach verschob sich der Fokus auf Analyse & Entwurf und schließlich auf reine Implementierung und Testing.

### Stunden pro Phase (Milestone)

![Milestone: Zeit pro Sprint](statistics/Milestone-Time-Per-Sprint.png)

| Phase | Schwerpunkt-Sprints |
|-------|---------------------|
| 1. Anforderungsdefinition | Sprint 1–2 |
| 2. Planung & Entwurf | Sprint 1–3, Sprint 6 |
| 3. Implementierung | Sprint 4–6 (Kern) |
| 5. Deployment | Sprint 7–9 |
| Phase | Schwerpunkt-Sprints |
|-------|------------------------------------------|
| 1. Anforderungsdefinition | Sprint 1–2 |
| 2. Planung & Entwurf | Sprint 1–9 |
| 3. Implementierung | Sprint 4–6 (3 Monate Pause) Sprint 10-20 |
| 4. Testing & Qualitätssicherung | Sprint 13 |
| 5. Deployment | Sprint 19-20 |

---

Expand All @@ -75,7 +76,7 @@ Die Demo zeigt den vollständigen Nutzerflow:
3. **Rezeptfilterung (SUCUK)** – Echtzeitfilterung der Datenbank; Rezepte werden nach Übereinstimmungsgrad sortiert und als 3×4-Matrix angezeigt
4. **Mehr laden** – Über „Mehr anzeigen" können bis zu 96 Rezepte nachgeladen werden (ADR03)
5. **Rezeptsuche nach Name** – Freitextsuche im Suchfeld findet Rezepte mit ähnlichem Titel
6. **Profilverwaltung** – E-Mail ändern, Passwort ändern, Konto löschen
6. **Profilverwaltung** – E-Mail ändern, Passwort ändern, Konto löschen mit ausgehender Bestätigungsemail

---

Expand Down Expand Up @@ -261,13 +262,13 @@ Push / PR → main
| Kategorie | Wert |
|-----------|------|
| Automatisierte Testfälle | 74 |
| Code-Coverage gesamt | **48,3 %** |
| Line Coverage | **50,8 %** |
| Branch Coverage | **34,6 %** |
| Coverable Lines | 711 |
| Gedeckte Zeilen | 361 |
| Coverable Branches | 130 |
| Gedeckte Branches | 45 |
| Code-Coverage gesamt | **53,7 %** |
| Line Coverage | **54,9 %** |
| Branch Coverage | **45,1 %** |
| Coverable Lines | 677 |
| Gedeckte Zeilen | 372 |
| Coverable Branches | 102 |
| Gedeckte Branches | 46 |

---

Expand All @@ -279,12 +280,12 @@ SonarCloud misst drei Kernmetriken kontinuierlich: **Coverage**, **Zyklomatische

| Metrik | Wert | Bewertung |
|--------|------|-----------|
| **Line Coverage** | 50,8 % (361 / 711 Zeilen) | Kern-Logik gut abgedeckt; E-Mail-/Route-Layer bewusst ausgenommen |
| **Branch Coverage** | 34,6 % (45 / 130 Branches) | Niedrig durch untestbare `except`-Pfade (SMTP, Logging) |
| **Line Coverage** | 54,9 % (372 / 677 Zeilen) | Kern-Logik gut abgedeckt; E-Mail-/Route-Layer bewusst ausgenommen |
| **Branch Coverage** | 45,1 % (46 / 102 Branches) | Niedrig durch untestbare `except`-Pfade (SMTP, Logging) |
| **Zyklomatische Komplexität** | Ø niedrig pro Datei | Durch Dateiaufteilung deutlich gesunken; Einzelfälle ≤ 6 akzeptiert |
| **Code-Duplikate** | Minimal (1 bekannter 4-Zeiler) | Verbindungslogik zentralisiert; verbleibende Duplikate bewusst belassen |
| **Testfälle gesamt** | 74 | 6 Module, 0 bekannte Fehler |
| **Coverable Lines** | 711 | davon 350 ungedeckt (hauptsächlich EmailService + Routes) |
| **Coverable Lines** | 677 | davon 305 ungedeckt (hauptsächlich EmailService + Routes) |

---

Expand All @@ -299,8 +300,8 @@ Coverage misst, welcher Anteil des Codes tatsächlich durch Tests ausgeführt wi

| Metrik | Wert |
|--------|------|
| Line Coverage | **50,8 %** (361 von 711 Zeilen gedeckt) |
| Branch Coverage | **34,6 %** (45 von 130 Branches gedeckt) |
| Line Coverage | **54,9 %** (372 von 677 Zeilen gedeckt) |
| Branch Coverage | **45,1 %** (46 von 102 Branches gedeckt) |

**Gut abgedeckte Bereiche**

Expand Down Expand Up @@ -337,7 +338,7 @@ with patch("services.EmailService.sendPasswordResetEmail"):
...
```

Die `except`-Zweige in den Routen, die E-Mail-Fehler abfangen, bleiben dadurch ungetestet – das erklärt die niedrige Branch Coverage von 34,6 %. Da diese Branches nur Logging auslösen (kein kritischer Pfad), ist das vertretbar.
Die `except`-Zweige in den Routen, die E-Mail-Fehler abfangen, bleiben dadurch ungetestet – das erklärt die noch niedrige Branch Coverage von 45,1 %. Da diese Branches nur Logging auslösen (kein kritischer Pfad), ist das vertretbar.

```python
# routes/AuthRoutes.py – der except-Branch wird in Tests nie ausgelöst
Expand Down Expand Up @@ -515,7 +516,7 @@ SonarCloud flaggt diesen 4-Zeilen-Block als Duplikat. **Kein Refactoring nötig*
| 4 | **Backend-Paketarchitektur** | Klare Schichten: `core/` · `dao/` · `domain/` · `routes/` · `services/` – jede Datei hat eine Verantwortung |
| 5 | **5 dokumentierte ADRs** | Jede Schlüsselentscheidung mit Kontext, Alternativen und Konsequenzen dokumentiert |
| 6 | **74 automatisierte Tests** | Risikobasierte Teststrategie: Unit-Tests, DB-Integrationstests, Mock-Tests, CI-Smoketest |
| 7 | **SonarCloud Quality Gate** | Kontinuierliche Qualitätsmessung: 48,3 % Coverage, 0 bekannte Bugs im getesteten Umfang |
| 7 | **SonarCloud Quality Gate** | Kontinuierliche Qualitätsmessung: 53,7 % Coverage, 0 bekannte Bugs im getesteten Umfang |
| 8 | **Docker-Deployment** | Reproduzierbares Setup mit `docker compose up` – Frontend und Backend vollständig containerisiert |

---
Expand All @@ -530,4 +531,26 @@ SonarCloud flaggt diesen 4-Zeilen-Block als Duplikat. **Kein Refactoring nötig*

---

## Screenshots der Webanwendung

![Anmelden](Images/AnmeldeScreen.png)

![Registrieren](Images/RegistrierenScreen.png)

![Homepage](Images/ShowHomepageScreen.png)

![AddIngredients](Images/AddIngredientsScreen.png)

![FilterRecipes](Images/FilterRecipeScreen.png)

![SearchRecipes](Images/SearchRecipeScreen.png)

![ShowProfile](Images/ProfileScreen.png)

![ChangeEmail](Images/ChangeEmailScreen.png)

![ChangePassword](Images/ChangePasswordScreen.png)



*Handout erstellt für die Abschlusspräsentation · DHBW Karlsruhe · Juni 2026*
Binary file added docs/Images/AddIngredientsScreen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/Images/AnmeldeScreen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/Images/ChangeEmailScreen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/Images/ChangePasswordScreen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/Images/FilterRecipeScreen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/Images/ProfileScreen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/Images/RegistrierenScreen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/Images/SearchRecipeScreen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/Images/ShowHomepageScreen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/Images/ShowRecipeScreen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/SonarQube Full Metrics Report.pdf
Binary file not shown.
Binary file modified project/data/LazyCookDB.sqlite3
Binary file not shown.
Loading