{"id":29572213,"url":"https://github.com/yukaitung/lgdxrobot-cloud","last_synced_at":"2026-04-11T05:33:50.778Z","repository":{"id":293685223,"uuid":"981534981","full_name":"yukaitung/lgdxrobot-cloud","owner":"yukaitung","description":"Robot management system designed with a focus on flexibility and security","archived":false,"fork":false,"pushed_at":"2025-07-17T18:20:32.000Z","size":2552,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-17T20:19:21.657Z","etag":null,"topics":["agv","blazor","csharp","dotnet","fleet-management","grpc","robotics"],"latest_commit_sha":null,"homepage":"https://lgdxrobot.bristolgram.uk/cloud/","language":"C#","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/yukaitung.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-11T10:35:07.000Z","updated_at":"2025-07-17T18:20:36.000Z","dependencies_parsed_at":"2025-05-30T21:11:07.115Z","dependency_job_id":"bde3494c-6db8-41f8-afa1-f91a3dc16a53","html_url":"https://github.com/yukaitung/lgdxrobot-cloud","commit_stats":null,"previous_names":["yukaitung/lgdxrobot-cloud"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/yukaitung/lgdxrobot-cloud","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yukaitung%2Flgdxrobot-cloud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yukaitung%2Flgdxrobot-cloud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yukaitung%2Flgdxrobot-cloud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yukaitung%2Flgdxrobot-cloud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yukaitung","download_url":"https://codeload.github.com/yukaitung/lgdxrobot-cloud/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yukaitung%2Flgdxrobot-cloud/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265891158,"owners_count":23844786,"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":["agv","blazor","csharp","dotnet","fleet-management","grpc","robotics"],"created_at":"2025-07-19T05:00:30.435Z","updated_at":"2026-04-11T05:33:50.765Z","avatar_url":"https://github.com/yukaitung.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LGDXRobot Cloud\n\n![IMG](img/img1.png)\n\n[![pipeline status](https://gitlab.com/lgdxrobotics/lgdxrobot-cloud/badges/main/pipeline.svg)](https://gitlab.com/lgdxrobotics/lgdxrobot-cloud/-/commits/main) [![Latest Release](https://gitlab.com/lgdxrobotics/lgdxrobot-cloud/-/badges/release.svg)](https://gitlab.com/lgdxrobotics/lgdxrobot-cloud/-/releases)\n\n[Demo Video](https://drive.google.com/file/d/1Z3UxccWAUE5JONlDExDTq4RY2RHEnSls/view?usp=drive_link)\n\n\n## Overview\n\nLGDXRobot Cloud is a robot management system for Automated Guided Vehicles (AGVs), designed with a focus on flexibility and security. It can monitor the status of robots in real-time and manage automated tasks for transportation and logistics. The system is also designed to support easy integration with third-party services and workflows. It integrates seamlessly with the [LGDXRobot2](https://lgdxrobot.bristolgram.uk/lgdxrobot2/) robot, as well as open integrations with any ROS 2-compatible robot with `LGDXRobot Cloud Adapter`.\n\n- LGDXRobot Cloud: ([GitLab](https://gitlab.com/lgdxrobotics/lgdxrobot-cloud) | [GitHub](https://github.com/yukaitung/lgdxrobot-cloud))\n- LGDXRobot Cloud Adapter: ([GitLab](https://gitlab.com/lgdxrobotics/lgdxrobot-cloud-adapter) | [GitHub](https://github.com/yukaitung/lgdxrobot-cloud-adapter))\n\n### Getting Help\n\n- [Homepage](https://lgdxrobot.bristolgram.uk/cloud/)\n- [Documentation](https://docs.lgdxrobot.bristolgram.uk/cloud/)\n- Issue boards on both GitLab and GitHub\n\n## Features\n\n- **Real-Time Management**: Manage robot statuses and task processes through a real-time web interface.\n- **United Solution Setup**: Generate maps with SLAM, register robots, and manage operations using the same system.\n- **Multi-Fleet Management**: Manage multiple fleets of robots with waypoint navigation and traffic control.\n- **Email Notifications**: Receive notifications for incidents and alerts, with customisable recipients.\n- **Seamless Integration**: Customisable workflows allow integration with third-party web services and hardware.\n- **User Management**: Create users and define permissions based on roles or fine-grained access control.\n- **Security Features**:\n  - Two-factor authentication with a mobile app for user login.\n  - Certificate-based authentication for robots.\n  - Optional hardware-level protection via serial number validation.\n- **API Key Management**: Manage API keys to control third-party service access to the system.\n\n## Screenshots\n\nMonitor robot locations on a map, highlighting the selected robot along with its status and planned path.\n\n![IMG](img/img2.png)\n\nMonitor robot statuses on a page.\n\n![IMG](img/img3.png)\n\nGenerate maps using SLAM.\n\n![IMG](img/img4.png)\n\n## Tech Stack\n\nThe system is built using the .NET, with ASP.NET Web API for the backend and Blazor for the frontend.\n\nIt also utilises RabbitMQ for reliable message queuing to the worker service, Redis for robot data aggregation, and PostgreSQL for database management.\n\nCommunication between the system and the robot is handled using gRPC. \n\nThe solution consists of the following projects:\n\n- `LGDXRobotCloud.API`: Backend API for data management, task distribution, and access control\n- `LGDXRobotCloud.UI`: Frontend project providing a real-time user interface\n- `LGDXRobotCloud.Worker`: Background services for time-consuming tasks such as sending email notifications or calling external APIs\n- `LGDXRobotCloud.Data`: Contains database schema definitions and migrations, as well as Data Transfer Objects (DTOs) and internal models\n- `LGDXRobotCloud.Utilities`: Common functions and constants shared across other projects\n\n### Full Setup Instructions\n\nFor users who want to set up and customise the system for their specific needs.\n\n[https://docs.lgdxrobot.bristolgram.uk/cloud/](https://docs.lgdxrobot.bristolgram.uk/cloud/)\n\n### Fast Setup\n\nFor users who want to get up and running quickly with the system only.\n\nLGDXRobot Cloud includes a `Docker/docker-compose` setup for easy deployment in development and testing environments. You will need Docker with Docker Compose, Git, and OpenSSL installed.\n\nTo get started:\n\n```bash\ncd Docker/docker-compose/certs\n# Option 1: Run the script to generate the certificates\n# Option 2: Run the commands manually in the script\nchmod +x ./generate-certs.sh\n./generate-certs.sh\n```\n\nAfter running the script, the console will display the serial number/thumbprint of the certificate. Copy the value (after the `=` symbol) and paste it into the relevant `appsettings.json` files in the `Docker/docker-compose` folder.\n\nThen, start the environment:\n\n```bash\ncd ..\ndocker-compose up\n```\n\nWait for the console to display the message: `data-1 exited with code 0`. This indicates that the database has been initialised and the API is ready. Alternatively, you can check whether the `docker-compose-data-1` container has terminated.\n\nTo access the frontend, open: [https://localhost:5103/](http://localhost:5102/)\n\nThe default username and password is `admin` / `123456`.\n\n## Notes About Docker\n\nTo pull the image from Docker Hub, you can either use the latest tag or specify a particular version number, such as 1.0.0. Please refer to the [Releases](https://gitlab.com/yukaitung/lgdxrobot2-cloud/-/releases) page for the version history. All images support both amd64 and arm64 architectures.\n\n## License\n\nThis project is licensed under the MIT Licence.\n\n## Notes For Developers\n\nAPI client generation relies on Kiota. To generate the client for the `LGDXRobotCloud.UI` project, with the `LGDXRobotCloud.API` project running, use the following command:\n\n```bash\nkiota generate -l CSharp -c LgdxApiClient -n LGDXRobotCloud.UI.Client -o ./Client -d https://localhost:5163/openapi/v1.json --clean-output\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyukaitung%2Flgdxrobot-cloud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyukaitung%2Flgdxrobot-cloud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyukaitung%2Flgdxrobot-cloud/lists"}