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: Show only exam relevant notifications in the exam mode #8084

Merged

Conversation

coolchock
Copy link
Contributor

@coolchock coolchock commented Feb 26, 2024

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.
  • I strictly followed the client coding and design guidelines.
  • I added multiple integration tests (Jest) related to the features (with a high test coverage), while following the test guidelines.
  • I documented the TypeScript code using JSDoc style.

Motivation and Context

Notifications which are not exam relevant still lead to popups in the bottom right corner when student is in exam mode. This is annoying during an exam and only exam relevant notifications should be displayed on the exam page. Currently there's only one exam relevant notification, which informs about the changes in the problem statement.

Description

I added a check to determine if the student is currently on the exam mode page. If they are, notifications that are not relevant are not displayed.

Exam Mode Testing

Prerequisites:

  • 1 Instructor
  • 1 Students
  • 1 Exam
  1. Log in to Artemis
  2. Participate in the exam as a student
  3. In the second browser/incognito tab log in as an instructor
  4. As instructor, create a message (for example announcement) in the course, that the exam is being conducted for, and check if student doesn't receive the course related notification in the bottom right corner
  5. As instructor, make changes to the problem statement of an exam exercise. Make sure, that the exercise that you've edit is a part of the student's exam. Please add 'Notification about changes' at the bottom of the edit page. Only this way the notification will be displayed in the exam mode. Check if student received the exam relevant notification.
  6. As a student, go to the course page. Then, as instructor create a message in the course again and check if student receives this notification.

Testserver States

Note

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







Review Progress

Performance Review

  • I (as a reviewer) confirm that the client changes (in particular related to REST calls and UI responsiveness) are implemented with a very good performance
  • I (as a reviewer) confirm that the server changes (in particular related to database calls) are implemented with a very good performance

Code Review

  • Code Review 1
  • Code Review 2

Manual Tests

  • Test 1
  • Test 2

Exam Mode Test

  • Test 1
  • Test 2

Summary by CodeRabbit

  • New Features
    • Enhanced notification system to differentiate and handle notifications specifically in exam mode.
  • Tests
    • Added and modified tests to ensure accurate notification behavior depending on the user's mode.

@github-actions github-actions bot added tests client Pull requests that update TypeScript code. (Added Automatically!) labels Feb 26, 2024
@artemis-bot artemis-bot added this to In progress in Artemis Development Feb 26, 2024
@github-actions github-actions bot added the tests label Feb 27, 2024
@coolchock coolchock temporarily deployed to artemis-test2.artemis.cit.tum.de February 27, 2024 09:21 — with GitHub Actions Inactive
@coolchock coolchock marked this pull request as ready for review February 27, 2024 09:52
@coolchock coolchock requested a review from a team as a code owner February 27, 2024 09:52
Copy link

coderabbitai bot commented Feb 27, 2024

Walkthrough

The recent updates focus on enhancing the notification system in a web application to differentiate and manage notifications based on the user's mode, specifically targeting exam mode. A new property and method were introduced to identify exam mode, and the notification handling logic was modified accordingly. Additionally, the test suite was updated to reflect these changes, ensuring that notifications relevant to exam exercises are appropriately managed depending on the user's current mode.

Changes

File Path Changes
.../notification-popup.component.ts - Introduced examRoutePattern property for regex pattern.
- Refactored addNotification to manage notifications based on exam mode.
- Added isExamMode method.
- Updated notification handling logic for exam mode.
- Modified matchOptions object initialization.
.../notification-popup.component.spec.ts - Added test for filtering non-exam notifications when not in exam mode.
- Updated tests to handle notifications based on user mode.

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share

Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit-tests for this file.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit tests for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository from git and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit tests.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger a review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • The JSON schema for the configuration file is available here.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/coderabbit-overrides.v2.json

CodeRabbit Discord Community

Join our Discord Community to get help, request features, and share feedback.

@artemis-bot artemis-bot moved this from In progress to Ready for review in Artemis Development Feb 27, 2024
Artemis Development automation moved this from Ready for review to Review in progress Feb 27, 2024
@pzdr7 pzdr7 temporarily deployed to artemis-test2.artemis.cit.tum.de March 1, 2024 18:05 — with GitHub Actions Inactive
Copy link
Contributor

@pzdr7 pzdr7 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 TS2.

  • Messages > Announcements and direct messages did not show up during the exam
  • Comments on exercises and replies also did not show up
  • Exercise change notifications still show up as expected during the exam
  • Go back to course as student > Messages are now received normally

-> Works as expected!

@pzdr7 pzdr7 dismissed coderabbitai’s stale review March 1, 2024 18:31

I think we can dismiss this change request as it was an oversight

Copy link
Contributor

@b-fein b-fein left a comment

Choose a reason for hiding this comment

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

Code changes make sense.

Copy link
Contributor

@egekurt123 egekurt123 left a comment

Choose a reason for hiding this comment

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

Manually tested on ts6, works as expected

Copy link

@Predixx Predixx 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 ts6. Lgtm!

@krusche krusche added this to the 6.9.1 milestone Mar 9, 2024
@krusche krusche merged commit 671af7d into develop Mar 9, 2024
94 of 100 checks passed
@krusche krusche deleted the fix/show-only-exam-relevant-notifications-during-exam branch March 9, 2024 15:29
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!) component:Exam Mode component:Notification ready to merge small tests
Projects
No open projects
Artemis Development
  
Review in progress
Development

Successfully merging this pull request may close these issues.

None yet

6 participants