All Projects → thehyve → glowing-bear

thehyve / glowing-bear

Licence: MPL-2.0 license
🐻 The modern cohort selection and analysis interface

Programming Languages

typescript
32286 projects
CSS
56736 projects
HTML
75241 projects
SCSS
7915 projects
javascript
184084 projects - #8 most used programming language
Gherkin
971 projects

Projects that are alternatives of or similar to glowing-bear

cookies
Manage your cookies on client and server side (Angular Universal)
Stars: ✭ 40 (+48.15%)
Mutual labels:  angular4
floating-scroll
Lightweight jQuery plugin providing floating scrollbar functionality
Stars: ✭ 72 (+166.67%)
Mutual labels:  user-interface
ngx-konami
A simple directive to add easter eggs in your Angular application 👾
Stars: ✭ 34 (+25.93%)
Mutual labels:  angular4
ngx-print
🖨️ A plug n' play Angular (2++) library to print your stuff
Stars: ✭ 124 (+359.26%)
Mutual labels:  angular4
bookkeeper-visual-manager
A visual interface for Apache BookKeeper
Stars: ✭ 47 (+74.07%)
Mutual labels:  user-interface
ionic-app-with-aws-cognito
Angular 4, Ionic 3, and AWS (Amazon) Cognito User Pools. Authentication out of the box.
Stars: ✭ 62 (+129.63%)
Mutual labels:  angular4
nativescript-whatsapp-template
NativeScript Template Similar to WhatsApp
Stars: ✭ 61 (+125.93%)
Mutual labels:  angular4
virtual-assistant
Virtual Assistant
Stars: ✭ 67 (+148.15%)
Mutual labels:  user-interface
node-ng-ssr-example
Simple Angular Server Side Rendering example
Stars: ✭ 15 (-44.44%)
Mutual labels:  angular4
ToDoList
A dynamic and aesthetic To-Do List Website built with HTML, CSS, Vanilla JavaScript.
Stars: ✭ 87 (+222.22%)
Mutual labels:  user-interface
ngx-embed-video
Get embed code for embedding youtube/vimeo/dailymotion/* video in websites from URL or ID in Angular 6+.
Stars: ✭ 58 (+114.81%)
Mutual labels:  angular4
GoInstaller
GoInstaller is installer for CodeIgniter with user interface (UI).
Stars: ✭ 31 (+14.81%)
Mutual labels:  user-interface
pwsh-prelude
PowerShell “standard” library for supercharging your productivity. Provides a powerful cross-platform scripting environment enabling efficient analysis and sustainable science in myriad contexts.
Stars: ✭ 26 (-3.7%)
Mutual labels:  user-interface
angular4-paystack
💵 An angular2+ module for paystack transactions
Stars: ✭ 51 (+88.89%)
Mutual labels:  angular4
kathisto
📦 Server-side rendering for Javascript based web-apps
Stars: ✭ 17 (-37.04%)
Mutual labels:  angular4
odata-v4-ng
OData service for Angular
Stars: ✭ 27 (+0%)
Mutual labels:  angular4
feathersui-openfl
Cross-platform graphical user interface components for creative frontend projects — powered by Haxe and OpenFL
Stars: ✭ 113 (+318.52%)
Mutual labels:  user-interface
ionic-uuchat
基于ionic3,angular4的实时聊天app,兼容web端。该项目只是前端部分,所有数据需要请求后端服务器,需要配套express-uuchat-api使用。
Stars: ✭ 14 (-48.15%)
Mutual labels:  angular4
angular-landing-page
Beautiful Angular landing page with firebase, chat, poll, dynamic features/gallary, and nice animations/scrolling.
Stars: ✭ 43 (+59.26%)
Mutual labels:  angular4
pulsar
The User Experience and Interface framework by Jadu.
Stars: ✭ 23 (-14.81%)
Mutual labels:  user-interface

Glowing Bear

Build Status codecov

An Angular-based frontend application for clinical data selection and analysis based on TranSMART. Visit https://glowingbear.app for more information.

Development

If you are interested in additional features, like visual analytics or using a custom format for data export, see the extentions section for details.

How to install

  • First, make sure the latest Angular CLI and Yarn are installed globally.

  • Second, clone Glowing Bear's code and install its dependencies

    git clone https://github.com/thehyve/glowing-bear.git
    cd glowing-bear
    yarn
    

How to run locally

We assume that a tranSMART backend and gb-backend have been installed and run, either locally, or remotely (follow the links for the information on how to install and run them).

  • First, use the configuration for development by changing env.json to

    {
      "env": "dev"
    }
  • Second, modify config.dev.json (see the configuration section for details).

  • Third, run

    yarn serve
    

    The app is run on https://localhost:4200/ and will automatically reload if you change any of the source files.

How to build

yarn build (or ng build)

yarn package (or ng build --prod)

The build artifacts will be stored in the dist/ directory.

How to test

Run yarn test to execute the unit tests via Karma, the generated coverage documents can be found in the coverage/ folder.

e2e

For e2e test we use Cypress in combination with the cypress-cucumber-preprocessor. Cypress is install as part of the your npm install command. To run the tests using the headless browser npm run e2e or npm run cypress to launch the GUI.

On which environment to run the tests can be changed in cypress.json Here are settings you would need to modify for that:

Option Description
baseUrl URL of the glowingbear to run tests against
fixturesFolder Folder with environment specific configurations (e.g. test users credentials), so-called fixtures. e.g. dev, test.
env.apiUrl A transmart backend. It has to be the same that the glowingbear (specified in baseUrl) is communicating with. It is used by tests as shortcuts for data preparation and cleaning (e.g. remove export jobs).
env.oidc-server-url URL of the identity provider that is used by the glowingbear and transmart.
env.oidc-client-id The OpenID Connect Client name.

⚠️ WARNING: tests alter state. All saved queries are deleted.

How to publish

We use Gradle to create bundles that are suitable for publication:

# Create a tar bundle in build/distributions
gradle assemble

# Publish the bundle to Nexus
gradle publish

The latest release is glowing-bear-2.0.16.tar.

Published snapshot bundles are available in the snapshots repository on https://repo.thehyve.nl with id nl.thehyve:glowing-bear:0.0.1-SNAPSNOT:tar.

Untar the archive in a directory where it can be served by a web server, e.g. Apache or nginx.

How to create a release

For creating a new release, increase the version in package.json. Make sure the publishing.repositories.maven.url property in build.gradle is set to a release repository.

Dimension icons

Glowing bear has a list of icons defined for basic subject dimensions:

  • patients
  • diagnoses
  • biosources
  • biomaterials
  • radiology dimension and images

If there is a new dimension, it will have a default icon. In order to customize this, for each new dimension that needs to be supported a new icon has to be added in icon-helper file.

Extensions

All extensions require a proper configuration, as described in configuration section.

Experimental analysis

To use interactive visual analytics, you need to install Fractalis back-end and, either install Fractalis front-end from the repository, or use a npm package.

Export service

To be able to use additional export formats, install transmart-packer.

Installation

For installation using docker-compose, see glowing-bear-docker.

For installation using Puppet, follow the instructions on puppet-transmart_core.

Manual installation is explained in the installation instructions.

Configuring Glowing Bear

The application can be configured by changing the env.json and config.*.json files in app/config.

Example env.json (allowed values are default, dev and transmart):

{
  "env": "default"
}

Example config.default.json:

{
  "api-url": "/api/transmart-api-server",
  "api-version": "v2",
  "gb-backend-url": "/api/gb-backend",
  "doc-url": "https://glowingbear.app",
  "enable-fractalis-analysis": false,
  "autosave-subject-sets": true,
  "show-observation-counts": false,
  "instant-counts-update": false,
  "include-data-table": false,
  "include-cohort-subscription": false,
  "oidc-server-url": "${KEYCLOAK_SERVER_URL}/realms/${KEYCLOAK_REALM}/protocol/openid-connect",
  "oidc-client-id": "${KEYCLOAK_CLIENT_ID}",
  "export-mode": {
    "name": "packer",
    "data-view": "basic_export",
    "export-url": "/api/transmart-packer"
  },
  "check-server-status": true
}

Supported properties in the config.*.json files:

Property Default Description
api-url URL of the TranSMART API to connect to.
api-version v2 TranSMART API version. Only v2 is supported.
gb-backend-url URL of the Gb-backend application to connect to for cohorts handling.
autosave-subject-sets false Persist subject selection as subject set automatically.
show-observation-counts true
instant-counts-update false
oidc-server-url E.g., https://keycloak.example.com/auth/realms/{realm}/protocol/openid-connect
oidc-client-id transmart
export-mode JSON object. Data export configuration. When using tranSMART directly, use: export-mode: { name: transmart, data-view: export-data-view }, where export-data-view defines a shape of the export (dataTable, surveyTable). When using external tool called transmart-packer, use: export-mode: { name: packer, data-view: packer-job-name, export-url:http://example.com, where packer-job-name is a name of the job in transmart-packer and export-url is an URL of transmart-packer }
enable-fractalis-analysis false Enable the Fractalis visual analytics in the analysis tab.
fractalis-url URL of the Fractalis application to connect to for visual analytics.
fractalis-datasource-url The URL where the TranSMART API is reachable by Fractalis. (The value for api-url is used by default).
include-data-table true Show a data table in the export tab.
include-cohort-subscription false Enable cohort subscription.
check-server-status false Enable checking server status before requesting data.
deny-access-to-users-without-role false Deny access to users without any roles assigned to them. The corresponding configuration needs to be set for the backends.

License

Copyright © 2017–2021   The Hyve B.V.

This program is free software: you can redistribute it and/or modify it under the terms of the Mozilla Public License 2.0.

You should have received a copy of the license along with this program. If not, see https://opensource.org/licenses/MPL-2.0.

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