mirror of
https://github.com/agdamsbo/REDCapCAST.git
synced 2024-11-22 05:20:23 +01:00
updated shiny app
This commit is contained in:
parent
9c61b5e646
commit
f787621f1b
@ -34,23 +34,32 @@ shiny_cast <- function() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
#' Deploy the Shiny app with rsconnect
|
#' Deploy the Shiny app with rsconnect to shinyapps.io
|
||||||
|
#'
|
||||||
|
#' @description
|
||||||
|
#' This is really just a simple wrapper
|
||||||
#'
|
#'
|
||||||
#' @param path app folder path
|
#' @param path app folder path
|
||||||
#' @param name.app name of deployed app
|
#' @param name.app name of deployed app
|
||||||
|
#' @param name.token stored name of token
|
||||||
|
#' @param name.secret stored name of secret
|
||||||
#'
|
#'
|
||||||
#' @return deploy
|
#' @return deploy
|
||||||
#' @export
|
#' @export
|
||||||
#'
|
#'
|
||||||
#' @examples
|
#' @examples
|
||||||
#' # deploy_shiny
|
#' # deploy_shiny()
|
||||||
#'
|
#'
|
||||||
deploy_shiny <- function(path = here::here("app/"), name.app = "shiny_cast") {
|
deploy_shiny <- function(path = here::here("app/"),
|
||||||
|
account.name,
|
||||||
|
name.app = "shiny_cast",
|
||||||
|
name.token,
|
||||||
|
name.secret) {
|
||||||
# Connecting
|
# Connecting
|
||||||
rsconnect::setAccountInfo(
|
rsconnect::setAccountInfo(
|
||||||
name = "cognitiveindex",
|
name = account.name,
|
||||||
token = keyring::key_get(service = "rsconnect_cognitiveindex_token"),
|
token = keyring::key_get(service = name.token),
|
||||||
secret = keyring::key_get(service = "rsconnect_cognitiveindex_secret")
|
secret = keyring::key_get(service = name.secret)
|
||||||
)
|
)
|
||||||
|
|
||||||
# Deploying
|
# Deploying
|
||||||
|
10
app/rsconnect/shinyapps.io/agdamsbo/redcapcast.dcf
Normal file
10
app/rsconnect/shinyapps.io/agdamsbo/redcapcast.dcf
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
name: redcapcast
|
||||||
|
title:
|
||||||
|
username: agdamsbo
|
||||||
|
account: agdamsbo
|
||||||
|
server: shinyapps.io
|
||||||
|
hostUrl: https://api.shinyapps.io/v1
|
||||||
|
appId: 11351429
|
||||||
|
bundleId: 8311272
|
||||||
|
url: https://agdamsbo.shinyapps.io/redcapcast/
|
||||||
|
version: 1
|
10
app/rsconnect/shinyapps.io/cognitiveindex/shiny_cast.dcf
Normal file
10
app/rsconnect/shinyapps.io/cognitiveindex/shiny_cast.dcf
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
name: shiny_cast
|
||||||
|
title:
|
||||||
|
username: cognitiveindex
|
||||||
|
account: cognitiveindex
|
||||||
|
server: shinyapps.io
|
||||||
|
hostUrl: https://api.shinyapps.io/v1
|
||||||
|
appId: 11351378
|
||||||
|
bundleId: 8306502
|
||||||
|
url: https://cognitiveindex.shinyapps.io/shiny_cast/
|
||||||
|
version: 1
|
200
app/ui.R
200
app/ui.R
@ -1,89 +1,133 @@
|
|||||||
ui <- shiny::fluidPage(
|
ui <- shiny::shinyUI(
|
||||||
|
shiny::fluidPage(
|
||||||
|
|
||||||
## -----------------------------------------------------------------------------
|
## -----------------------------------------------------------------------------
|
||||||
## Application title
|
## Application title
|
||||||
## -----------------------------------------------------------------------------
|
## -----------------------------------------------------------------------------
|
||||||
shiny::titlePanel("Simple REDCap data base creation and data upload from data set file via API",
|
|
||||||
windowTitle = "REDCap databse creator"
|
|
||||||
),
|
|
||||||
shiny::h5("Please note, that this tool serves as a demonstration of some of the functionality
|
|
||||||
of the REDCapCAST package. No responsibility for data loss or any other
|
|
||||||
problems will be taken."),
|
|
||||||
|
|
||||||
## -----------------------------------------------------------------------------
|
|
||||||
## Side panel
|
|
||||||
## -----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
shiny::sidebarPanel(
|
# customHeaderPanel(title = "REDCapCAST: data base creation and data upload from data set file",
|
||||||
shiny::h4("REDCap database and dataset"),
|
# windowTitle = "REDCap database creator"
|
||||||
shiny::fileInput("ds", "Choose data file",
|
# ),
|
||||||
multiple = FALSE,
|
|
||||||
accept = c(
|
shiny::titlePanel(title = shiny::div(shiny::a(shiny::img(src="logo.png"),href="https://agdamsbo.github.io/REDCapCAST"),
|
||||||
".csv",
|
"Easy REDCap database creation"),
|
||||||
".xls",
|
windowTitle = "REDCap database creator"
|
||||||
".xlsx",
|
|
||||||
".dta"
|
|
||||||
)
|
|
||||||
),
|
),
|
||||||
shiny::h6("Below you can download the dataset formatted for upload and the
|
shiny::h4("This tool includes to convenient functions:",
|
||||||
corresponding data dictionary for a new data base."),
|
shiny::br(),
|
||||||
# Button
|
"1) creating a REDCap data dictionary based on a spreadsheet (.csv/.xls(x)/.dta) and",
|
||||||
shiny::downloadButton("downloadData", "Download data"),
|
shiny::br(),
|
||||||
|
"2) creating said database on a given REDCap server and uploading the dataset via API access."),
|
||||||
# Button
|
|
||||||
shiny::downloadButton("downloadMeta", "Download dictionary"),
|
|
||||||
|
|
||||||
|
|
||||||
# Horizontal line ----
|
## -----------------------------------------------------------------------------
|
||||||
shiny::tags$hr(),
|
## Side panel
|
||||||
shiny::h4("REDCap upload"),
|
## -----------------------------------------------------------------------------
|
||||||
shiny::textInput(
|
|
||||||
inputId = "uri",
|
|
||||||
label = "URI",
|
|
||||||
value = "https://redcap.your.institution/api/"
|
|
||||||
),
|
|
||||||
shiny::textInput(
|
|
||||||
inputId = "api",
|
|
||||||
label = "API key",
|
|
||||||
value = ""
|
|
||||||
),
|
|
||||||
shiny::actionButton(
|
|
||||||
inputId = "upload.meta",
|
|
||||||
label = "Upload dictionary", icon = shiny::icon("book-bookmark")
|
|
||||||
),
|
|
||||||
shiny::h6("Please note, that before uploading any real data, put your project
|
|
||||||
into production mode."),
|
|
||||||
shiny::actionButton(
|
|
||||||
inputId = "upload.data",
|
|
||||||
label = "Upload data", icon = shiny::icon("upload")
|
|
||||||
),
|
|
||||||
|
|
||||||
# Horizontal line ----
|
shiny::sidebarPanel(
|
||||||
shiny::tags$hr()
|
shiny::h4("1) REDCap datadictionary and compatible dataset"),
|
||||||
),
|
shiny::fileInput("ds", "Choose data file",
|
||||||
shiny::mainPanel(
|
multiple = FALSE,
|
||||||
shiny::tabsetPanel(
|
accept = c(
|
||||||
|
".csv",
|
||||||
## -----------------------------------------------------------------------------
|
".xls",
|
||||||
## Summary tab
|
".xlsx",
|
||||||
## -----------------------------------------------------------------------------
|
".dta"
|
||||||
shiny::tabPanel(
|
)
|
||||||
"Summary",
|
|
||||||
shiny::h3("Data overview (first 20)"),
|
|
||||||
shiny::htmlOutput("data.tbl", container = shiny::span),
|
|
||||||
shiny::h3("Dictionary overview"),
|
|
||||||
shiny::htmlOutput("meta.tbl", container = shiny::span)
|
|
||||||
),
|
),
|
||||||
## -----------------------------------------------------------------------------
|
shiny::h6("Below you can download the dataset formatted for upload and the
|
||||||
## Upload tab
|
corresponding data dictionary for a new data base, if you want to upload manually."),
|
||||||
## -----------------------------------------------------------------------------
|
# Button
|
||||||
shiny::tabPanel(
|
shiny::downloadButton("downloadData", "Download data"),
|
||||||
"Upload",
|
|
||||||
shiny::h3("Meta upload overview"),
|
# Button
|
||||||
shiny::htmlOutput("upload.meta.print", container = shiny::span),
|
shiny::downloadButton("downloadMeta", "Download datadictionary"),
|
||||||
shiny::h3("Data upload overview"),
|
|
||||||
shiny::htmlOutput("upload.data.print", container = shiny::span)
|
|
||||||
|
# Horizontal line ----
|
||||||
|
shiny::tags$hr(),
|
||||||
|
shiny::h4("2) REDCap upload"),
|
||||||
|
shiny::h6("This tool is usable for now. Detailed instructions are coming."),
|
||||||
|
shiny::textInput(
|
||||||
|
inputId = "uri",
|
||||||
|
label = "URI",
|
||||||
|
value = "https://redcap.your.institution/api/"
|
||||||
|
),
|
||||||
|
shiny::textInput(
|
||||||
|
inputId = "api",
|
||||||
|
label = "API key",
|
||||||
|
value = ""
|
||||||
|
),
|
||||||
|
shiny::h6("An API key is an access key to the REDCap database. Please", shiny::a("see here for directions", href="https://www.iths.org/news/redcap-tip/redcap-api-101/"), " to obtain an API key for your project."),
|
||||||
|
shiny::actionButton(
|
||||||
|
inputId = "upload.meta",
|
||||||
|
label = "Upload datadictionary", icon = shiny::icon("book-bookmark")
|
||||||
|
),
|
||||||
|
shiny::h6("Please note, that before uploading any real data, put your project
|
||||||
|
into production mode."),
|
||||||
|
shiny::actionButton(
|
||||||
|
inputId = "upload.data",
|
||||||
|
label = "Upload data", icon = shiny::icon("upload")
|
||||||
|
),
|
||||||
|
|
||||||
|
# Horizontal line ----
|
||||||
|
shiny::tags$hr()
|
||||||
|
),
|
||||||
|
shiny::mainPanel(
|
||||||
|
shiny::tabsetPanel(
|
||||||
|
|
||||||
|
## -----------------------------------------------------------------------------
|
||||||
|
## Summary tab
|
||||||
|
## -----------------------------------------------------------------------------
|
||||||
|
shiny::tabPanel(
|
||||||
|
"Summary",
|
||||||
|
shiny::h3("Data overview (first 20)"),
|
||||||
|
shiny::htmlOutput("data.tbl", container = shiny::span),
|
||||||
|
shiny::h3("Dictionary overview"),
|
||||||
|
shiny::htmlOutput("meta.tbl", container = shiny::span)
|
||||||
|
),
|
||||||
|
## -----------------------------------------------------------------------------
|
||||||
|
## Upload tab
|
||||||
|
## -----------------------------------------------------------------------------
|
||||||
|
shiny::tabPanel(
|
||||||
|
"Upload",
|
||||||
|
shiny::h3("Meta upload overview"),
|
||||||
|
shiny::htmlOutput("upload.meta.print", container = shiny::span),
|
||||||
|
shiny::h3("Data upload overview"),
|
||||||
|
shiny::htmlOutput("upload.data.print", container = shiny::span)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
),
|
||||||
|
|
||||||
|
|
||||||
|
# close sidebarLayout
|
||||||
|
|
||||||
|
br(),
|
||||||
|
br(),
|
||||||
|
br(),
|
||||||
|
br(),
|
||||||
|
hr(),
|
||||||
|
shiny::tags$footer(shiny::strong("Disclaimer: "),
|
||||||
|
"This tool is aimed at demonstrating use of REDCapCAST. No responsibility for data loss or any other problems will be taken. Please contact me for support.",
|
||||||
|
shiny::br(),
|
||||||
|
shiny::a("License: GPL-3+",href="https://agdamsbo.github.io/REDCapCAST/LICENSE.html"),
|
||||||
|
"|",
|
||||||
|
shiny::a("agdamsbo/REDCapCAST",href="https://agdamsbo.github.io/REDCapCAST"),
|
||||||
|
"|",
|
||||||
|
shiny::a("Source",href="https://github.com/agdamsbo/REDCapCAST"),
|
||||||
|
"|",
|
||||||
|
shiny::a("Contact",href="https://andreas.gdamsbo.dk"),
|
||||||
|
align = "center",
|
||||||
|
style = "
|
||||||
|
position:fixed;
|
||||||
|
bottom:40px;
|
||||||
|
width:100%;
|
||||||
|
height:20px;
|
||||||
|
color: black;
|
||||||
|
padding: 0px;
|
||||||
|
background-color: White;
|
||||||
|
z-index: 100;
|
||||||
|
")
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
BIN
app/www/logo.png
Normal file
BIN
app/www/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.1 KiB |
@ -2,22 +2,32 @@
|
|||||||
% Please edit documentation in R/shiny_cast.R
|
% Please edit documentation in R/shiny_cast.R
|
||||||
\name{deploy_shiny}
|
\name{deploy_shiny}
|
||||||
\alias{deploy_shiny}
|
\alias{deploy_shiny}
|
||||||
\title{Deploy the Shiny app with rsconnect}
|
\title{Deploy the Shiny app with rsconnect to shinyapps.io}
|
||||||
\usage{
|
\usage{
|
||||||
deploy_shiny(path = here::here("app/"), name.app = "shiny_cast")
|
deploy_shiny(
|
||||||
|
path = here::here("app/"),
|
||||||
|
account.name,
|
||||||
|
name.app = "shiny_cast",
|
||||||
|
name.token,
|
||||||
|
name.secret
|
||||||
|
)
|
||||||
}
|
}
|
||||||
\arguments{
|
\arguments{
|
||||||
\item{path}{app folder path}
|
\item{path}{app folder path}
|
||||||
|
|
||||||
\item{name.app}{name of deployed app}
|
\item{name.app}{name of deployed app}
|
||||||
|
|
||||||
|
\item{name.token}{stored name of token}
|
||||||
|
|
||||||
|
\item{name.secret}{stored name of secret}
|
||||||
}
|
}
|
||||||
\value{
|
\value{
|
||||||
deploy
|
deploy
|
||||||
}
|
}
|
||||||
\description{
|
\description{
|
||||||
Deploy the Shiny app with rsconnect
|
This is really just a simple wrapper
|
||||||
}
|
}
|
||||||
\examples{
|
\examples{
|
||||||
# deploy_shiny
|
# deploy_shiny()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user