Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nomadbala/spring-ecommerce
This project is a comprehensive e-commerce application built using a microservices architecture. It leverages Spring Boot for backend services, with each service being responsible for a specific domain in the application.
https://github.com/nomadbala/spring-ecommerce
api-gateway auth docker eureka grafana jwt kafka keycloak kubernetes microservices mongo monitoring postgresql spring spring-cloud victoria-metrics
Last synced: 27 days ago
JSON representation
This project is a comprehensive e-commerce application built using a microservices architecture. It leverages Spring Boot for backend services, with each service being responsible for a specific domain in the application.
- Host: GitHub
- URL: https://github.com/nomadbala/spring-ecommerce
- Owner: nomadbala
- License: mit
- Created: 2024-08-03T17:41:53.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-08-05T17:54:42.000Z (3 months ago)
- Last Synced: 2024-09-27T17:21:37.504Z (about 1 month ago)
- Topics: api-gateway, auth, docker, eureka, grafana, jwt, kafka, keycloak, kubernetes, microservices, mongo, monitoring, postgresql, spring, spring-cloud, victoria-metrics
- Language: Java
- Homepage:
- Size: 59.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Spring Ecommerce
## About
This project is a comprehensive e-commerce application built using a microservices architecture. It leverages Spring Boot for backend services, with each service being responsible for a specific domain in the application.
## Features
- **Microservices Architecture**: Each service is independently deployable and scalable.
- **Spring Cloud**: Utilized for service discovery and configuration management.
- **JWT Authentication**: Secure user authentication.
- **Kafka**: For event-driven communication between services.
- **Docker & Kubernetes**: Containerization and orchestration.
- **Monitoring**: Implemented with Grafana and VictoriaMetrics.## Microservices
1. **API Gateway**: Centralized entry point for client requests.
2. **Auth Service**: Handles user authentication and authorization.
3. **Product Service**: Manages product data.
4. **Order Service**: Manages customer orders.
5. **Payment Service**: Handles payment processing.
6. **Inventory Service**: Manages product inventory.
7. **Notification Service**: Sends notifications to users.
8. **Analytics Service**: Provides analytical insights.
9. **Config Server**: Centralized configuration management.
10. **Eureka Server**: Service registry.## Technologies Used
- **Java**: Programming language.
- **Spring Boot**: Application framework.
- **Spring Cloud**: Microservices framework.
- **Docker**: Containerization.
- **Kubernetes**: Container orchestration.
- **PostgreSQL**: Relational database.
- **MongoDB**: NoSQL database.
- **Kafka**: Event streaming platform.
- **Keycloak**: Identity and access management.
- **Grafana & VictoriaMetrics**: Monitoring and observability.## Getting Started
### Prerequisites
- Docker
- Kubernetes
- Java 11+
- Maven### Installation
1. **Clone the repository**:
```bash
git clone https://github.com/nomadbala/spring-ecommerce.git
cd spring-ecommerce
```2. **Build the project**:
```bash
mvn clean install
```3. **Run Docker containers**:
```bash
docker-compose up -d
```4. **Deploy to Kubernetes**:
```bash
kubectl apply -f kubernetes/
```### Usage
- Access the application via the API Gateway at `http://localhost:8080`.
- Use Swagger UI for API documentation and testing.## Contributing
1. Fork the repository.
2. Create a new branch (`git checkout -b feature-branch`).
3. Make your changes.
4. Commit your changes (`git commit -m 'Add new feature'`).
5. Push to the branch (`git push origin feature-branch`).
6. Create a new Pull Request.## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Acknowledgements
- Spring Team for their excellent frameworks.
- Docker and Kubernetes communities for containerization and orchestration tools.
- Contributors and developers for their continuous support.