User Stories
This section contains user stories that were identified during a stakeholder workshop which was conducted with e-learning personal and IT administrators of various universities from Germany, Austria, and Switzerland as well as from multiple personal interviews.
Together with the generic base requirements, they form the base for formulating concrete feature requests for and to establish the technical architecture drafts of the aspired archiving solution on.
Stakeholders
- Teacher (Examiner): Creates, organizes, and conducts exams. Grades exams and provides feedback to students. Has full access to all exam data.
- Student (Examinee): Takes exams, receives grades and feedback. Can have access to their own exam data, depending on the respective exam and teacher.
- Chief Operations Officer (COO): Makes executive decisions about the operational activities of the university. This especially includes, but is not limited to, the examination processes and study path organization.
- Legal Staff Member: Responsible for ensuring that the exams themselves, the exam systems, and related procedures are compliant with relevant laws and regulations. Does not implement required measures themselves, but provides the necessary information to administrators and teachers.
- Moodle Administrator: Administrates Moodle instances. Has full administrative access to the Moodle website administration.
- System Administrator: Administrates the servers that run a Moodle instance. Has full access to the server and the database the Moodle LMS is running on.
User Stories
This section lists the identified user stories.
Scope
This section lists user stories that define the scope of the archiving system. This includes, for example, the different Moodle activities that should be archived and which courses should be archived.
Activities and Data Types
[US-SC-01] Archiving quiz attempts High Demand
As a teacher, I want to archive quiz attempts as PDF files.
As a student, I want to store my quiz results to be able to look back at them at a later point in time.
[US-SC-02] Archiving assignments High Demand
As a teacher, I want to archive assignments, so that I can have all submissions within a single archive without the need to download all files manually.
As a student, I want to be able to easily access both the files I submitted and the feedback (e.g., PDF annotations) I received for an assignment.
[US-SC-03] Additional files Medium Demand
As a teacher, I want to be able to include additional files in the archives, such as seating plans. Such files would be uploaded manually by the teacher prior to or after an exam.
[US-SC-04] Completeness of archives Mandatory
As a teacher, student, or legal staff member, I want the archives to include all relevant data that was created during the exam. This includes, for example, exam metadata, questions, final answers, answer history, file submissions, grades, feedback, and more.
[US-SC-05] Archiving original unprocessed exams Basic Demand
As a legal staff member, I want to have the original, unedited exams that are given to the students at the beginning of an exam archived, so that I can clearly see what was given and what was added by the students.
Control of Scope
[US-SC-06] Enabling or disabling archiving for specific activities Basic Demand
As a Moodle administrator or COO, I want to enable or disable the archiving of specific activities, so that I can ensure that only the relevant data is archived.
[US-SC-07] Enabling or disabling archiving for specific course categories High Demand
As a Moodle administrator or COO, I want to enable or disable the archiving of quiz attempts and assignments for specific course categories, so that I can ensure that only the relevant data (e.g., actual exams) is archived.
[US-SC-08] Making archiving of certain activities mandatory or optional Medium Demand
As a COO or Moodle administrator, I want to be able to define whether the archiving of certain activities or courses is mandatory or optional, so that I can ensure that all relevant data is always archived but leave teachers the freedom to decide whether they want to archive additional data.
Size of Scope
[US-SC-09] Data from big cohorts Basic Demand
As a teacher, I want the archiving solution to be able to handle event large cohorts of students reliably, so that I do not encounter limitations if my courses have many students.
As a system administrator, I want the archiving solution to be able to handle large cohorts of students effectively without consuming too many resources or failing due to the size.
Archiv Contents
This section lists user stories that target the contents of the archives. This includes, for example, the types of data that should be archived and how the data should be structured.
Exam Data
[US-AC-01] Quiz question types (Moodle core) Mandatory
As a teacher, I want the quiz attempt reports to support all question types that are available in Moodle, so that I can continue using my existing questions.
[US-AC-02] Quiz question types (third party) High Demand
As a teacher, I want third party question types to be supported, so that I can also export, for example, STACK questions.
As a Moodle administrator, I want third party question types to be supported alongside the core question types to eliminate the need for custom archiving solutions or hacks.
Commonly used and highly requested question types include: STACK, Gapfill, Coderunner, KPrime, Freehand drawing, ...
[US-AC-03] Math formulas and other complex content High Demand
As a teacher, I want the quiz attempt reports to support math formulas and other complex dynamic content, e.g., GeoGebra applets.
[US-AC-04] Rich media content Basic Demand
As a teacher, I want to be able to use rich media content in my exams, such as videos and audio files.
As a system administrator, I want the archiving system to compress rich media content as much as possible in order to preserve disk space.
Metadata
[US-AC-05] Metadata availability Mandatory
As a teacher, I want the quiz attempt reports to include metadata, such as the date and time of the quiz attempt, the duration, and marks.
As a legal staff member, I want the quiz attempt reports to include metadata, such as the date and time of the quiz attempt, the duration, and the IP address of the student.
[US-AC-06] Matriculation number High Demand
As a teacher, I want the matriculation number of the student to be included in the archived data, so that I can easily identify the student.
As a legal staff member, I want the matriculation number to be included in the archive, so that I can (automatically) retrieve all records to a given person in case of legal disputes.
[US-AC-07] Variable file names Basic Demand
As a teacher, I want the file names to be configurable, including variables (e.g., student name, matriculation number, date, ...), so that I can easily identify the student and the assignment when looking for a specific attempt.
As a system administrator, I want the file names to be configurable, including variables (e.g., student name, matriculation number, date, ...), so that I can enforce a consistent naming scheme across all archives and ensure compatibility with other systems at our institution.
Additional Data
[US-AC-08] Answer history and log files High Demand
As a teacher or legal staff member, I want relevant logs from the exam period to be included in the archive. These logs include but are not limited to: answer histories, question access logs, submission logs, IP addresses, ...
[US-AC-09] Course backup Medium Demand
As a teacher, I want to be able to include a backup of the whole course in the archive, so that I can easily reuse the course in the future.
As a Moodle administrator, I want to be able to include a backup of the whole course in the archive, so that I can easily restore the course as a whole if this is needed.
[US-AC-10] Activity backups Medium Demand
As a teacher, I want to be able to include a backup of a single activity in the archive, so that I can easily reuse the activity in the future without the need to restore the whole course.
As a Moodle administrator, I want to be able to include a backup of a single activity in the archive, so that I can easily restore the activity if this is needed while preserving storage space that would otherwise be wasted by a full course backup that might not be required.
Customization and Miscellaneous
[US-AC-11] Customizable quiz attempt report contents Medium Demand
As a teacher, I want to be able to customize the contents of the quiz attempt report, so that I can, for example, exclude example solutions from PDFs that I hand out to my students.
[US-AC-12] Data searchability Basic Demand
As a teacher, I want the data in the archives to be searchable, so that I can easily find specific quiz attempts or assignments.
As a teacher or student, I want to be able to search within the contents of quiz attempt reports, so that I can easily find specific answers or questions.
[US-AC-13] Anonymization Basic Demand
As a teacher, I want to be able to generated anonymized exports that I can share with colleagues or students, so that I can discuss the results without revealing the identity of the respective student.
File Formats and Data Handling
This section lists user stories that describe the used file formats of the archives and the data within. This includes, for example, the container format used to group archived data and the file format of individual files.
Data Formats
[US-FF-01] Open file formats and protocols Mandatory
As a system administrator, I want the archives to be in open and standardized file formats, so that I can ensure that the data can be read in the future.
As a system administrator, I want the archiving systems to use open and standardized protocols, so that I can connect them with existing external systems and other university IT infrastructure (e.g., s3, FTP, ...).
[US-FF-02] ZIP archives High Demand
As a teacher, I want to have the quiz attempts and assignments archived in ZIP files, so that I can easily download and extract the files without requiring third party software.
[US-FF-03] Export of single quiz attempts as PDF Basic Demand
As a teacher, I want to be able to export single quiz attempts as PDF files, so that I can easily share them with students.
As a student, I want to be able to export a PDF report of my quiz attempt, so that I can archive my answers and grades for myself.
Storage and Space
[US-FF-04] Archive size Medium Demand
As a system administrator, I want the archives to preserve as much space as possible, so that the archives do not take up too much space on the server.
As a teacher, I want the archives to be small, so that I can download them quickly.
[US-FF-05] PDF/A file format High Demand
As a legal staff member, I want the archives to be in the PDF/A
file format, so that the data is stored in
a standardized format that is designed for long-term data readability.
Copy Protection
[US-FF-06] Watermarks and copy protection Basic Demand
As a teacher, I want to be able to include watermarks or other forms of copy traceability / protection in the archives, so that I can prevent students from sharing their exam results with others or trace back the ones that did.
Data Integrity and Data Protection
This section lists user stories that target the data integrity and data protection requirements of the archives. This, for example, includes the compliance with the General Data Protection Regulation (GDPR) and the data integrity of the archived data.
Data Integrity and Legal
[US-DI-01] Data integrity Mandatory
As a legal staff member, I want to be able to verify that the data in the archives has not been tampered with and did not get corrupted in any way.
[US-DI-02] Data attestation Mandatory
As a legal staff member, I want to be able to prove that the data in the archives is authentic, has not been tampered with, and was created at a specific point in time so that I can use the data in legal disputes.
As a legal staff member, I want the data to be signed with a digital signature by an external authority, so that I can prove the authenticity of the data in court.
Data Protection
[US-DI-03] Rights management Mandatory
As a Moodle administrator, I want to be able to define who has access to the archived data, so that I can ensure that only authorized persons can access the data and prevent unauthorized people from deleting archives.
As a legal staff member, I want to be able to prevent the deletion of archives once created, e.g., through a WORM (write-once-read-many) storage solution.
[US-DI-04] Future readability High Demand
As a legal staff member, I want the archives to be stored in a way that ensures that the data can be read in the far future (5 to 10 years), so that the data can be retrieved in case of legal disputes.
As a system administrator, I want the archives to be stored in a way that is independent of specific software and its versions, so that I do not need to restore an ancient Moodle instance to retrieve data. This explicitly includes storing the data in a way that is independent of the Moodle LMS.
General Data Protection Regulation (GDPR)
[US-DI-05] GDPR compliance Mandatory
As a legal staff member, I want the archiving process to be compliant with the General Data Protection Regulation (GDPR).
As a student, I want to be able to request the data that is stored about me and have it deleted once archived data passed its legal retention time.
As a Moodle administrator or system administrator, I want the system to handle deletion of archived data beyond its legal retention time automatically.
Automation
This section lists user stories that outline the needs for automation of the archiving process. This includes, for example, the automatic archiving of quiz attempts and assignments and the automatic transfer of archives into external storage systems.
Process Automation
[US-AU-01] Automated archiving High Demand
As a teacher, I want the archiving process to be automated, so that I do not have to archive quiz attempts and assignments manually.
As a legal staff member, I want the archiving process to be automated, so that I can ensure that all relevant data is always archived and can not be forgotten about.
[US-AU-02] Configurable trigger for archiving Medium Demand
As a Moodle administrator, I want to be able to specify which events (e.g., end of an exam, finalization of grades, manual clearance) trigger the archiving process, so that I can adapt the archiving process to the specific processes of my institution. If the trigger is time-based, I want to be able to specify the time freely.
System Integration
[US-AU-03] Automated transfer into external systems Medium Demand
As a legal staff member, I want the archives to be automatically transferred into external systems, such as write-once-read-many (WORM) storage or document management systems (DMS), so that the data is stored appropriately.
As a system administrator, I want the archives to be automatically transferred into external systems, so that the archives do not take up too much space on the server and I do not have to manually transfer data.
[US-AU-04] Integration with campus management systems High Demand
As a COO, I want the archiving system to be integrated with the campus management system, so that archived data can easily be processed further, e.g., storing it inside a student's digital record file.
As a teacher, I want the archiving system to be integrated with the campus management system, so that I can easily link the archived exam data to the rest of the student's data.
As a system administrator, I want the archiving system to be integrated with the campus management system, so that I do not have to develop custom glue logic.
[US-AU-05] Archiving reminders Basic Demand
As a teacher, I want to receive a reminder if an activity that should be archived is not yet archived, so that I can ensure that I do not forget to finalize an exam.
As a Moodle administrator or COO, I want teachers to receive reminders if an activity that should be archived is not yet archived, so that I do not have to manually remind teachers to archive their exams.
Data Processing
[US-AU-06] Parallel processing Basic Demand
As a system administrator, I want that multiple archiving jobs can be processed in parallel, so that the larger jobs can be processed faster, and they do not block smaller jobs for too long.
As a system administrator, I want to be able to adjust the number of parallel jobs, so that I can control the resource consumption on the server.
As a teacher, I want archiving jobs to be processed as soon as I initiate them, so that I can access the archived data in a timely manner.
User Interface and User Experience
This section lists user stories that describe the user interface and user experience of the archiving system. This, for example, includes the overview of archived data and the documentation of the archiving system.
Archive Job Management
[US-UI-01] Archiving overview in every course High Demand
As a teacher, I want to be able to see an overview of all activities that are potentially archiveable inside a given Moodle course, so that I can easily identify what can be archived and start the process.
As a Moodle administrator, I want to see if all required activities within a course were already archived successfully and if not, I want to be able to start the archiving process.
[US-UI-02] Archive job status updates Basic Demand
As a teacher, I want to be able to see the status of the archiving process, so that I can see if the process is running and when it has finished.
Data Access
[US-UI-03] Access to archived data (internal) Mandatory
As a teacher, I want to be able to access the archived data, so that I can look at the data at a later point in time or use it for a post-exam review.
As a student, I want to be able to access the archived data, so that I can review my exam performance at a later point and keep a copy for myself.
As a legal staff member, I want to be able to access the archived data, so that I can retrieve the data in case of legal disputes.
As a Moodle administrator, I want to be able to access the archived data, so that I can use it for restoring courses or activities.
[US-UI-04] Access to archived data (external) Basic Demand
As a legal staff member, I want to be able to easily provide access to selected data archives to external third parties, e.g., in case of legal disputes.
As a legal staff member or system administrator, I want external access to data archives to be logged.
[US-UI-05] User-based views Medium Demand
As a student, teacher, or legal staff member, I want to be able to view and retrieve all archived data that is associated with a single student.
[US-UI-06] Accessibility Basic Demand
As a teacher or student, I want the archived data to be as accessible ("barrier-free"), as the exam itself to be able to browse the archived data without any problems.
Traceability and Documentation
[US-UI-07] Archiving history Basic Demand
As a teacher, Moodle administrator or legal staff member, I want to be able to see the history of archiving jobs. I want to be able to identify at which point in time archives were created.
[US-UI-08] Documentation Basic Demand
As a teacher, I want to have a user documentation that explains how to use the archiving system, so that I can use the system without having to ask other staff members for help.
As a Moodle administrator, I want to have a user documentation that explains how to use the archiving system, so that I can send it to teachers who ask for help.
As a Moodle administrator, I want to have a technical documentation that explains the different plugin settings and how to configure them, so that I can tweak the archiving system to my universities needs.
As a system administrator, I want to have a technical documentation that explains how to install and troubleshoot the different components in case of error.
Administration and Maintenance
This section lists user stories that describe the administration and maintenance procedure of the archiving system. This includes, for example, the enforcement of corporate policies and the software security of the archiving system.
Resilience
[US-AM-01] Reliability and correctness Mandatory
As a teacher, I want the archiving process to be reliable, so that I can trust that all relevant data is archived, and I do not have to worry about it.
As a legal staff member, I want the archiving software to be reliablly tested to ensure that it works correctly. Otherwise I can not trust that the data is archived correctly and can be retrieved and used in case of legal disputes.
As a Moodle administrator, I want to know which versions of Moodle, PHP, and my DBMS are tested and work.
[US-AM-02] Corporate policies High Demand
As a legal staff member, I want to be able to define certain rules and standards for what and how data is archived, so that I can ensure that the data is archived in a way that is compliant with relevant laws.
As a Moodle administrator, I want to be able to define certain rules and standards for what and how data is archived, so that I can ensure that data is archived in a way that meets our universities requirements.
As a teacher, I do not want to worry about what data needs to be archived in which fashion.
Security
[US-AM-03] Software security Medium Demand
As a system administrator, I want the software to be maintained and updated regularly, so that I can ensure that the software and its dependencies are secure and up-to-date.
As a system administrator, I want the developers to act upon found security vulnerabilities in a timely manner, so that I can ensure that the software stays secure.
[US-AM-04] Future maintenance Medium Demand
As a Moodle administrator or system administrator, I want a solution that will be maintained in the foreseeable future, so that I do not have to switch to another system again in a few years.
As a legal staff member or COO, I want the archiving system to be maintained in the foreseeable future, so that I do not have to evaluate and integrate a new software and archiving process again in a few years.
Installation and Operation
[US-AM-05] Easy setup High Demand
As a system administrator or Moodle administrator, I want the setup of the archiving system to be easy, so that I can install and configure the system without requiring too much time and effort.
[US-AM-06] Easy operations Medium Demand
As a system administrator or Moodle administrator, I want the operation of the archiving system to be easy, so that I can use the system without requiring too much time and effort.
[US-AM-07] Compatibility with used software High Demand
As a system administrator, I want the archiving system to be compatible with my existing software versions, especially the used Moodle version. The archiving solution must at least support all Moodle LTS versions that are currently maintained, including the supported PHP and DBMS versions.
[US-AM-08] Configurability and scalability Basic Demand
As a system administrator, I want to control the resource consumption of the archiving system, so that I can ensure that the system does not consume too many resources.
As a system administrator, I want to be able to easily scale the archiving system, so that I can ensure that the system can handle the load of all Moodle instances at my university, even during exam times, but also scale down during low load times.