This is a monolithic web application backend built with Spring Boot 3, structured using the Packaged by Feature approach. It supports secure authentication, authorization, user management, role-based permission control, and email notifications using templated emails.
This monolithic backend service supports authentication, caching, mailing, and data persistence for a scalable web application. It is built on Spring Boot 3 with a focus on security, modularity, and clean architecture principles.
- Spring Boot 3.x – Main application framework.
- Spring Security – For securing the APIs with JWT & OAuth2.
- Spring Data JPA – Database access with Hibernate.
- Spring Validation – Request validation and DTO binding.
- Spring Cache (Caffeine) – High-performance in-memory caching.
- PostgreSQL – Primary database.
- Flyway – Database version control.
- JWT – Token-based authentication.
- Spring OAuth2 Resource Server & Client – Integration with OAuth2 providers.
- Google OAuth2 – Login with Google integration.
- Refresh Token Support
- Logout Handling via Token Blacklist using Caffeine Cache
- Permission-based Authorization – Each user can be assigned roles, and roles are associated with fine-grained permissions (e.g., CLASS_CREATE, USER_DELETE).
- Access control is enforced via custom annotations and method-level security
- Springdoc OpenAPI – Interactive Swagger UI.
- Spring Mail – For sending emails.
- Thymeleaf – Email template rendering.
- Lombok – Less boilerplate code.
- MapStruct – Efficient Java bean mapping.
- Spring Boot Devtools – Hot reload during development.
- Spring Boot Starter Test
- H2 Database – In-memory DB for testing.
- Spring Security Test – Test secured endpoints.
... More