Skip to content

PheMA/phema-workbench-app

Repository files navigation





PhEMA Workbench App

PhEMA Build Status Docker Image

PhEMA Workbench web application and related components.

Quickstart

The fastest way to get started is to run a Docker container using the version shown in the badge above, for example:

docker run -p 8989:8989 phema/phema-workbench-app

To use the PhEMA Workbench application, you will also need to run the API.

Contributing

Technologies

The PhEMA Workbench App is built using the following technologies:

Monorepo Layout

This repository is a Yarn workspace, which means it is a monorepo that contains multiple packages. Each package is in a separate directory under packages, and is its own module under the @phema namespace.

The idea is to encourage the development of small modules with well-defined interfaces that can be re-used, while at the same time having the convenience of all the code being in one place. The workbench-app package is the main entry point of the application. It is responsible for layout, state management, authentication, etc. This package should include include the others as follows:

import { CqlEditor } from "@phema/cql-editor";

The other packages should, as much as possible, be PureComponents and have well-defined interfaces that are independent of the Workbench application. Using the workflow below will allow you to work on both the app and the components in convenient way.

Workflow

1. Clone the repo

git clone https://github.com/phema/phema-workbench-app.git && cd phema-workbench-app

2. Install dependencies

Running the following will ensure all packages and dependencies are installed.

yarn

3. Run Parcel

Running the following will start Parcel in serve mode, which will automatically rebuild when you make any changes:

yarn start

4. Build Release

When you're done making your changes, you can run a release build:

yarn build

This will create a dist folder in the workbench-app package with all the release artifacts.

Deployment

To publish a new Docker image, push a new tag to the repo.

Acknowledgements

This work has been funded by NIGMS grant R01GM105688.

License

Apache 2.0