You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Dieses Projekt ist das kleine Spring-Boot-Starterprojekt fuer**Database Development**. Es ist bewusst kein fertiges Ticket-System. Die Anwendung zeigt die Layer-Struktur, laeuft gegen PostgreSQL und enthaelt gezielte Luecken, damit die Datenbanklogik im Unterricht selbst entwickelt wird.
3
+
Dieses Projekt ist das kleine Spring-Boot-Starterprojekt für**Database Development**. Es ist bewusst kein fertiges Ticket-System. Die Anwendung zeigt die Layer-Struktur, läuft gegen PostgreSQL und enthält gezielte Lücken, damit die Datenbanklogik im Unterricht selbst entwickelt wird.
4
4
5
5
## Technischer Rahmen
6
6
@@ -10,24 +10,25 @@ Dieses Projekt ist das kleine Spring-Boot-Starterprojekt fuer **Database Develop
10
10
- Flyway
11
11
- PostgreSQL
12
12
- Maven Wrapper
13
-
- Lombok fuer DTOs, Entities und einfache Datenklassen
13
+
- Lombok für DTOs, Entities und einfache Datenklassen
14
+
- Swagger UI und OpenAPI über springdoc-openapi
14
15
15
16
## Code-Guidelines
16
17
17
18
- Verwende in diesem Kursprojekt **keine Java Records**.
18
-
- Verwende fuer einfache Datenklassen Lombok:
19
-
-`@Value`fuer unveraenderliche Antwort-DTOs und Value-Objekte
20
-
-`@Data`fuer JPA Entities, Request-DTOs und mutable Framework-Modelle
19
+
- Verwende für einfache Datenklassen Lombok:
20
+
-`@Value`für unveränderliche Antwort-DTOs und Value-Objekte
21
+
-`@Data`für JPA Entities, Request-DTOs und mutable Framework-Modelle
21
22
- Nutze Maven als Build-Werkzeug; der Maven Wrapper ist Teil des Projekts.
22
23
- Schreibe modernen Java-24-Code. Nutze Streams dort, wo sie Lesbarkeit und Datenfluss verbessern, aber nicht als Selbstzweck.
23
-
- Datenbankregeln gehoeren nicht nur in Java-Validierung. Zentrale Invarianten muessen auch in PostgreSQL sichtbar sein.
24
+
- Datenbankregeln gehören nicht nur in Java-Validierung. Zentrale Invarianten müssen auch in PostgreSQL sichtbar sein.
24
25
25
26
## Start
26
27
27
28
Die DB-2-PostgreSQL-Umgebung muss laufen:
28
29
29
30
```bash
30
-
cd ../../postgres
31
+
cd ../db-2/postgres
31
32
podman compose up -d
32
33
```
33
34
@@ -37,16 +38,16 @@ Danach kann die Anwendung gestartet werden:
37
38
./mvnw spring-boot:run
38
39
```
39
40
40
-
Die Anwendung verwendet die Datenbank `ticket_system` auf Port `5433`, schreibt aber in ein eigenes Schema `app_starter`. Dadurch bleibt das vollstaendige Unterrichtsschema aus `db-2/postgres` als Referenz erhalten.
41
+
Die Anwendung verwendet die Datenbank `ticket_system` auf Port `5433`, schreibt aber in ein eigenes Schema `app_starter`. Dadurch bleibt das vollständige Unterrichtsschema aus `db-2/postgres` als Referenz erhalten.
41
42
42
43
## Guided Gaps
43
44
44
-
Die erste Migration ist absichtlich schwach. Sie laesst Dinge offen, die Studierende fachlich entscheiden sollen:
45
+
Die erste Migration ist absichtlich schwach. Sie lässt Dinge offen, die Studierende fachlich entscheiden sollen:
45
46
46
47
- Welche Felder braucht ein minimales Ticket wirklich?
47
-
- Welche Spalten duerfen nie `NULL` sein?
48
-
- Welche Statuswerte gehoeren als `CHECK` Constraint in die Datenbank?
49
-
- Welche Regeln gehoeren in PostgreSQL, welche in den Service-Layer?
48
+
- Welche Spalten dürfen nie `NULL` sein?
49
+
- Welche Statuswerte gehören als `CHECK` Constraint in die Datenbank?
50
+
- Welche Regeln gehören in PostgreSQL, welche in den Service-Layer?
50
51
- Welche Repository-Methode bleibt lesbar?
51
52
52
53
Normale Tests laufen mit:
@@ -61,29 +62,29 @@ Ein Integrationstest mit Testcontainers startet eine frische PostgreSQL-Datenban
61
62
./mvnw -Ptestcontainers test
62
63
```
63
64
64
-
Ein Docker-Compose-Test gegen die lokale DB-2-PostgreSQL-Umgebung laeuft mit:
65
+
Ein Docker-Compose-Test gegen die lokale DB-2-PostgreSQL-Umgebung läuft mit:
65
66
66
67
```bash
67
-
cd ../../postgres
68
+
cd ../db-2/postgres
68
69
podman compose up -d
69
-
cd ../app/ticket-system-java
70
+
cd ../../db-2-app
70
71
./mvnw -Pdocker-compose test
71
72
```
72
73
73
-
Die aktivierbare Engineering-Aufgabe laeuft mit:
74
+
Die aktivierbare Engineering-Aufgabe läuft mit:
74
75
75
76
```bash
76
77
./mvnw -Pguided-gaps test
77
78
```
78
79
79
-
Dieser Test schlaegt am Anfang erwartbar fehl. Er wird erst gruen, wenn die Migration datenbankseitige Regeln enthaelt.
80
+
Dieser Test schlägt am Anfang erwartbar fehl. Er wird erst grün, wenn die Migration datenbankseitige Regeln enthält.
80
81
81
82
## Teststrategie
82
83
83
84
-`./mvnw test`: schnelle Tests ohne Docker.
84
85
-`./mvnw -Ptestcontainers test`: echte PostgreSQL-Integration mit isolierter Testcontainers-Datenbank.
85
-
-`./mvnw -Pdocker-compose test`: Pruefung gegen die Kursdatenbank aus `db-2/postgres/docker-compose.yml`.
0 commit comments