Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exam mode: Hide unreleased programming exercise results #9152

Merged
merged 3 commits into from
Aug 1, 2024

Conversation

pzdr7
Copy link
Contributor

@pzdr7 pzdr7 commented Jul 29, 2024

Checklist

General

Server

  • Important: I implemented the changes with a very good performance and prevented too many (unnecessary) database calls.
  • I strictly followed the server coding and design guidelines.
  • I documented the Java code using JavaDoc style.

Motivation and Context

Currently, students can see the current result of their programming exercise submissions before the result release date. We do not want to leak this information.

Description

The repository view, the commit history, and the exam summary no longer receive information about the results of exam programming exercises when the results haven't been published yet. Students can still see the results if:

  • The exam is ongoing.
  • The results have been published.

Note that this is meant as a quick fix for the bug described above. In the future, we want to show the results that were created during the exam in the repo view / commit history.

Exam Mode Testing

Prerequisites:

  • 1 Exam with a programming exercise (enable manual assessment). Enable both the online editor and the offline IDE.
  • 1 Student
  • 1 Instructor
  • Two browsers / incognito mode (one for the student, one for the instructor)
  1. Participate in the exam as the student. Submit a few solutions to the programming exercise (e.g. some with build errors, some without)
  2. Open the repository view via the Code button popup image.
  3. Verify that the displayed result is the most recent one.
  4. Open the commit history view.
  5. Verify that the commit history shows every result.
  6. Wait for the exam to end and hand in normally.
  7. Check that the summary you see works as expected.
  8. Open the repository view via the code button. Check that no result is displayed.
  9. Open the commit history view. Check that no results are displayed.

  1. On the other browser, log in as the instructor.
  2. Assess the programming exercise.
  3. As the student: Check that you still cannot see the result of the programming exercise on the summary, the repository view, or the commit history.
  4. As the instructor: Edit the exam; set the release date of the results to now.
  5. As the student: Check that you can see every result again on the summary, repository view, and commit history.

Testserver States

Note

These badges show the state of the test servers.
Green = Currently available, Red = Currently locked
Click on the badges to get to the test servers.







Review Progress

Code Review

  • Code Review 1
  • Code Review 2

Exam Mode Test

  • Test 1
  • Test 2

Test Coverage

Screenshots

No ui changes

Summary by CodeRabbit

  • New Features

    • Introduced logic to determine if students can see their exam results based on specific conditions.
    • Enhanced access control for programming exercise participations in exam contexts.
  • Improvements

    • Streamlined result visibility checks, improving clarity and maintainability.
    • Improved accuracy of determining working period status for individual exams.

Copy link
Contributor

@florian-glombik florian-glombik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approve code, I will add a manual test soon

Copy link
Contributor

@Strohgelaender Strohgelaender left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I found an edge case during testing. In case like this where trigger all gets used to run hidden tests after the deadline:
grafik

I was able to see the 25% result on the repository view page, but it was gone after reloading. I'm not completly shure how I triggerd that, it might be the case that this result was send via websocket enven though it should not.

This is an edge case when you have the page open for a long time (maybe opend it during the exam and then looking at it later agin) and the usual behaviour of just opening the page at some later point does not have this problem, so feel free to fix this at a later point.

coolchock
coolchock previously approved these changes Jul 31, 2024
Copy link
Contributor

@coolchock coolchock left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tested on ts3, no issues found

Copy link
Contributor

@florian-glombik florian-glombik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approve code and tested on ts3

  • tested with a user with team extension and one without
  • was not released for student without time extension after while the time extension student was still writing the exam
  • was not released after the time extension student finished participating
  • was released after results release date was passed

Copy link
Contributor

@MaximilianAnzinger MaximilianAnzinger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code

Copy link
Contributor

@SimonEntholzer SimonEntholzer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-approve

Copy link
Contributor

@Strohgelaender Strohgelaender left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code lgtm.

I'd love to see some server tests in a followup.

Copy link
Contributor

@JohannesStoehr JohannesStoehr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code

@krusche krusche merged commit 35b893a into develop Aug 1, 2024
45 of 51 checks passed
@krusche krusche deleted the bugfix/exam-mode/hide-programming-result branch August 1, 2024 13:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

8 participants