Ensure that Canvas exports work when importing in Quizzard. (6)
Marieke multiple times requested this feature. Although we want to remain independent of any format, Marieke really wants to support the columns of Canvas directly.
Therefore it was decided to support the Canvas CSV format as a separate format in Quizzard. This would be a 'separate' document format like we already have normal CSV, Open Office XML and Binary XLS. We would call this format Canvas Comma Separated Values
and implement a separate CsvSchema
for this. This is quite easy to support, as we already have an extendable architecture for import/export since #2 (closed) got implemented.
Based on a recent Canvas export, we know that a Canvas CSV is really comma separated, with double quotations to denote Strings, possibly containing spaces. This is supported by Jackson. The following columns are in there:
-
Student Number: The student number of a student without the
s
at the beginning, e.g.1234567
-
Login Id: The student number of a student with the
s
at the beginning, e.g.s1234567
-
Full Name: The full name of the student, first name and family name, e.g.
John Doe
-
Sortable Name: The sortable name of the student, family name comma first name, e.g.
Doe, John
-
Email: The e-mail address of the student used in Canvas, e.g.
j.doe@student.utwente.nl
orj.doe@gmail.com
-
Course Role: The course role of the student. Always
student
in a student export list. In an all member export list, this can also beTeacher
.
The proposal for Canvas Comma Separated Values as format is:
- Map Login Id to Quizzards Identifier.
- Map Sortable Name to Quizzards Last name and First name, naively, just by splitting on the comma.
- Map Email to Quizzards Email.
Tasks:
-
Add a DocumentFlavor
togetParticipantListDocument
to support different configuration flavors (different mappers for columns effectively). (1) -
Implement a custom mapping for CsvDocument
that works for Canvas CSV documents. (2) -
Ensure a flavor exists in DocumentFlavor
for Canvas CSV. (1) -
Expose the Canvas CSV type to the endpoint and front-end. (2)