Initial
This commit is contained in:
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
.Rproj.user
|
||||||
|
.Rhistory
|
||||||
|
.RData
|
||||||
|
.Ruserdata
|
||||||
13
Opportunity_Scoring.Rproj
Normal file
13
Opportunity_Scoring.Rproj
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
Version: 1.0
|
||||||
|
|
||||||
|
RestoreWorkspace: Default
|
||||||
|
SaveWorkspace: Default
|
||||||
|
AlwaysSaveHistory: Default
|
||||||
|
|
||||||
|
EnableCodeIndexing: Yes
|
||||||
|
UseSpacesForTab: Yes
|
||||||
|
NumSpacesForTab: 2
|
||||||
|
Encoding: UTF-8
|
||||||
|
|
||||||
|
RnwWeave: Sweave
|
||||||
|
LaTeX: pdfLaTeX
|
||||||
6
opportunityscoring/.Rbuildignore
Normal file
6
opportunityscoring/.Rbuildignore
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
^.*\.Rproj$
|
||||||
|
^\.Rproj\.user$
|
||||||
|
^data-raw$
|
||||||
|
dev_history.R
|
||||||
|
^dev$
|
||||||
|
$run_dev.*
|
||||||
17
opportunityscoring/DESCRIPTION
Normal file
17
opportunityscoring/DESCRIPTION
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
Package: opportunityscoring
|
||||||
|
Title: An Amazing Shiny App
|
||||||
|
Version: 0.0.0.9000
|
||||||
|
Authors@R:
|
||||||
|
person(given = "firstname",
|
||||||
|
family = "lastname",
|
||||||
|
role = c("aut", "cre"),
|
||||||
|
email = "your@email.com")
|
||||||
|
Description: What the package does (one paragraph).
|
||||||
|
License: What license is it under?
|
||||||
|
Imports:
|
||||||
|
config (>= 0.3.1),
|
||||||
|
golem (>= 0.3.1),
|
||||||
|
shiny (>= 1.7.1)
|
||||||
|
Encoding: UTF-8
|
||||||
|
LazyData: true
|
||||||
|
RoxygenNote: 7.1.1
|
||||||
10
opportunityscoring/NAMESPACE
Normal file
10
opportunityscoring/NAMESPACE
Normal file
@@ -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)
|
||||||
43
opportunityscoring/R/app_config.R
Normal file
43
opportunityscoring/R/app_config.R
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
#' 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 = "opportunityscoring")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#' 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.
|
||||||
|
#'
|
||||||
|
#' @noRd
|
||||||
|
get_golem_config <- function(
|
||||||
|
value,
|
||||||
|
config = Sys.getenv(
|
||||||
|
"GOLEM_CONFIG_ACTIVE",
|
||||||
|
Sys.getenv(
|
||||||
|
"R_CONFIG_ACTIVE",
|
||||||
|
"default"
|
||||||
|
)
|
||||||
|
),
|
||||||
|
use_parent = TRUE
|
||||||
|
){
|
||||||
|
config::get(
|
||||||
|
value = value,
|
||||||
|
config = config,
|
||||||
|
# Modify this if your config file is somewhere else:
|
||||||
|
file = app_sys("golem-config.yml"),
|
||||||
|
use_parent = use_parent
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
10
opportunityscoring/R/app_server.R
Normal file
10
opportunityscoring/R/app_server.R
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
#' 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
|
||||||
|
|
||||||
|
}
|
||||||
42
opportunityscoring/R/app_ui.R
Normal file
42
opportunityscoring/R/app_ui.R
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
#' The application User-Interface
|
||||||
|
#'
|
||||||
|
#' @param request Internal parameter for `{shiny}`.
|
||||||
|
#' DO NOT REMOVE.
|
||||||
|
#' @import shiny
|
||||||
|
#' @noRd
|
||||||
|
app_ui <- function(request) {
|
||||||
|
tagList(
|
||||||
|
# Leave this function for adding external resources
|
||||||
|
golem_add_external_resources(),
|
||||||
|
# Your application UI logic
|
||||||
|
fluidPage(
|
||||||
|
h1("opportunityscoring")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
#' 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 = 'opportunityscoring'
|
||||||
|
)
|
||||||
|
# Add here other external resources
|
||||||
|
# for example, you can add shinyalert::useShinyalert()
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
28
opportunityscoring/R/run_app.R
Normal file
28
opportunityscoring/R/run_app.R
Normal file
@@ -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(...)
|
||||||
|
)
|
||||||
|
}
|
||||||
65
opportunityscoring/dev/01_start.R
Normal file
65
opportunityscoring/dev/01_start.R
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
# 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 = "kfoppscore", # The Name of the package containing the App
|
||||||
|
pkg_title = "Opportunity Scoring for Kraft Heinz", # The Title of the package containing the App
|
||||||
|
pkg_description = "Scoring of Opportunities", # The Description of the package containing the App
|
||||||
|
author_first_name = "Scary", # Your First Name
|
||||||
|
author_last_name = "Scarecrow", # Your Last Name
|
||||||
|
author_email = "asitav.sen@lanubia.com", # Your Email
|
||||||
|
repo_url = "https://codes.tools.lanubia.com/kraftheinz/Opportunity_Scoring.git" # The URL of the GitHub Repo (optional)
|
||||||
|
)
|
||||||
|
|
||||||
|
## Set {golem} options ----
|
||||||
|
golem::set_golem_options()
|
||||||
|
|
||||||
|
## Create Common Files ----
|
||||||
|
## See ?usethis for more information
|
||||||
|
usethis::use_mit_license( "LaNubia Consulting" ) # You can set another license here
|
||||||
|
usethis::use_readme_rmd( open = FALSE )
|
||||||
|
usethis::use_code_of_conduct()
|
||||||
|
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()
|
||||||
|
|
||||||
|
## Use Recommended Packages ----
|
||||||
|
golem::use_recommended_deps()
|
||||||
|
|
||||||
|
## 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()
|
||||||
|
|
||||||
|
## Add helper functions ----
|
||||||
|
golem::use_utils_ui()
|
||||||
|
golem::use_utils_server()
|
||||||
|
|
||||||
|
# You're now set! ----
|
||||||
|
|
||||||
|
# go to dev/02_dev.R
|
||||||
|
rstudioapi::navigateToFile( "dev/02_dev.R" )
|
||||||
|
|
||||||
95
opportunityscoring/dev/02_dev.R
Normal file
95
opportunityscoring/dev/02_dev.R
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
# 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( "thinkr" )
|
||||||
|
|
||||||
|
## Add modules ----
|
||||||
|
## Create a module infrastructure in R/
|
||||||
|
golem::add_module( name = "name_of_module1" ) # Name of the module
|
||||||
|
golem::add_module( name = "name_of_module2" ) # Name of the module
|
||||||
|
|
||||||
|
## 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 )
|
||||||
|
|
||||||
|
## Tests ----
|
||||||
|
## Add one line by test you want to create
|
||||||
|
usethis::use_test( "app" )
|
||||||
|
|
||||||
|
# Documentation
|
||||||
|
|
||||||
|
## Vignette ----
|
||||||
|
usethis::use_vignette("opportunityscoring")
|
||||||
|
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")
|
||||||
|
|
||||||
42
opportunityscoring/dev/03_deploy.R
Normal file
42
opportunityscoring/dev/03_deploy.R
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
# 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: DEPLOY SCRIPT #####
|
||||||
|
######################################
|
||||||
|
|
||||||
|
# Test your app
|
||||||
|
|
||||||
|
## Run checks ----
|
||||||
|
## Check the package before sending to prod
|
||||||
|
devtools::check()
|
||||||
|
rhub::check_for_cran()
|
||||||
|
|
||||||
|
# Deploy
|
||||||
|
|
||||||
|
## Local, CRAN or Package Manager ----
|
||||||
|
## This will build a tar.gz that can be installed locally,
|
||||||
|
## sent to CRAN, or to a package manager
|
||||||
|
devtools::build()
|
||||||
|
|
||||||
|
## RStudio ----
|
||||||
|
## If you want to deploy on RStudio related platforms
|
||||||
|
golem::add_rstudioconnect_file()
|
||||||
|
golem::add_shinyappsio_file()
|
||||||
|
golem::add_shinyserver_file()
|
||||||
|
|
||||||
|
## Docker ----
|
||||||
|
## If you want to deploy via a generic Dockerfile
|
||||||
|
golem::add_dockerfile()
|
||||||
|
|
||||||
|
## If you want to deploy to ShinyProxy
|
||||||
|
golem::add_dockerfile_shinyproxy()
|
||||||
|
|
||||||
|
## If you want to deploy to Heroku
|
||||||
|
golem::add_dockerfile_heroku()
|
||||||
12
opportunityscoring/dev/run_dev.R
Normal file
12
opportunityscoring/dev/run_dev.R
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# Set options here
|
||||||
|
options(golem.app.prod = FALSE) # TRUE = production mode, FALSE = development mode
|
||||||
|
|
||||||
|
# Detach all loaded packages and clean your environment
|
||||||
|
golem::detach_all_attached()
|
||||||
|
# rm(list=ls(all.names = TRUE))
|
||||||
|
|
||||||
|
# Document and reload your package
|
||||||
|
golem::document_and_reload()
|
||||||
|
|
||||||
|
# Run the application
|
||||||
|
run_app()
|
||||||
8
opportunityscoring/inst/golem-config.yml
Normal file
8
opportunityscoring/inst/golem-config.yml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
default:
|
||||||
|
golem_name: opportunityscoring
|
||||||
|
golem_version: 0.0.0.9000
|
||||||
|
app_prod: no
|
||||||
|
production:
|
||||||
|
app_prod: yes
|
||||||
|
dev:
|
||||||
|
golem_wd: !expr here::here()
|
||||||
41
opportunityscoring/man/run_app.Rd
Normal file
41
opportunityscoring/man/run_app.Rd
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
% Generated by roxygen2: do not edit by hand
|
||||||
|
% Please edit documentation in R/run_app.R
|
||||||
|
\name{run_app}
|
||||||
|
\alias{run_app}
|
||||||
|
\title{Run the Shiny Application}
|
||||||
|
\usage{
|
||||||
|
run_app(
|
||||||
|
onStart = NULL,
|
||||||
|
options = list(),
|
||||||
|
enableBookmarking = NULL,
|
||||||
|
uiPattern = "/",
|
||||||
|
...
|
||||||
|
)
|
||||||
|
}
|
||||||
|
\arguments{
|
||||||
|
\item{onStart}{A function that will be called before the app is actually run.
|
||||||
|
This is only needed for \code{shinyAppObj}, since in the \code{shinyAppDir}
|
||||||
|
case, a \code{global.R} file can be used for this purpose.}
|
||||||
|
|
||||||
|
\item{options}{Named options that should be passed to the \code{runApp} call
|
||||||
|
(these can be any of the following: "port", "launch.browser", "host", "quiet",
|
||||||
|
"display.mode" and "test.mode"). You can also specify \code{width} and
|
||||||
|
\code{height} parameters which provide a hint to the embedding environment
|
||||||
|
about the ideal height/width for the app.}
|
||||||
|
|
||||||
|
\item{enableBookmarking}{Can be one of \code{"url"}, \code{"server"}, or
|
||||||
|
\code{"disable"}. The default value, \code{NULL}, will respect the setting from
|
||||||
|
any previous calls to \code{\link[shiny:enableBookmarking]{enableBookmarking()}}. See \code{\link[shiny:enableBookmarking]{enableBookmarking()}}
|
||||||
|
for more information on bookmarking your app.}
|
||||||
|
|
||||||
|
\item{uiPattern}{A regular expression that will be applied to each \code{GET}
|
||||||
|
request to determine whether the \code{ui} should be used to handle the
|
||||||
|
request. Note that the entire request path must match the regular
|
||||||
|
expression in order for the match to be considered successful.}
|
||||||
|
|
||||||
|
\item{...}{arguments to pass to golem_opts.
|
||||||
|
See `?golem::get_golem_options` for more details.}
|
||||||
|
}
|
||||||
|
\description{
|
||||||
|
Run the Shiny Application
|
||||||
|
}
|
||||||
18
opportunityscoring/opportunityscoring.Rproj
Normal file
18
opportunityscoring/opportunityscoring.Rproj
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
Version: 1.0
|
||||||
|
|
||||||
|
RestoreWorkspace: Default
|
||||||
|
SaveWorkspace: Default
|
||||||
|
AlwaysSaveHistory: Default
|
||||||
|
|
||||||
|
EnableCodeIndexing: Yes
|
||||||
|
UseSpacesForTab: Yes
|
||||||
|
NumSpacesForTab: 2
|
||||||
|
Encoding: UTF-8
|
||||||
|
|
||||||
|
RnwWeave: Sweave
|
||||||
|
LaTeX: pdfLaTeX
|
||||||
|
|
||||||
|
BuildType: Package
|
||||||
|
PackageUseDevtools: Yes
|
||||||
|
PackageInstallArgs: --no-multiarch --with-keep.source
|
||||||
|
PackageRoxygenize: rd,collate,namespace
|
||||||
Reference in New Issue
Block a user