Skip to content

gabrielSpassos/sales-poc

Repository files navigation

Sales POC

How to use

Simple way:

  • chmod +x start.sh
  • sh start.sh

Detail way:

  • Execute unit tests
  • cd sales-service
  • ./gradlew clean test
  • Report at ./build/reports/tests/test/index.html

  • Execute mutation tests
  • cd sales-service
  • ./gradlew pitest
  • Report at ./build/reports/pitest/index.html

  • Build project
  • cd sales-service
  • ./gradlew clean build

  • Run project
  • docker-compose build
  • docker-compose up

  • Execute integration tests
  • cd sales-integration-test
  • ./gradlew clean test
  • Report at ./build/reports/tests/test/index.html

Technologies

  • SpringBoot Webflux: SpringBoot reactive framework to increase I/O performance.
  • MongoDB: schemaless database with reactive driver to work with SpringBoot Webflux
  • Shedlock: dependency to create multi instance lock at database, used at sales analysis scheduler
  • Apache Kafka: streaming events platafrom, with high throughput support
  • JUnit 5: new version of test framework, has some new features to help at unit tests
  • Wiremock: dependency that creates mock servers to test the clients, used the Mock Labs to create the external clients for validations. Wiremock Docs
  • Pitest: dependency to use at mutation tests
  • Lombok: development plugin
  • Swagger: endpoints documentation
  • Docker: tool used to create the enviroment of the solution with all infraestructure dependencies
  • Docker Compose: containers orchestration