Giter Club home page Giter Club logo

micro-ecommerce's Introduction

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

micro-ecommerce's People

Contributors

gudfhr95 avatar renovate[bot] avatar

Watchers

 avatar

micro-ecommerce's Issues

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Pending Approval

These branches will be created by Renovate only once you click their checkbox below.

  • chore(deps): update actions/checkout action to v4
  • chore(deps): update docker.io/bitnami/keycloak docker tag to v22
  • chore(deps): update helm release keycloak to v16
  • chore(deps): update plugin org.openapi.generator to v7
  • ๐Ÿ” Create all pending approval PRs at once ๐Ÿ”

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • chore(deps): update docker.io/bitnami/keycloak docker tag to v21.1.2
  • chore(deps): update plugin io.spring.dependency-management to v1.1.3
  • fix(deps): update dependency io.mockk:mockk to v1.13.8
  • chore(deps): update dependency gradle to v8.3
  • chore(deps): update docker.io/bitnami/keycloak-config-cli docker tag to v5.8.0
  • chore(deps): update kotlinversion to v1.9.10 (org.jetbrains.kotlin.plugin.jpa, org.jetbrains.kotlin.plugin.spring, org.jetbrains.kotlin.jvm)
  • fix(deps): update dependency io.kotest:kotest-runner-junit5 to v5.7.2
  • fix(deps): update dependency org.springdoc:springdoc-openapi-starter-webmvc-ui to v2.2.0
  • ๐Ÿ” Create all rate-limited PRs at once ๐Ÿ”

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/gradle-ci.yml
  • actions/checkout v3
  • actions/setup-java v3
  • gradle/gradle-build-action v2
gradle
gradle.properties
  • org.jetbrains.kotlin.jvm 1.8.21
  • org.jlleitschuh.gradle.ktlint 11.3.2
  • io.gitlab.arturbosch.detekt 1.23.0-RC3
  • org.springframework.boot 3.0.6
  • io.spring.dependency-management 1.1.0
  • org.jetbrains.kotlin.plugin.spring 1.8.21
  • org.jetbrains.kotlin.plugin.jpa 1.8.21
  • org.openapi.generator 6.6.0
  • io.kotest:kotest-runner-junit5 5.6.2
  • io.mockk:mockk 1.13.5
  • org.testcontainers:testcontainers-bom 1.18.1
  • org.springdoc:springdoc-openapi-starter-webmvc-ui 2.1.0
  • io.kotest.extensions:kotest-extensions-spring 1.1.3
  • mysql:mysql-connector-java 8.0.33
settings.gradle.kts
build.gradle.kts
core/build.gradle.kts
terms/terms-command-application/build.gradle.kts
terms/terms-command-infra/build.gradle.kts
terms/terms-domain/build.gradle.kts
gradle-wrapper
gradle/wrapper/gradle-wrapper.properties
  • gradle 8.1.1
helm-values
k8s/infra/istio/values.yaml
k8s/infra/keycloak/values.yaml
  • docker.io/bitnami/keycloak 21.1.1-debian-11-r0
  • docker.io/bitnami/keycloak-config-cli 5.6.1-debian-11-r5
k8s/infra/mysql/values.yaml
  • docker.io/bitnami/mysql 8.0.33-debian-11-r3
  • docker.io/bitnami/bitnami-shell 11-debian-11-r110
  • docker.io/bitnami/mysqld-exporter 0.14.0-debian-11-r112
helmv3
k8s/infra/cert-manager/Chart.yaml
  • cert-manager v1.11.2
k8s/infra/istio-ingressgateway/Chart.yaml
  • gateway 1.17.2
k8s/infra/istio/Chart.yaml
  • base 1.17.2
  • istiod 1.17.2
k8s/infra/keycloak/Chart.yaml
  • keycloak 15.1.1
k8s/infra/mysql/Chart.yaml
  • mysql 9.9.1

  • Check this box to trigger a request for Renovate to run again on this repository

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.