Skip to content

Markkreel/Ecom-Microservices

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

E-commerce Microservices Platform

A modern, scalable e-commerce platform built using microservices architecture. This project demonstrates best practices in distributed systems design, containerization, and cloud-native development.

Architecture Overview

The platform consists of the following microservices:

  • User Service (Java/Spring Boot): Handles user authentication, registration, and profile management
  • Product Service (Java/Spring Boot): Manages product catalog and inventory
  • Order Service (Python/FastAPI): Processes customer orders and manages order lifecycle
  • Notification Service (Node.js): Handles system notifications and communications

Tech Stack

  • Backend Services: Java (Spring Boot), Python (FastAPI), Node.js
  • Database: PostgreSQL, MongoDB
  • Authentication: JWT-based authentication
  • API Gateway: API Gateway for routing and load balancing
  • Container Orchestration: Kubernetes
  • Infrastructure as Code: Terraform
  • CI/CD: GitHub Actions

Getting Started

Prerequisites

  • Docker and Docker Compose
  • Kubernetes cluster (for production deployment)
  • Java 11 or higher
  • Python 3.9 or higher
  • Node.js 14 or higher

Local Development Setup

  1. Clone the repository:
git clone https://github.com/yourusername/ecom-microservices.git
cd ecom-microservices
  1. Start the services using Docker Compose:
cd infrastructure
docker-compose up -d
  1. Access the services:

Project Structure

├── .github/workflows  # CI/CD pipeline configurations
├── api-gateway        # API Gateway service
├── docs               # Project documentation
├── infrastructure     # Docker, K8s, and Terraform configs
├── scripts            # Utility scripts
└── services           # Microservices
    ├── user-service
    ├── product-service
    ├── order-service
    └── notification-service

Development Guidelines

  1. Code Style

    • Follow language-specific style guides
    • Use consistent naming conventions
    • Write comprehensive unit tests
  2. Git Workflow

    • Create feature branches from develop
    • Use meaningful commit messages
    • Submit PRs for code review
  3. API Design

    • Follow RESTful principles
    • Use consistent error handling
    • Document APIs using OpenAPI/Swagger

Deployment

Kubernetes Deployment

  1. Apply Kubernetes configurations:
kubectl apply -f infrastructure/kubernetes/
  1. Verify deployments:
kubectl get pods

Infrastructure as Code

Terraform configurations are available in infrastructure/terraform/ for cloud deployment.

Monitoring and Logging

  • Kubernetes dashboard for cluster monitoring
  • Prometheus and Grafana for metrics
  • ELK stack for centralized logging

Contributing

  1. Fork the repository
  2. Create your feature branch
  3. Commit your changes
  4. Push to the branchw
  5. Create a new Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

For support and questions, please open an issue in the GitHub repository.

Last Updated: 22-03-2025 ⸺ Last Reviewed: 22-03-2025

About

Distributed e-commerce system leveraging microservices architecture, including API gateway, service discovery, and asynchronous communication.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors