This is a modern backend project built using Spring Boot 3 and Gradle. It features a robust architecture designed for scalability, security, and reactive data handling. The project incorporates role-based access control and integrates both traditional Spring MVC and reactive Spring WebFlux modules.
- ✅ Role-Based Authentication & Authorization with Spring Security
- ✅ REST API with Spring MVC & Reactive API with Spring WebFlux
- ✅ MongoDB for high-performance NoSQL data storage
- ✅ JPA & Hibernate support for potential relational data management
- ✅ JWT-based security layer
- ✅ Custom Rate Limiting configuration
- ✅ Clean Gradle-based build system
- Java 17+
- Spring Boot 3.x
- Spring Security
- Spring WebFlux
- Spring MVC
- MongoDB
- Spring Data JPA & Hibernate
- JWT Authentication
- Rate Limiting Configuration
- Gradle
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── tracker
│ │ │ │ │ └── job_ts
│ │ │ │ │ │ ├── auth
│ │ │ │ │ │ │ ├── config
│ │ │ │ │ │ │ ├── controller
│ │ │ │ │ │ │ ├── service
│ │ │ │ │ │ │ ├── repository
│ │ │ │ │ │ │ ├── entity
│ │ │ │ │ │ │ ├── dto
│ │ │ │ │ │ │ ├── exception
│ │ │ │ │ │ │ └── security
│ │ │ │ │ │ └── siber
│ │ │ │ │ │ │ ├── config
│ │ │ │ │ │ │ ├── repository
│ │ │ │ │ │ │ ├── entity
│ │ │ │ │ │ │ └── dto
│ └── resources
│ │ ├── application.yml
│ │ └── static/
├── build.gradle
└── README.md
- Role-based access control
- JWT Token generation and validation
- Secured endpoints with fine-grained access control
- Authentication/Authorization filters
Reactive modules leverage Spring WebFlux for non-blocking, event-driven data processing. Designed for high-performance environments and efficient resource utilization.
If you're adding tests, this can be extended with:
- JUnit 5
- Mockito
- WebTestClient for reactive endpoint testing
-
Clone the repository:
git clone https://github.com/your-username/your-repo-name.git cd your-repo-name -
Configure MongoDB in application.yml:
spring: data: mongodb: uri: mongodb://localhost:27017/your-db
-
Run the application:
./gradlew bootRun
You can integrate Swagger/OpenAPI for interactive API documentation.
- Add unit and integration tests
- Dockerize the application
- Add Swagger UI for API testing
- Enhance rate-limiting with Redis or Bucket4j
- Implement refresh tokens
This project is open source and available under the MIT License.