# Building a Prod-Ready, Robust Shiny Application.
#
# README: each step of the dev files is optional, and you don't have to
# fill every dev scripts before getting started.
# 01_start.R should be filled at start.
# 02_dev.R should be used to keep track of your development during the project.
# 03_deploy.R should be used once you need to deploy your app.
#
#
###################################
#### CURRENT FILE: DEV SCRIPT #####
###################################
# Engineering
## Dependencies ----
## Add one line by package you want to add as dependency
usethis::use_package( "rlang" )
usethis::use_package( "dplyr" )
usethis::use_package( "stringr" )
usethis::use_package( "ggplot2" )
usethis::use_package( "tibble" )
usethis::use_package( "tidyselect" )
usethis::use_package( "hexbin" ) # for testing plots
usethis::use_package( "charlatan", type = "Suggests" ) # For fake data.
usethis::use_package( "shinyFiles" )
# Different command for pipes.
usethis::use_pipe(export = FALSE)
# Manually add "BiocViews:" to the description.
# I'm not sure how to do this through the golem/usethis framework.
usethis::use_package( "Biobase", type = "Suggests" )
usethis::use_package( "GENESIS", type = "Suggests" )
# Shiny tests
usethis::use_package( "globals", type = "Suggests" ) # required by shinytest I guess
usethis::use_package( "shinytest", type = "Suggests" )
usethis::use_package( "vdiffr", type = "Suggests" ) # for testing plots
usethis::use_package( "withr", type = "Suggests" ) # for tests
usethis::use_package( "testthat", type = "Suggests" ) # for tests
usethis::use_package( "rsconnect", type = "Suggests" ) # for shinyapps.io
# For shiny test?
shinytest::installDependencies()
# ## Add modules ----
# ## Create a module infrastructure in R/
golem::add_module( name = "overview" )
golem::add_module( name = "data_loader", fct = "load" ) # Name of the module
golem::add_module( name = "plot", fct = "plots" )
# ## Add helper functions ----
# ## Creates fct_* and utils_*
# golem::add_fct( "helpers" )
# golem::add_utils( "helpers" )
#
# ## External resources
# ## Creates .js and .css files at inst/app/www
# golem::add_js_file( "script" )
# golem::add_js_handler( "handlers" )
# golem::add_css_file( "custom" )
#
# ## Add internal datasets ----
# ## If you have data in your package
# usethis::use_data_raw( name = "my_dataset", open = FALSE )
usethis::use_data_raw( name = "phenotype", open = FALSE )
usethis::use_data_raw( name = "null_model", open = FALSE )
usethis::use_data_raw( name = "genotypes", open = FALSE )
# ## Tests ----
# ## Add one line by test you want to create
usethis::use_test( "mod-overview-server" )
usethis::use_test( "mod-data-loader-fct" )
usethis::use_test( "mod-data-loader-server" )
usethis::use_test( "mod-plot-fct" )
usethis::use_test( "mod-plot-server" )
# # Documentation
#
# ## Vignette ----
# usethis::use_vignette("GENESISModelExplorer")
# devtools::build_vignettes()
#
# ## Code Coverage----
# ## Set the code coverage service ("codecov" or "coveralls")
# usethis::use_coverage()
#
# # Create a summary readme for the testthat subdirectory
# covrpage::covrpage()
#
## CI ----
## Use this part of the script if you need to set up a CI
## service for your application
##
## (You'll need GitHub there)
# usethis::use_github() # I already had a github repo set up so I didn't run this.
# # GitHub Actions
# usethis::use_github_action()
# # Chose one of the three
# # See https://usethis.r-lib.org/reference/use_github_action.html
# usethis::use_github_action_check_release()
usethis::use_github_action_check_standard()
# usethis::use_github_action_check_full()
# # Add action for PR
# usethis::use_github_action_pr_commands()
#
# # Travis CI
# usethis::use_travis()
# usethis::use_travis_badge()
#
# # AppVeyor
# usethis::use_appveyor()
# usethis::use_appveyor_badge()
#
# # Circle CI
# usethis::use_circleci()
# usethis::use_circleci_badge()
#
# # Jenkins
# usethis::use_jenkins()
#
# # GitLab CI
# usethis::use_gitlab_ci()
#
# # You're now set! ----
# # go to dev/03_deploy.R
# rstudioapi::navigateToFile("dev/03_deploy.R")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.