Why Shiny Spring?

Most R developers are not web developers and learning web development to build “Great Looking” , “Robust”, “Production Ready” web applications takes time. The success of Shiny framework developed by RStudio proves this point as shiny isolates the complexity of HTML / Javascript and web development behinds its APIS’ and its reactivity framework.

Building Professional Shiny apps that are used by several persona’s in production still requires a lot of work. ShinySpring aims to reduce this effort. It does this by

  1. Providing Templates for Dashboards.(currently we support bs4dash)
  2. Automating the creation of app.R via yml based wiring. The App developer focuses on writing shiny modules for their functionality. The app is built via a template.
  3. Providing reusable shiny modules that can be used in plug and play manner to deliver full functionality of the app

What is the development pattern for Shinyspring ?

Most Insight Apps follow a pattern. The Pattern is

  1. Load Dataset
  2. Provide a screen for app tutorial / users manual that explains the functionality of the app
  3. Core app : Show persona specific targeted visualizations for the insights for the problem you are working on.
  4. Show affiliated visualizations that enable the user for some data exploration in the context of the problem. Standard EDA type visualizations.
  5. for Admins, provide functionality to kick start some jobs (eg: Model Monitoring , Data pulls for productions) and monitor health of application.

Shinyspring provides modules and templates to wire the application in an accelerated plug and play manner.

App Lifecycle

Diagram

Key UI Concepts

  • A ShinyFramework App is an assembly of shiny modules. Some modules built by App developer, but a lot reused from pre-built modules like those from sweetmods
  • Every Menu Tab is a shiny module
  • A YML config file is used to wire the UI . i.e define the menu’s , icons , titles , link menu’s to modules
  • the Shinyapp (app.R) is auto-generated based on a whisker/mustache template and the YML file. Best practice is to never handcode the app.R.

Key datasets Concepts

  • datasets are configured in config.yml. an example configuration is shown below

  • All datasets are named and reerenced via the app_master R6 objects. Example methods

  • datasets are pre-loaded at application start

What are current modules available ?

How can I build modules that work with shiynspring ?

Is Shinyspring robust and production ready ?