{"id":24655032,"url":"https://github.com/pascalpost/campaign-manager","last_synced_at":"2026-05-21T14:15:33.512Z","repository":{"id":220953809,"uuid":"753013570","full_name":"pascalPost/campaign-manager","owner":"pascalPost","description":null,"archived":false,"fork":false,"pushed_at":"2024-06-26T20:23:26.000Z","size":1069,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-21T02:16:13.156Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/pascalPost.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}},"created_at":"2024-02-05T09:51:51.000Z","updated_at":"2024-06-26T20:23:30.000Z","dependencies_parsed_at":"2024-04-16T22:45:04.261Z","dependency_job_id":"8ef5390f-3850-41c6-aa14-c102c9f38d7a","html_url":"https://github.com/pascalPost/campaign-manager","commit_stats":null,"previous_names":["pascalpost/campaign-manager"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pascalPost/campaign-manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pascalPost%2Fcampaign-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pascalPost%2Fcampaign-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pascalPost%2Fcampaign-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pascalPost%2Fcampaign-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pascalPost","download_url":"https://codeload.github.com/pascalPost/campaign-manager/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pascalPost%2Fcampaign-manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33303305,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-21T12:23:38.849Z","status":"ssl_error","status_checked_at":"2026-05-21T12:22:11.673Z","response_time":62,"last_error":"SSL_read: 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":"2025-01-25T22:35:56.314Z","updated_at":"2026-05-21T14:15:33.477Z","avatar_url":"https://github.com/pascalPost.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# campaign-manager\n\ncampaign-manager is a project designed to manage computation campaigns (execution of a lot of potentially\ncompute intensive, long-running tasks) with a user-friendly frontend for creating, editing, monitoring and interaction.\nThe campaigns can be generated based on Go templates and YAML-based configuration files.\n\n## Project Structure\n\nThe project consists of two main building blocks:\n\n1. File explorer and file editing\n2. Launch and managing of computations via workload manager\n\n## Architecture\n\nThe architecture of the project is as follows:\n\n```plaintext\n                   +--------------------------+\n                   |                          |\n                   |         Frontend         |\n                   |         (React)          |\n                   |                          |\n                   +------------+-------------+\n                                |\n                                | HTTP Requests (REST API)\n                                |\n                   +------------v-------------+\n                   |                          |\n                   |         Backend          |\n                   |       (GoLang API)       |\n                   |                          |\n                   +------------+-------------+\n                                |\n                                | Workload Manager\n                                |\n                   +------------v-------------+\n                   |                          |\n                   |     High-Performance     |\n                   |     Computing Cluster    |\n                   |                          |\n                   +--------------------------+\n```\n\n### Backend\n\nThe backend is written in Go and uses [oapi-codegen](https://github.com/deepmap/oapi-codegen) to generate REST API\nboilerplate from `./api/openapi.yaml`.\nThe router used is chi (https://github.com/go-chi/chi).\n\n#### Development\n\nFor auto-update (re-build) on change, you can use air, running (\nafter [installation](https://github.com/cosmtrek/air#installation))\n```shell\nair\n```\nThe air setup will also run the restapi code generation, which can be also run manually\n```shell\ngo generate ./...\n```\n\n### Frontend\n\nThe frontend is built with React based on the shadcn-ui components and communicates with the backend through HTTP\nrequests (REST API).\nThe calls are generate based on the OpenAPI documentation `./api/openapi.yaml`.\nThe frontend is a git submodule of https://github.com/pascalPost/campaign-manager-frontend.git.\n\n#### Development\n\nThe dev server can be started with `pnpm run dev`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpascalpost%2Fcampaign-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpascalpost%2Fcampaign-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpascalpost%2Fcampaign-manager/lists"}