Skip to content

Commit

Permalink
documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
libjohn committed Aug 10, 2021
1 parent c085016 commit 8ec36e4
Show file tree
Hide file tree
Showing 6 changed files with 68 additions and 58 deletions.
11 changes: 2 additions & 9 deletions 01_gather_and_wrangle.R
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@

# Undertook this revision because the integratin of online and in-person workshops made Joel's script ineffective. Nonetheless, borrowed heavily from his previous work.

# Run this script to harvest data from the SpringShare LibCal API.
# This script is calle by `02_make_main_workshop_list.Rmd`

Sys.setenv(TZ="America/New_York")
library(rvest)
Expand Down Expand Up @@ -63,13 +65,4 @@ my_df <- my_df %>%
mutate(online_in_person_flyer = if_else(location == "Online", location, "In-Person"))


for_goog_df <- my_df %>%
select_if(is.character) %>%
select(workshop_id, date, day = day_flyer, title, presenter, online_in_person = online_in_person_flyer,
time = time_flyer, workshop_begins = begins_display, workshop_ends = ends_display,
workshop_duration_minutes, description, registration_link, location)

# my_df %>%
# select(date, presenter, registration = registration_link, time, title, description) %>%
# write_csv("../workflow_cdvs_AttendanceSheets/temp.csv")

32 changes: 23 additions & 9 deletions 02_make_main_workshop_list.Rmd
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
---
title: "Create CSV file of Future Workshop"
title: "Create CSV file of Future Workshops"
subtitle: "Data are from the LibCal API, parsed by rvest and dplyr"
date: "`r Sys.Date()`"
output: html_notebook
---

The is the RMD to Joel's rvestLibcalCode.R
1. Run this at the beginning of the semester to generate the main workshop list
1. Use this to generate the workshop flyer, for advertising
1. This script depends on `01_gather_and_wrangle.R` to harvest the data

Undertook this revision because the integratin of online and in-person workshops made Joel's script ineffective. Nonetheless, borrowed heavily from his previous work.
## Release Notes

- August 10, 2021: Undertook this revision because the integration of online and in-person workshops made Joel's script ineffective. Nonetheless, borrowed heavily from his previous work. The RMD migration of Joel's `rvestLibcalCode.R`

## library packages

```{r message=FALSE, warning=FALSE}
Sys.setenv(TZ="America/New_York")
library(rvest)
library(clock)
library(tidyverse)
library(fs)
```

Expand All @@ -32,6 +34,18 @@ source("01_gather_and_wrangle.R", local = knitr::knit_global())
```


## Wrangle Data

```{r}
for_goog_flyer_df <- my_df %>%
select_if(is.character) %>%
select(workshop_id, date, day = day_flyer, title, presenter, online_in_person = online_in_person_flyer,
time = time_flyer, workshop_begins = begins_display, workshop_ends = ends_display,
workshop_duration_minutes, description, registration_link, location)
```



## Write output

Manually move, and rename, the google sheet into the proper CDVS google drive space.
Expand All @@ -44,12 +58,12 @@ fs::file_copy("output/workshops.csv",
write_csv(my_df, "output/workshops.csv")
write_csv(for_goog_flyer_df, "output/forgoog_flyer.csv")
write_csv(for_goog_flyer_df, "output/forgoog_flyer.csv")
```

## For Flyer -- Upload manully to Google Sheets.

Upload to: `Google Drive > CDVS > Services > Workshops > [2021 Fall] > Planning`
Manually upload `for_googflyer.csv` to: `Google Drive > CDVS > Services > Workshops > [2021 Fall] > Planning`

There are extraneous leading single apostrophes showing up in the uploaded data (i.e. on Google Drive, in the Sheet.) For now, instead of `gs4_create()`, upload the forgoog_flyer.csv file **manually** to Google Drive, then open the csv on Google Drive, and then "Open With" as a Sheet.

Expand Down
63 changes: 34 additions & 29 deletions 02_make_main_workshop_list.nb.html

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions 03_attendance_worksheets.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,17 @@ Ingest data from web page (LibCal API) & make a column headers template for the

### harvest webpage data from LibCal API

this next CODE CHUNK is DISABLED, but designed to rerun the harvest script
this next CODE CHUNK is DISABLED, but designed to rerun the harvest script. INSTEAD skip to the `ingest_csv` code chunk.

```
{r get wrangled data, include=FALSE}
source("01_gather_and_wrangle.R", local = knitr::knit_global())
# or sys.source("your-script.R", envir = knitr::knit_global())
```

Since the API can only be used at the begining of the semester, and since `01_gather_and_wrangle.R` was already called (by `02_foo.Rmd`) and generated `output/workshops.csv`, here, rather, we will simply ingest the file output/workshops.csv. NOTE: `01_gather_and_wrangle.R` if run after the begining fo the semester, will overwrite `workshops.csv`. In this case, use `read_csv()` to import one of the back-up files found in the output directory.
Since the API can only be used at the beginning of the semester, and since `01_gather_and_wrangle.R` was already called (by `02_foo.Rmd`) and generated `output/workshops.csv`, here, rather, we will simply ingest the file output/workshops.csv. NOTE: `01_gather_and_wrangle.R`, if run after the beginning fo the semester, will overwrite `workshops.csv`. In this case, use `read_csv()` to import one of the back-up files found in the `output` directory.

```{r message=FALSE, warning=FALSE, include=FALSE}
```{r ingest csv, message=FALSE, warning=FALSE, include=FALSE}
my_df <- read_csv("output/workshops.csv")
```

Expand Down
6 changes: 3 additions & 3 deletions 03_attendance_worksheets.nb.html
Original file line number Diff line number Diff line change
Expand Up @@ -226,11 +226,11 @@ <h2>Get Data</h2>
<p>Ingest data from web page (LibCal API) &amp; make a column headers template for the attendance sheets that will be written to Google.</p>
<div id="harvest-webpage-data-from-libcal-api" class="section level3">
<h3>harvest webpage data from LibCal API</h3>
<p>this next CODE CHUNK is DISABLED, but designed to rerun the harvest script</p>
<p>this next CODE CHUNK is DISABLED, but designed to rerun the harvest script. INSTEAD skip to the <code>ingest_csv</code> code chunk.</p>
<pre><code>{r get wrangled data, include=FALSE}
source(&quot;01_gather_and_wrangle.R&quot;, local = knitr::knit_global())
# or sys.source(&quot;your-script.R&quot;, envir = knitr::knit_global())</code></pre>
<p>Since the API can only be used at the begining of the semester, and since <code>01_gather_and_wrangle.R</code> was already called (by <code>02_foo.Rmd</code>) and generated <code>output/workshops.csv</code>, here, rather, we will simply ingest the file output/workshops.csv. NOTE: <code>01_gather_and_wrangle.R</code> if run after the begining fo the semester, will overwrite <code>workshops.csv</code>. In this case, use <code>read_csv()</code> to import one of the back-up files found in the output directory.</p>
<p>Since the API can only be used at the beginning of the semester, and since <code>01_gather_and_wrangle.R</code> was already called (by <code>02_foo.Rmd</code>) and generated <code>output/workshops.csv</code>, here, rather, we will simply ingest the file output/workshops.csv. NOTE: <code>01_gather_and_wrangle.R</code>, if run after the beginning fo the semester, will overwrite <code>workshops.csv</code>. In this case, use <code>read_csv()</code> to import one of the back-up files found in the <code>output</code> directory.</p>
<!-- rnb-text-end -->
<!-- rnb-text-begin -->
</div>
Expand Down Expand Up @@ -296,7 +296,7 @@ <h2>Upload to Google Drive</h2>
<!-- rnb-text-end -->
</div>

<div id="rmd-source-code">LS0tDQp0aXRsZTogIkNyZWF0ZSBBdHRlbmRhbmNlIFdvcmtzaGVldHMiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpNYWtlIG9uZSBibGFuayBhdHRlbmRhbmNlIHRlbXBsYXRlIGZvciBlYWNoIHdvcmtzaG9wLiBXcml0ZSBlYWNoIGJsYW5rIHRlbXBsYXRlIHRvIEdvb2dsZSBEcml2ZSBhcyBhIHNwcmVhZHNoZWV0LiANCg0KIyMgTGlicmFyeSBQYWNrYWdlcw0KDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQ0KU3lzLnNldGVudihUWj0iQW1lcmljYS9OZXdfWW9yayIpDQpsaWJyYXJ5KHJ2ZXN0KQ0KbGlicmFyeShjbG9jaykNCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShmcykNCmxpYnJhcnkoZ29vZ2xlc2hlZXRzNCkNCmBgYA0KDQojIyBHZXQgRGF0YQ0KDQpJbmdlc3QgZGF0YSBmcm9tIHdlYiBwYWdlIChMaWJDYWwgQVBJKSAmIG1ha2UgYSBjb2x1bW4gaGVhZGVycyB0ZW1wbGF0ZSBmb3IgdGhlIGF0dGVuZGFuY2Ugc2hlZXRzIHRoYXQgd2lsbCBiZSB3cml0dGVuIHRvIEdvb2dsZS4NCg0KIyMjIGhhcnZlc3Qgd2VicGFnZSBkYXRhIGZyb20gTGliQ2FsIEFQSQ0KDQp0aGlzIG5leHQgQ09ERSBDSFVOSyBpcyBESVNBQkxFRCwgYnV0IGRlc2lnbmVkIHRvIHJlcnVuIHRoZSBoYXJ2ZXN0IHNjcmlwdA0KDQpgYGANCntyIGdldCB3cmFuZ2xlZCBkYXRhLCBpbmNsdWRlPUZBTFNFfQ0Kc291cmNlKCIwMV9nYXRoZXJfYW5kX3dyYW5nbGUuUiIsIGxvY2FsID0ga25pdHI6OmtuaXRfZ2xvYmFsKCkpDQojIG9yIHN5cy5zb3VyY2UoInlvdXItc2NyaXB0LlIiLCBlbnZpciA9IGtuaXRyOjprbml0X2dsb2JhbCgpKQ0KYGBgDQoNClNpbmNlIHRoZSBBUEkgY2FuIG9ubHkgYmUgdXNlZCBhdCB0aGUgYmVnaW5pbmcgb2YgdGhlIHNlbWVzdGVyLCBhbmQgc2luY2UgYDAxX2dhdGhlcl9hbmRfd3JhbmdsZS5SYCB3YXMgYWxyZWFkeSBjYWxsZWQgKGJ5IGAwMl9mb28uUm1kYCkgYW5kIGdlbmVyYXRlZCBgb3V0cHV0L3dvcmtzaG9wcy5jc3ZgLCBoZXJlLCByYXRoZXIsIHdlIHdpbGwgc2ltcGx5IGluZ2VzdCB0aGUgZmlsZSBvdXRwdXQvd29ya3Nob3BzLmNzdi4gIE5PVEU6IGAwMV9nYXRoZXJfYW5kX3dyYW5nbGUuUmAgaWYgcnVuIGFmdGVyIHRoZSBiZWdpbmluZyBmbyB0aGUgc2VtZXN0ZXIsIHdpbGwgb3ZlcndyaXRlIGB3b3Jrc2hvcHMuY3N2YC4gIEluIHRoaXMgY2FzZSwgdXNlIGByZWFkX2NzdigpYCB0byBpbXBvcnQgb25lIG9mIHRoZSBiYWNrLXVwIGZpbGVzIGZvdW5kIGluIHRoZSBvdXRwdXQgZGlyZWN0b3J5Lg0KDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQ0KbXlfZGYgPC0gcmVhZF9jc3YoIm91dHB1dC93b3Jrc2hvcHMuY3N2IikNCmBgYA0KDQoNCiMjIyB3b3Jrc2hlZXRzIHRlbXBsYXRlIGhlYWRlcg0KDQptYWtlIGEgdmVjdG9yIG9mIGNvbHVtbiBoZWFkaW5ncyB0aGF0IHdpbGwgYmVjb21lIHRoZSBoZWFkaW5ncyBvZiB0aGUgZ29vZ2xlIHNoZWVzdHMgYXR0ZW5kYW5jZSByZWNvcmRzDQoNCmBgYHtyfQ0KYmxhbmtfZGYgPC0gdGliYmxlKCJBdHRlbmRlZCAoeCBvciBibGFuaykiID0gTkEsDQogICAgICAgICAgICAgICAgIlJlZ2lzdHJhdGlvbiBTdGF0dXMgKFJlZ2lzdGVyZWQsIFdhaXRsaXN0LCBvciBXYWxrLWluKSIgID0gTkEsDQogICAgICAgICAgICAgICAgIkZpcnN0IE5hbWUiID0gTkEsDQogICAgICAgICAgICAgICAgIkxhc3QgTmFtZSIgPSBOQSwNCiAgICAgICAgICAgICAgICAiRW1haWwiID0gTkEsDQogICAgICAgICAgICAgICAgIkJvb2tpbmcgTWFkZSIgPSBOQSwNCiAgICAgICAgICAgICAgICAiQXR0ZW5kYW5jZSIgPSBOQSwNCiAgICAgICAgICAgICAgICAiQXJlIHlvdSBhZmZpbGlhdGVkIHdpdGggRHVrZSBVbml2ZXJzaXR5LCBEdWtlIE1lZGljYWwgQ2VudGVyLCBEQ1JJLCBvciBhbm90aGVyIER1a2UgZ3JvdXA/IiA9IE5BLA0KICAgICAgICAgICAgICAgICJBY2FkZW1pYyBTdGF0dXMgKG9yIG90aGVyKSIgPSBOQSwNCiAgICAgICAgICAgICAgICAiRGlzY2lwbGluZSBvciBBZmZpbGlhdGlvbiIgPSBOQSwNCiAgICAgICAgICAgICAgICAiSW5zdGl0dXRlcywgSW5pdGlhdGl2ZXMsIG9yIFByb2dyYW0gQWZmaWxpYXRpb24iID0gTkEsDQogICAgICAgICAgICAgICAgIldoZXJlIGRpZCB5b3UgaGVhciBhYm91dCB0aGlzIGV2ZW50PyIgPSBOQSwNCiAgICAgICAgICAgICAgICAiSGF2ZSB5b3UgY29uc3VsdGVkIHdpdGggRGF0YSBhbmQgVmlzdWFsaXphdGlvbiBTZXJ2aWNlcyBiZWZvcmUgdGhpcyB3b3Jrc2hvcD8iID0gTkEsDQogICAgICAgICAgICAgICAgIldvdWxkIHlvdSBsaWtlIHRvIHJlY2VpdmUgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBEVlMgZXZlbnRzIGFuZCB0cmFpbmluZz8iID0gTkEsDQogICAgICAgICAgICAgICAgIkknbSBpbnRlcmVzdGVkIGluIHJlZ2lzdGVyaW5nIGZvciB0aGlzIHdvcmtzaG9wIGJlY2F1c2U6IiA9IE5BLA0KICAgICAgICAgICAgICAgICJJZiBvdGhlciwgZGVzY3JpYmUgYmVsb3c6IiA9IE5BKQ0KYGBgDQoNCiMjIFdyYW5nbGUNCg0KYGBge3J9DQpteV9kZiA8LSBteV9kZiAlPiUgDQogICAgYmluZF9jb2xzKGJsYW5rX2RmKSAlPiUgDQogICAgcmVuYW1lKGBXb3Jrc2hvcCBEYXRlYCA9IGRhdGUpICU+JQ0KICAgIHNlbGVjdChgQXR0ZW5kZWQgKHggb3IgYmxhbmspYCwgDQogICAgICAgICAgIGBSZWdpc3RyYXRpb24gU3RhdHVzIChSZWdpc3RlcmVkLCBXYWl0bGlzdCwgb3IgV2Fsay1pbilgLA0KICAgICAgICAgICBgV29ya3Nob3AgRGF0ZWAsDQogICAgICAgICAgIGBXb3Jrc2hvcCBOYW1lYCA9IHRpdGxlLA0KICAgICAgICAgICBgV29ya3Nob3BJRGAgPSB3b3Jrc2hvcF9pZCwNCiAgICAgICAgICAgYEZpcnN0IE5hbWVgOmxhc3RfY29sKCkpDQpgYGANCg0KDQojIyBVcGxvYWQgdG8gR29vZ2xlIERyaXZlDQoNClRoZSBmb2xsb3dpbmcgY29kZSBjaHVua3MgYXJlIG1hbnVhbGx5IGRpc2FibGVkIGJlY2F1c2UgdGhleSB3cml0ZSBmaWxlcyB0byBnb29nbGUgZHJpdmUuICBUaGlzIGlzICJiZWx0IGFuZCBzdXNwZW5kZXJzIiBjYXV0aW9uLiAgVG8gZW5hYmxlIHRoZSBjb2RlLWJsb2NrcywgcmVtb3ZlIHRoZSBjYXJyaWFnZS1yZXR1cm4gYXQgdGhlIGVuZCBvZiB0aGUgdGhpcmQgYmFja3RpY2sgYW5kIGJlZm9yZSB0aGUgZmlyc3Qgb3BlbiBjdXJseSBicmFjZS4NCg0KQWZ0ZXIgdXBsb2FkZWQgdG8gR29vZ2xlIEFjY291bnQncyBob21lZHJpdmUsIC4uLiAgDQpNb3ZlIHRvICBgR29vZ2xlIERyaXZlID4gQ0RWUyA+IFNlcnZpY2VzID4gV29ya3Nob3BzID4gWzIwMjEgRmFsbF0gPiBBdHRlbmRhbmNlYA0KDQpgYGANCntyfQ0Kd29ya3Nob3BfbGlzdF90b191cGxvYWRfaW50b19Hb29nbGVEcml2ZSA8LSBteV9kZiAlPiUgDQogICByb3d3aXNlKCkgJT4lDQogICBncm91cF9tYXAodGliYmxlKSAgIyBtYWtlIGVhY2ggcm93IGl0J3Mgb3duIHRpYmJsZQ0KDQp3YWxrKA0KICB3b3Jrc2hvcF9saXN0X3RvX3VwbG9hZF9pbnRvX0dvb2dsZURyaXZlLA0KICB+IGdzNF9jcmVhdGUoLiRgV29ya3Nob3AgTmFtZWAsIHNoZWV0cyA9IGxpc3QoYXR0ZW5kYW5jZSA9IC4pKQ0KKQ0KYGBgDQoNCg==</div>
<div id="rmd-source-code">LS0tDQp0aXRsZTogIkNyZWF0ZSBBdHRlbmRhbmNlIFdvcmtzaGVldHMiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpNYWtlIG9uZSBibGFuayBhdHRlbmRhbmNlIHRlbXBsYXRlIGZvciBlYWNoIHdvcmtzaG9wLiBXcml0ZSBlYWNoIGJsYW5rIHRlbXBsYXRlIHRvIEdvb2dsZSBEcml2ZSBhcyBhIHNwcmVhZHNoZWV0LiANCg0KIyMgTGlicmFyeSBQYWNrYWdlcw0KDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQ0KU3lzLnNldGVudihUWj0iQW1lcmljYS9OZXdfWW9yayIpDQpsaWJyYXJ5KHJ2ZXN0KQ0KbGlicmFyeShjbG9jaykNCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShmcykNCmxpYnJhcnkoZ29vZ2xlc2hlZXRzNCkNCmBgYA0KDQojIyBHZXQgRGF0YQ0KDQpJbmdlc3QgZGF0YSBmcm9tIHdlYiBwYWdlIChMaWJDYWwgQVBJKSAmIG1ha2UgYSBjb2x1bW4gaGVhZGVycyB0ZW1wbGF0ZSBmb3IgdGhlIGF0dGVuZGFuY2Ugc2hlZXRzIHRoYXQgd2lsbCBiZSB3cml0dGVuIHRvIEdvb2dsZS4NCg0KIyMjIGhhcnZlc3Qgd2VicGFnZSBkYXRhIGZyb20gTGliQ2FsIEFQSQ0KDQp0aGlzIG5leHQgQ09ERSBDSFVOSyBpcyBESVNBQkxFRCwgYnV0IGRlc2lnbmVkIHRvIHJlcnVuIHRoZSBoYXJ2ZXN0IHNjcmlwdC4gIElOU1RFQUQgc2tpcCB0byB0aGUgYGluZ2VzdF9jc3ZgIGNvZGUgY2h1bmsuDQoNCmBgYA0Ke3IgZ2V0IHdyYW5nbGVkIGRhdGEsIGluY2x1ZGU9RkFMU0V9DQpzb3VyY2UoIjAxX2dhdGhlcl9hbmRfd3JhbmdsZS5SIiwgbG9jYWwgPSBrbml0cjo6a25pdF9nbG9iYWwoKSkNCiMgb3Igc3lzLnNvdXJjZSgieW91ci1zY3JpcHQuUiIsIGVudmlyID0ga25pdHI6OmtuaXRfZ2xvYmFsKCkpDQpgYGANCg0KU2luY2UgdGhlIEFQSSBjYW4gb25seSBiZSB1c2VkIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNlbWVzdGVyLCBhbmQgc2luY2UgYDAxX2dhdGhlcl9hbmRfd3JhbmdsZS5SYCB3YXMgYWxyZWFkeSBjYWxsZWQgKGJ5IGAwMl9mb28uUm1kYCkgYW5kIGdlbmVyYXRlZCBgb3V0cHV0L3dvcmtzaG9wcy5jc3ZgLCBoZXJlLCByYXRoZXIsIHdlIHdpbGwgc2ltcGx5IGluZ2VzdCB0aGUgZmlsZSBvdXRwdXQvd29ya3Nob3BzLmNzdi4gIE5PVEU6IGAwMV9nYXRoZXJfYW5kX3dyYW5nbGUuUmAsIGlmIHJ1biBhZnRlciB0aGUgYmVnaW5uaW5nIGZvIHRoZSBzZW1lc3Rlciwgd2lsbCBvdmVyd3JpdGUgYHdvcmtzaG9wcy5jc3ZgLiAgSW4gdGhpcyBjYXNlLCB1c2UgYHJlYWRfY3N2KClgIHRvIGltcG9ydCBvbmUgb2YgdGhlIGJhY2stdXAgZmlsZXMgZm91bmQgaW4gdGhlIGBvdXRwdXRgIGRpcmVjdG9yeS4NCg0KYGBge3IgaW5nZXN0IGNzdiwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgaW5jbHVkZT1GQUxTRX0NCm15X2RmIDwtIHJlYWRfY3N2KCJvdXRwdXQvd29ya3Nob3BzLmNzdiIpDQpgYGANCg0KDQojIyMgd29ya3NoZWV0cyB0ZW1wbGF0ZSBoZWFkZXINCg0KbWFrZSBhIHZlY3RvciBvZiBjb2x1bW4gaGVhZGluZ3MgdGhhdCB3aWxsIGJlY29tZSB0aGUgaGVhZGluZ3Mgb2YgdGhlIGdvb2dsZSBzaGVlc3RzIGF0dGVuZGFuY2UgcmVjb3Jkcw0KDQpgYGB7cn0NCmJsYW5rX2RmIDwtIHRpYmJsZSgiQXR0ZW5kZWQgKHggb3IgYmxhbmspIiA9IE5BLA0KICAgICAgICAgICAgICAgICJSZWdpc3RyYXRpb24gU3RhdHVzIChSZWdpc3RlcmVkLCBXYWl0bGlzdCwgb3IgV2Fsay1pbikiICA9IE5BLA0KICAgICAgICAgICAgICAgICJGaXJzdCBOYW1lIiA9IE5BLA0KICAgICAgICAgICAgICAgICJMYXN0IE5hbWUiID0gTkEsDQogICAgICAgICAgICAgICAgIkVtYWlsIiA9IE5BLA0KICAgICAgICAgICAgICAgICJCb29raW5nIE1hZGUiID0gTkEsDQogICAgICAgICAgICAgICAgIkF0dGVuZGFuY2UiID0gTkEsDQogICAgICAgICAgICAgICAgIkFyZSB5b3UgYWZmaWxpYXRlZCB3aXRoIER1a2UgVW5pdmVyc2l0eSwgRHVrZSBNZWRpY2FsIENlbnRlciwgRENSSSwgb3IgYW5vdGhlciBEdWtlIGdyb3VwPyIgPSBOQSwNCiAgICAgICAgICAgICAgICAiQWNhZGVtaWMgU3RhdHVzIChvciBvdGhlcikiID0gTkEsDQogICAgICAgICAgICAgICAgIkRpc2NpcGxpbmUgb3IgQWZmaWxpYXRpb24iID0gTkEsDQogICAgICAgICAgICAgICAgIkluc3RpdHV0ZXMsIEluaXRpYXRpdmVzLCBvciBQcm9ncmFtIEFmZmlsaWF0aW9uIiA9IE5BLA0KICAgICAgICAgICAgICAgICJXaGVyZSBkaWQgeW91IGhlYXIgYWJvdXQgdGhpcyBldmVudD8iID0gTkEsDQogICAgICAgICAgICAgICAgIkhhdmUgeW91IGNvbnN1bHRlZCB3aXRoIERhdGEgYW5kIFZpc3VhbGl6YXRpb24gU2VydmljZXMgYmVmb3JlIHRoaXMgd29ya3Nob3A/IiA9IE5BLA0KICAgICAgICAgICAgICAgICJXb3VsZCB5b3UgbGlrZSB0byByZWNlaXZlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgRFZTIGV2ZW50cyBhbmQgdHJhaW5pbmc/IiA9IE5BLA0KICAgICAgICAgICAgICAgICJJJ20gaW50ZXJlc3RlZCBpbiByZWdpc3RlcmluZyBmb3IgdGhpcyB3b3Jrc2hvcCBiZWNhdXNlOiIgPSBOQSwNCiAgICAgICAgICAgICAgICAiSWYgb3RoZXIsIGRlc2NyaWJlIGJlbG93OiIgPSBOQSkNCmBgYA0KDQojIyBXcmFuZ2xlDQoNCmBgYHtyfQ0KbXlfZGYgPC0gbXlfZGYgJT4lIA0KICAgIGJpbmRfY29scyhibGFua19kZikgJT4lIA0KICAgIHJlbmFtZShgV29ya3Nob3AgRGF0ZWAgPSBkYXRlKSAlPiUNCiAgICBzZWxlY3QoYEF0dGVuZGVkICh4IG9yIGJsYW5rKWAsIA0KICAgICAgICAgICBgUmVnaXN0cmF0aW9uIFN0YXR1cyAoUmVnaXN0ZXJlZCwgV2FpdGxpc3QsIG9yIFdhbGstaW4pYCwNCiAgICAgICAgICAgYFdvcmtzaG9wIERhdGVgLA0KICAgICAgICAgICBgV29ya3Nob3AgTmFtZWAgPSB0aXRsZSwNCiAgICAgICAgICAgYFdvcmtzaG9wSURgID0gd29ya3Nob3BfaWQsDQogICAgICAgICAgIGBGaXJzdCBOYW1lYDpsYXN0X2NvbCgpKQ0KYGBgDQoNCg0KIyMgVXBsb2FkIHRvIEdvb2dsZSBEcml2ZQ0KDQpUaGUgZm9sbG93aW5nIGNvZGUgY2h1bmtzIGFyZSBtYW51YWxseSBkaXNhYmxlZCBiZWNhdXNlIHRoZXkgd3JpdGUgZmlsZXMgdG8gZ29vZ2xlIGRyaXZlLiAgVGhpcyBpcyAiYmVsdCBhbmQgc3VzcGVuZGVycyIgY2F1dGlvbi4gIFRvIGVuYWJsZSB0aGUgY29kZS1ibG9ja3MsIHJlbW92ZSB0aGUgY2FycmlhZ2UtcmV0dXJuIGF0IHRoZSBlbmQgb2YgdGhlIHRoaXJkIGJhY2t0aWNrIGFuZCBiZWZvcmUgdGhlIGZpcnN0IG9wZW4gY3VybHkgYnJhY2UuDQoNCkFmdGVyIHVwbG9hZGVkIHRvIEdvb2dsZSBBY2NvdW50J3MgaG9tZWRyaXZlLCAuLi4gIA0KTW92ZSB0byAgYEdvb2dsZSBEcml2ZSA+IENEVlMgPiBTZXJ2aWNlcyA+IFdvcmtzaG9wcyA+IFsyMDIxIEZhbGxdID4gQXR0ZW5kYW5jZWANCg0KYGBgDQp7cn0NCndvcmtzaG9wX2xpc3RfdG9fdXBsb2FkX2ludG9fR29vZ2xlRHJpdmUgPC0gbXlfZGYgJT4lIA0KICAgcm93d2lzZSgpICU+JQ0KICAgZ3JvdXBfbWFwKHRpYmJsZSkgICMgbWFrZSBlYWNoIHJvdyBpdCdzIG93biB0aWJibGUNCg0Kd2FsaygNCiAgd29ya3Nob3BfbGlzdF90b191cGxvYWRfaW50b19Hb29nbGVEcml2ZSwNCiAgfiBnczRfY3JlYXRlKC4kYFdvcmtzaG9wIE5hbWVgLCBzaGVldHMgPSBsaXN0KGF0dGVuZGFuY2UgPSAuKSkNCikNCmBgYA0KDQo=</div>



Expand Down
8 changes: 3 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,13 @@ This repository contains a mixture of handy scripts and datasets used by the [Ce

This repository was **forked** from https://github.com/herndonj/dvs_cal

* **02_make_main_workshop_list.Rmd** - a migration from `rvestLibcalCode.R`. Use this to generate the pre-semester list of workshops. Gathers data from the LibCal API, writes a CSV file, writes a GoogleSheet to the google account holder's home directory (via `library(googlesheets4)`)
* **03_attendance_worksheets.Rmd** - makes an attedance sheet for each workshop
* **02_make_main_workshop_list.Rmd** - a migration from `rvestLibcalCode.R`. Use this to generate the pre-semester _list of workshops_ and the pre-semester advertising **flyer**. Gathers data from the LibCal API, writes a CSV file, writes a GoogleSheet to the google account holder's home directory (via `library(googlesheets4)`)
* **03_attendance_worksheets.Rmd** - make an attendance sheet for each workshop, upload to Google Drive (CDVS folder)
* **01_gather_and_wrangle.R** - havest LibCal API data to make a data_frame of all the workshops as reported at the beginning of the semester.
* **dvs_cal.Rmd** - a handy script if you'd like to see our workshop series as data frames.
* **rvestLibcalCode.R** - In DVS, we use Springshare's LibCal service to manage our registrations and workshop descriptions- this script pulls the current list of public workshops into a data frame for further management and analysis (warning - the list will only reflect upcoming workshops. If you need to see workshops since the fall of 2017, check out the dvs_cal.Rmd script which will generate dataframes by semester.)

##Changes in Registration Form

###2018-01-22
### 2018-01-22

Question 3 "Are you from Duke University, Duke Medical Center, DCRI, or another Duke group" changed to "Are you affiliated with Duke University, Duke Medical Center, DCRI, or another Duke group?"

Expand Down

0 comments on commit 8ec36e4

Please sign in to comment.