Skip to content

MarcoBl96/ShoppingCart-Microservices

 
 

Repository files navigation

ShoppingCart by ikismail (https://github.com/ikismail/ShoppingCart) migrated to Microservice-Application

================================================
ShoppingCart-Microservices Changes:
================================================
-Spring Boot Implementation
-Spring Security Config XML to JAVA
-Spring Flow Config XML to JAVA
-Web.xml removed
-Change DB from H2 To MariaDB
-Migrating to Microservice architecture with REST API
-Discovery-Service + Loadbalancing
-Change frontend JSP to AngularJS (incl. API-Gateway Service)
-Spring Webflux Security authentication
-Docker + Docker compose config
================================================


================================================
Installation + How to run
================================================

1. Setup IntelliJ Idea
	* [Download IntelliJ Idea](https://www.jetbrains.com/idea/download/#section=windows)

2. Build Tool - Maven
	* [Download Maven](https://maven.apache.org/download.cgi)

3. Database - MariaDB
	* [Download MariaDB](https://mariadb.org/download/?t=mariadb&p=mariadb&r=10.8.3&os=windows&cpu=x86_64&pkg=msi&m=hs-esslingen)

4. Open project in Intellij Idea
	* File -> Open -> ShoppingCart-Microservice

5. Setup database for microservices
	* Open: src/main/resources/application.yml
	* Edit config
		* URL: 		spring.datasource.url=jdbc:mariadb://mariadb:3306/shoppingcart
		* Username:	spring.datasource.username=root
		* Passwort:	spring.datasource.password=password

6. Run project in Intellij
	*start discovery-service:
		* Command: "cd .\discovery-service\"
		* Command: "mvn spring-boot:run"
	*start api-gateway starten:
		* Command: "cd .api-gateway\"
		* Command: "mvn spring-boot:run"
	*start user-service starten:
		* Command: "cd .\user-service\"
		* Command: "mvn spring-boot:run"
	*start product starten:
		* Command: "cd .\product-service\"
		* Command: "mvn spring-boot:run"
	*start cart-service starten:
		* Command: "cd .\cart-service\"
		* Command: "mvn spring-boot:run"
	*start order-service starten:
		* Command: "cd .\order-service\"
		* Command: "mvn spring-boot:run"
	* Open browser and go to: "http://localhost:8080/"

7. Run project inside docker container (Windows)
	* Install docker for Windows
		* [Download Docker(https://docs.docker.com/desktop/install/windows-install/)

	* Run Docker

	* Repeat for every service:

		* Package service with maven:
			* Command: "mvn package spring-boot:repackage"

		* Build with docker: 
			* Command: "docker build -t shoppingcart-microservice/product-service ."

	* Run Docker-Compose (Config: docker-compose.yml)
		* Command: "docker-compose up"	
	 
	* Open browser and go to: "http://localhost:8080/"

8. Run project in google cloud with kubernetes engine:
	* Open: "https://console.cloud.google.com/"
	* Login with Google Account (Credit cart needed for Google Cloud)
	* Create new project
	* Tag and upload all docker images (incl. MariaDB -> mariadb:10.7) to Google Cloud Container Registriy
		* Instructions: https://cloud.google.com/container-registry/docs/pushing-and-pulling 

	* Create new GKE Standard Cluster in Kubernetes-Engine:
		* Region: europe-west3-c
		* Nodes: 5
		* Computer-Type: e2-medium


	* Run project in cluster:
		* Open local terminal
		* Makes sure Google Cloud CLI is installed
		* glcoud init by using command "gcloud init"
		* Add all services incl. mariadb by its kubernetes config (deployment.yaml) to cluster:
			* Change directory to service e.g. "cd .\api-gateway"
			* kubectl apply -f deployment.yaml
		* Setup extern Loadbalancer with extern IP in Google Webinterface for api-gateway
			* Services -> api-gateway -> Make public -> Port 8080-8080
		* Open browser and go to external IP
		

About

ShoppingCart migrated to Microservice-Application with Spring Boot

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 36.3%
  • JavaScript 27.3%
  • HTML 27.2%
  • CSS 8.7%
  • Dockerfile 0.5%