Assignments
This page documents the current developer implementation of assignment authoring in ILS-dev.
Assignments are the work items students submit, and they link curriculum modules to rubrics for grading.
Frontend entrypoints
The assignment admin screens are mounted in frontend/src/App.jsx:
Route path="admin/assignments" element={<AssignmentsPage />} />Route path="admin/assignments/new" element={<AssignmentForm />} />Route path="admin/assignments/:assignmentId" element={<AssignmentForm />} />
The relevant frontend pages are:
frontend/src/pages/AssignmentsPage.jsxfrontend/src/pages/AssignmentForm.jsx
Backend contract
Assignment creation and editing use these endpoints:
GET /api/assignmentsGET /api/assignments/:idPOST /api/assignmentsPUT /api/assignments/:idDELETE /api/assignments/:id
Supporting reference data comes from:
GET /api/modulesGET /api/rubricsGET /api/rubrics/:id
Frontend data flow
Assignments list
AssignmentsPage.jsx loads either:
/assignmentsfor the global assignment list, or/modules/:moduleId/assignmentswhen browsing assignments within a specific module.
The page supports filtering by module, status, due date, and text search. It displays assignment title, module context, status, submission counts, and action controls.
Assignment form
AssignmentForm.jsx is the main create/edit screen.
It loads a rubric list from /rubrics and optionally loads assignment details from /assignments/:id when editing.
The form model includes:
- title, description, objectives, case study, instructions
- module assignment (
module_id) - points possible and grading display mode
- submission type and entry type controls
- due date, available dates, and status
- exportable rubric links via
rubric_ids
Rubric preview and selection
The assignment form supports selecting one or more rubrics from the rubric bank.
It also previews rubric details by fetching GET /rubrics/:id when a rubric is selected in the picker.
Autosave and drafts
When editing an existing assignment, AssignmentForm.jsx uses an autosave mechanism for draft state.
It serialises entry_types into submission_entry_types and sends the full form payload to the backend.
Developer notes
- Assignment data must be written with
rubric_idsso grading and heatmap endpoints can resolve rubric-to-outcome links. - The page normalises
submission_entry_typesas JSON and usesallowed_extensionsonly when file submissions are enabled. - Assignment route changes should be reflected in both
AssignmentsPage.jsxandAssignmentForm.jsx.
Related pages
docs/developer/api.md— assignment and rubric backend endpointsdocs/developer/grading-cockpit.md— how assignments appear in the grading workflowdocs/developer/rubrics.md— rubric authoring and criteria linkages
Last updated: 2026-07-08