Skip to content
This repository has been archived by the owner on Nov 28, 2023. It is now read-only.

gudfhr95/micro-ecommerce

Repository files navigation

Micro Ecommerce

Status License

Demo ecommerce application using various tech stacks

🧐 About

This project is a demo ecommerce application using MSA(Microservice Architecture) and various tech stacks.

The main purpose of this project is to experiment with various tech stacks, system / software architecture, design patterns and to learn the best practice of using them.

Tech stacks, system / software architecture chosen for this project are popular or used widely in the industry.

⛏️ Built Using

SCM (Source Code Management)

Git GitHub pre-commit EditorConfig Ktlint detekt SonarLint

CI / CD (Continuous Integration / Continuous Delivery)

Github Actions Renovate Gradle

Testing

JaCoCo Kotest MockK

Infrastructure

Kubernetes Rancher k3s Helm Skaffold Istio Cert-Manager Keycloak MySQL

Backend

Kotlin Spring

🏁 Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

  1. Install Rancher Desktop

    Rancher Desktop will install and configure the following tools:

  2. Install Skaffold

  3. Install pre-commit

Installing / Running locally

  1. Clone this repository

    git clone https://github.com/gudfhr95/micro-ecommerce
    cd micro-ecommerce
  2. (Optional) Install pre-commit hooks

    pre-commit install
  3. Config /etc/hosts

    Add the following entries to your /etc/hosts file:

    127.0.0.1 httpbin.micro-ecommerce.com
    127.0.0.1 keycloak.micro-ecommerce.com
  4. Install Cert-Manager CRDs(Custom Resource Definitions)

    Cert-Manager has a dependency on CRDs that need to be installed onto a Kubernetes cluster before Cert-Manager itself can be installed.

    kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.11.2/cert-manager.crds.yaml
  5. Run Skaffold

    skaffold dev

    All helm dependencies and charts will be installed automatically by Skaffold.

  6. Access to httpbin

    open https://httpbin.micro-ecommerce.com/status/418

    Then you will see the following response:

    -=[ teapot ]=-
       _...._
     .'  _ _ `.
    | ."` ^ `". _,
    \_;`"---"`|//
      |       ;/
      \_     _/
        `"""`
    
  7. Access to other services

    You can access other services by using the following URLs:

🖼️ Diagrams

EventStorming

EventStorming

Context Map

Context Map

System Architecture

System Architecture

Microservices

Terms

  • Aggregate

    Terms Aggregate
  • ERD

    Terms ERD

✍️ Authors

🎉 Acknowledgements