Skip to content

Exam mode: Merge student exams page into students page#12558

Draft
matyasht wants to merge 62 commits intodevelopfrom
feature/exam-mode/students-page-merge
Draft

Exam mode: Merge student exams page into students page#12558
matyasht wants to merge 62 commits intodevelopfrom
feature/exam-mode/students-page-merge

Conversation

@matyasht
Copy link
Copy Markdown
Contributor

@matyasht matyasht commented Apr 19, 2026

Summary

This PR reworks the students page in exam mode and merges the student exams page into it.

Checklist

General

Client

  • Important: I implemented the changes with a very good performance, prevented too many (unnecessary) REST calls and made sure the UI is responsive, even with large data (e.g. using paging).
  • I strictly followed the principle of data economy for all client-server REST calls.
  • I strictly followed the client coding guidelines.
  • I strictly followed the AET UI-UX guidelines.
  • Following the theming guidelines, I specified colors only in the theming variable files and checked that the changes look consistent in both the light and the dark theme.
  • I added multiple screenshots/screencasts of my UI changes.
  • I translated all newly inserted strings into English and German.

Changes affecting Programming Exercises

Motivation and Context

With the student page in exam mode you can add, remove and generally manage students in a exam.
The student exams page is for managing individual exams of students, such as creating them and extending working time for an individual exam.
As each student can only have at most one individual exam, therefore, it does not make sense to have two separate pages for this.

Description

  • Merged Student Exams into the Exam Students page.
  • Migrated UI state logic to Angular signals in exam-students.
  • Switched components to PrimeNG, including the students data table.
  • Added a new add-students dialog with search.
  • Improved progress/status UX (popover bars, tooltips, responsive fixes).
  • Updated related server/routes, translations, and tests (component + Playwright) for the new unified workflow.

Steps for Testing

Exam mode only

Exam Mode Testing

Prerequisites:

  • 1 Instructor
  • 1 Course with 1 Exam
  1. Log in to Artemis
  2. Navigate to the Exam
  3. Go to the Students page
  4. Test the student page with all its features. Try the drop down buttons, the actions, do a responsiveness test etc.

Tip

You can use the scripts below to quickly setup dummy students with 4 different exam states on a server you have admin rights on (TS3 for instance).
To create the students and exams: cleanup-exam-state-scenarios.js
node supporting_scripts/course-scripts/quick-course-setup/setup-exam-state-scenarios.js --server-url https://artemis-test3.artemis.cit.tum.de/api --course-id <your-course-id>
Run this after you are done for cleanup: setup-exam-state-scenarios.js
node supporting_scripts/course-scripts/quick-course-setup/cleanup-exam-state-scenarios.js --server-url https://artemis-test3.artemis.cit.tum.de/api --course-id <your-course-id>

Testserver States

You can manage test servers using Helios. Check environment statuses in the environment list. To deploy to a test server, go to the CI/CD page, find your PR or branch, and trigger the deployment.

Review Progress

Performance Review

Code Review

  • Code Review 1
  • Code Review 2

Manual Tests

  • Test 1
  • Test 2

Exam Mode Test

  • Test 1
  • Test 2

Test Coverage

Client

Class/File Line Coverage Lines Expects Ratio
exam-exercise-start-preparation-status.model.ts not found (added) 8 ? ?
exam-management.service.ts 85.98% 334 48 14.4
student-exam-status.component.ts 0.00% 13 ? ?
student-exams.component.ts not found (deleted) ? ? ?
exam-add-students-dialog.component.ts not found (added) 130 ? ?
exam-students-menu-button.component.ts not found (added) 24 ? ?
exam-students.component.ts not found (modified) 669 25 3.7
students-upload-images-button.component.ts not found (deleted) ? ? ?
global.utils.ts 100.00% 57 28 49.1

Server

Class/File Line Coverage Lines
ExamDeletionService.java 95.50% 196
ExamRegistrationService.java 93.13% 254
StudentExamService.java 90.94% 553

Last updated: 2026-04-20 15:35:25 UTC

Screenshots

https://youtu.be/a2GT5TerQ9A
image

@matyasht matyasht self-assigned this Apr 19, 2026
@github-project-automation github-project-automation Bot moved this to Work In Progress in Artemis Development Apr 19, 2026
@github-actions github-actions Bot added tests server Pull requests that update Java code. (Added Automatically!) client Pull requests that update TypeScript code. (Added Automatically!) playwright exam Pull requests that affect the corresponding module labels Apr 19, 2026
Comment thread src/main/webapp/app/exam/manage/students/exam-students.component.ts Fixed
@github-actions
Copy link
Copy Markdown

@matyasht Test coverage has been automatically updated in the PR description.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 19, 2026

End-to-End Test Results

Phase Status Details
All Tests ❌ Failed
TestsPassed ☑️Skipped ⚠️Failed ❌️Time ⏱
All E2E Tests Report (PR)253 ran245 passed3 skipped5 failed33m 19s

Test Strategy: Running all tests (configuration or infrastructure changes detected)

Overall: ❌ E2E tests failed

🔗 Workflow Run · 📊 Test Report

Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
coderabbitai[bot]
coderabbitai Bot previously approved these changes Apr 20, 2026
@github-actions
Copy link
Copy Markdown

@matyasht Test coverage has been automatically updated in the PR description.

@github-actions
Copy link
Copy Markdown

@matyasht Test coverage has been automatically updated in the PR description.

@github-actions
Copy link
Copy Markdown

@matyasht Test coverage has been automatically updated in the PR description.

@matyasht matyasht changed the title Exam mode: Merge student exams page into studetns page Exam mode: Merge student exams page into students page Apr 20, 2026
@github-actions
Copy link
Copy Markdown

@matyasht Test coverage has been automatically updated in the PR description.

@github-actions
Copy link
Copy Markdown

@matyasht Test coverage has been automatically updated in the PR description.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

client Pull requests that update TypeScript code. (Added Automatically!) exam Pull requests that affect the corresponding module playwright server Pull requests that update Java code. (Added Automatically!) tests

Projects

Status: Work In Progress

Development

Successfully merging this pull request may close these issues.

1 participant