All Projects → broadinstitute → firecloud-ui

broadinstitute / firecloud-ui

Licence: BSD-3-Clause license
FireCloud user interface for web browsers.

Programming Languages

clojure
4091 projects
scala
5932 projects
shell
77523 projects
javascript
184084 projects - #8 most used programming language
SCSS
7915 projects
HTML
75241 projects

FireCloud UI

FireCloud user interface for web browsers.

https://portal.firecloud.org

Technologies

ClojureScript is used for the UI.

We use the Leiningen build tool to manage ClojureScript dependencies, and npm for Javascript dependencies.

The code incorporates usage of react-cljs which is a ClojureScript wrapper for React.

Figwheel replaces the running JavaScript within the page so changes are visible without a browser reload. More information here. This video gives some insight into the productivity gains available when using this technology (up to about 15:00 is all that is necessary).

Scala and Selenium are used for full-system UI integration tests.

IntelliJ Setup

Choose File -> New -> Project from Existing Sources... and select the base firecloud-uidirectory of your git clone. With the Cursive plugin installed, you can select Import project from external model and then select Leiningen. If prompted for a Project SDK, select a recent Java SDK to use.

Developing

FireCloud is currently supported within Broad's engineering environment:

https://github.com/broadinstitute/firecloud-develop

Support for running FireCloud outside of the Broad is planned.

Styles and Conventions

Before you get started, take a look at CONTRIBUTING.md

Development Stack Setup

  1. Make sure you've run the render-configs.sh script in the develop branch of the firecloud-develop repo to render the config files and run script.
  2. Be sure you've added local.broadinstitute.org to your /etc/hosts:
sudo sh -c "echo '127.0.0.1       local.broadinstitute.org' >> /etc/hosts"

Starting the development server

./config/docker-rsync-local-ui.sh

You must be viewing the application via HTTP. HTTPS is not supported by Figwheel.

This can take around 40 seconds to completely start. When ready, it will display the following message:

Prompt will show when figwheel connects to your application

To connect, load http://local.broadinstitute.org http://localhost:3449 in your browser (Chrome is strongly recommended for development). The prompt should appear less than ten seconds after you reload the page. If it is not connecting, make sure to check the JavaScript console for error messages.

Building

To compile the clojure project into the target directory, run

./scripts/build.sh compile

To compile and build the broadinstitute/firecloud-ui docker image, run

./scripts/build.sh compile -d build

Testing

See TESTING.md

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].