Java spring-boot application, written to try Redis OM library. Spoiler... It is fantastic!!! It is a back-end part of the abstract Museum Website and provides REST endpoints with basic CRUD functionality and, most importantly, a global search endpoint with auto-suggestion.
- Language: Java-17
- Build tool: Apache Maven
- Main framework: Spring Boot 3.1.2
- Superpower of searching capabilities: Redis OM Spring and Redis Stack (Redis Search, Redis Json, Redis Bloom)
- CI: GitHub Actions
- Deployment: Docker with Docker Compose plugin
- Spring Web.
- REST Controllers for endpoints
- RestControllerAdvice for exception handling
- Swagger (Springdoc OpenAPI)
- Generating openAPI documentation
- Swagger Web UI by link: swagger-ui
- Jackson databind
-
- Redis Documents for storing objects as JSON documents
- Redis Search for creating indexes and searching by documents fields
- AuthoComletion library from com.redis.om.spring
-
Redis as a database. Yes... As a database)
- JUnit 5
- Mockito
- Spring Boot Test
- MockMVC for testing API cals
- SpringBootTest for integration testing
- Testcontainers for integration testing
- Instancio for generating fake test data
- Lombok
- Java Bean Validation (Hibernate Validation)
Now the project is in development, and not everything should work perfectly fine 😊.
But I fix all issues as soon as possible 😅.
What do you need:
-
You should have Docker with Docker compose plugin (or Docker desktop) installed on your machine. Link with instructions: Get Docker
-
And that`s it 😎.
Installation steps:
-
Clone this repository (or just
docker-compose.ymlfile). -
Run this command in your terminal (on Linux and Mac), Power-Shell or Git-bash (on Windows), but first of all move to the root of the project:
docker compose up -d -
Test endpoints with the Swagger UI 😀: swagger-ui
-
Test auto suggestions by link: web-app
-
Managing Redis instance from browser: RedisInsight