Workflomics / workflomics-frontend

Front end of the Workflomics - workflow benchmarking platform.
https://workflomics.readthedocs.io/en/latest/?badge=latest
Apache License 2.0
3 stars 2 forks source link
logo

Workflomics: A Workflow Benchmarking Web Platform

Badges
Packages and Releases Latest release Static Badge
Build Status Build Frontend
Documentation Status Documentation Status
DOI DOI
License GitHub

Project goal

The Workflomics platform aims to address the challenge faced by life science researchers who work with increasingly large and complex datasets and struggle to create optimal workflows for their data analysis problems.

The platform facilitates a "Great Bake Off" of computational workflows in bioinformatics by integrating bioinformatics tools and metadata with technologies for automated workflow exploration and benchmarking. This enables a systematic and rigorous approach to the development of cutting-edge workflows, specifically in the field of proteomics, to increase scientific quality, robustness, reproducibility, FAIRness, and maintainability.

The platform currently focuses on the proteomics domain. We aim to extend the platform to additional domains, e.g., metabolomics, genomics.

Visit the live demo: http://workflomics.org/

Architecture

The Workflomics web interface is part of a larger infrastructure that includes a Postgres database, a Postgrest API, a RESTful APE service, etc. The architecture is presented in the figure below:

architecture_workflomics

Development

For now, it is assumed you already have a Postgres database and Postgrest API set up and running. See Deployment below for a docker compose configuration which starts all necessary services and initializes the database with the .sql scripts in the database folder.

For development, a simple proxy server is run automatically when running npm start (through setupProxy.js, which is picked up by create-react-app). Configure the endpoints in a .env file in the project directory:

API_PROXY_TARGET=http://localhost:3000
APE_PROXY_TARGET=http://localhost:4444

Install the required modules for the front-end:

npm install

To start the front-end, simply run

npm start

Deployment

Back-end services

Copy docker-compose.yml to the server and in the same directory, create .env. In this file, configure accordingly:

POSTGRES_PASSWORD=<password>
WF_DATA_DIR=<data directory>

At the moment, ports are hard-coded in the docker-compose.yml.

To start the database, API to the database and RestAPE, run the following:

docker compose --env-file .env up -d

# To remove the containers, run
docker compose down

Nginx

The front-end can be statically served, but requires a reverse proxy. For this, you could use nginx. A sample config is in the nginx folder, this is usually placed at /etc/nginx/sites-available/workflomics.org.conf. Make sure it is pointing to the proper back-end services and that there is a symlink to the config in sites-enabled. Nginx also statically serves the website as specified in the config.

Building and deploying the front-end

Make sure you are on the proper branch and have pulled any changes you want included. Build an optimized version of the application:

npm run build

This will build the application in the build directory. It can be statically served, for instance using nginx.

For instance, using nginx, simply copy the contents of the build/ directory to /var/www/workflomics.org/.