DigiMarket is a microservices-based e-commerce platform built using Spring Boot. It includes various services such as customer management, product catalog, order processing, payment handling, and more. The project uses a range of technologies to provide a robust and scalable solution.
- API Gateway: Central entry point for the system.
- Configuration Server: Centralized configuration management using Spring Cloud Config.
- Customer Service: Manages customer-related operations.
- Discovery Server: Service registry and discovery using Eureka.
- Notification Service: Handles notifications to users.
- Order Service: Manages order processing.
- Payment Service: Handles payment transactions.
- Product Service: Manages the product catalog.
- Backend: Java, Spring Boot
- Persistence: Hibernate, MongoDB, MySQL
- Messaging: Apache Kafka
- Tracing: Zipkin
- Security: Keycloak
- Containerization: Docker
- Service Discovery: Eureka Discovery Server
- Inter-Service Communication: OpenFeign
- IDE: IntelliJ IDEA
- API Testing: Postman
- Containerization: Docker
- Optional: Docker Compose for running the project infrastructure in Docker containers
- Java: JDK 21
- IDE: IntelliJ IDEA or any other preferred IDE
- Apache Kafka: For messaging and event-driven architecture
- MySQL: Relational database for structured data
- MongoDB: NoSQL database for unstructured data
- Zipkin: Distributed tracing system
- Keycloak: (Optional) Open source Identity and Access Management
- Docker: For containerization (optional)
- Docker Compose: For orchestrating Docker containers (optional)
- Java JDK 21: Oracle JDK
- IntelliJ IDEA: JetBrains IntelliJ IDEA
- Apache Kafka: Apache Kafka
- MySQL: MySQL Community Server
- MongoDB: MongoDB Community Edition
- Zipkin: Zipkin
- Keycloak: Keycloak
- Docker: Docker
- Docker Compose: Docker Compose
-
Install Required Software:
- Download and install Java JDK, IntelliJ IDEA, Apache Kafka, MySQL, MongoDB, Zipkin, Keycloak (optional), Docker from the links provided above.
-
Database Setup:
- Start MySQL and MongoDB services.
- Create databases as needed and configure connections in each microservice.
-
Start Required Services:
- Start Apache Kafka.
- Start Zipkin for distributed tracing.
- (Optional) Start Keycloak for identity and access management.
-
Microservice Setup:
- Clone the DigiMarket repository.
- Build and start each microservice in the following order:
- Configuration Server
- Discovery Server
- Other services (API Gateway, Customer Service, etc.)
-
Inter-Service Communication:
- OpenFeign is used for declarative REST client in Spring Boot, facilitating inter-service communication.
If you prefer to use Docker Compose, a docker-compose.yml file is provided to simplify the setup. This file includes configurations for MySQL, MongoDB, Kafka, Zipkin, and all microservices.
To start the services using Docker Compose:
docker-compose upThis project is free to use, modify, and sell. It is licensed under the MIT License - see the LICENSE file for details.