This project is a Spring Boot application that provides a REST API for managing two entities: Car and Owner. An Owner can have many Cars. The project demonstrates various technologies and best practices in modern Spring Boot applications.
- Owner and Car Management: Create, update, delete, and retrieve owners and their cars.
- Role-based Access Control: Secure endpoints with roles and permissions using basic authentication and JWT.
- Criteria-based Searching and Filtering: Advanced search and filter capabilities for cars and owners.
- Internationalization (i18n): Support for multiple languages.
- Data Validation: Ensure data integrity with validation annotations.
- JPA Auditing: Track and log changes to entities.
- API Documentation: Interactive API documentation using Swagger.
- Performance Monitoring: Monitor application performance with Spring Actuator.
- Caching: Improve performance with Redis caching.
- Logging: Comprehensive logging using Log4j.
- Unit and Integration Testing: Ensure code quality with JUnit and Mockito tests.
- HTTP Client: Make HTTP requests using WebClient.
- API Testing: Use Postman for testing the API.
- Spring Web
- MySQL
- Spring Data JPA
- Swagger
- WebClient
- Redis
- Spring Actuator
- Log4j
- Data Validation
- JPA Auditing
- Role-based Access Control
- Basic Auth
- JWT
- Criteria Builder
- Internationalization (i18n)
- JUnit
- Mockito
- Postman
- Maven