Skip to content

phpeterson-usf/csv-update

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

csv-update

This is a companion project for maketest which generates the source CSV file described below. The purpose is to take maketest output and allow it to be imported into the Canvas Gradebook

The Problem

  1. I have a CSV file where one column has unique IDs (GitHub User IDs)
  2. I have a second CSV file which has different unique IDs (Canvas SIS Login IDs)
  3. I want to update a column of values from the first CSV file to the second, without relying on order of rows

My Solution

  1. Make up a mapping file which maps GitHub IDs to SIS Login IDs, we can merge the data across CSV files, like a SQL join with foreign keys to different tables
  2. The result of that merge is a CSV file which can be imported into Canvas, reflecting the scoring results for Maketest without retyping them

Building

  1. It's the usual golang stuff: be sure to have go set up
  2. go get github.com/phpeterson-usf/csv-update
  3. cd into that directory, probably in ~/go/src/github.com/phpeterson-usf/csv-update
  4. go build

Usage

  1. Set up your Assignment Groups in Canvas, with an assignment within the group for test automation. This model of using Canvas ensures that there will be a column for automated grading in the exported CSV file. Canvas rubrics do not get a column in the exported file.
  2. Export a CSV file from your Canvas Gradebook
  3. Run make test and copy $(PROJECT).csv into where you use csv-update (I run maketest on a Raspberry Pi, but do Canvas import/export on a desktop computer)
  4. Create a CSV file which maps GitHub ID to SIS Login ID
  5. csv-update takes a -C option to set a working directory. I put my CSV files on my desktop, so /Users/phil/Desktop
  6. Run the merge
    csv-update -C ~/Desktop
    csv-update asks you to choose the source file (the one with scores), the destination file (the one you exported from Canvas), and the mapping file. You also choose the column in the destination file where the scores should go
  7. Output goes to a new file called <destination>-updated.csv that you can import back to Canvas

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages