-
Notifications
You must be signed in to change notification settings - Fork 50
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_question
embedded schema- Added
prepend
andpostpend
fields - Renamed
solutionTemplate
field totemplate
- Added
- Changes to
question
schema- Removed
grader
fields - Added
public
andprivate
fields to represent public and private test cases
- Removed
- Changes to
answer
schema- Renamed
autograding_errors
field toautograding_results
- Renamed
- Updated XML parser to handle new tags in the new XML format
- Refactored
lambda_worker.ex
to accept and store all grading output results in a systematic format - Rewritten tests to recover coverage
- Add
autograding_status
andautograding_results
fields 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
:none
state for ungraded assessments - Added virtual
grading_status
,question_count
andgraded_count
fields to theSubmission
schema - Amended
all_submissions_by_grader
query- 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
/grading
endpoint from using a HTTPGET
toPOST
request- Pagination details, search, filter and sort details are all contained in the transmitted
JSON
body
- 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_grader
and use ofPOST
request - Load testing with a large database