{"id":20633194,"url":"https://github.com/kumahq/kuma-demo","last_synced_at":"2025-10-10T13:32:00.340Z","repository":{"id":37806476,"uuid":"211372748","full_name":"kumahq/kuma-demo","owner":"kumahq","description":"A demo app to illustrate the capabilities and advantages of Kuma. 🐻","archived":false,"fork":false,"pushed_at":"2024-07-25T07:42:40.000Z","size":7284,"stargazers_count":58,"open_issues_count":4,"forks_count":55,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-04-03T22:51:15.367Z","etag":null,"topics":["api","elasticsearch","javascript","mesh-networks","microservices","rest-api","scss","vuejs"],"latest_commit_sha":null,"homepage":"https://kuma.io/","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kumahq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":"GOVERNANCE.md","roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-09-27T17:45:46.000Z","updated_at":"2024-09-25T08:43:42.000Z","dependencies_parsed_at":"2024-12-16T18:34:43.159Z","dependency_job_id":"3c3bbb26-c992-4ba7-b5f7-cdeefa95f92a","html_url":"https://github.com/kumahq/kuma-demo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kumahq/kuma-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kumahq%2Fkuma-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kumahq%2Fkuma-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kumahq%2Fkuma-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kumahq%2Fkuma-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kumahq","download_url":"https://codeload.github.com/kumahq/kuma-demo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kumahq%2Fkuma-demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279004062,"owners_count":26083667,"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","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","elasticsearch","javascript","mesh-networks","microservices","rest-api","scss","vuejs"],"created_at":"2024-11-16T14:19:10.251Z","updated_at":"2025-10-10T13:31:59.706Z","avatar_url":"https://github.com/kumahq.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kuma Demo Application\n\n[![][kuma-logo]][kuma-url]\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/kumahq/kuma/blob/master/LICENSE)\n[![Slack](https://img.shields.io/badge/Slack-4A154B?logo=slack)](https://join.slack.com/t/kuma-mesh/shared_invite/zt-1rcll3y6t-DkV_CAItZUoy0IvCwQ~jlQ)\n[![Twitter](https://img.shields.io/twitter/follow/KumaMesh.svg?style=social\u0026label=Follow)](https://twitter.com/intent/follow?screen_name=KumaMesh)\n\nKuma is a universal open source control-plane for Service Mesh and Microservices that can run and be operated natively across both Kubernetes and VM environments, in order to be easily adopted by every team in the organization.\n\nThis repository houses the demo application used to illustrate Kuma's extensive features. To find the source of Kuma, please check out Kuma's [repository](https://github.com/kumahq/kuma).\n\n## Table of contents\n- [Kuma Demo Application](#kuma-demo-application)\n  - [Table of contents](#table-of-contents)\n  - [Introduction](#introduction)\n  - [Deployment](#deployment)\n  - [Application Components](#application-components)\n    - [Frontend](#frontend)\n    - [Backend](#backend)\n    - [PostgreSQL](#postgresql)\n    - [Redis](#redis)\n\n## Introduction\n[![][diagram]][diagram]\n\nThe Kuma Demo Application is a clothing marketplace where you can browse listed items along with the reviews left by users. It consists of four components: [Vue frontend UI](#frontend), [Node backend API](#backend), [PostgreSQL](#PostgreSQL), and [Redis](#Redis).\n\n## Deployment\n\nKuma is a universal control plane that can run across both modern environments like Kubernetes and more traditional VM-based ones.\n\nThe first step is obviously to [download and install Kuma](https://kuma.io/install/) on the platform of your choice. Different distributions will present different installation instructions that follow the best practices for the platform you have selected. Regardless of what platform you decide to use, the fundamental behavior of Kuma at runtime will not change across different distributions.\n\nTo see examples of how to deploy Kuma alongside this marketplace application, please check out the following instructions:\n\n- [Kubernetes](kubernetes/README.md)\n\n## Application Components\n\n### Frontend\n\nThe frontend UI is built using [VuePress](https://vuepress.vuejs.org/) and the source code can be found in the [app directory](app/README.md). It gives the users a webpage where they can browse items and reviews. \n\n### Backend\n\nThe backend API is built using [Node.js](https://nodejs.org/en/) and the source code can be found in the [api directory](api/README.md). It contains endpoints that enables the user to query the PostgreSQL and Redis databases.\n\n### PostgreSQL\n\nThe PostgreSQL database is used to store all the items. The list of items can be found in this [JSON file](api/db/items.json). Here is a sample of how each object in our list of items look:\n\n```json\n...\n  {\n    \"index\": 0,\n    \"price\": \"$354.80\",\n    \"quantity\": 3,\n    \"company\": \"Manufact\",\n    \"size\": \"M\",\n    \"categoryIndex\": 7,\n    \"picture\": \"https://i.imgur.com/HJarGs0.jpg\",\n    \"category\": \"Frugal Sun Dress\",\n    \"name\": \"Manufact Frugal Sun Dress - Size M\",\n    \"productDetail\": \"Elit dolor eu excepteur quis officia cillum cillum eiusmod nisi ex. Commodo nisi deserunt duis et ipsum non. Aute dolore proident Lorem mollit consectetur pariatur in reprehenderit.\\r\\n\",\n    \"reviews\": [\n      {\n        \"id\": 0,\n        \"name\": \"Trina Baldwin\",\n        \"review\": \"Culpa exercitation anim do qui anim non aliquip et aute laborum tempor eiusmod et.\",\n        \"rating\": 1\n      },\n      {\n        \"id\": 1,\n        \"name\": \"Erica Hickman\",\n        \"review\": \"Fugiat nostrud fugiat sunt mollit cillum mollit minim ex culpa.\",\n        \"rating\": 5\n      },\n      {\n        \"id\": 2,\n        \"name\": \"Williamson Justice\",\n        \"review\": \"Ut incididunt adipisicing irure et aliquip deserunt in voluptate ipsum tempor duis incididunt et.\",\n        \"rating\": 2\n      },\n      {\n        \"id\": 3,\n        \"name\": \"Frieda Watts\",\n        \"review\": \"Commodo labore non consequat et minim irure et amet eu laborum id dolor excepteur.\",\n        \"rating\": 1\n      },\n      {\n        \"id\": 4,\n        \"name\": \"Willa Rodriguez\",\n        \"review\": \"Ipsum et sint excepteur aliquip ut est Lorem qui mollit.\",\n        \"rating\": 1\n      }\n    ]\n  },\n...\n```\n\nAll this information will be saved in PostgreSQL **EXCEPT** the reviews. Reviews will be separated out and stored in Redis.\n\n### Redis\n\nThe Redis database is used to store all the items' reviews. The list of reviews for each item can be found in this [JSON file](api/db/items.json). \n\n## License\n\n```\nCopyright 2020 the Kuma Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n\n[kuma-url]: https://kuma.io/\n[kuma-logo]: https://kuma-public-assets.s3.amazonaws.com/kuma-logo-v2.png\n[diagram]: https://github.com/kumahq/kuma-website/blob/master/docs/.vuepress/public/images/diagrams/diagram-kuma-demo-basic.jpg?raw=true\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkumahq%2Fkuma-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkumahq%2Fkuma-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkumahq%2Fkuma-demo/lists"}