https://github.com/bluebrain/nexus-web

Nexus Web is the interface of Blue Brain Nexus

https://github.com/bluebrain/nexus-web

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.8%) to scientific vocabulary

Keywords

javascript nexus nodejs react redux server-side-rendering storybook typescript
Last synced: 5 months ago · JSON representation

Repository

Nexus Web is the interface of Blue Brain Nexus

Basic Info
  • Host: GitHub
  • Owner: BlueBrain
  • License: apache-2.0
  • Language: TypeScript
  • Default Branch: main
  • Homepage: https://bluebrainnexus.io
  • Size: 89.7 MB
Statistics
  • Stars: 18
  • Watchers: 12
  • Forks: 9
  • Open Issues: 3
  • Releases: 77
Archived
Topics
javascript nexus nodejs react redux server-side-rendering storybook typescript
Created almost 8 years ago · Last pushed 12 months ago
Metadata Files
Readme License Authors

README.md

[!WARNING] The Blue Brain Project concluded in December 2024, so development has ceased under the BlueBrain GitHub organization. Future development will take place at: https://github.com/openbraininstitute/nexus-web

Nexus Fusion

Note: expect this repo to be renamed to https://github.com/BlueBrain/nexus-fusion to match the new application name and Nexus component branding scheme.

Build Status Coverage Status Follow on Twitter

Nexus Fusion (previously Nexus Web) is the interface of Blue Brain Nexus, the open-source knowledge graph for data-driven science.

Blue Brain Nexus Docs | Development | Studios

Contributing

Learn how we use git in the wiki

Development

Install dependencies: Please note you need npm v6.9.0 or above or yarn. Currently, does not work with yarn 2.

sh yarn

To start the Nexus in development mode, run:

sh yarn start

Lint code:

sh yarn lint

Run unit tests:

sh yarn test

Run end to end tests:

  1. Ensure you have the cypress.env.json file locally. 2.

a. To run the tests in headed mode:

sh yarn cy:open

If you encounter issues with project:setup or resources:create tasks because of SSL or certificate errors when running the tests locally, try the following:

sh NODE_TLS_REJECT_UNAUTHORIZED=0 yarn cy:open

b. To run the tests in headless mode:

sh yarn cy:run

Build for production

Compile app in dist/ folder.

sh yarn build

You can run the app with:

sh node dist/server.js

Build a Docker image

sh docker build . --tag=nexus-web

ENV variables list

  • BASE_PATH: The base of the app: i.e. /staging/web if hosted on https://bbp-nexus.epfl.ch/staging/web (default is /)
  • HOST_NAME: name of host where application is available from: i.e. https://bbp-nexus.epfl.ch (default is protocol + host where server is running from)
  • CLIENT_ID: The application name used for OpenID Connect authentication (default is nexus-web)
  • API_ENDPOINT: The URL pointing to Nexus API. Default is '/'
  • SERVICE_ACCOUNTS_REALM: The realm that is configured for service accounts that should be hidden for Login. Default is 'serviceaccounts'.
  • GTM_CODE: The Google Analytics Identifier. GA won't be present unless an ID is specified.
  • SENTRY_DSN: The sentry URL Nexus Fusion needs to report errors to. Default is undefined.
  • STUDIO_VIEW: The location of the aggregate elastic search view that contains all the projects: orgLabel/projectLabel/viewId
  • LOGO_IMG: Url for an image to be used as Fusion logo in the Header, for example, https://drive.boogle.com/jnsjdnsjs
  • LOGO_LINK: Url for the logo, for example, https://www.epfl.ch
  • FORGE_LINK: Url for the Forge Templates button, for example, https://some-url.hi
  • DATA_MODELS: The location of the data models to be used in Activity lists in Workflow: orgLabel/projectLabel

The following concern Plugins. See how to manage plugin deployments

  • PLUGINS_MANIFEST_PATH: Remote end point where plugins and manifest can be found. for example, https://bbp-nexus.epfl.ch/plugins

Deployment

You can find out how to deploy a build in the wiki

Documentation

The documentation for Nexus Fusion can be found in the product docs.

Read more about the Fusion Architecture.

Resource-level Plugins

A core component of Studio is the ability for data curators to develop a domain-specific presentation layer for their resources in Nexus Fusion. This allows data consumers to visualize their datasets using graphs, charts, or 3D visualizations, and to present the relevant metadata to the user.

Plugins are developed using Javascript and are loaded into the Nexus Fusion instance from the /plugins folder.

Studios Subapp

Studios space allows data curators to display their data using customisable, persistent queries. Using custom plugins developed with JavaScript, data curators can format the presentation of the query results any way they like.

Admin Subapp

The Nexus Fusion admin app allows you to manage your Nexus Delta instance.

Learn how to Add Your Own App

Getting involved

Issue tracking is centralized into the main Blue Brain Nexus repository.

There are several channels provided to address different issues:

  • Feature request: If there is a feature you would like to see in this application, please first consult the list of open feature requests. In case there isn't already one, please open a feature request describing your feature with as much detail as possible.
  • Bug report: If you have found a bug, please create an issue here.

Development Tips

When using the nexus sdk

  • Never use @id as an absolute nexus address.
  • avoid using nexus.httpGet(), instead, use the specific API methods available

When building URLs inside the App

  • Don't add the basePath in a URL, it will be added automatically by react-router.

Funding & Acknowledgment

The development of this software was supported by funding to the Blue Brain Project, a research center of the École polytechnique fédérale de Lausanne (EPFL), from the Swiss government's ETH Board of the Swiss Federal Institutes of Technology.

Copyright © 2015-2023 Blue Brain Project/EPFL

Owner

  • Name: The Blue Brain Project
  • Login: BlueBrain
  • Kind: organization
  • Email: bbp.opensource@epfl.ch
  • Location: Geneva, Switzerland

Open Source Software produced and used by the Blue Brain Project

GitHub Events

Total
  • Release event: 1
  • Watch event: 2
  • Delete event: 38
  • Issue comment event: 3
  • Push event: 14
  • Pull request event: 11
  • Pull request review event: 1
  • Create event: 10
Last Year
  • Release event: 1
  • Watch event: 2
  • Delete event: 38
  • Issue comment event: 3
  • Push event: 14
  • Pull request event: 11
  • Pull request review event: 1
  • Create event: 10

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 0
  • Total pull requests: 199
  • Average time to close issues: N/A
  • Average time to close pull requests: 5 days
  • Total issue authors: 0
  • Total pull request authors: 8
  • Average comments per issue: 0
  • Average comments per pull request: 0.47
  • Merged pull requests: 163
  • Bot issues: 0
  • Bot pull requests: 18
Past Year
  • Issues: 0
  • Pull requests: 8
  • Average time to close issues: N/A
  • Average time to close pull requests: about 8 hours
  • Issue authors: 0
  • Pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.5
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 2
Top Authors
Issue Authors
  • Dinika (1)
Pull Request Authors
  • Dinika (68)
  • bilalesi (56)
  • julienmachon (44)
  • danburonline (36)
  • dependabot[bot] (35)
  • kenjinp (34)
  • mdupont (21)
  • wq9 (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (41) fix (28) migration (24) enhancement (20) review (4) documentation (4) feature (3) chore (2) bug (2)

Dependencies

.github/workflows/release.yml actions
  • actions/checkout v2 composite
.github/workflows/review.yml actions
  • actions/checkout v1 composite
  • actions/setup-node v3 composite
  • codecov/codecov-action v1 composite
.github/workflows/snapshot.yml actions
  • actions/checkout v2 composite
Dockerfile docker
  • node 14-alpine build
  • timbru31/node-alpine-git 14 build
ci/docker-compose.yml docker
  • bluebrain/blazegraph-nexus 2.1.6-RC
  • bluebrain/nexus-delta latest
  • cypress/included 10.3.1-typescript
  • docker.elastic.co/elasticsearch/elasticsearch 7.16.2
  • library/postgres 12.2
  • nexus-web fresh
  • quay.io/keycloak/keycloak 18.0.0
.github/workflows/preview.yml actions
  • actions/checkout v3 composite
.github/workflows/monitor-studios.yml actions
  • actions/checkout v3 composite
  • actions/setup-node v3 composite
migrations/package.json npm
  • eslint ^7.16.0 development
  • eslint-plugin-import ^2.22.1 development
  • esm ^3.2.25 development
  • lodash 4.17.21 development
  • mocha ^9.2.2 development
  • @bbp/nexus-sdk ^1.3.15
  • minimist ^1.2.6
  • node-fetch ^3.2.10
migrations/yarn.lock npm
  • 243 dependencies
package.json npm
  • @babel/core ^7.3.4 development
  • @commitlint/cli ^11.0.0 development
  • @commitlint/config-conventional ^11.0.0 development
  • @storybook/addon-actions ^5.0.10 development
  • @storybook/addon-info ^5.2.0-alpha.30 development
  • @storybook/addon-knobs ^5.0.10 development
  • @storybook/addon-links ^5.0.1 development
  • @storybook/addons ^5.0.1 development
  • @storybook/react ^5.0.10 development
  • @testing-library/cypress 9.0.0 development
  • @testing-library/jest-dom ^5.16.4 development
  • @testing-library/react 12.1.2 development
  • @testing-library/react-hooks ^8.0.1 development
  • @testing-library/user-event ^14.4.2 development
  • @types/codemirror ^5.60.7 development
  • @types/cookie-parser ^1.4.1 development
  • @types/enzyme ^3.9.0 development
  • @types/express ^4.16.1 development
  • @types/jest ^24.0.11 development
  • @types/json2csv ^5.0.1 development
  • @types/jwt-decode ^2.2.1 development
  • @types/morgan ^1.7.35 development
  • @types/node ^11.11.0 development
  • @types/object-hash ^1.2.0 development
  • @types/pluralize ^0.0.29 development
  • @types/qs ^6.9.5 development
  • @types/query-string ^6.3.0 development
  • @types/react ^16.9.0 development
  • @types/react-dom ^16.9.0 development
  • @types/react-helmet ^5.0.7 development
  • @types/react-infinite-scroll-component ^4.2.5 development
  • @types/react-input-mask ^3.0.2 development
  • @types/react-redux ^7.1.24 development
  • @types/react-router ^5.1.13 development
  • @types/react-router-dom ^5.1.7 development
  • @types/showdown ^1.9.3 development
  • @types/storybook__addon-actions ^3.4.2 development
  • @types/storybook__addon-info ^4.1.0 development
  • @types/storybook__addon-knobs ^4.0.3 development
  • @types/storybook__addon-links ^3.3.4 development
  • @types/storybook__react ^4.0.1 development
  • @types/string-similarity ^4.0.0 development
  • @types/webpack-env ^1.13.9 development
  • babel-loader ^8.0.4 development
  • copy-webpack-plugin ^5.1.1 development
  • css-loader ^2.1.1 development
  • cypress ^12.17.0 development
  • cypress-file-upload ^5.0.8 development
  • enzyme ^3.9.0 development
  • enzyme-adapter-react-16 ^1.10.0 development
  • file-loader ^3.0.1 development
  • husky ^1.3.1 development
  • jest ^24.3.1 development
  • jest-environment-enzyme ^7.0.2 development
  • jest-environment-jsdom-fifteen ^1.0.2 development
  • jest-environment-jsdom-sixteen ^2.0.0 development
  • jest-enzyme ^7.0.2 development
  • less ^3.9.0 development
  • less-loader ^4.1.0 development
  • lint-staged ^9.5.0 development
  • mini-css-extract-plugin ^0.5.0 development
  • msw ^0.41.0 development
  • mustache ^4.2.0 development
  • null-loader ^0.1.1 development
  • prettier ^1.16.4 development
  • raw-loader ^4.0.2 development
  • react-docgen-typescript-loader ^3.0.1 development
  • source-map-loader ^0.2.4 development
  • start-server-and-test ^1.10.10 development
  • style-loader ^0.23.1 development
  • terser-webpack-plugin ^2.2.1 development
  • ts-jest ^24.0.0 development
  • ts-loader ^6.0.1 development
  • ts-node ^8.0.3 development
  • tslint ^5.13.1 development
  • tslint-config-airbnb ^5.11.1 development
  • tslint-config-prettier ^1.18.0 development
  • tslint-react-hooks ^2.0.0 development
  • typescript ^4.2.0 development
  • webpack ^4.29.6 development
  • webpack-cli ^3.2.3 development
  • webpack-dev-middleware ^3.6.1 development
  • webpack-hot-middleware ^2.24.3 development
  • webpack-node-externals ^1.7.2 development
  • @ant-design/charts ^1.3.4
  • @ant-design/icons ^4.4.0
  • @bbp/nexus-sdk 1.3.15
  • @bbp/react-nexus 1.3.15
  • @reduxjs/toolkit ^1.8.5
  • @sentry/browser 6.13.1
  • @supercharge/promise-pool ^2.4.0
  • @types/cytoscape ^3.19.4
  • @types/lodash ^4.14.182
  • @types/react-beautiful-dnd ^13.1.2
  • @types/react-pdf 5.7.2
  • @types/redux-mock-store ^1.0.3
  • ajv ^8.10.0
  • ajv-errors ^3.0.0
  • ajv-formats ^2.1.1
  • antd ^4.9.1
  • bodybuilder ^2.2.25
  • clsx ^1.2.1
  • codemirror ^5.58.2
  • connected-react-router ^6.3.2
  • cookie-parser ^1.4.4
  • csv-string ^4.0.1
  • cytoscape ^3.18.1
  • cytoscape-avsdf ^1.0.0
  • cytoscape-cola ^2.5.0
  • deep-object-diff ^1.1.0
  • express ^4.16.4
  • express-prom-bundle ^5.0.2
  • git-revision-webpack-plugin ^3.0.6
  • handlebars ^4.7.7
  • history ^4.7.2
  • http-proxy-middleware ^2.0.1
  • json2csv ^5.0.5
  • jwt-decode ^2.2.0
  • localforage ^1.9.0
  • lodash ^4.17.21
  • lru-cache 7.18.3
  • moment ^2.29.4
  • morgan ^1.9.1
  • motion ^10.15.5
  • object-hash ^1.3.1
  • oidc-client ^1.7.0
  • pluralize ^8.0.0
  • pretty-bytes ^5.4.1
  • prom-client ^11.2.1
  • qs ^6.9.4
  • query-string ^6.3.0
  • rc-tween-one ^2.7.3
  • react ^16.12.0
  • react-beautiful-dnd ^13.1.0
  • react-codemirror2 ^7.2.1
  • react-device-detect ^2.2.3
  • react-dom ^16.12.0
  • react-draggable ^4.4.3
  • react-helmet ^5.2.0
  • react-image-lightbox ^5.1.0
  • react-imask ^6.4.3
  • react-infinite-scroll-component ^4.5.3
  • react-input-mask ^2.0.4
  • react-json-view ^1.21.3
  • react-mde ^11.0.0
  • react-pdf 5.3.0
  • react-player ^2.9.0
  • react-query ^3.13.4
  • react-redux ^8.0.2
  • react-router ^5.1.2
  • react-router-dom ^5.1.2
  • react-spring ^8.0.19
  • react-zoom-pan-pinch ^2.1.3
  • redux ^4.0.1
  • redux-mock-store ^1.5.4
  • redux-oidc ^3.1.2
  • redux-thunk ^2.3.0
  • resize-observer-polyfill ^1.5.1
  • showdown ^1.9.1
  • string-similarity ^4.0.4
  • ts-debounce ^1.0.0
  • ts-invariant ^0.4.4
  • ts-pattern 3.3.4
  • use-async-effect ^2.2.1
yarn.lock npm
  • 2489 dependencies