/yas

YAS: Yet Another Shop

Primary LanguageJavaMIT LicenseMIT

YAS: Yet Another Shop

YAS is a pet project aim to practice building a typical microservice application in Java

storefront-ci storefront-bff-ci backoffice-ci backoffice-bff-ci product-ci media-ci cart-ci customer-ci

Tentative technologies and frameworks

  • Java 17
  • Spring boot 2.7
  • Next.js
  • Keycloak
  • Kafka
  • K8s
  • Github Actions
  • SonarCloud
  • OpenTelemetry
  • Jaeger

Local development architecture

Yas - local development architecture

Getting started with Docker Compose

  1. Get the latest source code
  2. Add the following records to your host file: 127.0.0.1 identity 127.0.0.1 api.yas.local 127.0.0.1 pgadmin.yas.local 127.0.0.1 storefront 127.0.0.1 backoffice 127.0.0.1 jaeger
  3. Open terminal of your choice, go to 'yas' directory and run docker compose up
  4. Open your favorite browser and go to http://pgadmin.yas.local. Account login: admin@yas.com / admin. Register a server: postgres, port 5432, username admin, password admin
  5. Setup Keycloak
  6. The Postgresql server is also published to the host machine: servername: localhost, port: 5432, username: admin, password: admin

Getting started with Kubernetes in Docker Desktop

  1. Get the latest source code
  2. Have your Docker desktop with Kubernetes enabled
  3. Install NGINX ingress controller kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.1/deploy/static/provider/cloud/deploy.yaml
  4. In C: driver, create 2 folders k8s-yas-data/postgres and k8s-yas-data/pgadmin
  5. Run kubectl apply -f yaslocal.yaml
  6. Add 127.0.0.1 identity, 127.0.0.1 storefront, 127.0.0.1 api.yas.local, 127.0.0.1 backoffice, 127.0.0.1 pgadmin.yas.local and 127.0.0.1 jaeger to your host file
  7. Open your favorite browser and go to http://pgadmin.yas.local. Account login: admin@yas.com / admin. Register a server: localhost, port default, username admin, password admin. Then create a database name keycloak, media, product, cart
  8. Setup Keycloak
  9. The Postgresql server is also published to the host machine: servername: localhost, port: 30007, username: admin, password: admin

Getting started with Minikube in Ubuntu

Please see it in the wiki

Components roadmap

  • Identity service
  • Media service
  • Product service
  • Pricing service
  • Cart service
  • Order service
  • Review service

Contributing

By contributing, you agree that your contributions will be licensed under MIT License.

Active contributors might be asked to join the core team