-
Notifications
You must be signed in to change notification settings - Fork 56
Grading
The project is a combination of multiple features, distributed across the client (cadet-frontend), server (cadet) and autograder (grader) repositories.
The improvements are:
- Editor template reset button (client)
- Integration of new XML format and autograder improvements (client and server)
- Refactoring of autograder (server and grader)
- Client-side public test case support (client)
- Grading overview overhaul (client and server)
- Server-side pagination (client and server)
Scroll below to view the documentation for the changes made to the server.
Please proceed to the client repository reference.
Rationale: Update backend to support the updated XML format for creation and deployment of assessments - the updated specifications are available here.
- Client: Frontend integration of new XML format
- Server: PR 363 (bundled with grader integration, resolves issues #215, #330)
- Changes to
programming_questionembedded schema- Added
prependandpostpendfields - Renamed
solutionTemplatefield totemplate
- Added
- Changes to
questionschema- Removed
graderfields - Added
publicandprivatefields to represent public and private test cases
- Removed
- Changes to
answerschema- Renamed
autograding_errorsfield toautograding_results
- Renamed
- Updated XML parser to handle new tags in the new XML format
- Refactored
lambda_worker.exto accept and store all grading output results in a systematic format - Rewritten tests to recover coverage
- Add
autograding_statusandautograding_resultsfields to controller and view - Write new tests for new XML tags
Please proceed to the grader repository reference.
Please proceed to the client repository reference.
Rationale: Improve the UX for graders by cleaning up the UI of the grading overview page and providing more more granular information on each submission.
- Client: Frontend grading overview overhaul
- Server: PR 375
- Amended grading status computation to include a new
:nonestate for ungraded assessments - Added virtual
grading_status,question_countandgraded_countfields to theSubmissionschema - Amended
all_submissions_by_graderquery- Computes number of questions and graded questions for each submission to build grading status
- Computes and returns pagination details along with retrieved entries to client
- Correct tests for additional computed fields
Rationale: Implement server-side pagination for the /grading endpoint (retrieval of submissions) to reduce amount of data transmitted between client and server.
- Client: Frontend server-side pagination
- Server: PR 376 (resolves issue #257)
- Disabled ag-grid's native pagination and added custom pagination controls
- Added button to select pagination page size (#submisions to retrieve)
- Amended
/gradingendpoint from using a HTTPGETtoPOSTrequest- Pagination details, search, filter and sort details are all contained in the transmitted
JSONbody
- Pagination details, search, filter and sort details are all contained in the transmitted
- Replicated search functionality server-side
- Replaced quick filter searchbar with tag-based searching by name, assessment, category and group
- Replicated sorting functionality server-side
- Replicated column filter functionality server-side
- Text-based column filters disabled
- Number-based column filters enabled for XP and grade columns
- Correct tests for amended output from
all_submissions_by_graderand use ofPOSTrequest - Load testing with a large database