autora-gui is a browser-based, visual workflow editor for AutoRA (Automated Research Assistant). It lets you assemble AutoRA theorists, experimentalists, and experiment runners into a closed-loop research workflow by dragging components onto a canvas, wiring them together, and editing their parameters β then export the result to a runnable AutoRA workflow.
The editor is served by a FastAPI backend that reads component and
schema definitions from autora_gui/JSON/, with a React front-end
(autora_gui/react_app). A live, self-contained build is deployed to GitHub Pages:
π Live demo: https://ssec-jhu.github.io/autoRA-gui
| Path | Description |
|---|---|
autora_gui/react_app/ |
Primary React + Vite front-end and its FastAPI backend (server.py). |
autora_gui/JSON/ |
Component and JSON-schema definitions that drive the editor. |
autora_gui/data_model.py |
Pydantic data models describing workflows and components. |
autora_gui/workflow_samples/ |
Example exported workflows (.py, .ipynb, .json). |
docs/ |
Sphinx documentation sources. |
# 1. Clone the repository
git clone git@github.com:ssec-jhu/autoRA-gui.git
cd autoRA-gui
# 2. Create and activate a conda environment
conda create -n autora_gui python=3.11 pip
conda activate autora_gui
# 3. Install the package (editable) with dev dependencies
pip install -e ".[dev]"
# 4. Start the FastAPI backend (from the react_app directory)
cd autora_gui/react_app
uvicorn server:app --reload --port 8000
# 5. In a second terminal, start the React dev server
cd autora_gui/react_app
npm install
npm run devThe editor is then available at http://localhost:3000 (the front-end talks to the backend on port 8000). Prefer no local setup at all? Use the live demo.
For additional commands see the Conda cheat-sheet.
- Download and install either miniconda or anaconda.
- Create a new environment:
conda create -n autora_gui python=3.11 pip(Python 3.11+ is required). - Activate it:
conda activate autora_gui. cdinto the repo directory.- Install the Python dependencies. There are two common options:
- For development with tox (recommended):
pip install -r requirements/dev.txt. - To run everything outside of tox:
pip install -r requirements/all.txt.
- For development with tox (recommended):
The React front-end requires Node.js (v20 recommended):
cd autora_gui/react_app
npm installcdinto the repo directory and activate your environment:conda activate autora_gui.- Build and install the package:
pip install .. - For dev/editable mode (repo changes are reflected in the installed package on kernel restart β
the preferred method for development):
pip install -e .. NOTE: to pull in the looser-constrained dev extras at the same time, usepip install -e ".[dev]". - To build the distributable wheel and source tarball (this is what CI publishes to PyPI):
tox -e build-dist(orpython -m build). Artifacts are written todist/.
The editor has two processes: the FastAPI backend and the React front-end.
- Activate your environment and
cdinto the front-end directory:conda activate autora_gui cd autora_gui/react_app - Start the backend API:
uvicorn server:app --reload --port 8000
- In a second terminal, start the front-end dev server:
cd autora_gui/react_app npm run dev - Open http://localhost:3000 in your browser.
To produce the single-file, self-contained build (the one deployed to GitHub Pages), run
python build_standalone.py from autora_gui/react_app and open the generated index.html.
The repository ships a Dockerfile that installs the production dependencies
(requirements/prd.txt) and serves the FastAPI backend. On every push, CI builds this image and
publishes it to the GitHub Container Registry at ghcr.io/ssec-jhu/autora-gui
(see ci.yml).
- Download & install Docker β see the Docker install docs.
cdinto the repo directory.- Build the image:
docker build -t autora-gui ..
- Run a container, mapping the backend port:
The backend API is then available at http://localhost:8000.
docker run -d -p 8000:8000 autora-gui
- Alternatively, pull the pre-built image from the registry, e.g.:
docker pull ghcr.io/ssec-jhu/autora-gui:main
The container serves the backend API only; the React front-end is built and served separately (see Run with Python or the live demo).
NOTE: The following steps require pip install -r requirements/dev.txt.
Tox runs each check in its own isolated virtual environment, matching the CI on GitHub Actions (see ci.yml).
-
Run the full suite (style, security, tests, docs, and package build):
tox. -
Run an individual environment with
tox -e {env}:Command What it does tox -e check-styleLint and format check with ruff. tox -e check-securitySecurity scan with bandit. tox -e formatAuto-format code and sort imports with ruff. tox -e testRun the pytest suite with coverage. tox -e build-docsBuild the Sphinx HTML docs. tox -e build-distBuild the wheel and source distribution.
The following assume all requirements are installed into your conda environment, e.g. with
pip install -r requirements/all.txt.
NOTE: Tox will run these for you; the steps below are for running them directly.
Checks style, imports, and simple code-analysis issues using ruff.
cdinto the repo directory and activate your environment.- Check formatting:
ruff format . --check. - Check lint rules:
ruff check .. - These can run automatically on every
git pushby installing the providedpre-pushgit hook:cp ./githooks/pre-push .git/hooks/; chmod +x .git/hooks/pre-push.
Checks for security concerns using Bandit.
cdinto the repo directory.- Run:
bandit -c pyproject.toml --severity-level=medium -r autora_gui.
Tests core package functionality at a modular level with pytest. Test
suites live under autora_gui/tests, autora_gui/js_app/tests, and
autora_gui/react_app/tests.
cdinto the repo directory.- Run all Python tests with coverage:
pytest --cov=./. - Run a specific test:
pytest autora_gui/tests/test_util.py. - Run the React front-end tests: from
autora_gui/react_apprunnpm test(ornpm run test:coverage).
Builds, tests, and lets you view the Sphinx documentation.
- The simplest route is
tox -e build-docs. - To build manually:
pip install -r requirements/docs.txt.cd docs.make clean.make html.- View the docs in your browser:
open docs/_build/html/index.html.
The docs are automatically built and deployed to https://ssec-jhu.github.io/autoRA-gui.
