Overview:

  • Goal
  • Components
  • Pipeline

Goal

The point of this document is to plan and lay out the details of a work submission pipeline for assignments related to primer tutorials.

The goal is to have students do an assignment, download the RDS, and email the RDS file to a Gmail account. After the submission deadline is reached, the teacher simply has to run an R script and all the student submissions will be collected into a Gdrive and tallied.

The output will be a dataframe with six columns for each student: email, last name, first name, count of how many questions were answered, total time spent, and a link to the submitted rds file.

Components

Gmail

This is the “submission pile” of the processing pipeline. People will send their submissions here for processing.

Though it is preferred that the submissions have some kind of title structure, it is not necessary as the R script is checking for the right tutorial based on information in the RDS file.

Gdrive

This is the destination for the sorted homework submissions. All submissions are saved in the submission_folder/ accessible from your Google Drive’s root directory.

R Scripts

There will be a few R scripts since the entire pipeline will be split into multiple parts.

Main Script

This is the ONLY script that will be ran manually. Hopefully, the teacher can just run this and everything will work.

The output should be the Submission_Aggregation_for_Entire_Class.csv file for a specific tutorial.

See in Technical Details google_submission_collection(...) for detail.

Helper Script

This will store all the components/functions that will be called in the main R script.

See in Technical Details gdrive_access(...), gmail_access(...), create_submission_aggregation(...) for detail.

Pipeline

gmail_access()

This function uses the gmailr library to access and download all relevant tutorial submissions to the local machine.

create_submission_aggregation()

This function creates a tibble with the student name, count of how many questions were answered, total time spent and link to the submitted file of each submission downloaded.

gdrive_access()

This function uses the googledrive library to create a new directory based on search date and uploads all submissions plus the aggregated tibble into the new directory.