A workout planning and tracking application built with Spring Boot 4, Java 21, and a hexagonal (clean) architecture. Softwareengineering Project @ DHBW.
Info an den Prüfer: Ich habe zugegebenermaßen nicht genügend Zeit investiert, meine Designentscheidungs- und Refactoringprozesse alle zeitnah im Programmentwurf zu dokumentieren. Ich habe mit zu viel Fokus an der Domäne getüftelt. In den Issues und PRs die ich z.T als Notizen genutzt habe sind ein paar mehr Gedanken zu Designentscheidungen protokolliert. Wenn Sie möchten, schauen Sie gerne rein.
- Java 21
- Maven (or use the included
./mvnwwrapper) - PostgreSQL
Start a PostgreSQL instance on localhost:5432 with:
- Database:
postgres - Username:
postgres - Password:
postgres
Using Docker:
docker run -d --name workoutplanner-db \
-e POSTGRES_PASSWORD=postgres \
-p 5432:5432 \
postgresThe schema is created/updated automatically on startup (spring.jpa.hibernate.ddl-auto=update).
./mvnw clean install./mvnw -pl 0-workoutplanner-plugins spring-boot:runThe application starts on http://localhost:8080.
A simple web UI is served at http://localhost:8080 (static HTML in 0-workoutplanner-plugins/src/main/resources/static/).
A collection of API requests is available in the SWE-Bruno/ directory (for use with Bruno). They might not all be perfectly up to date anymore.
GET /exercises— list all exercisesPOST /exercises— create an exercisePUT /exercises/{id}— update an exerciseGET /routines— list all routinesPOST /routines— create a routinePOST /workouts— start a workout from a routinePOST /workouts/{id}/perform— perform a planned setPOST /workouts/{id}/finish— finish a workout