Make GitLab to be more capable in doing exams in education settings.

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

Problem to solve

We are in an university (computer science department) and we hosted GitLab for education purpose. At present, we have a substantial user base, exceeding 10,000 individuals, who engage with the GitLab server for various assignments, a venture that has brought us significant satisfaction.

We want to explore the potentials that if GitLab can also host students academic evaluations such as laboratory exams, midterm exams, and final exam in our university. One of the notable advantages is GitLab's integrated CI/CD pipeline, which allows students to promptly access the outcomes of their coding efforts upon completing an exam — this is a feature that we find highly beneficial.

The challenge we have:

  1. GitLab seem to lack the ability to do multiple choices through UI. We tried to let the students submit csv file but as a notable portion of students struggled with the submission process.
  2. For programming-oriented questions, our usage of CI/CD has enabled us to automatically evaluate students' code and provide feedback during the exam. Nevertheless, an issue arises in situations where students are required to interact with test files within a Docker image during the exam. To address this, it would be advantageous if we could shield the test files from students' visibility, thereby preventing any unauthorized access."
  3. We also need a way to audit/record each step that students have done for academic integrity check in the further.

Intended users

This feature would be great to be used in our university, but it could also benefit other educational entities seeking to adopt and adapt it for their own use.

List of users who might be using the feature.

  • educators
  • tutors
  • students
  • GitLab admin

User experience goal

multiple choices

The students can go to some UI page on GitLab and click the choice they want, and they can also review and change the answer later. After they clicked the choice, there would be someway that GitLab can save their choice automatically.

coding for CI/CD

After a student submit their changes to the GitLab, the pipeline would be triggered to evaluate their code and provide feedback to them. The students can't see how their code is evaluate, but they need to know the result.

logs

There would be better to have logs to record when/who makes the change.

Proposal

multiple choices requirements

The tasklists feature [1] seem to be able to fulfill similar needs. I wonder if it would be easy to fulfill the following requests for the multiple choices.

  1. The choices needs to be selected directly through UI. No need to edit the Markdown manually.
  2. The multiple choices can be accessed/marked through CI/CD.

[1]. https://docs.gitlab.com/ee/user/markdown.html#task-lists

CI/CD coding requirements

While the project triggers CI/CD, the code can get access to the test files in the docker image but it can't let a human to manually find a way to read these tests files.

logs

the content of the logs is better to include the following information:

  1. the timestamp of the event
  2. the uid of the target user
  3. the action/payload of the user
  4. the IP address of the user

Why we have this proposal

  1. GitLab is an opensourced project and I can see the roadmap also include support education settings. This is a good chance for GitLab to expand user scope.
  2. We currently hosted an out-dated html website for students to do the similar work. It would be great if we can resuse GitLab testing framework to make sure everything is up-to-date.

Resources we have

We have more than 5k students each semester so we could make this requirement as a student project if it is technically possible.

Edited by 🤖 GitLab Bot 🤖