Skip to content

murygin/training-courses

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Training Courses API

This proof of concept implements a REST API for a training provider to manage its training courses. The API is documented in a Postman Collection:

postman.com/dmurygin/training-courses

Built With

Prerequisites

To build and start the project, the following tools must be installed:

Build & Run

  1. Clone the repo
    git clone https://github.com/murygin/training-courses.git
    cd training-courses
  2. Compile
    ./mvnw clean compile
  3. Run
    ./mvnw spring-boot:run
    The application will start on port 8080 by default. You can change the port in the application.properties file. The base url is http://localhost:8080.

Usage

The API is documented in a Postman Collection: postman.com/dmurygin/training-courses

Notes

This section contains notes that are important for the further development and operation of this application.

Security

The application is not secure by default. It is important to implement security measures before deploying the application in a production environment.

OWASP

Authentication and authorization

  • Authentication: OAuth2 with JWT Tokens, access delegation
  • Spring Security
  • OAuth2 Authorization Server: Keycloak, Open Source, simple integration of other identity providers

Supply Chain Management

  • Dependency update tool: Renovate or Dependabot on GitHub
  • Signing artifacts: Docker images, Java archives, etc.
  • Automatic checking of security vulnerabilities in the libraries used, in the build tool and also in the runtime environments, e.g. with Trivy

Git

  • Git has no built-in secure authentication, so Git commits must be signed

CI / CD

Code Quality

  • Unit test for classes that are not simple records
  • Multi-level integration tests, for the web or API layer, access to the database or a message queue
  • Integration tests and unit tests should be run in different profiles: Fast unit tests for the IDE, quick integration tests for each build on the build server, all integration tests only before a merge
  • Code review (by developers) integrated in the build process
  • Automatic code analysis: SonarQube
  • Code coverage: JaCoCo
  • Code formatter and linter integrated into the build tool
  • During development, The Twelve Factors must be taken into account from the very beginning

Monitoring & Logging

Articles

With the articles in this section you can learn more about frameworks and systems that are used in this application.

Spring Boot

Postman

Misc.

Contact

Daniel Murygin - linkedin.com/in/murygin - daniel.murygin@gmail.com

Project Link: github.com/murygin/training-cources

About

This proof of concept implements a REST API for a training provider with Spring Boot

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages