Worblehat

Build Status Floobits Status

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

  1. Make sure the database is running (see above)
  2. 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
  3. 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

  1. Unit tests are run with ./mvnw test
  2. 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

  1. Acceptance tests are run by activating the required profile ./mvnw -P runITs verify.

    Note: The verify lifecycle is executed before install. Integration tests are only included, if the runITs profile is activated.

  2. 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.