A Spring Boot backend web application of an online fragrance database cataloging and presenting perfumes, perfumers, brands and aromas that can all be searched and filtered. ScentDB aspires to provide a comprehensive set of resources about fragrances through its REST API.
- Multi container Docker Compose application
- Built using Spring Boot and Java 11
- Log management using Elasticsearch, Logstash and Kibana (ELK Sack)
- Hibernate Search to take care of the database and the Elasticsearch index
- Oauth2 login with Google, Facebook and GitHub as the currently supported providers
- Elasticsearch powered fuzzy search, filtering and sorting
- Exposes a REST API to create, retrieve and delete perfumes, notes, perfumers and companies
- Image storage and retrieval from the filesystem
- Multiple Spring profiles for development and testing
- Continuous integration using Travis CI
- Static code analysis with SonarCloud
- Java, Docker and Docker Compose are required
- Create an empty .env file in the root directory of the project, and copy the contents of the .env.example into it. Change the environment variables to fit your needs.
- Open a terminal in the root directory of ScentDB.
- Build the project with
gradlew clean assemble
. - Build the application docker image with
docker build .
. - Start the application stack with
docker-compose up
.
- Once the application is up and running, Swagger UI is available at:
http://localhost:8321/api/swagger-ui
- There's also an insomnia collection available:
Download the insomnia collection here