Introduction to surveydown

Main Documentation

The main documentation for surveydown is at https://surveydown.org/. We recommend navigating there for more detailed documentation about the R package and how to use it to build dynamic surveys.

Overview

Every surveydown survey is composed of a survey and an app, defined in two separate files:

These files must be named survey.qmd and app.R.

The {surveydown} R package provides a set of functions for defining the survey content and configuration options. Each function starts with sd_ to make them easy to identify.

The platform is based on some basic principles:

This approach ensures a flexible survey platform that is fully reproducible and easy to customize.

The remaining steps on this page will guide you through the process of creating a surveydown survey.

1. Installation

Install R & Quarto

We also recommend working with an IDE that has good support for R, Quarto, and Shiny. RStudio is great, and we also like VSCode and Positron.

Install the {surveydown} R package

You can install {surveydown} from CRAN in your R console:

install.packages("surveydown")

or you can install the development version from GitHub:

# install.packages("pak")
pak::pak('surveydown-dev/surveydown')

Load the package with:

library(surveydown)

You can also check which version you have installed:

surveydown::sd_version()

2. Start with a template

See the Template page.

3. Add survey content in your survey.qmd file

See the Survey Components page for details on the main components in a surveydown survey. For a quick overview, here’s how you add pages and questions:

::: {#page1 .sd-page}

Page 1 content here

:::
sd_question(
  type  = 'mc',
  id    = 'penguins',
  label = "Which is your favorite type of penguin?",
  option = c(
    'Adélie'    = 'adelie',
    'Chinstrap' = 'chinstrap',
    'Gentoo'    = 'gentoo'
  )
)

4. Add control options

In the server() function in the app.R file, add rich functionality to your survey using a variety of server options and conditional control logic.

5. Setup your database

In the global settings at the top of the app.R file, setup your database with the sd_database() function. You can also leave it blank to preview / edit your survey without database connected, or set ignore = TRUE to run the survey without storing data. See the Store Data page for more details.

6. Locally preview

Preview your survey by clicking the “Run App” button in RStudio or in your R console running the runApp() command.

7. Deploy

Deploy your survey by hosting it on your favorite server, like {{< var shinyapps >}}, {{< var huggingface >}}, Posit Connect Cloud, Heroku, etc. See the Deployment page for more details.