ThinkR-open / golem

A Framework for Building Robust Shiny Apps
https://thinkr-open.github.io/golem/
Other
914 stars 133 forks source link
golemverse hacktoberfest r r-package shiny shiny-apps shiny-r shinyapps

Lifecycle:
stableR-CMD-check Coverage
statusCRAN
status

{golem}

You’re reading the doc about version: 0.5.1. Note that {golem} follows the semantic versioning scheme.

Production-grade {shiny} applications, from creation to deployment.

{golem} is an opinionated framework that sets the standard for building production-grade {shiny} applications. It provides a structured environment that enforces best practices, fosters maintainability, and ensures your applications are reliable, and ready for deployment in real-world environments.

With {golem}, developers can focus on creating high-quality, robust {shiny} apps with confidence, knowing that the framework guides them through every step of the development process.

Installation

install.packages("golem")
# install.packages("remotes")
remotes::install_github("Thinkr-open/golem") # Stable development version
# remotes::install_github("Thinkr-open/golem@dev") # Bleeding edge development version

Get Started

Create a new app with the project template from RStudio:

Or use the golem::create_golem() function:

golem::create_golem("myapp")

See your app in action by running golem::run_dev() function.

Then, follow the scripts at:

Resources

The {golem} package is part of the {golemverse}, a series of tools for building production {shiny} apps.

A list of various {golem} related resources (tutorials, video, blog post,…) can be found here, along with blogposts, and links to other packages of the golemverse.


Dev part

This README has been compiled on the

Sys.time()
#> [1] "2024-08-27 09:39:59 UTC"

Here are the test & coverage results:

devtools::check(quiet = TRUE)
#> ℹ Loading golem
#> ── R CMD check results ──────────────────────────────────────── golem 0.5.1 ────
#> Duration: 44.8s
#> 
#> 0 errors ✔ | 0 warnings ✔ | 0 notes ✔

Sys.setenv("NOT_CRAN" = TRUE);covr::package_coverage()
#> golem Coverage: 84.85%
#> R/boostrap_base.R: 0.00%
#> R/bootstrap_attachment.R: 0.00%
#> R/bootstrap_pkgload.R: 0.00%
#> R/bootstrap_roxygen2.R: 0.00%
#> R/bootstrap_rstudio_api.R: 0.00%
#> R/bootstrap_testthat.R: 0.00%
#> R/bootstrap_dockerfiler.R: 23.33%
#> R/bootstrap_usethis.R: 28.57%
#> R/test_helpers.R: 47.37%
#> R/bootstrap_desc.R: 55.56%
#> R/addins.R: 66.67%
#> R/modules_fn.R: 75.74%
#> R/after_creation_msg.R: 76.39%
#> R/create_golem.R: 77.12%
#> R/add_rstudio_files.R: 77.88%
#> R/install_dev_deps.R: 78.26%
#> R/add_r_files.R: 78.70%
#> R/config.R: 79.23%
#> R/use_files.R: 80.63%
#> R/reload.R: 84.69%
#> R/disable_autoload.R: 85.00%
#> R/add_dockerfiles.R: 87.10%
#> R/sanity_check.R: 87.18%
#> R/make_dev.R: 90.00%
#> R/use_favicon.R: 90.32%
#> R/add_dockerfiles_renv.R: 91.95%
#> R/add_files.R: 93.14%
#> R/golem-yaml-get.R: 93.18%
#> R/js.R: 93.75%
#> R/run_dev.R: 95.65%
#> R/desc.R: 96.77%
#> R/use_recommended.R: 97.37%
#> R/use_utils.R: 97.40%
#> R/utils.R: 99.19%
#> R/add_resource_path.R: 100.00%
#> R/boostrap_cli.R: 100.00%
#> R/boostrap_crayon.R: 100.00%
#> R/boostrap_fs.R: 100.00%
#> R/browser_button.R: 100.00%
#> R/bundle_resources.R: 100.00%
#> R/cats.R: 100.00%
#> R/enable_roxygenize.R: 100.00%
#> R/get_sysreqs.R: 100.00%
#> R/globals.R: 100.00%
#> R/golem_welcome_page.R: 100.00%
#> R/golem-yaml-set.R: 100.00%
#> R/golem-yaml-utils.R: 100.00%
#> R/is_golem.R: 100.00%
#> R/is_running.R: 100.00%
#> R/maintenance_page.R: 100.00%
#> R/pkg_tools.R: 100.00%
#> R/set_golem_options.R: 100.00%
#> R/templates.R: 100.00%
#> R/use_readme.R: 100.00%
#> R/with_opt.R: 100.00%

CoC

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Note for the contributors

Please style the files according to grkstyle::grk_style_transformer()

# If you work in RStudio
options(styler.addins_style_transformer = "grkstyle::grk_style_transformer()")

# If you work in VSCode
options(languageserver.formatting_style = function(options) {
  grkstyle::grk_style_transformer()
})