{"id":24129416,"url":"https://github.com/synbiodex/sbolcanvas","last_synced_at":"2025-03-01T05:18:13.690Z","repository":{"id":38631365,"uuid":"212366415","full_name":"SynBioDex/SBOLCanvas","owner":"SynBioDex","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-08T02:32:54.000Z","size":82598,"stargazers_count":12,"open_issues_count":27,"forks_count":6,"subscribers_count":26,"default_branch":"final","last_synced_at":"2025-02-08T03:23:14.165Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","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/SynBioDex.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":"2019-10-02T14:45:13.000Z","updated_at":"2025-02-05T23:05:30.000Z","dependencies_parsed_at":"2023-02-07T07:02:00.301Z","dependency_job_id":"cdd44609-67ca-450a-aef5-abf220b209c5","html_url":"https://github.com/SynBioDex/SBOLCanvas","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SynBioDex%2FSBOLCanvas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SynBioDex%2FSBOLCanvas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SynBioDex%2FSBOLCanvas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SynBioDex%2FSBOLCanvas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SynBioDex","download_url":"https://codeload.github.com/SynBioDex/SBOLCanvas/tar.gz/refs/heads/final","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241317842,"owners_count":19943228,"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":[],"created_at":"2025-01-11T19:32:04.526Z","updated_at":"2025-03-01T05:18:13.675Z","avatar_url":"https://github.com/SynBioDex.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# SBOLCanvas\n\nSBOLCanvas is a web application for creation and editing of genetic constructs using the SBOL data and visual standard. SBOLCanvas allows a user to create a genetic design from start to finish, with the option to incorporate existing SBOL data from a SynBioHub repository. SBOLCanvas is created as part of SynBioKS.\n\n## SynBioSuite Branch\n\nThis branch is specifically for SBOLCanvas as embedded in the [SynBioSuite app](https://github.com/MyersResearchGroup/SynBioSuite);\nhowever, it can still function as a standalone application. \n## Repository Structure\n\nThis is a monorepo containing an Angular app as a frontend (in the frontend directory)\nand a Dockerized Java API (in the backend directory) that handles things like \nconversion, communication with SynBioHub, etc.\n\nThis differs from the *final* branch, which Dockerizes the frontend and backend\ntogether, and serves the Angular app from the backend.\n\nThe changes made were an optimization to allow the API to be deployed serverlessly\nand the frontend to be deployed as a static web app served from CDNs. \n## Run Locally\n\nClone the project\n\n```bash\ngit clone -b synbio-suite https://github.com/SynBioDex/SBOLCanvas\n```\n\nGo to the backend directory\n\n```bash\ncd SBOLCanvas/SBOLCanvasBackend\n```\n\nEnsure you have nodemon installed\n\n```bash\nnpm install -g nodemon\n```\n\nRun nodemon to build and run the backend in a container\n\n```bash\nnpx nodemon\n```\n\nGo to the frontend directory\n\n```bash\ncd ../SBOLCanvas/SBOLCanvasFrontend\n```\n\nInstall dependencies\n\n```bash\nnpm install\n```\n\nStart the Angular development server\n\n```bash\nnpm run dev\n```\nOr, if you plan to develop the frontend, use \n\n~~~bash\nng serve -c development\n~~~\n\nThis allows for the use of the Angular DevTools and provides a better debugging experience via the regular DevTools.\n\nAlternatively, you can build both the frontend and backend together on one Docker container, from the root directory, run\n\n```bash\ndocker build -t sbolcanvas .\n```\nand then\n```bash\ndocker run --rm --name canvas --publish 4040:8080 sbolcanvas\n```\nA local instance will be availaible on http://localhost:4040/\n\nIf you plan to contribute to this repository, this is recommended before you open a Pull Request. GitHub Actions will use a similar process to check the Docker build and deployment.\n\n\n\n## Deployment\n\nTo build the frontend, from the frontend directory, run\n\n```bash\nnpm run build\n```\n\nThe built output will be available in frontend/dist and can be deployed anywhere\na static web app can be deployed. Genetic Logic Lab's weapon of choice is \n[Azure Static Web Apps](https://azure.microsoft.com/en-us/products/app-service/static/).\n\nTo build the backend, from the backend directory, run\n```bash\ndocker build -t sbolcanvas .\n```\n\nThe resulting Docker image can be deployed anywhere you can run Docker containers.\nGenetic Logic Lab uses [Azure Container Apps](https://azure.microsoft.com/en-us/products/container-apps/).\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsynbiodex%2Fsbolcanvas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsynbiodex%2Fsbolcanvas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsynbiodex%2Fsbolcanvas/lists"}