Skip to content

Commit

Permalink
quick bench and pray
Browse files Browse the repository at this point in the history
  • Loading branch information
guslipkin committed Feb 12, 2024
1 parent d6cd790 commit 765af68
Show file tree
Hide file tree
Showing 23 changed files with 582 additions and 13 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
.DS_Store
.Rproj.user
7 changes: 7 additions & 0 deletions TouchRocks/.Rbuildignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
^.*\.Rproj$
^\.Rproj\.user$
^data-raw$
dev_history.R
^dev$
$run_dev.*
^.here$
1 change: 1 addition & 0 deletions TouchRocks/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.Rproj.user
Empty file added TouchRocks/.here
Empty file.
13 changes: 13 additions & 0 deletions TouchRocks/DESCRIPTION
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Package: TouchRocks
Title: Find Rock Climbing Gyms
Version: 0.0.0.9000
Authors@R: person('Gus', 'Lipkin', email = '[email protected]', role = c('cre', 'aut'))
Description: Look for rock climbing gyms based on features you want
License: What license is it under?
Imports:
config (>= 0.3.2),
golem (>= 0.4.1),
shiny (>= 1.8.0)
Encoding: UTF-8
LazyData: true
RoxygenNote: 7.2.3
10 changes: 10 additions & 0 deletions TouchRocks/NAMESPACE
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Generated by roxygen2: do not edit by hand

export(run_app)
import(shiny)
importFrom(golem,activate_js)
importFrom(golem,add_resource_path)
importFrom(golem,bundle_resources)
importFrom(golem,favicon)
importFrom(golem,with_golem_options)
importFrom(shiny,shinyApp)
3 changes: 3 additions & 0 deletions TouchRocks/NEWS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# TouchRocks (development version)

* Initial CRAN submission.
44 changes: 44 additions & 0 deletions TouchRocks/R/app_config.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#' Access files in the current app
#'
#' NOTE: If you manually change your package name in the DESCRIPTION,
#' don't forget to change it here too, and in the config file.
#' For a safer name change mechanism, use the `golem::set_golem_name()` function.
#'
#' @param ... character vectors, specifying subdirectory and file(s)
#' within your package. The default, none, returns the root of the app.
#'
#' @noRd
app_sys <- function(...) {
system.file(..., package = "TouchRocks")
}


#' Read App Config
#'
#' @param value Value to retrieve from the config file.
#' @param config GOLEM_CONFIG_ACTIVE value. If unset, R_CONFIG_ACTIVE.
#' If unset, "default".
#' @param use_parent Logical, scan the parent directory for config file.
#' @param file Location of the config file
#'
#' @noRd
get_golem_config <- function(
value,
config = Sys.getenv(
"GOLEM_CONFIG_ACTIVE",
Sys.getenv(
"R_CONFIG_ACTIVE",
"default"
)
),
use_parent = TRUE,
# Modify this if your config file is somewhere else
file = app_sys("golem-config.yml")
) {
config::get(
value = value,
config = config,
file = file,
use_parent = use_parent
)
}
9 changes: 9 additions & 0 deletions TouchRocks/R/app_server.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#' The application server-side
#'
#' @param input,output,session Internal parameters for {shiny}.
#' DO NOT REMOVE.
#' @import shiny
#' @noRd
app_server <- function(input, output, session) {
# Your application server logic
}
64 changes: 64 additions & 0 deletions TouchRocks/R/app_ui.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
#' The application User-Interface
#'
#' @param request Internal parameter for `{shiny}`.
#' DO NOT REMOVE.
#' @import shiny
#' @noRd
app_ui <- function(request) {
bs4Dash::dashboardPage(
header = bs4Dash::bs4DashNavbar(
title = bs4Dash::dashboardBrand(
title = 'Touch Rocks',
color = 'primary'
)
),
sidebar = bs4Dash::dashboardSidebar(
disable = TRUE
),
body = bs4Dash::dashboardBody(
bs4Dash::box(
title = 'Map',
color = 'secondary',
width = 12,
maximizable = TRUE,
id = 'box_map'
),
bs4Dash::box(
title = 'Filters',
width = 12,
id = 'box_filter'
),
bs4Dash::box(
title = 'Table',
width = 12,
id = 'box_table'
),
golem_add_external_resources()
)
)
}

#' Add external Resources to the Application
#'
#' This function is internally used to add external
#' resources inside the Shiny application.
#'
#' @import shiny
#' @importFrom golem add_resource_path activate_js favicon bundle_resources
#' @noRd
golem_add_external_resources <- function() {
add_resource_path(
"www",
app_sys("app/www")
)

tags$head(
favicon(),
bundle_resources(
path = app_sys("app/www"),
app_title = "TouchRocks"
)
# Add here other external resources
# for example, you can add shinyalert::useShinyalert()
)
}
28 changes: 28 additions & 0 deletions TouchRocks/R/run_app.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#' Run the Shiny Application
#'
#' @param ... arguments to pass to golem_opts.
#' See `?golem::get_golem_options` for more details.
#' @inheritParams shiny::shinyApp
#'
#' @export
#' @importFrom shiny shinyApp
#' @importFrom golem with_golem_options
run_app <- function(
onStart = NULL,
options = list(),
enableBookmarking = NULL,
uiPattern = "/",
...
) {
with_golem_options(
app = shinyApp(
ui = app_ui,
server = app_server,
onStart = onStart,
options = options,
enableBookmarking = enableBookmarking,
uiPattern = uiPattern
),
golem_opts = list(...)
)
}
21 changes: 21 additions & 0 deletions TouchRocks/TouchRocks.Rproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
Version: 1.0

RestoreWorkspace: No
SaveWorkspace: No
AlwaysSaveHistory: Default

EnableCodeIndexing: Yes
UseSpacesForTab: Yes
NumSpacesForTab: 2
Encoding: UTF-8

RnwWeave: Sweave
LaTeX: pdfLaTeX

AutoAppendNewline: Yes
StripTrailingWhitespace: Yes
LineEndingConversion: Posix

BuildType: Package
PackageUseDevtools: Yes
PackageInstallArgs: --no-multiarch --with-keep.source
68 changes: 68 additions & 0 deletions TouchRocks/dev/01_start.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# 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: ON START SCRIPT #####
########################################

## Fill the DESCRIPTION ----
## Add meta data about your application
##
## /!\ Note: if you want to change the name of your app during development,
## either re-run this function, call golem::set_golem_name(), or don't forget
## to change the name in the app_sys() function in app_config.R /!\
##
golem::fill_desc(
pkg_name = "TouchRocks", # The Name of the package containing the App
pkg_title = "Find Rock Climbing Gyms", # The Title of the package containing the App
pkg_description = "Look for rock climbing gyms based on features you want", # The Description of the package containing the App
author_first_name = "Gus", # Your First Name
author_last_name = "Lipkin", # Your Last Name
author_email = "[email protected]", # Your Email
repo_url = NULL, # The URL of the GitHub Repo (optional),
pkg_version = "0.0.0.9000" # The Version of the package containing the App
)

## Set {golem} options ----
golem::set_golem_options()

## Install the required dev dependencies ----
golem::install_dev_deps()

## Create Common Files ----
## See ?usethis for more information
# usethis::use_mit_license("Golem User") # You can set another license here
# usethis::use_readme_rmd(open = FALSE)
# devtools::build_readme()
# Note that `contact` is required since usethis version 2.1.5
# If your {usethis} version is older, you can remove that param
# usethis::use_code_of_conduct(contact = "Golem User")
usethis::use_lifecycle_badge("Experimental")
usethis::use_news_md(open = FALSE)

## Use git ----
# usethis::use_git()

## Init Testing Infrastructure ----
## Create a template for tests
# golem::use_recommended_tests()

## Favicon ----
# If you want to change the favicon (default is golem's one)
# golem::use_favicon() # path = "path/to/ico". Can be an online file.
# golem::remove_favicon() # Uncomment to remove the default favicon

## Add helper functions ----
# golem::use_utils_ui(with_test = TRUE)
# golem::use_utils_server(with_test = TRUE)

# You're now set! ----

# go to dev/02_dev.R
rstudioapi::navigateToFile("dev/02_dev.R")
96 changes: 96 additions & 0 deletions TouchRocks/dev/02_dev.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# 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 ----
## Amend DESCRIPTION with dependencies read from package code parsing
## install.packages('attachment') # if needed.
attachment::att_amend_desc()

## Add modules ----
## Create a module infrastructure in R/
golem::add_module(name = "name_of_module1", with_test = TRUE) # Name of the module
golem::add_module(name = "name_of_module2", with_test = TRUE) # Name of the module

## Add helper functions ----
## Creates fct_* and utils_*
golem::add_fct("helpers", with_test = TRUE)
golem::add_utils("helpers", with_test = TRUE)

## 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")
golem::add_sass_file("custom")

## Add internal datasets ----
## If you have data in your package
usethis::use_data_raw(name = "my_dataset", open = FALSE)

## Tests ----
## Add one line by test you want to create
usethis::use_test("app")

# Documentation

## Vignette ----
usethis::use_vignette("TouchRocks")
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()

# 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")
Loading

0 comments on commit 765af68

Please sign in to comment.