Skip to content

cardosakv/mercibus

Repository files navigation

Mercibus

Mercibus is a personal practice project for building an e-commerce application using microservices architecture.

Services

🔐 Auth Service

Auth Service CI Quality Gate Status Coverage

Manages:

  • User registration & login
  • Role-based access control
  • JWT authentication & token refresh
  • Email confirmation & password resets

🛍️ Catalog Service

Catalog Service CI Quality Gate Status Coverage

Handles:

  • Product, brand & category management
  • Product image and attribute definitions
  • Product reviews

Order Service

Order Service CI Quality Gate Status Coverage

Handles:

  • Order creation & management
  • Order updates via events

Payment Service

Payment Service CI Quality Gate Status Coverage

Handles:

  • Payment processing with Xendit
  • Payment status via webhooks

📦 Tech Stack

  • .NET 8 (C#) for service implementation
  • Entity Framework Core for data access
  • PostgreSQL as the main database
  • RabbitMQ for message-based communication
  • Docker & Docker Compose for containerization
  • xUnit + Moq + Testcontainers for testing
  • SonarCloud for static analysis & code coverage
  • GitHub Actions for CI/CD

🚀 Getting Started

1. Clone the repository

git clone https://github.com/cardosakv/mercibus.git

2. Navigate to a service directory

Example:

cd mercibus/services/auth

3. Build and run using Docker Compose in root directory

docker-compose up -d

4. Access service APIs

  • Gateway: http://localhost:9000
  • Auth Service: http://localhost:9000/swagger-auth/index.html
  • Catalog Service: http://localhost:9000/swagger-catalog/index.html
  • Order Service: http://localhost:9000/swagger-order/index.html
  • Payment Service: http://localhost:9000/swagger-payment/index.html

Packages

 
 
 

Languages