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

General: Include more information in course archive #7199

Merged
merged 22 commits into from
Sep 16, 2023

Conversation

tobias-lippert
Copy link
Contributor

@tobias-lippert tobias-lippert commented Sep 14, 2023

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 documented the Java code using JavaDoc style.

Motivation and Context

Course archives do not contain exercise details or the problem statement for all exercise types. This PR adds this information to course archives.

Description

Refactored the SubmissionExportService. Fixed the exports of File Upload submissions. Introduced a new ExerciseWithSubmissionsExportService that exports a JSON file with information about the exercise, a markdown file with the problem statement and all submissions or student repos for an exercise. For programming exercise, we also export template, solution, test, and aux repositories.

Steps for Testing

Prerequisites:

  • 1 Instructor
  1. Log in to Artemis
  2. Navigate to Course Administration
  3. Select a course that has an end date in the past or set the end date of a course to a value in the past.
  4. Click on archive
  5. Once finished, download the archive and verify its content.
  6. Every exercise should have its own directory with the problem statement as markdown file, the exercise details json file and all submisisons.
  7. Also test the export of submissions (for text, modeling, and file upload) available on the scores page of an exercise (empty submissions are always excluded)
  8. Also test that the export of a single programming exercise (using the download exercise button) still works.
  9. Run a plagiarism check for a programming exercise and check it still works (because it's affected by the changes in FileService)

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

Test Coverage

Server

Class/File Line Coverage Confirmation (assert/expect)
CourseExamExportService.java 90%
ExerciseWithSubmissionsExportService.java 91%
FileUploadExerciseWithSubmissionsExportService.java 100%
ModelingExerciseWithSubmissionsExportService.java 100%
TextExerciseWithSubmissionsExportService.java 100%
ProgrammingExerciseExportService.java 85%

Screenshots

@tobias-lippert tobias-lippert requested a review from a team as a code owner September 14, 2023 12:21
@tobias-lippert tobias-lippert changed the title General : Include more information in exam archive Course Management : Include more information in course archive Sep 14, 2023
@tobias-lippert tobias-lippert added this to the 6.5.0 milestone Sep 14, 2023
@github-actions github-actions bot added tests server Pull requests that update Java code. (Added Automatically!) labels Sep 14, 2023
@tobias-lippert tobias-lippert changed the title Course Management : Include more information in course archive Course Management: Include more information in course archive Sep 14, 2023
JohannesStoehr
JohannesStoehr previously approved these changes Sep 14, 2023
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.

Approve code

@krusche krusche changed the title Course Management: Include more information in course archive General: Include more information in course archive Sep 15, 2023
@Xinyannnnnn
Copy link

Tested on TS3 and it works as expected.

# Conflicts:
#	src/main/java/de/tum/in/www1/artemis/service/programming/ProgrammingExerciseExportService.java
Copy link
Collaborator

@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
Collaborator

@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
Collaborator

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

Manual: Tested on TS1. The only thing that didn't work was the archive of solution/template/test repositories. Everything else works like a charm.

Strohgelaender
Strohgelaender previously approved these changes Sep 15, 2023
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.

Tested on ts1, the issue mentioned above is fixed and everything else worked as expected.

Copy link
Collaborator

@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 and manual on TS1

Thx for the quick fix 👍

Copy link
Contributor

@laurenzfb laurenzfb 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 ts1, worked as described

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.

the archive contains the correct information and the plagiarism checks also still work.

code looks good as well.

@jakubriegel jakubriegel temporarily deployed to artemis-test4.artemis.cit.tum.de September 16, 2023 11:27 — with GitHub Actions Inactive
Copy link
Contributor

@jakubriegel jakubriegel 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 ts4. Everything including export of the course, single prog. exercise and plagiarism detection works fine 👍🏻

Copy link
Contributor

@DominikRemo DominikRemo 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. Works as expected

@krusche krusche merged commit 8041600 into develop Sep 16, 2023
@krusche krusche deleted the enhancement/archive-more-information-for-pe branch September 16, 2023 15:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority:high ready to merge server Pull requests that update Java code. (Added Automatically!) tests
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants