diff --git a/README.md b/README.md index dbf9aacc..d87c1ac5 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,12 @@ CoolStore is a containerised polyglot microservices application consisting of se It demonstrates how to wire up small microservices into a larger application using microservice architectural principals. +### Screenshots + +| Home Page | Product Page | +|-----------|--------------| +| [![home-page](assets/images/ui-screen-1.PNG?raw=true)](assets/images/ui-screen-1.PNG?raw=true) | [![product-page](assets/images/ui-screen-2.PNG?raw=true)](assets/images/ui-screen-2.PNG?raw=true) | + ### Presentation Our team uses this application to demonstrate Kubernetes, AKS, Istio and similar cloud-native technologies in events as following diff --git a/assets/images/arch-diagram.png b/assets/images/arch-diagram.png index 19e19bed..1723df51 100644 Binary files a/assets/images/arch-diagram.png and b/assets/images/arch-diagram.png differ diff --git a/assets/images/ui-screen-1.PNG b/assets/images/ui-screen-1.PNG new file mode 100644 index 00000000..f4d7c67c Binary files /dev/null and b/assets/images/ui-screen-1.PNG differ diff --git a/assets/images/ui-screen-2.PNG b/assets/images/ui-screen-2.PNG new file mode 100644 index 00000000..53a07e18 Binary files /dev/null and b/assets/images/ui-screen-2.PNG differ diff --git a/assets/state-of-the-art.pptx b/assets/state-of-the-art.pptx index 3c054ff9..6bf0e59e 100644 Binary files a/assets/state-of-the-art.pptx and b/assets/state-of-the-art.pptx differ diff --git a/deploys/charts/coolstore/templates/cart-db-dep.yaml b/deploys/charts/coolstore/templates/cart-db-dep.yaml index d11f6a03..13917d47 100644 --- a/deploys/charts/coolstore/templates/cart-db-dep.yaml +++ b/deploys/charts/coolstore/templates/cart-db-dep.yaml @@ -18,20 +18,6 @@ spec: env: - name: MYSQL_ROOT_PASSWORD value: "P@ssw0rd" - - name: MYSQL_ALLOW_EMPTY_PASSWORD - value: false - - name: MYSQL_RANDOM_ROOT_PASSWORD - value: false - - name: DB_TYPE - value: "mysql" - - name: MYSQL_DB_HOST - value: "maindb" - - name: MYSQL_DB_PORT - value: "3306" - - name: MYSQL_DB_USER - value: "root" - - name: MYSQL_DB_PASSWORD - value: "P@ssw0rd" ports: - containerPort: 3306 --- diff --git a/deploys/charts/coolstore/templates/inventory-db-dep.yaml b/deploys/charts/coolstore/templates/inventory-db-dep.yaml index 9ffb995f..b0199a87 100644 --- a/deploys/charts/coolstore/templates/inventory-db-dep.yaml +++ b/deploys/charts/coolstore/templates/inventory-db-dep.yaml @@ -18,20 +18,6 @@ spec: env: - name: MYSQL_ROOT_PASSWORD value: "P@ssw0rd" - - name: MYSQL_ALLOW_EMPTY_PASSWORD - value: false - - name: MYSQL_RANDOM_ROOT_PASSWORD - value: false - - name: DB_TYPE - value: "mysql" - - name: MYSQL_DB_HOST - value: "maindb" - - name: MYSQL_DB_PORT - value: "3306" - - name: MYSQL_DB_USER - value: "root" - - name: MYSQL_DB_PASSWORD - value: "P@ssw0rd" ports: - containerPort: 3306 --- diff --git a/deploys/charts/coolstore/templates/review-db-dep.yaml b/deploys/charts/coolstore/templates/review-db-dep.yaml index db239ff1..4a80cd7e 100644 --- a/deploys/charts/coolstore/templates/review-db-dep.yaml +++ b/deploys/charts/coolstore/templates/review-db-dep.yaml @@ -18,20 +18,6 @@ spec: env: - name: MYSQL_ROOT_PASSWORD value: "P@ssw0rd" - - name: MYSQL_ALLOW_EMPTY_PASSWORD - value: false - - name: MYSQL_RANDOM_ROOT_PASSWORD - value: false - - name: DB_TYPE - value: "mysql" - - name: MYSQL_DB_HOST - value: "maindb" - - name: MYSQL_DB_PORT - value: "3306" - - name: MYSQL_DB_USER - value: "root" - - name: MYSQL_DB_PASSWORD - value: "P@ssw0rd" ports: - containerPort: 3306 --- diff --git a/src/services/cart/appsettings.json b/src/services/cart/appsettings.json index 03e18b08..8579efa4 100644 --- a/src/services/cart/appsettings.json +++ b/src/services/cart/appsettings.json @@ -12,15 +12,15 @@ }, "k8s": { "mssqldb": { - "Host": "CART_DB_SERVICE_HOST", - "Port": "CART_DB_SERVICE_PORT", + "Host": "CARTDB_SERVICE_HOST", + "Port": "CARTDB_SERVICE_PORT", "Database": "maindb", "UserName": "cs", "Password": "P@ssw0rd" }, "mysqldb": { - "Host": "CART_DB_SERVICE_HOST", - "Port": "CART_DB_SERVICE_PORT", + "Host": "CARTDB_SERVICE_HOST", + "Port": "CARTDB_SERVICE_PORT", "Database": "maindb", "UserName": "root", "Password": "P@ssw0rd", diff --git a/src/services/catalog/shrinkwrap.yaml b/src/services/catalog/shrinkwrap.yaml index cf9f71a2..5e90707a 100644 --- a/src/services/catalog/shrinkwrap.yaml +++ b/src/services/catalog/shrinkwrap.yaml @@ -19,7 +19,7 @@ devDependencies: rimraf: 2.6.2 ts-loader: 4.5.0 ts-node: 7.0.1 - tslint: 3.15.1 + tslint: 5.11.0 tslint-loader: 3.6.0 typescript: 3.0.1 webpack: 4.16.5 @@ -550,6 +550,12 @@ packages: node: '>=0.10.0' resolution: integrity: sha1-2Eh3FAss/wfRyT685pkE9oiF5Wg= + /ansi-styles/2.2.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= /ansi-styles/3.2.1: dependencies: color-convert: 1.9.2 @@ -609,7 +615,6 @@ packages: /argparse/1.0.10: dependencies: sprintf-js: 1.0.3 - dev: false resolution: integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== /arr-diff/4.0.0: @@ -707,6 +712,14 @@ packages: dev: false resolution: integrity: sha1-NCQX2PLzRhsUzwkIjV7fh5HcmDI= + /babel-code-frame/6.26.0: + dependencies: + chalk: 1.1.3 + esutils: 2.0.2 + js-tokens: 3.0.2 + dev: true + resolution: + integrity: sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= /balanced-match/1.0.0: resolution: integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c= @@ -949,6 +962,18 @@ packages: optional: true resolution: integrity: sha1-qg0yYptu6XIgBBHL1EYckHvCt60= + /chalk/1.1.3: + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= /chalk/2.4.1: dependencies: ansi-styles: 3.2.1 @@ -1071,18 +1096,11 @@ packages: dev: true resolution: integrity: sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok= - /colors/1.3.1: - dev: true - engines: - node: '>=0.1.90' - resolution: - integrity: sha512-jg/vxRmv430jixZrC+La5kMbUWqIg32/JsYNZb94+JEmzceYbWKTsv1OuTp+7EaqiaWRR2tPcykibwCRgclIsw== /commander/2.13.0: dev: true resolution: integrity: sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA== /commander/2.17.1: - dev: false resolution: integrity: sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== /commandpost/1.3.0: @@ -1350,12 +1368,6 @@ packages: dev: false resolution: integrity: sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - /diff/2.2.3: - dev: true - engines: - node: '>=0.3.1' - resolution: - integrity: sha1-YOr9DSjukG5Oj/ClLBIpUhAzv5k= /diff/3.5.0: dev: true engines: @@ -1515,6 +1527,13 @@ packages: node: '>=4.0.0' resolution: integrity: sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA== + /esprima/4.0.1: + dev: true + engines: + node: '>=4' + hasBin: true + resolution: + integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== /esrecurse/4.2.1: dependencies: estraverse: 4.2.0 @@ -1529,6 +1548,12 @@ packages: node: '>=0.10.0' resolution: integrity: sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= + /esutils/2.0.2: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= /etag/1.8.1: dev: false engines: @@ -1736,14 +1761,6 @@ packages: node: '>=6' resolution: integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - /findup-sync/0.3.0: - dependencies: - glob: 5.0.15 - dev: true - engines: - node: '>= 0.6.0' - resolution: - integrity: sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY= /flush-write-stream/1.0.3: dependencies: inherits: 2.0.3 @@ -1857,16 +1874,6 @@ packages: dev: true resolution: integrity: sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - /glob/5.0.15: - dependencies: - inflight: 1.0.6 - inherits: 2.0.3 - minimatch: 3.0.4 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - resolution: - integrity: sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E= /glob/7.1.2: dependencies: fs.realpath: 1.0.0 @@ -1952,6 +1959,14 @@ packages: uglify-js: 2.8.29 resolution: integrity: sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw= + /has-ansi/2.0.0: + dependencies: + ansi-regex: 2.1.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= /has-flag/3.0.0: dev: true engines: @@ -2398,6 +2413,18 @@ packages: node: '>=0.10.0' resolution: integrity: sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + /js-tokens/3.0.2: + dev: true + resolution: + integrity: sha1-mGbfOVECEw449/mWvOtlRDIJwls= + /js-yaml/3.12.0: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + hasBin: true + resolution: + integrity: sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A== /json-parse-better-errors/1.0.2: dev: true resolution: @@ -2749,6 +2776,7 @@ packages: resolution: integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== /minimist/0.0.10: + dev: false resolution: integrity: sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= /minimist/0.0.8: @@ -3042,6 +3070,7 @@ packages: dependencies: minimist: 0.0.10 wordwrap: 0.0.3 + dev: false resolution: integrity: sha1-2j6nRob6IaGaERwybpDrFaAZZoY= /os-browserify/0.3.0: @@ -3858,13 +3887,8 @@ packages: resolution: integrity: sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8= /sprintf-js/1.0.3: - dev: false resolution: integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - /sprintf-js/1.1.1: - dev: true - resolution: - integrity: sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw= /ssri/5.3.0: dependencies: safe-buffer: 5.1.2 @@ -3992,6 +4016,12 @@ packages: node: '>=0.10.0' resolution: integrity: sha1-JAIuSG878c3KCUKDt2nEctO3KJc= + /supports-color/2.0.0: + dev: true + engines: + node: '>=0.8.0' + resolution: + integrity: sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= /supports-color/5.5.0: dependencies: has-flag: 3.0.0 @@ -4124,21 +4154,28 @@ packages: tslint: '>=4.0.0' resolution: integrity: sha512-Me9Qf/87BOfCY8uJJw+J7VMF4U8WiMXKLhKKKugMydF0xMhMOt9wo2mjYTNhwbF9H7SHh8PAIwRG8roisTNekQ== - /tslint/3.15.1: + /tslint/5.11.0: dependencies: - colors: 1.3.1 - diff: 2.2.3 - findup-sync: 0.3.0 + babel-code-frame: 6.26.0 + builtin-modules: 1.1.1 + chalk: 2.4.1 + commander: 2.17.1 + diff: 3.5.0 glob: 7.1.2 - optimist: 0.6.1 + js-yaml: 3.12.0 + minimatch: 3.0.4 resolve: 1.8.1 - underscore.string: 3.3.4 + semver: 5.5.1 + tslib: 1.9.3 + tsutils: 2.29.0 dev: true + engines: + node: '>=4.8.0' hasBin: true peerDependencies: - typescript: '>=1.7.3' + typescript: '>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev' resolution: - integrity: sha1-2hZcqT2P3CwIa1EWXuG6y0jJjqU= + integrity: sha1-mPMMAurjzecAYgHkwzywi0hYHu0= /tsoa/2.1.8: dependencies: handlebars: 4.0.11 @@ -4159,6 +4196,14 @@ packages: hasBin: true resolution: integrity: sha512-grwH7fluwUtsDmVRm4dCGe4Fc+S1S4Lz7lPm+YVrfY76KHCdyVaENtkE+baA7NzKt0bUVyVOsjLaOoovspe6qA== + /tsutils/2.29.0: + dependencies: + tslib: 1.9.3 + dev: true + peerDependencies: + typescript: '>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev' + resolution: + integrity: sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== /tty-browserify/0.0.0: dev: true resolution: @@ -4261,13 +4306,6 @@ packages: dev: false resolution: integrity: sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs= - /underscore.string/3.3.4: - dependencies: - sprintf-js: 1.1.1 - util-deprecate: 1.0.2 - dev: true - resolution: - integrity: sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s= /underscore/1.7.0: dev: false resolution: @@ -4499,6 +4537,7 @@ packages: resolution: integrity: sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8= /wordwrap/0.0.3: + dev: false engines: node: '>=0.4.0' resolution: @@ -4639,7 +4678,7 @@ specifiers: swagger-ui-express: ^3.0.10 ts-loader: ^4.5.0 ts-node: ^7.0.1 - tslint: ^3.11.0 + tslint: ^5.11.0 tslint-loader: ^3.6.0 tsoa: ^2.1.8 typescript: ^3.0.1 diff --git a/src/services/inventory/appsettings.json b/src/services/inventory/appsettings.json index 5bf95af9..11b42f32 100644 --- a/src/services/inventory/appsettings.json +++ b/src/services/inventory/appsettings.json @@ -12,15 +12,15 @@ }, "k8s": { "mssqldb": { - "Host": "CART_DB_SERVICE_HOST", - "Port": "CART_DB_SERVICE_PORT", + "Host": "INVENTORYDB_SERVICE_HOST", + "Port": "INVENTORYDB_SERVICE_PORT", "Database": "maindb", "UserName": "cs", "Password": "P@ssw0rd" }, "mysqldb": { - "Host": "CART_DB_SERVICE_HOST", - "Port": "CART_DB_SERVICE_PORT", + "Host": "INVENTORYDB_SERVICE_HOST", + "Port": "INVENTORYDB_SERVICE_PORT", "Database": "maindb", "UserName": "root", "Password": "P@ssw0rd", diff --git a/src/services/review/appsettings.json b/src/services/review/appsettings.json index 786f2d5b..e4f27708 100644 --- a/src/services/review/appsettings.json +++ b/src/services/review/appsettings.json @@ -12,15 +12,15 @@ }, "k8s": { "mssqldb": { - "Host": "REVIEW_DB_SERVICE_HOST", - "Port": "REVIEW_DB_SERVICE_PORT", + "Host": "REVIEWDB_SERVICE_HOST", + "Port": "REVIEWDB_SERVICE_PORT", "Database": "maindb", "UserName": "cs", "Password": "P@ssw0rd" }, "mysqldb": { - "Host": "CART_DB_SERVICE_HOST", - "Port": "CART_DB_SERVICE_PORT", + "Host": "REVIEWDB_SERVICE_HOST", + "Port": "REVIEWDB_SERVICE_PORT", "Database": "maindb", "UserName": "root", "Password": "P@ssw0rd",