/concert-demos-root

This project is built in order to compare and illustrate differences between MVC and Reactive Web design patterns.

Primary LanguageKotlinApache License 2.0Apache-2.0

Concert Demos


Generic badge GitHub release License

CircleCI Build status concert-demos-root concert-demos-root-e2e

Codacy Badge codebeat badge Known Vulnerabilities

Codacy Badge codecov Coverage Status

GitHub language count GitHub top language GitHub top language

Technologies used

Please check the TechStack.md file for details.

Description

This application is a demo application to show the power of Kotlin in a Reactive Programming environment.
We will also look at how to work with R2DBC and make comparisons between a typical Spring Boot Application and a Spring Boot WebFlux application with JMeter.

In this example the domain revolves around the registration of concert dates, the artists and the show they belong to. We want to be able to record the concert data and make it the more efficient as possible. For this Demo we will use WebFlow

This project is also the official support project of my article on medium:

Note that for the moment I'm keeping Kotest at version 4.4.0. This is to avoid an issue with MPP implementation. Check the Issues document for more details

For further developments please have a look at branch feature/research_and_development


Structure


JMeter

Part of this project is to perform benchmarking tests. For this, we will be using JMeter by the Apache Software Foundation.

Please find all JMeter files in jmeter


Test Data

Star Running

  • To build from scratch:
make build-docker
  • To just run:
make dcup

Always have Docker Environment running

Swagger tests

You can make tests for this application using the Swagger UI at:

Manual Tests

  • POST payload example:
{
  "name": "Hey mama",
  "lyrics": "Hey mama"
}
  • POST payload example:
{
  "name": "Nicky Minaj",
  "gender": "FEMALE",
  "careerStart": 1000,
  "birthDate": "a date",
  "birthCity": "Port of Spain",
  "country": "Trinidad en Tobago",
  "keywords": "Rap"
}

Java version

sdk install 17-open
sdk use 17-open

Coverage report Graphs


References

About me

GitHub followers