A Python tool to convert PrarieLearn CSV results and files into a single PDF for upload to GradeScope.
Written at the University of British Columbia, intended for all.
In 2019W2, Paul Carter created a python script to stitch together files from the pl-file-editor
element to upload to GradeScope.
Inspired by his work--and in desperate need for a way to grade manually during COVID--we built PLGSPL as a more general, easy way to export PrairieLearn manual grading results to a pdf for gradescope uploads and grading.
There is an issue open on PL to support PDF exports for offline work and grading. We intend for this to be an intermediate solution.
- Python 3.x.x+
- Clone the repo
- Run
pip install .
from the project directory. - Read the cli commands in the doccumentation file and enjoy!
- To uninstall, run
pip uninstall plgspl
.
- pl element support:
-
pl-string-input
,pl-multiple-choice
,specific array questions
-
pl-file-editor
,pl-file-upload
-
pl-symbolic-input
-
- feature support:
- markdown file formatting
- use gs's "export evaluation" feature to get feedback for question
- cli:
-
classlist
: map pl to gs classlist -
pdf
: produce a pdf from pl data -
merge
: merge gs results with a pl manual grading csv for final grades. merges via partials -
config
: reset & set custom json files to override defaults
-
- fixes
- integrate the
partial_scores
field
- integrate the
- What other elements?
- Can we automate this so we can add a pl endpoint and grab the pdfs from a s3 bucket somewhere?
- is there a way to check the max file upload size for a question cleanly??
- if so, update max_file_size for that question
Run sample pdf && classlist generation: plgspl classlist ans.csv && plgspl pdf config.json ans.csv files
PLGSPL is very much a POC. We're still waiting on some features in PrairieLearn to be able to succesfully re-import scores. Every university has a different way that they handle Student IDs, and different use cases.
It's a "make do". She may not be beautiful, but she works.