Skip to content

ansingh7115/firecloud-ui

 
 

Repository files navigation

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.

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).

Getting started

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.

Starting the development server

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

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

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

Prompt will show when figwheel connects to your application

To connect, reload the browser window. 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.

Testing

To run all tests, enter this at the JavaScript console:

broadfcuitest.testrunner.run_all_tests()

Check the JavaScript console for test output.

To run a single test, add the following to the bottom of the file you wish to test:

(.clear js/console) ; optional
(cljs.test/run-tests)

Now, each time that file is saved, Figwheel will reload it and the tests will automatically run.

Building

To compile the clojure project into the target directory, run

./script/build.sh compile

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

./script/build.sh compile -d build

About

FireCloud user interface for web browsers.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Clojure 97.3%
  • JavaScript 1.6%
  • Other 1.1%