periscope2

R package periscope2

https://github.com/aggregate-genius/periscope2

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
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.9%) to scientific vocabulary

Keywords

cran periscope r r-package shiny
Last synced: 9 months ago · JSON representation

Repository

R package periscope2

Basic Info
Statistics
  • Stars: 9
  • Watchers: 4
  • Forks: 1
  • Open Issues: 1
  • Releases: 6
Topics
cran periscope r r-package shiny
Created over 3 years ago · Last pushed 9 months ago
Metadata Files
Readme Changelog

README.md


title: "periscope2 Shiny Application Framework" output: html_document:

self_contained: yes

CRAN status Downloads Total CircleCI build status codecov <!-- badges: end -->

Overview

periscope2 is a scalable and UI-standardized 'shiny' framework including a variety of developer convenience functions with the goal of both streamlining robust application development and assisting in creating a consistent user experience regardless of application or developer.

periscope2 is full of developer-friendly features such as:

  • Predefined but flexible templates for new Shiny applications with a default bs4Dash layout
  • Separation by file of functionality that exists in one of the three shiny scopes: global, server-global, and server-local
  • Generated applications are organized in an easy to follow and maintain folder structure based on files functionality
  • Off-the-shelf and ready to be used modules ('Table/React Table Downloader', 'Plot Downloader', 'File Downloader' and 'Reset Application'
  • Different methods and tools to alert users and add useful information about application UI and server operations
  • Application logger with different levels and a UI tool to display and review recorded application logs
  • Application look and feel can be customized easily via 'www/periscope_style.yaml' or more advanced via 'www/css/custom.css'
  • Application can make use of JS power by customizing 'www/js/custom.js'

Create and run sample app for full features demo

periscope2::create_application(name = "demo_app", location = ".", sample_app = T, right_sidebar = T) shiny::runApp("./demo_app/", launch.browser = T)


Installation

periscope2 is available for installation from CRAN

r devtools::install_cran("periscope2")

and latest development version of periscope2 from GitHub as follows:

r devtools::install_github('Aggregate-Genius/periscope2')



periscope vs periscope2

periscope is widely regarded and used an enterprise application development aid framework for providing the user with the ability to build a robust shiny applications and dashboards.

periscope is the direct ancestor of periscope2 in which periscope2 took most of its basic philosophy and generated applications structure.

However; as periscope2 is the next generation (iteration) of periscope package, they differ in many aspects as follow:

Underlying frameworks

periscope is dependent on bootstrap 3 supported shiny packages:

While periscope2 is dependent only on bootstrap 4 supported shiny package to bring in more functionality (i.e dashboard functionality, alerts, tool-tips, etc..) and a modernized look and feel:


Generated applications layout

periscope full generated app layouts:

  • Left sidebar
  • Right sidebar
  • Header
  • Body

periscope2 full generated app layouts:

  • Left sidebar
  • Right sidebar
  • Header
  • Footer
  • Body

For periscope2, each part has it own UI R file that can be customized and updated. Each part also has its own dedicated alert panel, including an announcements framework as part of the header.

User can adapt layout for both packages generated apps easily via related functions (refer to r ?periscope and r ?periscope2 for more info)


Generated applications code structure

  • Regardless files contents, both packages generated applications share the same first level folder structure:
  • Differences in the next level of structure are:
    • periscope2 program folder has:
    • a dedicated UI R script for each layout part
    • config - folder for storing application different configuration files
      • Initially contains announcements module configuration file
    • modules - folder for application shiny modules R scripts
    • www folder that contains the application JS, CSS and theme customization files
    • Although generated applications by both frameworks will have the same folder structure, periscope2 generated applications will have two additional files css/custom.css and js/custom.js to hold custom application JS and CSS code
      • Both of these files are already linked into the generated app and ready to be used

Periscope2 Modules

  • Both packages share the following modules:
    • downloadable file
    • Use openxlsx2 to download .xlsx files, openxlsx for legacy apps and backwards compatibility, and writexl as a fallback in case openxlsx2 or openxlsx not installed.
    • downloadable plot
    • downloadable table
  • However, periscope2 has more modules (more to come with each new version) as Announcements module
  • The following modules behave differently between the two packages:
    • Reset Application
    • Logger

NOTE: Check package documentation and vignettes for module details


Periscope2 RStudio Add-ins

Periscope2 provides multiple RStudio add-ins to help package user to configure different generated application aspects visually and correctly. Please refer to the following documentation for each add-in details:

  • vignette("announcement_addin", package = "periscope2")
  • vignette("themeBuilder_addin", package = "periscope2")

Old Shiny module style support

While periscope modules can be called either via the old style (callModule) or new style (moduleServer1), periscope2 only supports the new module style. Check migrating to module server article for more related technical info.


fresh package Styling Support

fresh package is used in both packages to style generated applications different parts via configurations rather than code using the 'www/periscope_style.yaml' file.

While periscope uses shiny dashboard variables for styling in code and via the 'www/periscope_style.yaml' configuration file, periscope2 uses bs4dash related variables . The file key names use related shiny dashboard or bs4dash variables for user friendly styling in both packages.


Examples

These are included to get you started. You can either start with an empty application or an application that includes samples of the components that you can use within your application. There is extensive package documentation and full Vignettes are also available to help you with all the options.


Empty application

r periscope2::create_application('emptyapp', location = ".") shiny::runApp('emptyapp', launch.browser = T)

Sample application - no right sidebar

```r periscope2::createapplication("sampleapp1", location = ".", sampleapp = TRUE) shiny::runApp('sampleapp1', launch.browser = T)

```

Sample application - including a right sidebar

```r periscope2::createapplication("sampleapp2", location = ".", sampleapp = TRUE, right_sidebar = TRUE) shiny::runApp('sampleapp2', launch.browser = T)

```

Owner

  • Name: Aggregate Genius Inc.
  • Login: Aggregate-Genius
  • Kind: organization
  • Email: info@aggregate-genius.com
  • Location: Canada

Analytics and Big Data Solutions

GitHub Events

Total
  • Release event: 1
  • Delete event: 12
  • Issue comment event: 16
  • Push event: 133
  • Pull request review comment event: 69
  • Pull request review event: 68
  • Pull request event: 50
  • Create event: 17
Last Year
  • Release event: 1
  • Delete event: 12
  • Issue comment event: 16
  • Push event: 133
  • Pull request review comment event: 69
  • Pull request review event: 68
  • Pull request event: 50
  • Create event: 17

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 7
  • Total Committers: 3
  • Avg Commits per committer: 2.333
  • Development Distribution Score (DDS): 0.429
Past Year
  • Commits: 6
  • Committers: 3
  • Avg Commits per committer: 2.0
  • Development Distribution Score (DDS): 0.333
Top Committers
Name Email Commits
agenius-mohammed-ali 7****i 4
Dr. Connie Brett c****s 2
cb4ds c****e@a****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 9 months ago

All Time
  • Total issues: 2
  • Total pull requests: 107
  • Average time to close issues: 13 days
  • Average time to close pull requests: 5 days
  • Total issue authors: 1
  • Total pull request authors: 6
  • Average comments per issue: 4.5
  • Average comments per pull request: 0.59
  • Merged pull requests: 99
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 28
  • Average time to close issues: N/A
  • Average time to close pull requests: 4 days
  • Issue authors: 0
  • Pull request authors: 5
  • Average comments per issue: 0
  • Average comments per pull request: 0.46
  • Merged pull requests: 21
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jnhyeon (2)
Pull Request Authors
  • agenius-mohammed-ali (98)
  • agenius-shannon (3)
  • cb4ds (2)
  • agenius-jennifer (2)
  • agenius-jasmine (1)
  • agenius-menna (1)
Top Labels
Issue Labels
question (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • cran 171 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 6
  • Total maintainers: 1
cran.r-project.org: periscope2

Enterprise Streamlined 'shiny' Application Framework Using 'bs4Dash'

  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 171 Last month
Rankings
Forks count: 21.5%
Dependent packages count: 28.4%
Stargazers count: 31.3%
Dependent repos count: 37.0%
Average: 41.3%
Downloads: 88.0%
Last synced: 9 months ago

Dependencies

.github/workflows/R-CMD-check.yaml actions
  • actions/checkout v3 composite
  • r-lib/actions/check-r-package v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
DESCRIPTION cran
  • R >= 4.0 depends
  • DT * imports
  • bs4Dash >= 2.3 imports
  • fresh * imports
  • grDevices * imports
  • lubridate * imports
  • methods * imports
  • shiny >= 1.7 imports
  • shinyWidgets * imports
  • utils * imports
  • writexl * imports
  • yaml * imports
  • assertthat * suggests
  • canvasXpress * suggests
  • ggplot2 * suggests
  • knitr * suggests
  • lattice * suggests
  • openxlsx * suggests
  • rmarkdown * suggests
  • shinyalert * suggests
  • shinyjs * suggests
  • spelling * suggests
  • testthat * suggests
  • waiter * suggests