diff --git a/README.Rmd b/README.Rmd index b1222d54..4a8543c4 100644 --- a/README.Rmd +++ b/README.Rmd @@ -27,11 +27,13 @@ knitr::opts_chunk$set(
-This project brings together three open source technologies ([Quarto](https://quarto.org/), [shiny](https://shiny.posit.co/), and [supabase](https://supabase.com/)) to create dynamic, markdown-based surveys. +This project brings together three open source technologies ([Quarto](https://quarto.org/), [shiny](https://shiny.posit.co/), and [supabase](https://supabase.com/)) to create dynamic, markdown-based surveys. Here's the basic concept: -The general concept is to design your survey as a [Quarto shiny document](https://quarto.org/docs/dashboards/interactivity/shiny-r.html), which with the help of the {surveydown} package renders into a shiny app that can be hosted online and sent to survey respondents. The survey data collected from respondents is then. stored in a [supabase](https://supabase.com/) database that can easily be imported into R for analysis. +1. Design your survey as a [Quarto shiny document](https://quarto.org/docs/dashboards/interactivity/shiny-r.html) using markdown and R code. +2. Render your doc into a [shiny](https://shiny.posit.co/) app that can be hosted online and sent to respondents. +3. Store your survey responses in a [supabase](https://supabase.com/) database. -The {surveydown} R package provides the core set of functions needed to make key survey features work, like defining survey questions and controlling pagination and skip logic, etc. Our [surveydown Quarto extension](https://github.com/jhelvy/surveydown-ext) works in tandem with the {surveydown} R package to make it all work. +The {surveydown} R package works in tandem with our [surveydown Quarto extension](https://github.com/jhelvy/surveydown-ext) to make everything work. After installing the package, we recommend working from one of our template example surveys to design your own. **See the [documentation page](https://jhelvy.github.io/surveydown/) to get started making your own surveydown survey!** @@ -50,17 +52,17 @@ This is a running list of things we're working on adding to the project: - [x] Option for `preview = TRUE` (database is ignored) - [x] Export timestamps on each page in the data - [x] Export timestamps on each question interaction (since this will increase the data size considerably, maybe add this as `question_times = FALSE` argument) -- [x] Option to start at a designated page, e.g. `start_page = 'skipif'` +- [x] Option to start at a designated page, e.g. `start_page = 'page_name'` - [x] A `show_all = TRUE` argument to show all the pages and hidden questions when launched (e.g. to be able to print out the entire survey text). Could also be called `print_mode = TRUE`. - [x] Set up SCSS to be compatible with Quarto-supported bootstrap themes +- [x] Add an optional progress bar - [ ] Include input checks for `skip_if` and `show_if` (`question_id` exists, and data frame names are correct) -- [x] Add a progress bar option in `sd_config()`, maybe `progress_bar = 'top'` or `progress_bar = 'bottom'` as a default, and `progress_bar = 'none'` to turn it off. - [ ] Required questions (`required = TRUE`): post a popup if a question is required before allowing next button. Default should be `required = FALSE`. - [ ] Form validation: Make sure the user inputs the correct type depending on the question type. (see https://shiny.posit.co/r/reference/shiny/0.14/validate.html) -- [ ] Admin page w/password (see https://github.com/daattali/shinyforms) -- [ ] Basic version working with a googlesheets database +- [ ] Admin page w/password to preview / download data (see https://github.com/daattali/shinyforms) - [ ] User tracking via url parameters: https://shinysurveys.jdtrat.com/articles/surveying-shinysurveys.html#user-tracking -- [ ] Add a `getSurveyData()` function so the survey designer can obtain the current survey results from inside the app: https://shinysurveys.jdtrat.com/articles/get-survey-data.html +- [ ] Deal with cookies so users who close the browser can start back where they left off. +- [ ] Add a `sd_get_data()` function so the survey designer can obtain the current survey results from inside the app: https://shinysurveys.jdtrat.com/articles/get-survey-data.html - Question types: - [x] Multiple choice (single choice) - [x] Multiple choice (multiple choices) diff --git a/README.md b/README.md index bea9b1d2..fdba16db 100644 --- a/README.md +++ b/README.md @@ -19,21 +19,20 @@ This project brings together three open source technologies ([Quarto](https://quarto.org/), [shiny](https://shiny.posit.co/), and [supabase](https://supabase.com/)) to create dynamic, markdown-based -surveys. - -The general concept is to design your survey as a [Quarto shiny -document](https://quarto.org/docs/dashboards/interactivity/shiny-r.html), -which with the help of the {surveydown} package renders into a shiny app -that can be hosted online and sent to survey respondents. The survey -data collected from respondents is then. stored in a -[supabase](https://supabase.com/) database that can easily be imported -into R for analysis. - -The {surveydown} R package provides the core set of functions needed to -make key survey features work, like defining survey questions and -controlling pagination and skip logic, etc. Our [surveydown Quarto -extension](https://github.com/jhelvy/surveydown-ext) works in tandem -with the {surveydown} R package to make it all work. +surveys. Here’s the basic concept: + +1. Design your survey as a [Quarto shiny + document](https://quarto.org/docs/dashboards/interactivity/shiny-r.html) + using markdown and R code. +2. Render your doc into a [shiny](https://shiny.posit.co/) app that can + be hosted online and sent to respondents. +3. Store your survey responses in a [supabase](https://supabase.com/) + database. + +The {surveydown} R package works in tandem with our [surveydown Quarto +extension](https://github.com/jhelvy/surveydown-ext) to make everything +work. After installing the package, we recommend working from one of our +template example surveys to design your own. **See the [documentation page](https://jhelvy.github.io/surveydown/) to get started making your own surveydown survey!** @@ -62,29 +61,29 @@ This is a running list of things we’re working on adding to the project: - [x] Export timestamps on each question interaction (since this will increase the data size considerably, maybe add this as `question_times = FALSE` argument) -- [x] Option to start at a designated page, e.g. `start_page = 'skipif'` +- [x] Option to start at a designated page, + e.g. `start_page = 'page_name'` - [x] A `show_all = TRUE` argument to show all the pages and hidden questions when launched (e.g. to be able to print out the entire survey text). Could also be called `print_mode = TRUE`. - [x] Set up SCSS to be compatible with Quarto-supported bootstrap themes +- [x] Add an optional progress bar - [ ] Include input checks for `skip_if` and `show_if` (`question_id` exists, and data frame names are correct) -- [x] Add a progress bar option in `sd_config()`, maybe - `progress_bar = 'top'` or `progress_bar = 'bottom'` as a default, and - `progress_bar = 'none'` to turn it off. - [ ] Required questions (`required = TRUE`): post a popup if a question is required before allowing next button. Default should be `required = FALSE`. - [ ] Form validation: Make sure the user inputs the correct type depending on the question type. (see ) -- [ ] Admin page w/password (see +- [ ] Admin page w/password to preview / download data (see ) -- [ ] Basic version working with a googlesheets database - [ ] User tracking via url parameters: -- [ ] Add a `getSurveyData()` function so the survey designer can obtain +- [ ] Deal with cookies so users who close the browser can start back + where they left off. +- [ ] Add a `sd_get_data()` function so the survey designer can obtain the current survey results from inside the app: - Question types: