geyser: Shiny Module Demo
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.
Slide Decks
Slide decks were developed using Quarto.
Earlier versions of these slide decks are available from Posit Connect:
Demos
Live demos rendered with GitHub Pages:
geyserdemos (source) (prompt)- Build Module (source) (code)
- Connect Modules (source) (code)
- Python Module (source) (code)
- Quarto (source) (code)
- Posit Gallery (source)
Live demos are also available via Posit Connect.
- https://connect.doit.wisc.edu/geyserDemo (see inst/connect_modules/app.R)
- https://connect.doit.wisc.edu/geyserQuartoDemo (see inst/connect_modules/quarto/demo.qmd)
The following presentation demonstrates R Shiny apps and their modules using the geyserShinyR slide deck.
ShinyLive Demos
I built demos on GitHub Pages using shinylive. See Showcase Shiny Apps and Code and Deploy GitHub Pages via GitHub Actions for more information.
R and Python Package Layouts
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.