# Quickboard
#### *A simple Python package for creating quick, modular dashboards*
## Overview
Quickboard is a collection of Python classes and utilities for making scalable dashboards. Built on top of
[Dash](https://github.com/plotly/dash) and [Plotly](https://github.com/plotly/plotly.py), Quickboard provides an assortment of tools and pre-made components to mix and match,
achieving a balance between ease-of-use and customizability.
All visible Quickboard components are instances of `dash.html` objects, so you can fully customize them using knowledge
of the `dash` package. As `plotly` has `plotly.express`, this package can be thought of an (unofficial) incarnation of
an "express" version of `dash`, allowing you to quickly prototype a dashboard, while allowing for full customization
using the usual `dash` API.
The following example was made using Quickboard.
![An example screenshot](https://github.com/broadinstitute/quickboard/raw/main/docs/images/README_example.jpg "All tabs are automatically scrollable!")
The Quickboard package contains three subpackages of interest for developing dashboards:
* base - the core components used to make the backbone of the dashboard,
* plugins - highly customizable add-ons to augment your other components,
* (DEPRECATED) textboxes - components for having dynamically updated text (to be removed in future version).
More details on using these can be found [below](#usage).
## Install Guide
To install, simply run
```
pip install quickboard
```
in your virtual environment.
## Usage
Once you have some datasets you'd like to visualize and present with a dashboard, you can start making
Quickboard components to achieve this purpose. Check out the [Component Gallery](docs/component_gallery.md) to see what
you can create with just a few lines of code.
Once you have a few components you'd like to put together into a larger app, or to take advantage of using tab-level
plugin interactions, you can use a few of the other Quickboard classes to achieve this. The general layout of a full
Quickboard consists of:
* a **Quickboard** object to hold everything together;
* a (n optional) list of **BaseTab** objects to organize visuals into tabs;
* a **Sidebar** calibrated to hold different **plugins** based on the current tab.
Within each tab, we have
* various **ContentGrid** objects to display other components in a grid, with customizable column wrapping length;
* different **DynamicPanel** objects, materialized in the form of a **PlotPanel** or **DataPanel**, which house the
primary data displays, updatable via the sidebar plugins and other panel specific **ControlPlugin** objects.
Understanding how to compose and mix these components will allow for a huge variety in producible dashboards. For more
info on how to use them, check out the docstrings (e.g. `help(ContentGrid)`) or see the
[Guided Example](https://github.com/broadinstitute/quickboard/blob/main/docs/beginner_example.md).
Raw data
{
"_id": null,
"home_page": "https://github.com/broadinstitute/quickboard",
"name": "quickboard",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "dash, dashboard, interactive, plot, graph",
"author": "Ricky Magner",
"author_email": "rmagner@broadinstitute.org",
"download_url": "https://files.pythonhosted.org/packages/ba/c8/4653cacbec60afe1bd4aa9abab7b02a16df1cd417d82d7eaeb2daed7f7f6/quickboard-0.4.0.tar.gz",
"platform": null,
"description": "# Quickboard\n\n#### *A simple Python package for creating quick, modular dashboards*\n\n\n## Overview\n\nQuickboard is a collection of Python classes and utilities for making scalable dashboards. Built on top of \n[Dash](https://github.com/plotly/dash) and [Plotly](https://github.com/plotly/plotly.py), Quickboard provides an assortment of tools and pre-made components to mix and match, \nachieving a balance between ease-of-use and customizability.\n\nAll visible Quickboard components are instances of `dash.html` objects, so you can fully customize them using knowledge \nof the `dash` package. As `plotly` has `plotly.express`, this package can be thought of an (unofficial) incarnation of \nan \"express\" version of `dash`, allowing you to quickly prototype a dashboard, while allowing for full customization \nusing the usual `dash` API.\n\nThe following example was made using Quickboard.\n\n![An example screenshot](https://github.com/broadinstitute/quickboard/raw/main/docs/images/README_example.jpg \"All tabs are automatically scrollable!\")\n\nThe Quickboard package contains three subpackages of interest for developing dashboards:\n* base - the core components used to make the backbone of the dashboard,\n* plugins - highly customizable add-ons to augment your other components,\n* (DEPRECATED) textboxes - components for having dynamically updated text (to be removed in future version).\n\nMore details on using these can be found [below](#usage).\n\n## Install Guide\n\nTo install, simply run\n```\npip install quickboard\n```\nin your virtual environment.\n\n## Usage\n\nOnce you have some datasets you'd like to visualize and present with a dashboard, you can start making\nQuickboard components to achieve this purpose. Check out the [Component Gallery](docs/component_gallery.md) to see what\nyou can create with just a few lines of code.\n\nOnce you have a few components you'd like to put together into a larger app, or to take advantage of using tab-level\nplugin interactions, you can use a few of the other Quickboard classes to achieve this. The general layout of a full \nQuickboard consists of:\n* a **Quickboard** object to hold everything together;\n* a (n optional) list of **BaseTab** objects to organize visuals into tabs;\n* a **Sidebar** calibrated to hold different **plugins** based on the current tab.\n\nWithin each tab, we have\n* various **ContentGrid** objects to display other components in a grid, with customizable column wrapping length;\n* different **DynamicPanel** objects, materialized in the form of a **PlotPanel** or **DataPanel**, which house the\nprimary data displays, updatable via the sidebar plugins and other panel specific **ControlPlugin** objects.\n\nUnderstanding how to compose and mix these components will allow for a huge variety in producible dashboards. For more\ninfo on how to use them, check out the docstrings (e.g. `help(ContentGrid)`) or see the \n[Guided Example](https://github.com/broadinstitute/quickboard/blob/main/docs/beginner_example.md).\n",
"bugtrack_url": null,
"license": null,
"summary": "\"A simple Python package for creating quick, modular dashboards.\"",
"version": "0.4.0",
"project_urls": {
"Download": "https://github.com/broadinstitute/quickboard",
"Homepage": "https://github.com/broadinstitute/quickboard"
},
"split_keywords": [
"dash",
" dashboard",
" interactive",
" plot",
" graph"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "d029f44c56134bed26458068db56b28bd473d8fd555021612f8dedccb3d92fb5",
"md5": "cf54355bcf3384b32d0cd3effe5411d5",
"sha256": "e856fb6aca894e1f9276bd0c95626281632e5d55f1d190fae9d0c8b73e08cce5"
},
"downloads": -1,
"filename": "quickboard-0.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "cf54355bcf3384b32d0cd3effe5411d5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 33867,
"upload_time": "2024-03-22T16:24:28",
"upload_time_iso_8601": "2024-03-22T16:24:28.791306Z",
"url": "https://files.pythonhosted.org/packages/d0/29/f44c56134bed26458068db56b28bd473d8fd555021612f8dedccb3d92fb5/quickboard-0.4.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bac84653cacbec60afe1bd4aa9abab7b02a16df1cd417d82d7eaeb2daed7f7f6",
"md5": "041d621c64983d764aae5fbda168fd1e",
"sha256": "2ba6aa2674c5a686c95ac836d50907d8097dac0879f2ff59719b916c0284fcc5"
},
"downloads": -1,
"filename": "quickboard-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "041d621c64983d764aae5fbda168fd1e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 19484,
"upload_time": "2024-03-22T16:24:30",
"upload_time_iso_8601": "2024-03-22T16:24:30.622746Z",
"url": "https://files.pythonhosted.org/packages/ba/c8/4653cacbec60afe1bd4aa9abab7b02a16df1cd417d82d7eaeb2daed7f7f6/quickboard-0.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-22 16:24:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "broadinstitute",
"github_project": "quickboard",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "blinker",
"specs": [
[
"==",
"1.7.0"
]
]
},
{
"name": "certifi",
"specs": [
[
"==",
"2024.2.2"
]
]
},
{
"name": "charset-normalizer",
"specs": [
[
"==",
"3.3.2"
]
]
},
{
"name": "click",
"specs": [
[
"==",
"8.1.7"
]
]
},
{
"name": "dash",
"specs": [
[
"==",
"2.16.1"
]
]
},
{
"name": "dash-bootstrap-components",
"specs": [
[
"==",
"1.5.0"
]
]
},
{
"name": "dash-core-components",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "dash-html-components",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "dash-table",
"specs": [
[
"==",
"5.0.0"
]
]
},
{
"name": "Flask",
"specs": [
[
"==",
"3.0.2"
]
]
},
{
"name": "idna",
"specs": [
[
"==",
"3.6"
]
]
},
{
"name": "importlib_metadata",
"specs": [
[
"==",
"7.0.2"
]
]
},
{
"name": "itsdangerous",
"specs": [
[
"==",
"2.1.2"
]
]
},
{
"name": "Jinja2",
"specs": [
[
"==",
"3.1.3"
]
]
},
{
"name": "MarkupSafe",
"specs": [
[
"==",
"2.1.5"
]
]
},
{
"name": "nest-asyncio",
"specs": [
[
"==",
"1.6.0"
]
]
},
{
"name": "numpy",
"specs": [
[
"==",
"1.26.4"
]
]
},
{
"name": "packaging",
"specs": [
[
"==",
"24.0"
]
]
},
{
"name": "pandas",
"specs": [
[
"==",
"2.2.1"
]
]
},
{
"name": "plotly",
"specs": [
[
"==",
"5.20.0"
]
]
},
{
"name": "python-dateutil",
"specs": [
[
"==",
"2.9.0.post0"
]
]
},
{
"name": "pytz",
"specs": [
[
"==",
"2024.1"
]
]
},
{
"name": "quickboard",
"specs": [
[
"==",
"0.4.0.dev0"
]
]
},
{
"name": "requests",
"specs": [
[
"==",
"2.31.0"
]
]
},
{
"name": "retrying",
"specs": [
[
"==",
"1.3.4"
]
]
},
{
"name": "six",
"specs": [
[
"==",
"1.16.0"
]
]
},
{
"name": "tenacity",
"specs": [
[
"==",
"8.2.3"
]
]
},
{
"name": "typing_extensions",
"specs": [
[
"==",
"4.10.0"
]
]
},
{
"name": "tzdata",
"specs": [
[
"==",
"2024.1"
]
]
},
{
"name": "urllib3",
"specs": [
[
"==",
"2.2.1"
]
]
},
{
"name": "Werkzeug",
"specs": [
[
"==",
"3.0.1"
]
]
},
{
"name": "zipp",
"specs": [
[
"==",
"3.18.1"
]
]
}
],
"lcname": "quickboard"
}