Skip to content

Commit

Permalink
update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
jhelvy committed Jul 15, 2024
1 parent 688deee commit b59169c
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 30 deletions.
18 changes: 10 additions & 8 deletions README.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,13 @@ knitr::opts_chunk$set(
</center>
<br>

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!**

Expand All @@ -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)
Expand Down
43 changes: 21 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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!**
Expand Down Expand Up @@ -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
<https://shiny.posit.co/r/reference/shiny/0.14/validate.html>)
- [ ] Admin page w/password (see
- [ ] Admin page w/password to preview / download data (see
<https://github.com/daattali/shinyforms>)
- [ ] Basic version working with a googlesheets database
- [ ] 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
- [ ] 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:
Expand Down

0 comments on commit b59169c

Please sign in to comment.