Grafisch Lyceum Utrecht - submit assignments in learning platform
Case descriptionThe Finalist built and Drupal based electronic learning platform is used by teachers and students. An integration with the course database as well as the student database takes care of displaying the right course(s) for the right student. Teachers create lessons in the learning platform and choose which groups (classes) of students the lesson is meant for. A large improvement was introduced with the addition of the possibility to submit assignments following from the lessons.
Case goals and resultsThe goals set for this project are:
1] Students must be able to easily submit (graphical) assignments in the portal interface - this includes large files; This goal was met to use the Drupal contrib module Plupload integration and build an extension to it so the actual configuration (number of files, extensions, etc.) are brought in by the teacher and can differ per assignment.
2] Teachers must be able to add ‘assignment counters’ and activate various options per student/class, i.e.: deadline date, number of files to be uploaded, allowed extensions, plagiarism check. This goal was met by creating a custom entity (‘submission’) which are connected to the assignment nodes via Entity Reference. The submission entity hold the information: which students/group, number of files, extensions, maximum file size, group or individual assignment, deadline etc.
3] Teacher can view and assess the work that has been done via the document management system (meaning: files have to be stored externally from Drupal). This goal was achieved by a integration with the document management platform. As the process for assessing the work is done via a student tracking system, the Drupal based learning platform delivers all files to the document management platform. So how does the student tracking system know which file belongs to which student? Each file has a unique XML file that holds all the metadata belonging to the submitted files. So Drupal delivers the file, as well as the metadata. The file and metadata are tracked by the document management platform, making it possible for teachers to do the assessment.
4] Students have insight into the progress of their work and assessments by their teachers. This feature is built as of October 2019 and includes a ‘feedback loop’. Teachers enrich the assignment entity with written feedback and / or grades.
5] Students can only see their personal assignments and submissions; This goal was met by using the integration with Microsoft AD FS together with the student database which holds information about classes. Some custom permissions were set in Drupal so we could isolate assignments on student and group level.
6] Students have to be able to submit assignments individually or for their project groups; This option was met via custom code that hooks into the submission (Plupload) form. An autocomplete widget was used to make it easy for students to select the right group members.
7] Students see reminders and information about assignments and deadlines on their dashboard; This goal was met by creating custom blocks appearing on the student dashboards. The student sees a list of assignments, together with a label informing the student if the assignment still has to be submitted.
8] Students need the option for multiple file upload; This goal was met by using the Plupload integration, see above.
9] Flexibility and insight for the administrator to intervene in case of questions from end users. This goal was met by assigning proper permissions to the application manager / webmaster of the learning platform.
ChallengesMain technical challenges were:
• The teacher has a wide range of options for each assignment that has to be handed in. Apart from the technical methodes used (see above), we needed a intuitive administrative procedure so it won’t take too much time for a teacher to create the assignment counters, as this might lead to frustration or delays. This was overcome by using the Inline Entity Form module, combined with mostly multiple choice options (with common used defaults) for easy creation.
• Another challenge was the automatic creation of XML metadata files that had to be submitted along with the files. From architectural point of view we created a naming convention for the xml file and a standard setup for the xml file contents. The technical procedure when submitting the file uses a hook into the Plupload Integration form which created the xml file on the fly and stores it alongside with the file on a temporary storage server. The document management system, polling for changes every minute, pulls the file and metadata file from the storage server.
Community contributionsPatches, documentation was added via several community efforts, including:
https://www.drupal.org/project/quizfileupload/issues/2973014 (our insights with Plupload file upload ended up in the Quiz module)
Several translations were added for Plupload integration, Entity reference and Inline entity form.