Welcome 👋
This repository is meant to be used as a SciViz local demonstration to illustrate the latest features included as part of the visualization framework. Below you can read more about the motivation and components.
- Visualization that can keep up with changing needs of your lab
- Standardized YAML build specification providing a Low-Code web application design experience
- Transport-optimization by leveraging client-side rendering with React
- Python+DataJoint interoperability to allow streamlined integration
- Clear separation between business logic from product features i.e. customization through configuration
- Backend-optimized page rendering built for big-data and scale
- Comprehensive permission and security design enabling flexible access control modes
- Securely manage sensitive information by configuring it separtely and referencing it in LC spec
- Pain-free deployments by supporting live-reload on changes to configuration
- Shared, immutable global variables available to all components
markdown
: Often it is necessary to document or describe views via Markdownpage
:- Unique tabbed pages to separate areas within your single-page application
- Hidden pages accessible through linking from records in table components
grid
: Layout structure for organizing subcomponents (as seen in Grafana, AWS Console)fixed
: For when you know exactly how many components you'd like to renderdynamic
: Component templating mode when you need to render realtime views that vary in number of components
table
: Sometimes there's nothing better than a table view- paging
- sorting
- filtering
- font/backgrond highlighting
metadata
: Great for showing context info for particular viewsplot
: Let's face it, we are going to need to be able to plot stuff- plotly
image
: When you need to render an image file's data directly within the grid*.apng
*.avif
*.gif
*.jpeg
*.png
*.svg
*.webp
custom
: Adding new, custom components is easy with our extensibility hook. See our currently supported components here which you can reference when creating your own.
We'd like to thank internationalbrainlab.org for releasing publicly various sets of experimental workflow data. In order to provide a DEMO that seems more relevant we've used this public data to help grasp some of the concepts of what is currently supported in SciViz.
To run this environment, all that is needed is to have Docker and Docker Compose available. Be sure to refer to the comment header in the docker-compose.yaml
on specific command details to bring up the environment. Please create a .env
(at least empty) as a placeholder for storing sensitive data.
For the login, there are 2 options:
- (recommended) If you are a member of DataJoint's full time staff, you can use the credentials called
SciViz DEMO: IBL Public (internal)
in our LastPass for application login. This will allow thePsychometric Curves
page to render the plots properly. Also, have a look atSciViz DEMO: IBL Public S3 (internal)
in LastPass for S3 connection details for the spinning brain GIF. Since this data is sensitive, it should be included in the.env
so that it is properly ignored from commits. Have a look inexample.env
for more instructions. - For external contributors, you may use the public credential set provided by IBL; see here for more details. Be aware that based on IBL's current policy around plots, none of the plots or images will render properly as IBL has not yet made the plots publicly accessible. Specifically the plots in the
Psychometric Curves
page and the plots and spinning brain GIF in the individualSession
pages.
- Loading the frontend after a fresh start takes the longest since it is optimizing the hot-reloads based on the first load. After that, reloads will be much faster.
- To allow bearer tokens to be reused between service restarts:
- Make sure to create a
.env
file with the asymmetric key pair stored in environment variables:PHARUS_PRIVATE_KEY
PHARUS_PUBLIC_KEY
- See
example.env
for a pair that is valid. You may directly use this for DEMO's as well.
- Make sure to create a