Powered by OpenAIRE graph
Found an issue? Give us feedback
image/svg+xml art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos Open Access logo, converted into svg, designed by PLoS. This version with transparent background. http://commons.wikimedia.org/wiki/File:Open_Access_logo_PLoS_white.svg art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos http://www.plos.org/ ZENODOarrow_drop_down
image/svg+xml art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos Open Access logo, converted into svg, designed by PLoS. This version with transparent background. http://commons.wikimedia.org/wiki/File:Open_Access_logo_PLoS_white.svg art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos http://www.plos.org/
ZENODO
Article . 2021
License: CC BY
Data sources: Datacite
image/svg+xml art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos Open Access logo, converted into svg, designed by PLoS. This version with transparent background. http://commons.wikimedia.org/wiki/File:Open_Access_logo_PLoS_white.svg art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos http://www.plos.org/
ZENODO
Article . 2021
License: CC BY
Data sources: Datacite
versions View all 2 versions
addClaim

A Template for Rapid Development of Interactive Computing Tools

Authors: Campbell, Rob; Kalyanam, Rajesh; Song, Carol; Zhao, Lan;

A Template for Rapid Development of Interactive Computing Tools

Abstract

A minimal set of reusable software packages and methodologies is described which have enabled the efficient creation of multiple, self-contained, data-centric web applications ("tools"). The tools themselves are dedicated to the analysis, sharing, and visualization of data produced by researchers from diverse domains. The development template described is intended to support a range of development contexts, developer proficiencies, and hosting environments. Specifically, we organized the tools' codebases within a simplified Model–View–Controller pattern and used Anaconda, Python, Jupyter, Docker, and Voilà [1] to develop and deploy the tools. The basis of the tool code is Python running as a Jupyter notebook. However, we forgo traditional, cell-based notebook organization and use Jupyter only to enable the use of ipywidgets for user interface controls. Further, this development context allowed us to leverage the use of libraries such as Pandas for data access, Ipyleaflet for geospatial visualization, and Matplotlib and Plotly for plots, charts, and graphs. A portion of the tools produced were published as stand-alone, containerized, independently hosted [2] web applications. We relied on Docker and Voilà to create containerized applications which include their own web servers. Others were published as tools embedded within a HUBzero [3] based science gateway. In this context, we relied on the gateway's Jupyter server and its ability to render the tool using Jupyter's "Appmode" extension. Thus far six tools have been developed using this template with subsequent tools only taking approximately one third as long as the initial effort employed in developing the template. The development template emerged in order to easily enhance code created by researchers and supplement it with a user interface (UI) in order to expose a tool allowing others to explore the researchers' data through a variety of rich UI elements that provide data-specific filtering, query, and visualization capabilities. One requirement was that the researchers themselves, not dedicated web developers, should be able to enhance and maintain the tool code. The template then evolved as we used it as the basis for the development of other tools and then as the basis for student interns to quickly build data-centric applications. We describe the steps we use to create these types of tools as well as the pitfalls we encountered as we assembled the template over time.

Related Organizations
Keywords

Voilà, tools, gateways, development, Jupyter

  • BIP!
    Impact byBIP!
    selected citations
    These citations are derived from selected sources.
    This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
    0
    popularity
    This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network.
    Average
    influence
    This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
    Average
    impulse
    This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network.
    Average
    OpenAIRE UsageCounts
    Usage byUsageCounts
    visibility views 9
    download downloads 4
  • 9
    views
    4
    downloads
    Powered byOpenAIRE UsageCounts
Powered by OpenAIRE graph
Found an issue? Give us feedback
visibility
download
selected citations
These citations are derived from selected sources.
This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
BIP!Citations provided by BIP!
popularity
This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network.
BIP!Popularity provided by BIP!
influence
This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
BIP!Influence provided by BIP!
impulse
This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network.
BIP!Impulse provided by BIP!
views
OpenAIRE UsageCountsViews provided by UsageCounts
downloads
OpenAIRE UsageCountsDownloads provided by UsageCounts
0
Average
Average
Average
9
4
Green