This project is an e-commerce application built using a microservices architecture with Spring Boot. The application consists of several microservices, each responsible for a specific domain of the e-commerce system. The main components include:
- User Service
- Identity Service
- Product Catalog Service
- Order Service
- Shopping Cart Service
- Review and Rating Service
- API Gateway
- Eureka Server for service registry
- Configuration Service
![Architecture](https://private-user-images.githubusercontent.com/65955929/350697458-8a2ba35c-9563-4374-9c13-eb880e67d048.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyNTc2NTksIm5iZiI6MTczOTI1NzM1OSwicGF0aCI6Ii82NTk1NTkyOS8zNTA2OTc0NTgtOGEyYmEzNWMtOTU2My00Mzc0LTljMTMtZWI4ODBlNjdkMDQ4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjExVDA3MDIzOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY0MzY4ZGRjZDBkZjk0NjBjYWZjNjdkZDk4ZGQ2MmU5NWIyZDFiOGNiNjY2NDcyNjgxNGZkYzUzMzE3ZjM0OTYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.K6_UuJ6todhwSELe32FI6AW7JH3RH_zql977_8YDMWU)
- Spring Boot: For creating microservices.
- Spring Cloud Netflix Eureka: For service registry and discovery.
- Spring Cloud Gateway: For routing and filtering requests.
- Feign Client: For inter-service communication.
- Spring Security & JWT: For authentication and authorization.
- Jackson: For JSON serialization and deserialization.
- MySQL Database: For storing data.
Manages user registration, authentication, and profile management.
- POST /auth/register
- POST /auth/token
- GET /auth/validate?token= {token}
Manages user
- GET /user/profile/{userId}
- GET /user
- PUT /user/profile{userId}
- DELETE /user//profile/{userId}
Manages products and categories.
- POST /product
- POST /product/category
- GET /product
- GET /product/category
- GET /product/{productId}
- GET /product/category/{categoryId}
- PUT /product/{productId}
- PUT /product/category/{categoryId}
- DELETE /product/{productId}
- DELETE /product/category/{categoryId}
Manages order creation, status updates, and history.
- POST /orders: Create a new order.
- GET /orders/{id}: Get order details.
- GET /users/{userId}/orders: Get orders by user.
Manages user shopping carts.
- POST /cart/{userId}
- GET /cart/{userId}
- PUT /cart/{userId}
- DELETE /cart/{userId}
Manages product reviews and ratings.
- POST /rating
- GET /rating/{reviewId}
- GET /rating/product/{productId}
- GET /rating/user/{userId}
- PUT /rating/{reviewId}
- DELETE /rating/{reviewId}
- Routes and filters requests to appropriate services.
- Provides a single entry point for client requests.
- Service registry for registering and discovering microservices.
- Centralized configuration management for all services.