{"id":27594456,"url":"https://github.com/apache/airavata-django-portal","last_synced_at":"2025-04-22T10:34:41.265Z","repository":{"id":24669434,"uuid":"102179100","full_name":"apache/airavata-django-portal","owner":"apache","description":"Apache Airavata Django Portal Framework","archived":false,"fork":false,"pushed_at":"2025-01-27T19:39:45.000Z","size":91175,"stargazers_count":35,"open_issues_count":70,"forks_count":48,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-04-18T04:48:46.753Z","etag":null,"topics":["airavata","bigdata","cloudnative","gateways","java","microservices","sciencegateways","workflow","workfloworchestrator"],"latest_commit_sha":null,"homepage":"https://airavata.apache.org/","language":"Python","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/apache.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":"2017-09-02T07:00:08.000Z","updated_at":"2025-04-14T14:57:51.000Z","dependencies_parsed_at":"2023-09-26T01:59:31.769Z","dependency_job_id":"91417af9-65f2-47c9-8b05-3cbcef122dde","html_url":"https://github.com/apache/airavata-django-portal","commit_stats":{"total_commits":1950,"total_committers":27,"mean_commits":72.22222222222223,"dds":0.4456410256410256,"last_synced_commit":"7a0dba868cd3a3b4faa13e56d6c8dad829b7be9c"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairavata-django-portal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairavata-django-portal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairavata-django-portal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairavata-django-portal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apache","download_url":"https://codeload.github.com/apache/airavata-django-portal/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250154336,"owners_count":21383784,"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":["airavata","bigdata","cloudnative","gateways","java","microservices","sciencegateways","workflow","workfloworchestrator"],"created_at":"2025-04-22T10:32:41.304Z","updated_at":"2025-04-22T10:34:41.222Z","avatar_url":"https://github.com/apache.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Apache Airavata Django Portal\n\n![Build Status](https://github.com/apache/airavata-django-portal/actions/workflows/build-and-test.yaml/badge.svg)\n[![Build Status](https://readthedocs.org/projects/apache-airavata-django-portal/badge/?version=latest)](https://apache-airavata-django-portal.readthedocs.io/en/latest/?badge=latest)\n\nThe Airavata Django Portal is a web interface to the\n[Apache Airavata](http://airavata.apache.org/) API implemented using the Django\nweb framework. The intention is that the Airavata Django Portal can be used as\nis for a full featured web based science gateway but it can also be customized\nthrough various plugins to add more domain specific functionality as needed.\n\n## Getting Started\n\nThe following steps will help you quickly get started with running the Airavata\nDjango Portal locally. This will allow you to try it out and can also be used as\na development environment. If you just want to run the Airavata Django Portal\nlocally, see the Docker instructions below for a more simplified approach.\n\nThe Airavata Django Portal works with Python versions 3.6 - 3.10. You'll need\none of these versions installed locally.\n\nYou'll also need Node.js and yarn to build the JavaScript frontend code. Please\ninstall Node.js version 19. You\ncan also use [nvm](https://github.com/nvm-sh/nvm) to manage the Node.js install.\nIf you have nvm installed you can run `nvm install \u0026\u0026 nvm use` before running\nany yarn commands. See\n[the Yarn package manager](https://classic.yarnpkg.com/lang/en/) for information\non how to install Yarn 1 (Classic).\n\n1.  Checkout this project and create a virtual environment.\n\n    ```\n    git clone https://github.com/apache/airavata-django-portal.git\n    cd airavata-django-portal\n    python3 -m venv venv\n    source venv/bin/activate\n    pip install --upgrade pip setuptools wheel\n    pip install -r requirements.txt\n    ```\n\n    - **Windows note**: Use ```venv\\Scripts\\activate``` instead of ```source venv/bin/activate```\n      \u003c!-- https://docs.python.org/3/library/venv.html --\u003e\n\n    - **macOS note**: to install the MySQL dependencies you need to have the\n      MySQL development headers and libraries installed. Also, on macOS you need\n      to have openssl installed. See the\n      [mysqlclient-python installation notes](https://github.com/PyMySQL/mysqlclient-python#install)\n      for more details.\n\n2.  Create a local settings file.\n\n    - Option 1 (**recommended**). The best way to get a local settings file is\n      to download one from an existing Airavata Django Portal instance. If you\n      have Admin access, you can log in, go to _Settings_ and then _Developer\n      Console_ (/admin/developers) and download a `settings_local.py` file for\n      local development. Save it to the `django_airavata/` directory.\n\n    - Option 2. Otherwise, if you know the hostname and ports of an Airavata\n      deployment, you can copy `django_airavata/settings_local.py.sample` to\n      `django_airavata/settings_local.py` and edit the contents to match your\n      Keycloak and Airavata server deployments.\n\n      ```\n      cp django_airavata/settings_local.py.sample django_airavata/settings_local.py\n      ```\n\n3.  Run Django migrations\n\n    ```\n    python manage.py migrate\n    ```\n\n4.  Build the JavaScript sources. There are a few JavaScript packages in the\n    source tree, colocated with the Django apps in which they are used. The\n    `build_js.sh` script will build them all.\n\n    ```\n    ./build_js.sh\n    ```\n\n    - **Window note**: on Windows, run `.\\build_js.bat` instead\n\n5.  Load the default Wagtail CMS pages.\n\n    ```\n    python manage.py load_cms_data new_default_theme\n    ```\n\n6.  Run the server\n\n    ```\n    python manage.py runserver\n    ```\n\n7.  Point your browser to http://localhost:8000.\n\n## Docker instructions\n\nTo run the Django Portal as a Docker container, you need a `settings_local.py`\nfile which you can create from the `settings_local.py.sample` file. Then run the\nfollowing:\n\n1. Build the Docker image.\n\n   ```\n   docker build -t airavata-django-portal .\n   ```\n\n2. Run the Docker container.\n\n   ```\n   docker run -d \\\n     -v /path/to/my/settings_local.py:/code/django_airavata/settings_local.py \\\n     -p 8000:8000 airavata-django-portal\n   ```\n\n3. Load an initial set of Wagtail pages (theme). You only need to do this when\n   starting the container for the first time.\n\n   ```\n   docker exec CONTAINER_ID python manage.py load_cms_data new_default_theme\n   ```\n\n4. Point your browser to http://localhost:8000.\n\n### Multi-architecture images\n\nTo build and push\n[multi-architecture images](https://docs.docker.com/desktop/multi-arch/), first\ncreate a builder (one time)\n\n```\ndocker buildx create --name mybuilder --use\n```\n\nthen run\n\n```\ndocker buildx build --pull --platform linux/amd64,linux/arm64 -t apache/airavata-django-portal:latest --push .\n```\n\n## Documentation\n\nDocumentation currently is available at\nhttps://apache-airavata-django-portal.readthedocs.io/en/latest/ (built from the\n'docs' directory).\n\nTo build the documentation locally, first\n[set up a development environment](#setting-up-development-environment), then\nrun the following in the root of the project:\n\n```\nmkdocs serve\n```\n\n## Feedback\n\nPlease send feedback to the mailing list at \u003cdev@airavata.apache.org\u003e. If you\nencounter bugs or would like to request a new feature you can do so in the\n[Airavata Jira project](https://issues.apache.org/jira/projects/AIRAVATA) (just\nselect the _Django Portal_ component when you make your issue).\n\n## Customization\n\nSee the Customization Guide in the\n[documentation](https://apache-airavata-django-portal.readthedocs.io/en/latest/)\nfor information on how to customize the Airavata Django Portal user interface.\nTo get started we recommend going through the\n[Gateways Tutorial](https://apache-airavata-django-portal.readthedocs.io/en/latest/tutorial/gateways_tutorial/).\nThis tutorial covers the different ways that the user interface can be\ncustomized.\n\n## Contributing\n\nFor general information on how to contribute, please see the\n[Get Involved](http://airavata.apache.org/get-involved.html) section of the\nApache Airavata website.\n\n### Setting up development environment\n\nRun `pip install -r requirements-dev.txt` to install development and testing\nlibraries.\n\nUse a code editor that integrates with editorconfig and flake8. I also recommend\nautopep8 for automatically formatting code to follow the PEP8 guidelines.\nPrettier is used for formatting JavaScript and Vue.js code.\n\nSee the docs for more information on\n[developing the backend](./docs/dev/developing_backend.md) and\n[frontend code](./docs/dev/developing_frontend.md).\n\n### Running Django Tests\n\nRun `./runtests.py` to run the Django unit tests.\n\n## License\n\nThe Apache Airavata Django Portal is licensed under the Apache 2.0 license. For\nmore information see the [LICENSE](LICENSE) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fairavata-django-portal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapache%2Fairavata-django-portal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fairavata-django-portal/lists"}