• Used to create Spring based applications in a faster way
  • Spring Initializr: used to create Spring Boot projects with preselected
    • Dependency manager
    • Version of spring boot
    • Dependencies
      • Spring Web: to create RESTful APIs
      • Spring Security: to create authentication and authorization methods
      • DevTools: LiveReload
    • Language
  • Spring Boot can be used in Java, which is a Oriented Object Programming language, because of that, our code can be organized using:
    • Model
      • Used to define the structure of the data
      • Has attributes
    • Controller
    • Repository
  • JWT Security API
    • Permissions
      • We use a RoleEnum and a PermissionEnum to define roles and permissions of each role in our application
      • We store In the PermissionEnum every permission available on the system
      • We define in the RoleEnum which permissions a Role has
      • Example:
        MANAGER(
                Set.of(
                    PermissionEnum.MANAGER_CREATE,
                    PermissionEnum.MANAGER_READ,
                    PermissionEnum.MANAGER_UPDATE,
                    PermissionEnum.MANAGER_DELETE
                )
        ),