-
Notifications
You must be signed in to change notification settings - Fork 211
Home
Alice is a Jupyter Notebook user. Alice prototypes data access, modeling, plotting, interactivity, etc. in a notebook. Now Alice needs to deliver a dynamic dashboard for non-notebook users. Today, Alice must step outside Jupyter Notebook and build a separate web application. Alice cannot simply transform her notebook into a secure, standalone dashboard application.
The Jupyter Dashboards effort covers:
- Arranging notebook outputs in a grid- or report-like layout (https://github.com/jupyter-incubator/dashboards)
- Bundling notebooks and associated assets for deployment as dashboards https://github.com/jupyter-incubator/dashboards_bundlers)
- Serving notebook-defined dashboards as standalone web apps (https://github.com/jupyter-incubator/dashboards_server)
It is also has close ties to jupyter-incubator/declarativewidgets which provides one way (but not the only way) of enabling rich interactivity in notebook-defined dashboards.
Taken together, these components enable the following workflow:
- Alice authors a notebook document using Jupyter Notebook. She adds visualizations and interactive widgets.
- Alice arranges her notebook cells in a grid- or report-like dashboard layout.
- Alice one-click deploys her notebook and associated assets to a Jupyter Dashboards server.
- Bob visits the dashboards server and interacts with Alice's notebook-turned-dashboard application.
- Alice updates her notebook with new features and redeploys it to the dashboards server.
The following animation shows this workflow in action using one of the many example notebook-dashboards available in the project:
Jupyter Dashboards facilitate the transition from research and exploration in notebooks to the deployment of just-good-enough web applications for non-notebook users.
This workflow requires multiple Jupyter components working in concert. The jupyter-incubator/dashboards_setup repository has a variety of starter recipes for deploying these components using Docker, Cloud Foundry, tmpnb, etc.