{"id":21076362,"url":"https://github.com/rapter1990/springbootmicroservicedailybuffer","last_synced_at":"2025-05-16T06:32:15.079Z","repository":{"id":65243791,"uuid":"579181396","full_name":"Rapter1990/springbootmicroservicedailybuffer","owner":"Rapter1990","description":"Spring Cloud Example (API Gateway, Zipkin, Redis, Authentication, Config Server, Docker, Kubernetes )","archived":false,"fork":false,"pushed_at":"2023-02-23T10:15:57.000Z","size":1213,"stargazers_count":55,"open_issues_count":1,"forks_count":26,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-04-24T06:34:07.665Z","etag":null,"topics":["api-gateway","config-server","docker","docker-compose","eureka-server","java","jenkins","jenkinsfile","junit","kubernetes","microservice","mysql","postman-collection","redis","resillience4j","services","spring-boot","spring-cloud","spring-security","zipkin"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Rapter1990.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-12-16T21:39:46.000Z","updated_at":"2024-04-21T08:52:22.000Z","dependencies_parsed_at":"2023-02-12T06:16:26.920Z","dependency_job_id":null,"html_url":"https://github.com/Rapter1990/springbootmicroservicedailybuffer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rapter1990%2Fspringbootmicroservicedailybuffer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rapter1990%2Fspringbootmicroservicedailybuffer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rapter1990%2Fspringbootmicroservicedailybuffer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rapter1990%2Fspringbootmicroservicedailybuffer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Rapter1990","download_url":"https://codeload.github.com/Rapter1990/springbootmicroservicedailybuffer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225413236,"owners_count":17470542,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-gateway","config-server","docker","docker-compose","eureka-server","java","jenkins","jenkinsfile","junit","kubernetes","microservice","mysql","postman-collection","redis","resillience4j","services","spring-boot","spring-cloud","spring-security","zipkin"],"created_at":"2024-11-19T19:28:02.300Z","updated_at":"2024-11-19T19:28:02.854Z","avatar_url":"https://github.com/Rapter1990.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Spring Boot Microservice Example (Eureka Server, Config Server, API Gateway, Services , Zipkin, Redis, Resilience4j, Docker, Kubernetes)\n\n\u003cimg src=\"screenshots/springbootmicroservice_drawio.png\" alt=\"Main Information\" width=\"800\" height=\"500\"\u003e\n\n# About the project\n\u003cul style=\"list-style-type:disc\"\u003e\n  \u003cli\u003eThis project is based Spring Boot Microservices with the usage of Docker and Kubernetes\u003c/li\u003e\n  \u003cli\u003eUser can register and login through auth service by user role (ADMIN or USER) through api gateway\u003c/li\u003e\n  \u003cli\u003eUser can send any request to relevant service through api gateway with its bearer token\u003c/li\u003e\n\u003c/ul\u003e\n\n7 services whose name are shown below have been devised within the scope of this project.\n\n- Config Server\n- Eureka Server\n- API Gateway\n- Auth Service\n- Order Service\n- Payment Service\n- Product Service\n\n### Docker Hub\n\u003ca href=\"https://hub.docker.com/search?q=noyandocker\"\u003eLink\u003c/a\u003e\n\n### Git Backend for Config server\n\u003ca href=\"https://github.com/Rapter1990/springappconfig\"\u003eLink\u003c/a\u003e\n\n### Explore Rest APIs\n\n\u003ctable style=\"width:100%\"\u003e\n  \u003ctr\u003e\n      \u003cth\u003eMethod\u003c/th\u003e\n      \u003cth\u003eUrl\u003c/th\u003e\n      \u003cth\u003eDescription\u003c/th\u003e\n      \u003cth\u003eValid Request Body\u003c/th\u003e\n      \u003cth\u003eValid Request Params\u003c/th\u003e\n      \u003cth\u003eValid Request Params and Body\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n      \u003ctd\u003ePOST\u003c/td\u003e\n      \u003ctd\u003eauthenticate/signup\u003c/td\u003e\n      \u003ctd\u003eSignup for User and Admin\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"README.md#signup\"\u003eInfo\u003c/a\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n      \u003ctd\u003ePOST\u003c/td\u003e\n      \u003ctd\u003eauthenticate/login\u003c/td\u003e\n      \u003ctd\u003eLogin for User and Admin\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"README.md#login\"\u003eInfo\u003c/a\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n      \u003ctd\u003ePOST\u003c/td\u003e\n      \u003ctd\u003eauthenticate/refreshtoken\u003c/td\u003e\n      \u003ctd\u003eRefresh Token for User and Admin\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"README.md#refreshtoken\"\u003eInfo\u003c/a\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n      \u003ctd\u003ePOST\u003c/td\u003e\n      \u003ctd\u003e/product\u003c/td\u003e\n      \u003ctd\u003eAdd Product\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"README.md#addproduct\"\u003eInfo\u003c/a\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n      \u003ctd\u003eGET\u003c/td\u003e\n      \u003ctd\u003e/product/{product_id}\u003c/td\u003e\n      \u003ctd\u003eGet Product By Id\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"README.md#getProductById\"\u003eInfo\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n      \u003ctd\u003ePUT\u003c/td\u003e\n      \u003ctd\u003e/reduceQuantity/{product_id}?quantity={quantity_value}\u003c/td\u003e\n      \u003ctd\u003eReduce Quantity of Product\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"README.md#reduceQuantityOfProduct\"\u003eInfo\u003c/a\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n      \u003ctd\u003eDELETE\u003c/td\u003e\n      \u003ctd\u003e/product/{product_id}\u003c/td\u003e\n      \u003ctd\u003eDelete Prodcut By Id\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"README.md#deleteProductById\"\u003eInfo\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n      \u003ctd\u003ePOST\u003c/td\u003e\n      \u003ctd\u003e/order/placeorder\u003c/td\u003e\n      \u003ctd\u003ePlace Order\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"README.md#placeOrder\"\u003eInfo\u003c/a\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n      \u003ctd\u003eGET\u003c/td\u003e\n      \u003ctd\u003e/order/{order_id}\u003c/td\u003e\n      \u003ctd\u003eGet Order By Id\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"README.md#getOrderById\"\u003eInfo\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n      \u003ctd\u003eGET\u003c/td\u003e\n      \u003ctd\u003e/payment/order/{order_id}\u003c/td\u003e\n      \u003ctd\u003eGet Payment Details by Order Id\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"README.md#getPaymentDetailsByOrderId\"\u003eInfo\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\n\u003c/table\u003e\n\n### Used Dependencies\n* Core\n    * Spring\n        * Spring Boot\n        * Spring Boot Test (Junit)\n        * Spring Security\n        * Spring Web\n            * RestTemplate\n            * FeighClient\n        * Spring Data\n            * Spring Data JPA\n        * Spring Cloud\n            * Spring Cloud Gateway Server\n            * Spring Cloud Config Server\n            * Spring Cloud Config Client\n    * Netflix\n        * Eureka Server\n        * Eureka Client\n* Database\n    * Mysql\n* Redis\n* Zipkin\n* Docker\n* Kubernetes\n* Jenkins\n* Junit\n* Log4j2\n\n## Valid Request Body\n\n##### \u003ca id=\"signup\"\u003e Signup for User and Admin\n```\n    http://localhost:9090/authenticate/signup\n    \n    {\n        \"username\" : \"User\",\n        \"password\" : \"User\",\n        \"email\" : \"user@refreshtoken.com\",\n        \"roles\" : [\n                \"ROLE_USER\"\n        ]\n    }\n    \n    http://localhost:9090/authenticate/signup\n    \n    {\n        \"username\" : \"admin1\",\n        \"password\" : \"admin1\",\n        \"email\" : \"admin1@refreshtoken.com\",\n        \"roles\" : [\n                \"ROLE_ADMIN\"\n        ]\n    }\n```\n\n##### \u003ca id=\"login\"\u003e Login for User and Admin\n```\n    http://localhost:9090/authenticate/login\n    \n    {\n        \"username\" : \"User\",\n        \"password\" : \"User\"\n    }\n    \n    http://localhost:9090/authenticate/login\n    \n    {\n        \"username\" : \"UserAdmin\",\n        \"password\" : \"UserAdmin\"\n    }\n```\n\n##### \u003ca id=\"refreshtoken\"\u003e Refresh Token for User and Admin\n```\n    http://localhost:9090/authenticate/refreshtoken\n    \n    {\n        \"refreshToken\" : \"\"\n    }\n```\n\n##### \u003ca id=\"addProduct\"\u003e Add Product\n```\n    http://localhost:9090/product\n    \n    {\n        \"name\" : \"Product 1\",\n        \"price\" : 100,\n        \"quantity\" : 1\n    }\n    \n    Bearer Token : User Token\n```\n\n##### \u003ca id=\"placeorder\"\u003e Place Order\n```\n    http://localhost:9090/order/placeorder\n    \n    {\n        \"productId\" : 1,\n        \"totalAmount\" : 100,\n        \"quantity\" : 1,\n        \"paymentMode\" : \"CASH\"\n    }\n    \n    Bearer Token : User Token\n```\n\n## Valid Request Params\n\n##### \u003ca id=\"reduceQuantityOfProduct\"\u003eReduce Quantity of Product\n```\n    http://localhost:9090/product/reduceQuantity/1?quantity=1\n    \n    Bearer Token : User Token\n```\n\n## Valid Request Params and Body\n\n##### \u003ca id=\"getProductById\"\u003eGet Product By Id\n```\n    http://localhost:9090/product/{prodcutId}\n    \n    Bearer Token : User Token\n```\n\n##### \u003ca id=\"deleteProductById\"\u003eDelete Product By Id\n```\n    http://localhost:9090/product/{prodcutId}\n    \n    Bearer Token : Admin Token\n```\n\n##### \u003ca id=\"deleteProductById\"\u003eDelete Product By Id\n```\n    http://localhost:9090/order/{order_id}\n    \n    Bearer Token : User Token\n```\n\n##### \u003ca id=\"getPaymentDetailsByOrderId\"\u003eGet Payment Details by Order Id\n```\n    http://localhost:9090/payment/order/{order_id}\n    \n    Bearer Token : User Token\n```\n\n### 🔨 Run the App\n\n\u003cb\u003eLocal\u003c/b\u003e\n\n\u003cb\u003e1 )\u003c/b\u003e Download your project from this link `https://github.com/Rapter1990/springbootmicroservicedailybuffer`\n\n\u003cb\u003e2 )\u003c/b\u003e Go to the project's home directory :  `cd springbootmicroservicedailybuffer`\n\n\u003cb\u003e3 )\u003c/b\u003e Run \u003cb\u003eService Registry (Eureka Server)\u003c/b\u003e\n\n\u003cb\u003e4 )\u003c/b\u003e Run \u003cb\u003econfig server\u003c/b\u003e\n\n\u003cb\u003e5 )\u003c/b\u003e Run \u003cb\u003ezipkin\u003c/b\u003e and \u003cb\u003eredis\u003c/b\u003e through these commands shown below on \u003cb\u003eDocker\u003c/b\u003e\n```\n    docker run -d -p 9411:9411 openzipkin/zipkin\n    docker run -d --name redis -p 6379:6379 redis\n```\n\n\u003cb\u003e6 )\u003c/b\u003e Run \u003cb\u003eapi gateway\u003c/b\u003e\n\n\u003cb\u003e7 )\u003c/b\u003e Run other services (\u003cb\u003eauth-service\u003c/b\u003e, \u003cb\u003eorderservice\u003c/b\u003e, \u003cb\u003epaymentservice\u003c/b\u003e and lastly \u003cb\u003eproductservice\u003c/b\u003e)\n\n\u003cb\u003eDocker\u003c/b\u003e\n\n\u003cb\u003e1 )\u003c/b\u003e Install \u003cb\u003eDocker Desktop\u003c/b\u003e. Here is the installation \u003cb\u003elink\u003c/b\u003e : https://docs.docker.com/docker-for-windows/install/\n\n\u003cb\u003e2 )\u003c/b\u003e Build \u003cb\u003ejar\u003c/b\u003e file for all services shown below\n\n\u003ctable style=\"width:100%\"\u003e\n  \u003ctr\u003e\n    \u003cth\u003eService\u003c/th\u003e\n    \u003cth\u003eCommand\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eservice-registry\u003c/td\u003e\n    \u003ctd\u003emvn clean install\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003econfigserver\u003c/td\u003e\n    \u003ctd\u003emvn clean install\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eapigateway\u003c/td\u003e\n    \u003ctd\u003emvn clean install -DskipTests\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eauth-service\u003c/td\u003e\n    \u003ctd\u003emvn clean install -DskipTests\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eorderservice\u003c/td\u003e\n    \u003ctd\u003emvn clean install -DskipTests\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eproductservice\u003c/td\u003e\n    \u003ctd\u003emvn clean install -DskipTests\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003epaymentservice\u003c/td\u003e\n    \u003ctd\u003emvn clean install -DskipTests\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003cb\u003e3 )\u003c/b\u003e Build all \u003cb\u003eimages\u003c/b\u003e and push to \u003cb\u003eDocker Hub\u003c/b\u003e\n```\n    1 ) service-registry\n     \n        - docker build -t microservicedailybuffer/serviceregistry:0.0.1 .\n        - docker tag microservicedailybuffer/serviceregistry:0.0.1 noyandocker/serviceregistry\n        - docker push noyandocker/serviceregistry\n        \n    2 ) configserver\n     \n        - docker build -t microservicedailybuffer/configserver:0.0.1 .\n        - docker tag microservicedailybuffer/configserver:0.0.1 noyandocker/configserver\n        - docker push noyandocker/configserver\n    \n    3 ) api-gateway\n     \n        - docker build -t microservicedailybuffer/apigateway:0.0.1 .\n        - docker tag microservicedailybuffer/apigateway:0.0.1 noyandocker/apigateway\n        - docker push noyandocker/apigateway\n    \n    4 ) auth-service\n     \n        - docker build -t microservicedailybuffer/authservice:0.0.1 \n        - docker tag microservicedailybuffer/authservice:0.0.1 noyandocker/authservice\n        - docker push noyandocker/authservice\n        \n    5 ) productservice\n     \n        - docker build -t microservicedailybuffer/productservice:0.0.1 .\n        - docker tag microservicedailybuffer/productservice:0.0.1 noyandocker/productservice\n        - docker push noyandocker/productservice\n        \n    6 ) orderservice\n     \n        - docker build -t microservicedailybuffer/orderservice:0.0.1 .\n        - docker tag microservicedailybuffer/orderservice:0.0.1 noyandocker/orderservice\n        - docker push noyandocker/orderservice\n        \n    7 ) paymentservice\n     \n        - docker build -t microservicedailybuffer/paymentservice:0.0.1 .\n        - docker tag microservicedailybuffer/paymentservice:0.0.1 noyandocker/paymentservice\n        - docker push noyandocker/paymentservice\n```\n\n\u003cb\u003e4 )\u003c/b\u003e Run all \u003cb\u003eContainers\u003c/b\u003e through this command shown below under main folder\n```\n    docker-compose up -d\n```\n\u003cb\u003e5 )\u003c/b\u003e Send request to any service by using request collections under \u003cb\u003epostman_collection\u003c/b\u003e \n\n\u003cb\u003eKubernetes\u003c/b\u003e\n\n\u003cb\u003e1 )\u003c/b\u003e Install \u003cb\u003eminikube\u003c/b\u003e to access this link https://minikube.sigs.k8s.io/docs/start/\n\n\u003cb\u003e2 )\u003c/b\u003e Open \u003cb\u003ecommand prompt\u003c/b\u003e and install \u003cb\u003ekubectl\u003c/b\u003e through this command shown below \n```\n    minikube kubectl --\n```\n\n\u003cb\u003e3 )\u003c/b\u003e Start \u003cb\u003eminikube\u003c/b\u003e through this command shown below.\n```\n    minikube start\n```\n\n\u003cb\u003e4 )\u003c/b\u003e Open \u003cb\u003eminikube dashboard\u003c/b\u003e through this command shown below.\n```\n    minikube dashboard\n```\n\n\u003cb\u003e5 )\u003c/b\u003e Run all \u003cb\u003eimages\u003c/b\u003e coming from Docker hub on Kubernetes through this command shown below.\n```\n    kubectl apply -f k8s\n```\n\n\u003cb\u003e6 )\u003c/b\u003e Show all information about images running on \u003cb\u003eKubernetes\u003c/b\u003e through this command\n```\n    kubectl get all\n```\n\n\u003cb\u003e7 )\u003c/b\u003e Show all \u003cb\u003eservices\u003c/b\u003e running on Kubernetes through this command\n```\n    kubectl get services\n```\n\n\u003cb\u003e8 )\u003c/b\u003e Show \u003cb\u003eeureka server\u003c/b\u003e on Kubernetes through this command\n```\n    minikube service eureka-lb\n```\n\n\u003cb\u003e9 )\u003c/b\u003e Show \u003cb\u003eapi gateway\u003c/b\u003e on Kubernetes through this command\n```\n    minikube service cloud-gateway-svc\n```\n\u003cb\u003e10 )\u003c/b\u003e Copy \u003cb\u003eIP address\u003c/b\u003e and Replace \u003cb\u003eit\u003c/b\u003e with \u003cb\u003elocalhost\u003c/b\u003e of the \u003cb\u003eendpoints\u003c/b\u003e defined in \u003cb\u003epostman collection\u003c/b\u003e\n\n\n\u003cb\u003eJenkins\u003c/b\u003e\n\n\u003cb\u003e1 )\u003c/b\u003e Download \u003cb\u003ejenkins\u003c/b\u003e to access this link https://hub.docker.com/r/jenkins/jenkins\n\n\u003cb\u003e2 )\u003c/b\u003e Run \u003cb\u003eJenkins\u003c/b\u003e through this command shown below\n```\n    docker run -p 8080:8080 -p 50000:50000 --restart=on-failure jenkins/jenkins:lts-jdk11\n```\n\n\u003cb\u003e3 )\u003c/b\u003e Install \u003cb\u003eJenkins\u003c/b\u003e and define \u003cb\u003eusername\u003c/b\u003e and \u003cb\u003epassword\u003c/b\u003e\u003c/b\u003e \n\n\u003cb\u003e3 )\u003c/b\u003e Click \u003ci\u003eNew Item\u003c/i\u003e and Create pipeline to run Jenkinsfile\n\n\u003cb\u003e4 )\u003c/b\u003e Run \u003cb\u003epipeline\u003c/b\u003e\n\n\n### Screenshots\n\n\u003cdetails\u003e\n\u003csummary\u003eClick here to show the screenshot of project\u003c/summary\u003e\n    \u003cp\u003e Docker Desktop to show all running containers \u003c/p\u003e\n    \u003cimg src =\"screenshots/docker_1.PNG\"\u003e\n    \u003cp\u003e Docker Hub \u003c/p\u003e\n    \u003cimg src =\"screenshots/docker_2.PNG\"\u003e\n    \u003cp\u003e Kubernetes Dashboard \u003c/p\u003e\n    \u003cimg src =\"screenshots/kubernetes_screenshot.PNG\"\u003e\n    \u003cp\u003e Jenkins Figure 1 \u003c/p\u003e\n    \u003cimg src =\"screenshots/jenkins_1.PNG\"\u003e\n    \u003cp\u003e Jenkins Figure 2 \u003c/p\u003e\n    \u003cimg src =\"screenshots/jenkins_2.PNG\"\u003e\n\u003c/details\u003e   \n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frapter1990%2Fspringbootmicroservicedailybuffer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frapter1990%2Fspringbootmicroservicedailybuffer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frapter1990%2Fspringbootmicroservicedailybuffer/lists"}