{"id":42761203,"url":"https://github.com/starwit/sae-visualizer","last_synced_at":"2026-01-29T20:34:07.510Z","repository":{"id":281646707,"uuid":"945884204","full_name":"starwit/sae-visualizer","owner":"starwit","description":"SAE component, that visualizes results from processed video data.","archived":false,"fork":false,"pushed_at":"2025-09-24T09:41:53.000Z","size":1431,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-09-24T11:39:08.416Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/starwit.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-10T09:26:06.000Z","updated_at":"2025-09-17T09:34:13.000Z","dependencies_parsed_at":"2025-09-01T18:17:39.540Z","dependency_job_id":"7864d39b-96f7-432d-9c1d-5dfd8fe9d066","html_url":"https://github.com/starwit/sae-visualizer","commit_stats":null,"previous_names":["starwit/sae-visualizer"],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/starwit/sae-visualizer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starwit%2Fsae-visualizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starwit%2Fsae-visualizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starwit%2Fsae-visualizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starwit%2Fsae-visualizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/starwit","download_url":"https://codeload.github.com/starwit/sae-visualizer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starwit%2Fsae-visualizer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28884291,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T19:55:09.949Z","status":"ssl_error","status_checked_at":"2026-01-29T19:55:08.490Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":"2026-01-29T20:34:06.276Z","updated_at":"2026-01-29T20:34:07.497Z","avatar_url":"https://github.com/starwit.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SAE Visualizer\nStarwit Awareness Engine is processing video material and extracts results likge movements of objects or geo-positions of objects. This component shall visualize these results. It is a Spring Boot app, that connects to SAE's central communication bus and sends data to a ReactJS frontend. \n\nPlease refer to central [SAE repository](https://github.com/starwit/starwit-awareness-engine) for an overview of all SAE functions.\n\n## What does it do\nVisualizer can show moving objects in various modes. Following image show map view, which places all tracked objects on a map.\n\n![map view](doc/img/visualizer_map.jpg)\n\nFor many applications observing actual trajectories are helpful. Thus Visualizer can display trajectory sets from one or more sources. Next image show trajectories captured by one camera.\n\n![map view](doc/img/visualizer_trajectories.jpg)\n\n## How to use\n\nThis application needs a connection to ValKey/Redis bus of a running SAE instance. Connection details can be configured via [application.properties](application/src/main/resources/application.properties) or environment variables.\n\nOnce started application provides various views on processed data. \n\n## How to deploy\nApplication is deployed using Kubernetes with Helm. See [deployment guide](Deployment.md) for more details. If you want to run application locally you can also use [Docker compose script](deployment/docker-compose/docker-compose.yaml). Please note, that this is not intended to be used in productive scenarios.\n\n## Development Documentation \nIn order to build application, two steps are necessary. First package Javascript frontend like so:\n\n```bash\n    cd webclient/app\n    npm install\n```\n\nThen Spring Boot can be build with this command:\n\n```bash\n    mvn clean install -P frontend\n```\n\nRun application locally with:\n\n```bash\n    java -jar application/target/application-xxx.jar\n```\n\nYou can then access application under: http://localhost:8080/sae-visualizer\n\n### Configuration\n\nApplication is configured via file [application.properties](application/src/main/resources/application.properties). If you create this file in root folder and run app from there, this will override packaged application.properties.\n\nThe following configuration will be used to connect to a running Valkey/Redis instance.\n```properties\nspring.redis.host=localhost\nspring.redis.port=6379\n#spring.redis.password=yourpassword\nspring.redis.maxStreamAge=1s\n```\n- `spring.redis.maxStreamAge` is used to decide whether a stream in Valkey is active or not (and should be exposed to the frontend) based on the age of the last message in the stream\n### Authentication\n\nThis application can be protected by an external authentication with Keycloak. In order to use authentication, you need a properly configured Keycloak instance and the following parameters:\n\n```properties\n#spring.profiles.active=dev # activate for no auth\n\n# Authentication\nspring.security.oauth2.client.provider.keycloak.issuer-uri=http://auth.markus-workstation-starwit/realms/aicockpit\nspring.security.oauth2.client.registration.keycloak.client-id=aicockpit\nspring.security.oauth2.client.registration.keycloak.client-secret=aicockpit\nspring.security.oauth2.client.registration.keycloak.scope=openid\n```\n\n## License\nSoftware in this repository is licensed under the AGPL-3.0 license. See [license agreement](LICENSE) for more details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstarwit%2Fsae-visualizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstarwit%2Fsae-visualizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstarwit%2Fsae-visualizer/lists"}