Worblehat
Worblehat is a training application for the Scrum for Developers training held by codecentric AG, as well as for the Professional Scrum Developer training when given by codecentric.
YouTube Let's Code with Bene and Andreas
In a series of livestreams, Bene and Andreas will implement the complete Backlog that is usually used during the training.
You can vote on the issues in order to influence the order of the Product Backlog. Please react with a "Thumbs Up" to the issue that You are interested in to see.
Developing the application
Technical requirements:
- JDK 11+ (not required when using docker)
- Docker
Complete setup
The whole service can be started locally using docker-compose:
docker-compose up
After updating sources always rebuild your images
docker-compose down
docker-compose build
docker-compose up
Data base setup
A PostgreSQL data base can be started locally using docker-compose:
docker-compose up db
The adminer
and database
services can be started locally using docker-compose:
docker-compose up adminer
The docker compose setup includes Adminer for adminstrating the data base. Once the data base is started point your broser to http://localhost:8081 and log into the data base:
Setting | Value |
---|---|
Data base system | PostgreSQL |
Server | db |
User | postgres |
Password | worblehat-pw |
Data base | postgres |
Build process
You can use the maven wrapper to compile and execute the application, when using vscode
make sure to install the Lombok extension
- Compile everything:
./mvnw clean install
- Run the application:
./mvnw -pl worblehat-web spring-boot:run
- Run the acceptancetests:
./mvnw -P runITs verify
Maven comes bundled with the maven wrapper scripts, no need for manual installation before.
Running the application
- Make sure the database is running (see above)
- Run the application.:
- Either run
./mvnw -pl worblehat-web spring-boot:run
(will automatically compile & package the application before) - Or use your IDE to start the main class in worblehat-web:
de.codecentric.psd.Worblehat
- Either run
- Access the application at http://localhost:8080/
Running tests
All tests are executed via JUnit, but can be conceptually divided in unit and integration tests. They are bound to different maven lifecycle phases, are executed by differen maven plugins, and follow a different naming scheme.
Unit Tests
- Unit tests are run with
./mvnw test
- The maven-surefire-plugin includes all these tests by default:
<includes>
<include>**/Test*.java</include>
<include>**/*Test.java</include>
<include>**/*Tests.java</include>
<include>**/*TestCase.java</include>
</includes>
Acceptance Tests
-
Acceptance tests are run by activating the required profile
./mvnw -P runITs verify
.Note: The
verify
lifecycle is executed beforeinstall
. Integration tests are only included, if therunITs
profile is activated. -
The maven-failsafe-plugin includes all these tests by default:
<includes>
<include>**/IT*.java</include>
<include>**/*IT.java</include>
<include>**/*ITCase.java</include>
</includes>
The acceptance tests spin docker containers for all required dependencies (Database & Browser) via Testcontainers.