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

Iris: Add Iris to Exercise Creation Page #7744

Closed
wants to merge 55 commits into from

Conversation

MichaelOwenDyer
Copy link
Contributor

@MichaelOwenDyer MichaelOwenDyer commented Dec 7, 2023

ATTENTION: Only deploy to TS9!

Checklist

General

Server

  • Important: I implemented the changes with a very good performance and prevented too many (unnecessary) database calls.
  • I followed the coding and design guidelines.
  • I added multiple integration tests (Spring) related to the features (with a high test coverage).
  • I added pre-authorization annotations according to the guidelines and checked the course groups for all new REST Calls (security).
  • I documented the Java code using JavaDoc style.

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 followed the coding and design 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 integration tests (Jest) related to the features (with a high test coverage), while following the test guidelines.
  • I added authorities to all new routes and checked the course groups for displaying navigation elements (links, buttons).
  • I documented the TypeScript code using JSDoc style.
  • I added multiple screenshots/screencasts of my UI changes.
  • I translated all newly inserted strings into English and German.

Motivation and Context

We would like to receive support from Iris not only after an exercise has been created, but also during the creation process itself. Therefore, we have added Iris to the exercise creation page. Iris has the ability to engage in conversation with you and update the problem statement and exercise metadata to meet your requirements.

Description

We have added a new IrisExerciseCreationSession to handle the Iris chatbot on this page. This comes with a new IrisExerciseCreationSessionRepository, IrisExerciseCreationSessionService, IrisExerciseCreationWebsocketService, and IrisExerciseCreationSessionResource.

Steps for Testing

Prerequisites:

  • 1 Editor
  1. Log in to Artemis
  2. Navigate to a course with the Iris code editor feature enabled (you can use Exercise Adaption Test Course)
  3. Navigate to the "Create programming exercise" page
  4. See that the Iris logo is there, click it
  5. Chat with Iris, ask for help creating the exercise
  6. Wait for a moment and see that Iris can update the problem statement and exercise metadata (this PR supports exercise title and short name) automatically

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

Test Coverage

Screenshots

Exercise.Creation.mov

Summary by CodeRabbit

  • New Features

    • Introduced an exercise creation chatbot feature for programming exercises when Iris is enabled.
    • Added new Iris session management functionalities for enhanced chat-based exercise creation support.
    • Implemented a REST controller for managing Iris exercise creation sessions.
  • Enhancements

    • Updated programming exercise update component to support Iris functionalities, including exercise creation chatbot integration.
    • Improved handling of exercise updates with Iris integration, ensuring a seamless update process.
  • Documentation

    • Added documentation for new Iris-related components, services, and REST endpoints to support developers and users in understanding the new functionalities.
  • Tests

    • Extended test coverage to include Iris functionality within programming exercises, ensuring reliability and performance.

@MichaelOwenDyer MichaelOwenDyer self-assigned this Dec 7, 2023
@github-actions github-actions bot added server Pull requests that update Java code. (Added Automatically!) client Pull requests that update TypeScript code. (Added Automatically!) database Pull requests that update the database. (Added Automatically!). Require a CRITICAL deployment. template labels Dec 7, 2023
@RY997 RY997 force-pushed the feature/iris-exercise-creation branch from 518229d to a31566f Compare December 14, 2023 12:29
Copy link

@Gusti2010 Gusti2010 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 ts9. When i tried to chat with iris in the Exercise Adaption Test course i got the following error:

Screenshot 2024-02-17 at 13 35 14

@RY997
Copy link
Contributor

RY997 commented Feb 21, 2024

Manually tested on ts9. When i tried to chat with iris in the Exercise Adaption Test course i got the following error:

Screenshot 2024-02-17 at 13 35 14

Hi, thanks for testing the PR. Currently, the issue should be fixed.

@RY997 RY997 requested a review from Gusti2010 February 21, 2024 12:14
@bassner
Copy link
Member

bassner commented Feb 21, 2024

Closed (for now) in light of the Pyris V2 upgrade

@bassner bassner closed this Feb 21, 2024
@krusche krusche deleted the feature/iris-exercise-creation branch April 28, 2024 09:51
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!) cypress Pull requests that update cypress tests. (Added Automatically!) database Pull requests that update the database. (Added Automatically!). Require a CRITICAL deployment. ready for review server Pull requests that update Java code. (Added Automatically!) tests too-long-open !!! This is an antipattern, we should aim for small PRs that are only open for a short time !!!
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants