Skip to content

feat: add gradebook#8384

Draft
LWS49 wants to merge 2 commits into
masterfrom
lws49/feat-gradebook
Draft

feat: add gradebook#8384
LWS49 wants to merge 2 commits into
masterfrom
lws49/feat-gradebook

Conversation

@LWS49
Copy link
Copy Markdown
Collaborator

@LWS49 LWS49 commented May 18, 2026

Gradebook - Feature 1: Assessment Grade Display (MVP)

This is an MVP placeholder. The gradebook is being built incrementally. This PR establishes the data pipeline and table scaffolding. Known limitations are documented below and will be addressed in subsequent PRs.


What this does

Adds a new staff-only Gradebook page to course navigation. Shows all enrolled (non-phantom) students' grades across every published assessment, with one column per assessment.

  • Columns - one per published assessment, ordered by category → tab → assessment weight. Headers are colour-coded by tab with a legend above the table.
  • Rows - one per student. Supports name search to filter rows.
  • Score toggle - switch between percentage (80.00%) and raw score (16 / 20).
  • Total column - sum of all grades / sum of all max grades across every published assessment.
  • Unsubmitted assessments contribute 0 to the grade numerator; their max grade still counts in the denominator.
  • Horizontal and vertical scrolling.

Known limitations (to be addressed in later PRs)

  1. Long assessment names are truncated. Column headers cap at 180 px and show an ellipsis for overflow. A collapsible two-row header (category row + assessment row) is planned for a future PR.

  2. No search-by-assessment feature. Only student name search is implemented. Per-column assessment search (with sticky pinning, à la Google Classroom) is planned for Feature 7.

43 No weightage or grouping. Final grade is an unweighted sum. Weighted groupings, custom group assignments, and grade calculation with/without weightage are Feature 2.


Planned features (in implementation order)

Feature 1 (this PR) — Assessment grade display by students

  • Grade display per student per assessment, with percentage / raw score toggle.
  • Student name search. Email and external ID search deferred to Feature 4 consideration.
  • Student name column is sticky; table scrolls in both directions.

Feature 2 — Weightage and grouping

  • Interface to define assessment groups and assign assessments to them.
  • Final grade calculated with and without weightage by group.

Feature 3 — Clickable student names

  • Student name in gradebook links to the student's course page.

Feature 4 — Grade export

  • Export view (separate from the default assessment view) where staff can choose columns (email, external ID, etc.) and export.
  • Possibly a dedicated export view distinct from the gradebook display, allowing column selection independently of the display columns.

Feature 5 — Grade overwrite

  • Basic MVP: display only. This feature adds inline editing to overwrite grades on the gradebook.

Feature 6 — Column order adjustment in export

  • Adjust positioning of columns in the export output.

Feature 7 — Search by assessment

  • Following Google Classroom's approach: selecting an assessment pins its column sticky next to the student name column.
  • Multiple selected assessments stack sticky in reverse chronological selection order.
  • Default assessment view searches by assessment name; assessment-groups view searches by group name.

Feature 8 — Submission status display

  • Colour-coded status indicators per cell (e.g. submitted-but-ungraded, missing).
  • Default view shows all assessments; with weightage on, an assessment-groups view is available and enabled by default.

@LWS49 LWS49 force-pushed the lws49/feat-gradebook branch 4 times, most recently from fbfdba8 to a67eb77 Compare May 19, 2026 02:07
@LWS49
Copy link
Copy Markdown
Collaborator Author

LWS49 commented May 19, 2026

Screen.Recording.2026-05-14.at.6.08.20.PM.mov

@LWS49 LWS49 force-pushed the lws49/feat-gradebook branch 3 times, most recently from 291ea77 to e8597f6 Compare May 19, 2026 03:08
@LWS49 LWS49 force-pushed the lws49/feat-gradebook branch from e8597f6 to ec5ec1c Compare May 19, 2026 15:27
@LWS49 LWS49 force-pushed the lws49/feat-gradebook branch from ec5ec1c to b2a9464 Compare May 19, 2026 15:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant