Skip to content

DatabaseEvolutionNudgeInMicroservices/evolution

Repository files navigation

DENIM Evolution

pipeline status

πŸ“£ Description

This application enables to get evolution insights of a microservices architecture from a data perspective.

⭐ Features

Here is a summary of the features currently supported.

Metrics

Description

It transforms a static analysis report logic object into a treemap view object.

Implementation status

Transformation Implementation status
Technologies list πŸŒ•
Operations list πŸŒ•
Concepts list πŸŒ•

How to?

INPUT

Invoke the following routes by sending a static analysis report in JSON (obtained from DENIM Reverse Engineering) inside the request.

Routes:

  • POST /technologies for retrieving the list of technologies used in the microservices architecture.
  • POST /operations for retrieving the list of operations used in the microservices architecture.
  • POST /concepts for retrieving the list of data concepts used in the microservices architecture.

OUTPUT

Consult the response view object in JSON:

// Technologies

["javascript-api-express-call", "javascript-db-mongo-call", "javascript-db-redis-call"]

// Operations

['READ']

// Concepts

['concept1' 'concept2', ...]

πŸ‘©β€πŸ’» Development details

Setup

See INSTALL file.

Test the app (manually)

Manual test suites are set up thanks through the Postman tool.

The tests are specified in the /test/manual directory and are named following the *.test.js pattern.

Test the app (unit testing)

Unit test suites are set up thanks to the Jest framework.

The tests are specified in the /test/unit directory and are named following the *.test.js pattern.

The configuration of Jest is stated in the /package.json file.

The tests running computes the code coverage.

Launching the tests

  • Launch the unit tests.

    npm run test_unit

Test the app (integration testing)

Integration test suites are set up thanks to the SuperTest framework.

The tests are specified in the /test/integration directory and are named following the *.test.js pattern.

The configuration of Jest is stated in the /package.json file.

Preparing the environment with Docker

Launching the tests

  • Launching integration tests.

    npm run test_integration

Documentation

An autogenerated documentation is available thanks to SwaggerUI at http://localhost:3000/docs.

  • Generate the documentation.

    npm run swagger

CI/CD

A CI/CD process is set up thanks to GitLab CI/CD. Learn more about GitLab CI/CD via this page.

This one is described in the .gitlab-ci.yml. ⚠️ Right privileges must be granted to Docker on the session on which the CI is executed.

Linting

  • Lint the application.

    npm run lint

Formatting

  • Formatting the application.

    npm run format

πŸͺ› Technical details

Technologies

  • JavaScript
  • Docker

Libraries

Project configuration

  • expressjs is a backend NodeJS framework.
  • body-parser is used for parsing REST API request body.
  • cors is used for managing CORS.

Tests

  • Jest is used for unit testing.
  • SuperTest is used for integration testing.

Format

  • eslint is used for linting the code.
  • prettier is used for formatting the code.

Documentation

Tools

  • npm is the package manager used.
  • GitLab CI/CD is the CI/CD continuous tool used.
  • Docker Desktop is the containerization technology used.
  • Postman is the tool for testing manually the API.

🀝 Contributing

If you want to contribute to the project, please consider the following instructions:

  • Any contribution must be tested (unit and integration tests).
  • All the tests and the CI/CD pipeline must pass before definitively integrating the contribution.
  • Any contribution must be documented, especially by updating the README.md and the INSTALL.md file.
  • Any contribution must be approved via the pull request mechanism.
  • More generally, any contribution must follow the conventions and keep the shape of previous contributions.

About

This application enables to get evolution insights for microservices architectures from a data perspective.

Resources

License

Stars

Watchers

Forks

Packages

No packages published