Skip to content

Commit b0b2bbb

Browse files
committed
Add updates in README.md file
1 parent f5ac7bf commit b0b2bbb

File tree

2 files changed

+256
-3
lines changed

2 files changed

+256
-3
lines changed

README.md

Lines changed: 86 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,93 @@
5555

5656
</p>
5757

58+
# Spring Dynamic Microservices
5859

59-
#<h1 align="center">Spring Dynamic Microservices</h1>#
6060

61+
This is a comprehensive **Java-based microservices system** built with Spring Boot 3.x and Spring Cloud. It demonstrates dynamic service registration, routing, and payment processing using a modular architecture. The project includes CI integration with GitHub Actions and code quality checks with SonarCloud and JaCoCo.
6162

62-
**Project under construction**
63+
### Modules
64+
65+
- `common-api` – Shared domain objects, constants, and utilities.
66+
- `eureka-server` – Service discovery server powered by Netflix Eureka.
67+
- `gateway-service` – Spring Cloud Gateway for dynamic routing and API exposure.
68+
- `payment-service-paypal` – PayPal-specific payment microservice.
69+
- `payment-service-stripe` – Stripe-specific payment microservice.
70+
71+
### DevOps, CI/CD & Quality Tools
72+
```
73+
74+
| Tool | Purpose |
75+
|---------------|--------------------------------|
76+
| GitHub Actions| CI/CD pipeline |
77+
| Docker | Containerization |
78+
| Docker Compose| Multi-container orchestration |
79+
| JaCoCo | Test coverage reports |
80+
| SonarCloud | Code quality, static analysis |
81+
```
82+
83+
### Testing
84+
85+
- Unit testing with JUnit 5
86+
- Controller testing using Spring’s `MockMvc`
87+
- Code coverage with JaCoCo (`target/site/jacoco/index.html`)
88+
- Test reports pushed to SonarCloud
89+
90+
### Run Locally with Docker Compose
91+
92+
##### Requirements:
93+
- Java 17
94+
- Maven 3.x
95+
- Docker & Docker Compose
96+
97+
##### Steps:
98+
99+
```bash
100+
mvn clean install
101+
docker-compose up --build
102+
```
103+
104+
#### Service Access URLs
105+
106+
Here are the main endpoints for accessing services in this dynamic microservices project:
107+
108+
```
109+
| Purpose | URL |
110+
|----------------------------------|------------------------------------------------------------------|
111+
| Eureka Dashboard | [http://localhost:8761](http://localhost:8761) |
112+
| PayPal Service (Direct Access) | [http://localhost:8082/hello](http://localhost:8082/hello) |
113+
| PayPal via Gateway | [http://localhost:8090/payment-service-paypal/hello] |
114+
| | (http://localhost:8090/payment-service-paypal/hello) |
115+
| Stripe Service (Direct Access) | [http://localhost:8083/hello](http://localhost:8083/hello) |
116+
| Stripe via Gateway | [http://localhost:8090/payment-service-stripe/hello] |
117+
| | (http://localhost:8090/payment-service-stripe/hello) |
118+
| Gateway Test Route | [http://localhost:8090/test/get](http://localhost:8090/test/get) |
119+
```
120+
121+
#### CI Workflow
122+
123+
CI is triggered on push to `main`:
124+
- Builds all modules
125+
- Runs tests
126+
- Sends coverage to SonarCloud
127+
- Builds Docker images
128+
- Pushes to DockerHub (if configured)
129+
130+
CI file: `.github/workflows/ci-all.yml`
131+
132+
#### SonarCloud Dashboard
133+
134+
View real-time static analysis and code coverage:
135+
136+
- [Coverage Report](https://sonarcloud.io/summary/overall?id=vijayagopalsb_spring-dynamic-microservices)
137+
- [Code Quality](https://sonarcloud.io/summary/overall?id=vijayagopalsb_spring-dynamic-microservices)
138+
139+
#### Author
140+
141+
**Vijayagopal S**
142+
[GitHub](https://github.com/vijayagopalsb)
143+
144+
#### License
145+
146+
This project is licensed under the [MIT License](LICENSE).
63147

64-
This project contains a Spring Boot based microservices architecture with Eureka service discovery and Spring Cloud Gateway for dynamic routing.

project-structure.txt

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
Folder PATH listing for volume New Volume
2+
Volume serial number is 422C-8630
3+
D:.
4+
+---.github
5+
� +---workflows
6+
+---.settings
7+
+---common-api
8+
� +---.settings
9+
� +---src
10+
� � +---main
11+
� � � +---java
12+
� � � +---resources
13+
� � +---test
14+
� � +---java
15+
� � +---resources
16+
� +---target
17+
� +---classes
18+
� � +---META-INF
19+
� � +---maven
20+
� � +---com.example
21+
� � +---common-api
22+
� +---generated-sources
23+
� � +---annotations
24+
� +---generated-test-sources
25+
� � +---test-annotations
26+
� +---maven-archiver
27+
� +---maven-status
28+
� � +---maven-compiler-plugin
29+
� � +---compile
30+
� � � +---default-compile
31+
� � +---testCompile
32+
� � +---default-testCompile
33+
� +---test-classes
34+
+---eureka-server
35+
� +---.settings
36+
� +---src
37+
� � +---main
38+
� � � +---java
39+
� � � � +---com
40+
� � � � +---example
41+
� � � � +---eurekaserver
42+
� � � +---resources
43+
� � +---test
44+
� � +---java
45+
� � +---resources
46+
� +---target
47+
� +---classes
48+
� � +---com
49+
� � � +---example
50+
� � � +---eurekaserver
51+
� � +---META-INF
52+
� � +---maven
53+
� � +---com.example
54+
� � +---eureka-server
55+
� +---generated-sources
56+
� � +---annotations
57+
� +---generated-test-sources
58+
� � +---test-annotations
59+
� +---maven-archiver
60+
� +---maven-status
61+
� � +---maven-compiler-plugin
62+
� � +---compile
63+
� � � +---default-compile
64+
� � +---testCompile
65+
� � +---default-testCompile
66+
� +---test-classes
67+
+---gateway-service
68+
� +---.settings
69+
� +---src
70+
� � +---main
71+
� � � +---java
72+
� � � � +---com
73+
� � � � +---example
74+
� � � � +---gatewyservice
75+
� � � +---resources
76+
� � +---test
77+
� � +---java
78+
� � +---resources
79+
� +---target
80+
� +---classes
81+
� � +---com
82+
� � � +---example
83+
� � � +---gatewyservice
84+
� � +---META-INF
85+
� � +---maven
86+
� � +---com.example
87+
� � +---gateway-service
88+
� +---generated-sources
89+
� � +---annotations
90+
� +---generated-test-sources
91+
� � +---test-annotations
92+
� +---maven-archiver
93+
� +---maven-status
94+
� � +---maven-compiler-plugin
95+
� � +---compile
96+
� � � +---default-compile
97+
� � +---testCompile
98+
� � +---default-testCompile
99+
� +---test-classes
100+
+---payment-service-paypal
101+
� +---.settings
102+
� +---src
103+
� � +---main
104+
� � � +---java
105+
� � � � +---com
106+
� � � � +---example
107+
� � � � +---paymentservicepaypal
108+
� � � +---resources
109+
� � +---test
110+
� � +---java
111+
� � � +---com
112+
� � � +---example
113+
� � � +---paymentservicepaypal
114+
� � +---resources
115+
� +---target
116+
� +---classes
117+
� � +---com
118+
� � +---example
119+
� � +---paymentservicepaypal
120+
� +---generated-sources
121+
� � +---annotations
122+
� +---generated-test-sources
123+
� � +---test-annotations
124+
� +---maven-status
125+
� � +---maven-compiler-plugin
126+
� � +---compile
127+
� � � +---default-compile
128+
� � +---testCompile
129+
� � +---default-testCompile
130+
� +---surefire-reports
131+
� +---test-classes
132+
� +---com
133+
� +---example
134+
� +---paymentservicepaypal
135+
+---payment-service-stripe
136+
� +---.settings
137+
� +---src
138+
� � +---main
139+
� � � +---java
140+
� � � � +---com
141+
� � � � +---example
142+
� � � � +---paymentservicestripe
143+
� � � +---resources
144+
� � +---test
145+
� � +---java
146+
� � +---resources
147+
� +---target
148+
� +---classes
149+
� � +---com
150+
� � � +---example
151+
� � � +---paymentservicestripe
152+
� � +---META-INF
153+
� � +---maven
154+
� � +---com.example
155+
� � +---payment-service-stripe
156+
� +---generated-sources
157+
� � +---annotations
158+
� +---generated-test-sources
159+
� � +---test-annotations
160+
� +---maven-archiver
161+
� +---maven-status
162+
� � +---maven-compiler-plugin
163+
� � +---compile
164+
� � � +---default-compile
165+
� � +---testCompile
166+
� � +---default-testCompile
167+
� +---test-classes
168+
+---src
169+
� +---site
170+
+---target

0 commit comments

Comments
 (0)