geyser

geyser Slide Decks and Demos

This repo demonstrates how to modularize the Faithful Geyser Shiny example using the Shiny module technology. Sometimes this module stuff is tricky to figure out.

GitHub

Slide Decks

Slide decks were developed using Quarto.

Earlier versions of these slide decks are available from Posit Connect:

Demos

Live demos are available via Posit Connect.

The following presentation demonstrates R Shiny apps and their modules using the geyserShinyR slide deck.

ShinyLive Demos

I am woking on building these demos on GitHub Pages using r-shinylive and Using Shinylive to host Shiny app on GitHub Pages (HBC Training).

install.packages(".", repos = NULL, type = "source")
shinylive::export(appdir = "inst/connect_modules/", destdir = "~/docs")
# should create ~/docs/app.json
httpuv::runStaticServer("~/docs")

For Python, see py-shinylive and Python Shinylive: Shiny + WebAssembly (Posit).

R and Python Packages

The repo has both an R and Python package. The R package is organized as

R package
├── DESCRIPTION
├── NAMESPACE
├── R/
│   └── *.R
├── man/
└── inst/

The Python package is organized as follows

Python package
├── pyproject.toml
├── geyser
│   ├── __init__.py
│   └── *.py

Examples in R, Python and Quarto are strewn through the inst/ directory:

inst/
├── build_module/
│   ├── 1_oldFaithful/
│   │   ├── *.R
│   │   └── *.qmd
│   ├── 2_newFaithful/
│   │   ├── *.R
│   │   └── *.qmd
│   ├── 3_callModule/
│   │   ├── *.R
│   │   └── *.qmd
│   ├── 4_moduleServer/
│   │   ├── *.R
│   │   └── *.qmd
│   └── 5_python/
│       ├── *.py
│       └── *.qmd
├── connect_modules/
│   ├── *.R
│   ├── python/
│   │   └── *.py
│   └── quarto/
│       └── *.qmd
└── reactlog/

Shiny Reactlog

The inst/reactlog directory contains examples of using reactlog with Shiny apps to track reactivity of an app across its components.