Skip to main content

Terms Page

Route: /dashboard/terms
File: app/dashboard/terms/page.tsx

This page manages terms (semesters) within academic years. Terms define the time periods and grading weight splits for exams vs coursework.

Features

Academic Year Selector

A dropdown at the top to select which academic year's terms to manage. Defaults to the first academic year in the list.

Term List

Displays terms as a table or card list with:

  • Term name (Michaelmas, Hilary, Trinity)
  • Date range (start → end)
  • Exam weight percentage
  • Coursework weight percentage
  • Ministry reporting badge (if enabled)
  • Edit and Delete buttons

Create Term

A dialog form with:

FieldRequiredDescription
NameYesmichaelmas, hilary, or trinity
Start DateYesTerm start
End DateYesTerm end
Exam WeightYesPercentage (0-100)
Coursework WeightYesPercentage (must sum to 100 with exam)
Ministry ReportingNoToggle for ministry reporting period
Sort OrderNoDisplay order (auto-set based on term name)

Edit Term

Same form pre-filled with existing data.

Delete Term

Confirmation dialog. Fails if the term has existing assessments (shows error toast).

API Calls

ActionEndpoint
List academic yearsGET /api/academic-years
List termsGET /api/terms?yearId=<id>
CreatePOST /api/terms
UpdatePATCH /api/terms/:id
DeleteDELETE /api/terms/:id