Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Das Kursprojekt db-2-app ist der normale Startpunkt für die Arbeit im Unterricht. Du beginnst im Starter, entwickelst Schritt für Schritt weiter und löst die Aufgaben im Verlauf der Blöcke. Checkpoints helfen, wenn du später einsteigst, etwas nacharbeiten möchtest oder eine Lösung kontrolliert anschauen musst.

Ein Checkpoint erzeugt eine normale Arbeitskopie des Projekts in einem frei wählbaren Zielordner. Diese Kopie kannst du öffnen, testen, verändern oder löschen, ohne den Starter zu überschreiben.

Überblick

Ein Checkpoint beschreibt einen definierten Stand von db-2-app. Der erzeugte Zielordner ist ein vollständiges Maven-Projekt mit eigener Projektkopie.

Du verwendest Checkpoints in drei Situationen:

Der Starter bleibt dabei unverändert. Für die normale Arbeit im Unterricht brauchst du keinen Checkpoint.

Grundbefehle

Alle Befehle werden im Ordner db-2-app ausgeführt.

Verfügbare Zustände anzeigen:

./course-state list

Einen Zustand in einen Zielordner erzeugen:

./course-state create <state> <ziel>

Einen einzelnen Zustand materialisieren und testen:

./course-state test <state>

Alle definierten Zustände prüfen:

./course-state validate --skip-slow

Ohne --skip-slow werden auch langsamere Testcontainers-Tests ausgeführt, sofern Docker oder Podman verfügbar ist.

Aktuelle Zustände

ZustandVerwendung
block-2-startNormaler Starter für Block 2
block-2-completeLösung der V2-Migration für Ticket-Regeln
block-3-startEinstieg in Block 3 auf Basis des abgeschlossenen Block 2
block-3-completeLösung mit Transaktionsworkflow, Kommentaren, Events und Versionierung

Die Liste wird erweitert, sobald weitere Blöcke vollständige App-Zustände brauchen.

Praxisbeispiele

Für den normalen Unterricht arbeitest du direkt im Starter weiter. Wenn du aber in Block 3 quer einsteigst, erzeugst du eine eigene Arbeitskopie:

./course-state create block-3-start ../work/db-2-app-block-3

Wenn du die Lösung zu Block 3 anschauen möchtest, erzeugst du eine separate Lösungskopie:

./course-state create block-3-complete ../work/db-2-app-block-3-loesung

Die Zielordner sind Beispiele. Entscheidend ist, dass der Zielordner ausserhalb von db-2-app liegt. Dadurch bleibt der Starter unverändert.

Zustände prüfen

Wenn du kontrollieren möchtest, ob ein Zustand korrekt erzeugt wird, kannst du ihn testen:

./course-state test block-3-start

Alle definierten Zustände prüfst du mit:

./course-state validate --skip-slow

Diese Prüfung erzeugt temporäre Arbeitskopien und führt die für den jeweiligen Zustand vorgesehenen Tests aus.