{"id":21466735,"url":"https://github.com/edinburgh-genome-foundry/cuba","last_synced_at":"2025-07-24T15:33:06.142Z","repository":{"id":26992512,"uuid":"105998797","full_name":"Edinburgh-Genome-Foundry/CUBA","owner":"Edinburgh-Genome-Foundry","description":"🏖️ The EGF Collection of Useful Bio Apps - Web demos of EGF software","archived":false,"fork":false,"pushed_at":"2022-12-10T19:07:40.000Z","size":17066,"stargazers_count":20,"open_issues_count":27,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-07-15T09:03:17.244Z","etag":null,"topics":["django","dna-assembly","docker-compose","sequence-design","synthetic-biology","vuejs","web-development"],"latest_commit_sha":null,"homepage":"http://cuba.genomefoundry.org","language":"Vue","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/Edinburgh-Genome-Foundry.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-10-06T11:49:43.000Z","updated_at":"2024-11-21T15:23:03.000Z","dependencies_parsed_at":"2023-01-14T09:15:09.312Z","dependency_job_id":null,"html_url":"https://github.com/Edinburgh-Genome-Foundry/CUBA","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Edinburgh-Genome-Foundry/CUBA","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Edinburgh-Genome-Foundry%2FCUBA","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Edinburgh-Genome-Foundry%2FCUBA/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Edinburgh-Genome-Foundry%2FCUBA/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Edinburgh-Genome-Foundry%2FCUBA/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Edinburgh-Genome-Foundry","download_url":"https://codeload.github.com/Edinburgh-Genome-Foundry/CUBA/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Edinburgh-Genome-Foundry%2FCUBA/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266862606,"owners_count":23996866,"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","status":"online","status_checked_at":"2025-07-24T02:00:09.469Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["django","dna-assembly","docker-compose","sequence-design","synthetic-biology","vuejs","web-development"],"created_at":"2024-11-23T08:15:18.364Z","updated_at":"2025-07-24T15:33:06.077Z","avatar_url":"https://github.com/Edinburgh-Genome-Foundry.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cp align=\"center\"\u003e\n\u003cimg alt=\"EGF CUBA logo\" title=\"EGF CUBA logo\" src=\"https://github.com/Edinburgh-Genome-Foundry/CUBA/raw/master/frontend/src/assets/images/cuba-title.png\" width=\"400\"\u003e\n\u003c/p\u003e\n\u003ch1 align=\"center\"\u003e The EGF Collection of Useful Biological Apps \u003c/h1\u003e\n\n[![Build Status](https://travis-ci.org/Edinburgh-Genome-Foundry/CUBA.svg?branch=master)](https://travis-ci.org/Edinburgh-Genome-Foundry/CUBA)\n\nThis repository contains the source code of [cuba.genomefoundry.org](https://cuba.genomefoundry.org/),\na website of the Edinburgh Genome Foundry enabling anyone to use some of the EGF's\nbiological software.\n\n![screenshots](https://github.com/Edinburgh-Genome-Foundry/CUBA/raw/master/docs/imgs/screenshots.png)\n\n\n\n\n## How is it built?\n\nCUBA is based on the [CAB](https://github.com/Edinburgh-Genome-Foundry/CAB)\nboilerplate, making it easy to create new apps with a form in the frontend and\ncustom computations in the backend. It features job\nqueues (with progress feedback for the user), form widgets like file uploaders,\nhelp buttons, and many more.\n\n### Getting started\n\nThe next steps will download, install, and launch CUBA on your computer.\n\n1. Install ``docker`` and ``docker-compose`` on your machine. This step depends\n   on your machine (Windows, Linux, MacOS) so you'll need to google it.\n\n2. Download CUBA from Github:\n\n```\ngit clone https://github.com/Edinburgh-Genome-Foundry/CUBA.git\n```\n\n3. Go to the root ``CUBA/`` directory (the one containing this README and the\n   ``docker-compose.yml``) and launch your application in development mode. The\n   first time you try this, Docker will download and build a lot of things,\n   which may take several minutes. It will only take a few seconds the next\n   times you run this command.\n\n```\ndocker-compose up\n```\n\n4. Go to your browser and type ``localhost`` or ``127.0.0.1`` in the address bar.\n   You should see the website appear. the console in which you launched\n   ``docker-compose`` will keep printing logs of the different components\n   (django, vue) so you can keep track and debug.\n\n### Creating a new app\n\nThe next steps will add a new app to the CUBA project.\n\n1. Go to ``frontend/src/components/scenarios`` and create a new scenario view\n   with a form, for instance by duplicating the file\n   [ExampleScenario.vue](https://github.com/Edinburgh-Genome-Foundry/CUBA/blob/master/frontend/src/components/scenarios/ExampleScenario.vue).\n\n2. Register your scenario in file ``scenarios.js`` (in the same folder)\n   by adding ``require('./ExampleScenario')`` under the category you want.\n   You should now see your new scenario in the home page and the menu of the\n   website.\n\n3. Next we will add some backend computations to process the form and return a\n   result. First go to ``backend/app/views`` and create a new folder\n   on the model of [``/example_scenario``](https://github.com/Edinburgh-Genome-Foundry/CUBA/tree/master/backend/app/views/example_scenario).\n\n4. Register the scenario in ``backend/app/views/__init__.py`` by adding\n\n```\nfrom .example_scenario import ExampleScenarioView\n```\n\n5. Register the URL by adding the following line at the end of\n   ``backend/website/urls.py``:\n\n```\nurl(r'^api/start/example_scenario$',\n      views.ExampleScenarioView.as_view()),\n```\n\n6. That's it. You now have a new app with frontend and backend !\n\n### Deploying the website on the web\n\nThe next steps will put your website on the web. Note that many other deployment\nworkflows are possible.\n\n1. Get a hosting server (for instance from Amazon Web Services or Digital Ocean).\n   Get the IP address of this server (for instance ``123.12.123.123`` but\n   it could be ``mydomain.com`` if you have registered this domain and pointed it\n   to your server).\n\n2. Log into this server (``ssh root@123.12.123.123`` or ``ssh root@mydomain.com``)\n   and install Docker and Docker-Compose (some Digital Ocean servers come with\n   these already installed).\n\n3. From your computer, in the CUBA root directory, run the following command to\n   create a code repository on the distant server, and register that distant\n   repository under the name ``prodserver``\n\n```\n./init_remote_git.sh root@123.12.123.123 CUBA prodserver\n```\n\n4. On the remote server, in the folder ``CUBA.git``, start the website in\n   production mode:\n\n```\ndocker-compose -f docker-compose.yml -f docker-compose.prod.yml up --build -d\n```\n\n5. Wait some time and go in your browser at the address ``123.12.123.123``,\n   your website should be live !\n\nEvery time you want to update the website, from your computer in the CUBA root\ndirectory run ``git push prodserver master``. You will need to rebuild the\ncontainers on the server if you have modified the frontend or added dependencies\nto the backend (we may simplify this later).\n\nLicence\n-------\n\nCUBA is an open source software originally written by [Zulko](https://github.com/Zulko)\nat the [Edinburgh Genome Foundry](http://genomefoundry.org/) and released on\n[Github](https://github.com/Edinburgh-Genome-Foundry/CUBA) under the MIT licence\n(Copyright 2017 Edinburgh Genome Foundry). Everyone is welcome to contribute!\n\n\nMore biology software ?\n-----------------------\n\u003cp\u003e\n\u003ca href=\"https://edinburgh-genome-foundry.github.io/\"\u003e\n   \u003cimg src=\"https://raw.githubusercontent.com/Edinburgh-Genome-Foundry/Edinburgh-Genome-Foundry.github.io/master/static/imgs/logos/egf-codon-horizontal.png\" /\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\nEGF Codon is powered by the [EGF Codons](https://edinburgh-genome-foundry.github.io/)\nsynthetic biology software suite for DNA design, manufacturing and validation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedinburgh-genome-foundry%2Fcuba","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedinburgh-genome-foundry%2Fcuba","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedinburgh-genome-foundry%2Fcuba/lists"}