This project is an e-commerce application built using a microservices architecture. It consists of separate services for Products, Orders, Admin, and Image management, all orchestrated through an API Gateway.
- Framework: Spring Boot
- Containerization: Docker
- Message Broker: Apache Kafka
- Databases: PostgreSQL (or other SQL databases)
- API Gateway: Spring Cloud Gateway
- Frontend: React.js using Vaadin for connecting to springboot
- Auth Service: Handles user/admin auth & authorization.
- Products Service: Manages product information and inventory.
- Orders Service: Handles order processing and management.
- Admin Service: Provides administrative functionalities.
- Image Service: Manages product images.
- Microservices architecture for scalability and maintainability
- Docker containerization for easy deployment and scaling
- API Gateway for centralized request handling
- Asynchronous communication between services using Kafka
- Separate databases for each microservice
- Frontend shopping cart functionality
- Auth and Authorization for Role based access to various services.
- id (INT PRIMARY KEY)
- name (VARCHAR(255) NOT NULL)
- description (TEXT)
- price (DECIMAL(10,2) NOT NULL)
- stock (INT NOT NULL)
- image_id (VARCHAR(50) NOT NULL)
- id (INT PRIMARY KEY)
- order_date (DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP)
- total_price (DECIMAL(10,2) NOT NULL)
- (Foreign Key references to Products for ordered items)
- id (VARCHAR(50) PRIMARY KEY)
- name (VARCHAR(255))
- mime_type (VARCHAR(50))
- (Additional metadata fields as needed)
- RESTful APIs for most service-to-service communication
- Kafka for asynchronous events (e.g., order placement, product deletion)
The entire application is deployable using Docker Compose, which sets up all microservices and their respective databases.
- Clone the repository
- Navigate to the project root directory
- Run
docker-compose up
to start all services - Access the application through the API Gateway endpoint
This project is licensed under the MIT License.