Application with air quality data from IoT sensors.
- Spring Boot.
- Java.
- Gradle Kotlin DSL.
- MongoDB.
- JUnit.
- Mockito.
- Lombok.
- Spring Security.
- Spring Data MongoDB.
- Spring Web.
- OpenAPI (Swagger).
- Identity provider: Keycloak (realm
freshly); the application never sees a password. - Pattern: BFF with Spring Security's OAuth2 client; the browser holds only a session cookie.
- Session store: Redis (Spring Session).
- JWT: the back-end is a stateless resource server; a client can also call it with a Bearer token.
- Details: auth module.
- Gradle build system.
- The application has an exception handling mechanism.
- The application has a logging mechanism.
- The application has separate environments for dev and prod.
- The application has a dedicated configuration file.
- The application has Keycloak integration for authentication and authorization.
- The application has permission management based on keycloak roles.
- The application written in Domain-Driven Design (DDD) style.
- Optimistic locking for concurrent updates with Etag and If-Match header.
- And many other features that can be found in the application code.
- Docker for development environment.
- PMD for static code analysis.
- SpotBugs for static code analysis.
- JSpecify for null-safety annotations.
- NullAway for null-safety checks.
- Error Prone for static code analysis.
- Spotless for code formatting.