An open API service indexing awesome lists of open source software.

https://github.com/efk-lab/bookworm-casestudy

CaseStudy - Bookworm
https://github.com/efk-lab/bookworm-casestudy

assertj event-sourcing java11 kubernetes maven mockito mongodb redis rest spring-boot-data-mongodb spring-boot-data-redis spring-boot-security spring-security-oauth2 springboot

Last synced: 3 months ago
JSON representation

CaseStudy - Bookworm

Awesome Lists containing this project

README

        

# BookWorm

Bookworm is a rest api for an online book store.

# Tech Stack

Java11,
Spring Boot(web, test, data-mongodb, data-redis, security, log4j2, cache, validation, aop)
REST,
MongoDB,
Spring Security Oauth2,
Redis,
Maven,
Junit5, Mockito, Assertj,
Kubernetes

# Rest API

- UserRegistryController : Restfull Service for user registry
- signUp : Method for user creation

- CustomerController : Restfull Service for customer operations.
- saveCustomer : Method for customer creation
- getCustomerOrders : Method for customer's order retrieval

- BookController : Restfull Service for customer operations.
- saveBook : Method for book creation
- getBook : Method for customer retrieval
- updateBookStock : Method for book stock update

- OrderController : Restfull Service for order operations.
- saveOrder : Method for order creation
- getOrder : Method for order retrieval
- getOrders : Method for all order retrieval

- StatisticsController : Restfull Service for statistics operations.
- getMonthlyStatistics : Method for monthly statistics retrieval

# Deployment

- Install minikube
- https://minikube.sigs.k8s.io/docs/start/

- For loadbanacer run command below
> minikube tunnel

- Build Image
> docker build -t bookworm:latest -f /eclipse-workspace/BookWorm/src/main/resources/Dockerfile .

> eval $(minikube docker-env)

- Deploy Applications
> kubectl apply -f bookworm.yaml

- Kubernetes Dashboard
> minikube dasboard

- Prometheus&Grafana
> kubectl create namespace monitoring

> helm repo add prometheus-community https://prometheus-community.github.io/helm-charts

> helm install k8spromethuesstack --namespace monitoring prometheus-community/kube-prometheus-stack