{"id":20148568,"url":"https://github.com/hltech/judge-d-ui","last_synced_at":"2025-08-02T16:05:25.989Z","repository":{"id":53574869,"uuid":"203137362","full_name":"HLTech/judge-d-ui","owner":"HLTech","description":"UI for judge-d","archived":false,"fork":false,"pushed_at":"2021-11-02T12:34:19.000Z","size":585,"stargazers_count":5,"open_issues_count":10,"forks_count":0,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-09T19:53:12.426Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HLTech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null}},"created_at":"2019-08-19T09:05:57.000Z","updated_at":"2021-11-02T12:34:22.000Z","dependencies_parsed_at":"2022-09-21T16:20:14.491Z","dependency_job_id":null,"html_url":"https://github.com/HLTech/judge-d-ui","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/HLTech/judge-d-ui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HLTech%2Fjudge-d-ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HLTech%2Fjudge-d-ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HLTech%2Fjudge-d-ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HLTech%2Fjudge-d-ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HLTech","download_url":"https://codeload.github.com/HLTech/judge-d-ui/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HLTech%2Fjudge-d-ui/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268415882,"owners_count":24246812,"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-08-02T02:00:12.353Z","response_time":74,"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":[],"created_at":"2024-11-13T22:38:09.541Z","updated_at":"2025-08-02T16:05:25.962Z","avatar_url":"https://github.com/HLTech.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# judge-d-ui\n\n[![Build Status](https://travis-ci.org/HLTech/judge-d-ui.svg?branch=master)](https://travis-ci.org/HLTech/judge-d-ui.svg?branch=master)\n[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/HLTech/judge-d-ui/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/HLTech/judge-d-ui/?branch=master)\n\nThis project serves as a graphic representation of data offered by Judge-Dredd API.\n\nIt will present all services as nodes and draw all contracts between them as arrows\n(drawn from consumer to provider). By default, nodes are shaped as rectangles and are labelled\nby service name. More sophisticated shape of a node is determined by whether it is a provider or\nconsumer(or both) in any contract. Services that are providers are concaved on their left side,\nwhile services that are consumers are convexed on their right side.\n\n## Functionalities\n\nUser is able to click on connected nodes to highlight clicked node as well as all nodes that are\ndirectly connected to it. In order to highlight further connections, see\n[Keyboard Support](#keyboard-support) section.\n\n#### Keyboard support\n\n##### Arrow up ↑\n\nZooms in\n\n##### Arrow down ↓\n\nZooms out\n\n##### Arrow left ←\n\nAvailable only after clicking on a node.\n\nContracts highlight by one level of depth\n\n##### Arrow right →\n\nAvailable only after clicking on a node.\n\nExpands highlight by one level of depth\n\n## Setting up a local demo\n\n### Docker\n\nJudge-d-ui pushes new version of docker image to\n[Docker registry](https://hub.docker.com/r/hltech/judge-d-ui) each time\na CI build is triggered when on master branch. Executing below commands will\npull latest version of app's docker image and then run it at port 8081 with backend configured as\nhttps://judge-d.herokuapp.com:\n\n```\ndocker pull hltech/judge-d-ui\ndocker run -p 8081:80 -t -d -e BASE_PATH=https://judge-d.herokuapp.com -e PORT=80 hltech/judge-d-ui\n```\n\nYou can also build your own image locally. It is available in [./docker/](docker/) directory in this repository\n\n#### Docker-compose\n\nA [./demo/docker-compose.yml](demo/docker-compose.yml) file was created to easily run judge-d, postgres database and judge-d-ui services.\n\nServices are exposed via following ports:\n\n| Service    | Port            |\n| ---------- | --------------- |\n| judge-d    | 8080            |\n| judge-d-ui | 8081            |\n| postgres   | - (not exposed) |\n\n#### Populate backend app with data\n\nIn order to populate judge-d service with data, you need to launch [./demo/demoGenerator.sh](demo/demoGenerator.sh) script.\nThere are 2 directories inside [./demo](demo/) directory: environments and contracts.\nFirstly, the script updates environments. One file means one new environment. Its name is taken from file name.\nContent of this file represents an environment as Judge-d expects.\nSubsequently, the script updates contracts. One file represents one service. Its name and version is taken from its name:\n\u003cname\u003e\\_\u003cversion\u003e.json. Content of this file represents a contract as Judge-d expects.\n\nThe script takes backend service url as optional first parameter, with `localhost:8080` being a default value (will be used if no args are passed to `demoGenerator.sh` script).\n\nIf you want to populate backend app that is deployed on heroku, you have to pass an url as first parameter to it, which is `judge-d.herokuapp.com`.\nScript execution for heroku app would then be `./demoGenerator.sh \"judge-d.herokuapp.com\"`.\n\n##### Demo on heroku\n\nThe newest version of application on master branch is available on heroku.\n\nLink: http://judge-d-ui.herokuapp.com/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhltech%2Fjudge-d-ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhltech%2Fjudge-d-ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhltech%2Fjudge-d-ui/lists"}