Skip to content

Commit b4ad3e5

Browse files
added catlog-service module
0 parents  commit b4ad3e5

23 files changed

+1300
-0
lines changed

.idea/compiler.xml

+18
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/encodings.xml

+10
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/workspace.xml

+104
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.mvn/wrapper/maven-wrapper.properties

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one
2+
# or more contributor license agreements. See the NOTICE file
3+
# distributed with this work for additional information
4+
# regarding copyright ownership. The ASF licenses this file
5+
# to you under the Apache License, Version 2.0 (the
6+
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing,
12+
# software distributed under the License is distributed on an
13+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
# KIND, either express or implied. See the License for the
15+
# specific language governing permissions and limitations
16+
# under the License.
17+
wrapperVersion=3.3.2
18+
distributionType=only-script
19+
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip

README.md

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Spring Boot Microservices Course
2+
3+
4+
5+
We will build a BookStore application using Spring Boot, Spring Cloud, and Docker.
6+
7+
BookStore Microservices Architecture
8+
9+
![image](https://github.com/user-attachments/assets/92d61293-80ca-46cb-b9d9-3c0ca7887fd1)
10+
11+
12+
Modules
13+
* catalog-service: This services provides REST API for managing catalog of products(books).
14+
15+
TechStack: Spring Boot, Spring Data JPA, PostgreSQL
16+
17+
* order-service: This service provides the REST API for managing orders and publishes order events to the message broker.
18+
19+
TechStack: Spring Boot, Spring Security OAuth2, Keycloak, Spring Data JPA, PostgreSQL, RabbitMQ
20+
21+
* notification-service: This service listens to the order events and sends notifications to the users.
22+
23+
TechStack: Spring Boot, RabbitMQ
24+
25+
* api-gateway: This service is an API Gateway to the internal backend services (catalog-service, order-service).
26+
27+
TechStack: Spring Boot, Spring Cloud Gateway
28+
29+
* bookstore-webapp: This is the customer facing web application where customers can browse the catalog, place orders, and view their order details.
30+
31+
TechStack: Spring Boot, Spring Security OAuth2, Keycloak, Thymeleaf, Alpine.js, Bootstrap
32+
33+
Learning Objectives
34+
* Building Spring Boot REST APIs
35+
* Database Persistence using Spring Data JPA, Postgres, Flyway
36+
* Event Driven Async Communication using RabbitMQ
37+
* Implementing OAuth2-based Security using Spring Security and Keycloak
38+
* Implementing API Gateway using Spring Cloud Gateway
39+
* Implementing Resiliency using Resilience4j
40+
* Job Scheduling with ShedLock-based distributed Locking
41+
* Using RestClient, Declarative HTTP Interfaces to invoke other APIs
42+
* Creating Aggregated Swagger Documentation at API Gateway
43+
* Local Development Setup using Docker, Docker Compose and Testcontainers
44+
* Testing using JUnit 5, RestAssured, Testcontainers, Awaitility, WireMock
45+
* Building Web Application using Thymeleaf, Alpine.js, Bootstrap
46+
* Monitoring & Observability using Grafana, Prometheus, Loki, Tempo (Membership)
47+
* Kubernetes Basics (Membership)
48+
* Deployment to Kubernetes (Membership)
49+
* Local Development Setup
50+
* Install Java 21. Recommend using SDKMAN for managing Java versions.
51+
* Install Docker Desktop
52+
* Install IntelliJ IDEA or any of your favorite IDE
53+
* Install Postman or any REST Client
54+
* Other Learning Resources
55+

catlog-service/.gitattributes

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
/mvnw text eol=lf
2+
*.cmd text eol=crlf

catlog-service/.gitignore

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
HELP.md
2+
target/
3+
!.mvn/wrapper/maven-wrapper.jar
4+
!**/src/main/**/target/
5+
!**/src/test/**/target/
6+
7+
### STS ###
8+
.apt_generated
9+
.classpath
10+
.factorypath
11+
.project
12+
.settings
13+
.springBeans
14+
.sts4-cache
15+
16+
### IntelliJ IDEA ###
17+
.idea
18+
*.iws
19+
*.iml
20+
*.ipr
21+
22+
### NetBeans ###
23+
/nbproject/private/
24+
/nbbuild/
25+
/dist/
26+
/nbdist/
27+
/.nb-gradle/
28+
build/
29+
!**/src/main/**/build/
30+
!**/src/test/**/build/
31+
32+
### VS Code ###
33+
.vscode/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one
2+
# or more contributor license agreements. See the NOTICE file
3+
# distributed with this work for additional information
4+
# regarding copyright ownership. The ASF licenses this file
5+
# to you under the Apache License, Version 2.0 (the
6+
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing,
12+
# software distributed under the License is distributed on an
13+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
# KIND, either express or implied. See the License for the
15+
# specific language governing permissions and limitations
16+
# under the License.
17+
wrapperVersion=3.3.2
18+
distributionType=only-script
19+
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip

0 commit comments

Comments
 (0)