PhEMA Workbench web application and related components.
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.
The PhEMA Workbench App is built using the following technologies:
- Node (12.16.1)
- Yarn (including workspaces)
- Parcel v2
- React
- Many other libraries listed in
package.json
for each package
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
PureComponent
s
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.
git clone https://github.com/phema/phema-workbench-app.git && cd phema-workbench-app
Running the following will ensure all packages and dependencies are installed.
yarn
Running the following will start Parcel in serve
mode, which will
automatically rebuild when you make any changes:
yarn start
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.
To publish a new Docker image, push a new tag to the repo.
This work has been funded by NIGMS grant R01GM105688.