Skip to content

Grading Features

Josh Thoo Jen Sen edited this page May 17, 2024 · 36 revisions

Table of Contents

2019 CP3108A: Team GRADING (cadet-frontend)

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.


Feature 1: Editor template reset button (Completed)

Rationale: Enable students to quickly restore the editor state to the template code in assessments.

Pull requests

Changelog
  • 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
Outstanding issues
  • Add tests for reset button in assessment workspace

Feature 2: Integration of new XML format (Completed)

Rationale: Update frontend to support the updated XML format for creation and deployment of assessments - the updated specifications are available here.

Pull requests

Changelog
  • Added editorPrepend, editorPostpend, editorTestcases attributes to StateProps of assessment and grading workspaces
  • Added new ITestcase interface to represent testcases
Outstanding issues
  • 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

Feature 3: Refactoring of autograder (Completed)

Please proceed to the grader repository reference.


Feature 4: Client-side public test case support (In progress)

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.

Pull requests

  • Client: PR 527 (bundled with XML changes)
Changelog
  • 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 handle EVAL_TESTCASE actions and added new evalTestCode saga
Outstanding issues
  • 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

Feature 5: Grading overview overhaul (Completed)

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.

Pull requests

Changelog
  • 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 in backendSaga
  • Added gradingStatus, questionCount and gradedCount attributes to GradingOverview type
  • Added grading status display for submissions with on-hover grading progress tooltip
  • Enabled sorting and filtering by grading status and group
  • Updated mocks
Outstanding issues
  • Add additional tests for grading overview page

Feature 6: Server-side pagination (Completed)

Rationale: Implement server-side pagination for the /grading endpoint (retrieval of submissions) to reduce amount of data transmitted between client and server.

Pull requests

Changelog
  • 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 function getGradingOverviews) from using a HTTP GET to POST request
    • Pagination details, search, filter and sort details are all contained in the transmitted JSON body
  • 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
Outstanding issues
  • Fix UI issue with outline CSS with :focus pseudo-selector of the page size dropdown
  • Update mocks and add tests for POST request

2024 CP3108: Grading Features (Frontend + Backend features)

List of Pull Requests

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: https://github.com/source-academy/backend/pull/1067

Publishing of grading feature, streamlining of grading workflows, auto-publishing: https://github.com/source-academy/frontend/pull/2856


Clone this wiki locally