-
Notifications
You must be signed in to change notification settings - Fork 172
Grading Features
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 client.
Rationale: Enable students to quickly restore the editor state to the template code in assessments.
- Added a template reset button in the assessment workspace (excluding the grading workspace and playground) to allow users to reset the
editorValue
to the assessment template
- Add tests for reset button in assessment workspace
Rationale: Update frontend to support the updated XML format for creation and deployment of assessments - the updated specifications are available here.
- Client: PR 527 (bundled with client-side test cases)
- Server: Backend integration of new XML format
- Added
editorPrepend
,editorPostpend
,editorTestcases
attributes toStateProps
of assessment and grading workspaces - Added new
ITestcase
interface to represent testcases
- Integrate new workspace properties with Mission Control feature to allow editing of prepend, postpend code fragments and testcases during XML creation
- Add tests for mission questions with varying combinations of prepend, postpend and testcases
Please proceed to the grader repository reference.
Rationale: Where intended by mission authors, expose public test cases to expedite students' basic testing of their programs - not an intended replacement for self-design of test cases, instead serving as a convenience feature by collating test cases previously in mission briefings.
- Client: PR 527 (bundled with XML changes)
- Added a new Test case tab that parses and displays data stored in the
editorTestcases
attribute of the assessment and grading workspaces- Displays test case (function call), expected output and actual output (if ran)
- Add new
EVAL_TESTCASE
action to allow each test case to be run individually - Updated
workspaceSaga
to handleEVAL_TESTCASE
actions and added newevalTestCode
saga
- Add additional button to run all test cases concurrently
- Standardise and clean up UI elements
- Automatically compare expected
- Add tests for test cases from different mission varieties
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: PR 530 (resolves issue #351)
- Server: Backend grading overview overhaul
- Added check to disable grading status display for non-graded assessments (i.e. paths)
- Corrected ag-grid CSS stylesheet import and amended CSS to fix styling inconsistencies and persistent scrollbar bug
- Collated all control buttons above the datagrid
- Amended handling of
FETCH_GRADING_OVERVIEWS
actions inbackendSaga
- Added
gradingStatus
,questionCount
andgradedCount
attributes toGradingOverview
type - Added grading status display for submissions with on-hover grading progress tooltip
- Enabled sorting and filtering by grading status and group
- Updated mocks
- Add additional tests for grading overview page
Rationale: Implement server-side pagination for the /grading
endpoint (retrieval of submissions) to reduce amount of data transmitted between client and server.
- Client: PR 531
- Server: Backend server-side pagination
- Disabled ag-grid's native pagination and added custom pagination controls
- Added button to select pagination page size (#submisions to retrieve)
- Amended
/grading
endpoint (async functiongetGradingOverviews
) 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
- Fix UI issue with
outline
CSS with:focus
pseudo-selector of the page size dropdown - Update mocks and add tests for
POST
request
Include assessment with answers in submission:
- https://github.com/source-academy/backend/pull/1059
- This pull request was done to enable viewable assessment briefings, done by the Grading UI/UX team under https://github.com/source-academy/frontend/pull/2783
Pagination from frontend to backend:
- https://github.com/source-academy/frontend/pull/2787
- https://github.com/source-academy/backend/pull/1065
Auto-seeding feature:
Publishing of grading feature, streamlining of grading workflows, auto-publishing: