SAGE3 is software to enable data-rich collaboration on high-resolution display walls. SAGE2 moved SAGE into cloud computing and SAGE3 ushers in the inclusion of artificial intelligence. Scientists analyzing their data in SAGE3 will collaborate with each other and with artificial intelligence through large interactive visualization spaces, such as multi-monitor workstations, tiled display walls, and virtual reality headsets.
There are three different directories within the root of the repo; deployment, foresight, and webstack.
Deployment contains the Docker files to stand up a Dockerized SAGE3 instance. It also contains configuration files for the various backend services.
While developing for SAGE3 only a portion of the Docker images will be running while the "Webstack" Node server will be running locally.
Foresight contains Python related code that brings a Python kernel to SAGE3 and various articifical intelligence tools.
Webstack contains a Nrwl Nx Monorepo that contains the Node.js backend server and the React frontend web app.
While developing for SAGE3 it is ideal to run the Node.js server and React WebApp locally instead of within a Docker image.
- Install Docker Desktop
- Install Node.js
- Install Python3
From a terminal run the following commands to install yarn and to start the initial setup of the Webstack.
# Change your directory to the webstack folder
cd ./webstack
# Install the yarn package manager
npm install --global yarn
# Install the Webstack's dependencies
yarn
# Stage and create the required folders/files
yarn stage
To start running the dev environment first run the Docker Backend:
# Change your current directory to the deployment folder
cd ./deployment
# Spin up the Docker images
docker-compose -f docker-compose-backend.yml up --remove-orphans
Second we will start up the Webstack:
# Open a new terminal and change your current directory to the webstack folder
cd ./webstack
# Start the backend Nodejs web server application
yarn start
# Start the frontend React web application
yarn start webapp
Open a Chrome browser and navigate to localhost:4200
Editing and saving code within /webstack/apps
or /webstack/libs
should hot reload the webpage.
Stable branch that is for production servers.
Development branch used to test new features and will be installed on EVL and LAVA servers
Feature branches should branch off of the dev
branch and explain their purpose in their name. When the branch is ready to be incorporated into dev
a pull request should be created within GitHub. The branch will be reviewed by core SAGE3 members before being merged into dev
.