surveydown

Software
Survey
An open-source survey platform using , Quarto, Shiny, and PostgreSQL.
Author

Pingfan Hu et al.

Published

January 1, 2024


Visit surveydown Official Website

Awards πŸŽ‰

surveydown has been awarded the 2nd Prize in the 2024 Student Open Source Awards Program at GWU!

Overview

This project is led by Prof John Helveston. For more details, see our About page.


The basic concept is:

  1. Design your survey as a Quarto document using markdown and code.
  2. Render your survey into a Shiny app that can be hosted online and sent to respondents.
  3. Store survey response data in a PostgreSQL database. We recommend Supabase as a free, secure, and easy to use option.

The surveydown package provides functions to bring this all together.

See Documentation to get started making your own surveydown survey!

See Demos and use them as your survey templates!

Motivation

Most survey platforms (e.g., Google forms, Qualtrics, etc.) use graphic interfaces or spreadsheets to define survey content, making version control, collaboration, and reproducibility difficult or impossible. The surveydown package was designed to address these problems. As an open-source, markdown-based platform, all survey content is defined using plain text (markdown and code) in two files:

  • survey.qmd: A Quarto document that contains the survey content (pages, questions, etc).
  • app.R: An script defining a shiny app that contains global settings (libraries, database configuration, etc.) and server configuration options (e.g., conditional skipping / display, etc.).

This approach makes your survey easy to reproduce, share, and version control with common tools like Git. And since all survey data is stored in a PostgreSQL database, you have total control over where your survey data lives. We provide direct support for Supabase as a free, secure, and easy to use option.

In case you’re interested in the background behind the project, this blog post provides something of an origin story. Note that the design discussed in the post is now quite outdated with what ultimately became surveydown.

Installation

1. Install & Quarto

You need both:

We also recommend working with an IDE that has good support for , Quarto, and Shiny.

RStudio is great, and we also like VSCode and Positron.

2. Install the surveydown R package

You can install surveydown from CRAN in your 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()

License Information

See the license information here.

Citation Information

If you use this package for in a publication, please cite it! You can get the citation by typing citation("surveydown") into :

citation("surveydown")