{"id":28830423,"url":"https://github.com/ayeshlk/dispatch-controller","last_synced_at":"2025-07-14T04:42:14.017Z","repository":{"id":177397218,"uuid":"623624361","full_name":"ayeshLK/dispatch-controller","owner":"ayeshLK","description":"Drone dispatch controller sample application showcasing spring-boot capabilities for RESTful API development","archived":false,"fork":false,"pushed_at":"2023-06-29T19:33:07.000Z","size":173,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-19T05:27:36.137Z","etag":null,"topics":["h2-database","lombok","rest-api","spring-boot","spring-boot-jdbc","spring-boot-validation","spring-hateoas"],"latest_commit_sha":null,"homepage":"","language":"Java","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/ayeshLK.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-04-04T18:42:13.000Z","updated_at":"2023-10-03T12:55:23.000Z","dependencies_parsed_at":"2023-07-26T06:31:10.222Z","dependency_job_id":null,"html_url":"https://github.com/ayeshLK/dispatch-controller","commit_stats":null,"previous_names":["ayeshlk/dispatch-controller"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ayeshLK/dispatch-controller","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayeshLK%2Fdispatch-controller","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayeshLK%2Fdispatch-controller/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayeshLK%2Fdispatch-controller/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayeshLK%2Fdispatch-controller/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ayeshLK","download_url":"https://codeload.github.com/ayeshLK/dispatch-controller/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayeshLK%2Fdispatch-controller/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265241154,"owners_count":23733189,"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":["h2-database","lombok","rest-api","spring-boot","spring-boot-jdbc","spring-boot-validation","spring-hateoas"],"created_at":"2025-06-19T05:17:08.781Z","updated_at":"2025-07-14T04:42:14.009Z","avatar_url":"https://github.com/ayeshLK.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dispatch Controller\n\n[![Build](https://github.com/ayeshLK/dispatch-controller/actions/workflows/daily-build.yml/badge.svg)](https://github.com/ayeshLK/dispatch-controller/actions/workflows/daily-build.yml)\n[![Trivy](https://github.com/ayeshLK/dispatch-controller/actions/workflows/trivy-scan.yml/badge.svg)](https://github.com/ayeshLK/dispatch-controller/actions/workflows/trivy-scan.yml)\n\n*Dispatch Controller* simulates a drone based medicine logistics management system. Clients can connect to the system and carry out necessary actions through the RESTful API provided by the `dispatch-controller-service`.\n\nThe application's top-level component diagram is shown below.\n\n![component-diagram](_images/component-diagram.png)\n\nFollowing functional areas will be covered during the implementation of this project:\n1. RESTful API development using Spring Boot.\n2. Spring Boot validations.\n3. Spring Boot database connectivity (via JDBC).\n4. Running a periodic task using Spring Scheduling.\n5. Spring Boot testing.\n\nAn H2 in-memory database is utilized in this project to streamline the development process. The proposed structure of the database for the application is shown in the following ER diagram.\n\n![er-diagram](_images/er-diagram.png)\n\nProject also contains a [Postman collection](_docs/dispatch-controller.postman_collection.json) which can be used to test the API.\n\n## Prerequisites\n- OpenJDK 17+\n- Maven 3.8.5.+\n\n## Build, Test, and Run ##\n\n### Build Application ###\n\nExecute the following command to build the application.\n```shell\nmvn clean install\n```\n\n### Test Application ###\n\nMaven usually runs tests when we build the project. But, to run the tests separately, execute the following command.\n```shell\nmvn clean test\n```\n\n### Run Application ###\n\n#### Run Locally ####\n\nOnce you build the project execute the following command to run the app locally.\n```shell\njava -jar dispatch-controller-service/target/dispatch-controller-service-0.0.1-SNAPSHOT.jar\n```\n\n#### Run a Docker Container ####\n\nTo build the docker container, execute the following command.\n```shell\nmvn compile jib:dockerBuild\n```\n\nTo run the docker container, execute the following command.\n```shell\ndocker run -p 9000:9000 -t -d dispatch-controller-service:0.0.1-SNAPSHOT\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fayeshlk%2Fdispatch-controller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fayeshlk%2Fdispatch-controller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fayeshlk%2Fdispatch-controller/lists"}