- Readme.md
- architecture: this folder contains documentation regarding the architecture of your system.
docker-compose.yml: to start the backend (starts all microservices)- backend-java: contains microservices written in java
- demo-artifacts: contains images, files, etc that are useful for demo purposes.
- frontend-web: contains the Angular webclient
Each folder contains its own specific .gitignore file.
This project is a distributed application built with Spring Boot, Spring Cloud, Docker, MySQL, and RabbitMQ, organized into independent microservices that communicate with each other through REST and messaging.
The architecture includes:
-
Config Server (centralized configuration)
-
Discovery Server (Eureka)
-
API Gateway
-
PostService, ReviewService, CommentService
-
RabbitMQ for asynchronous messaging
-
Separate databases per microservice for proper isolation
- Docker and Docker Compose
- Java 17+
- Maven
Use the provided docker-compose.yml:
docker compose up -dTo ensure proper configuration loading and registration, start the services in this exact order:
- 1️⃣ ConfigService
- 2️⃣ DiscoveryService (Eureka)
- 3️⃣ PostService
- 4️⃣ ReviewService
- 5️⃣ CommentService
- 6️⃣ GatewayService
mvn spring-boot:run -pl config-service
mvn spring-boot:run -pl discovery-service
mvn spring-boot:run -pl post-service
mvn spring-boot:run -pl review-service
mvn spring-boot:run -pl comment-service
mvn spring-boot:run -pl gateway-service