Grade Book & Report Cards

Formal exam scheduling, bulk marks entry, computed letter grades, PDF report cards, analytics, promotions, and re-evaluation — Chapter 12, NexusOne Basic tier.

The grade book covers formal written exams only (unit tests, mid-terms, finals, practicals). Quiz scores and assignment grades are handled separately. This entire module — including analytics and promotions — is part of NexusOne Basic; no AI features are involved.

Exam Types

Unit TestMid-TermFinalPracticalOralProject

Key Features

  • Admin creates an exam schedule for a course — defines exam type, term, academic year, max marks, pass marks, and weightage
  • Teacher enters marks for all students in a bulk-entry table (one row per student)
  • Letter grades automatically computed from configurable thresholds (A+/A/B/C/D/F)
  • Absent students marked separately — do not receive a failing grade by default
  • Marks are hidden from students/parents until the admin publishes the exam
  • Report cards aggregate all subject marks for the term with attendance %, dense-ranked class rank, and weightage-adjusted final grade
  • Admin adds remarks before publishing the report card
  • PDF report card generated server-side (pdfkit) with subject breakdown, overall grade/rank, and attendance
  • Subject/class/school-wide analytics and class rankings
  • Year-end promotion eligibility evaluation and decision recording, audit-logged
  • Student/parent-initiated re-evaluation requests with admin review workflow

Default Grade Thresholds

A+

≥ 90

A

≥ 80

B

≥ 70

C

≥ 60

D

≥ 50

F

< pass

API Routes — Exams, Marks & Report Cards

POST/api/grades/exams

Admin creates an exam schedule

GET/api/grades/exams

List exam schedules (scoped by role)

PATCH/api/grades/exams/:id/publish

Publish marks — makes them visible to students/parents

POST/api/grades/exams/:id/marks

Teacher submits marks for all students in a single request

GET/api/grades/student/:studentId/marks

All marks for a student (parent/admin/teacher)

POST/api/grades/report-cards/generate

Generate report cards for a term/year — computes rank, class size, and attendance

GET/api/grades/report-cards/:id/download

Download the report card as a PDF

API Routes — Analytics

GET/api/analytics/exam/subject

Subject-wise average marks and pass rate

GET/api/analytics/exam/class

Class-level average, pass rate, and grade distribution

GET/api/analytics/exam/school

School-wide rollup, per-class breakdown

GET/api/analytics/exam/student/:id

A student's term-over-term performance trend

GET/api/analytics/exam/ranking

Class/section ranking table, read from precomputed rank

API Routes — Promotions & Re-evaluation

GET/api/promotions/evaluate

Evaluate year-end promotion eligibility from report card + attendance data

POST/api/promotions/approve

Record promote/detain decisions; audit-logged

GET/api/promotions/report

Promotion decision report for a class/year

GET/api/promotions/my/:studentId

Student/parent read-only view of promotion history

POST/api/re-evaluation

Student/parent requests re-evaluation of a mark

GET/api/re-evaluation/my

Requester's own re-evaluation requests

PATCH/api/re-evaluation/:id/review

Admin approves or rejects a request

Frontend Pages

/dashboard/admin/grades/examsList all exams; create button
/dashboard/admin/grades/exams/createCreate exam schedule form
/dashboard/admin/grades/report-cardsGenerate and publish report cards
/dashboard/admin/grades/analyticsSubject, class, school-wide and ranking analytics
/dashboard/admin/promotionsEvaluate eligibility, approve/detain, view decision report
/dashboard/teacher/gradesTeacher's exam list — click to enter marks
/dashboard/teacher/grades/[examId]Bulk marks entry table
/dashboard/student/gradesStudent views all grades and report cards

Mobile Screens

(parent)/exams, (student)/examsExam timetable and published results
(parent)/report-card, (student)/report-cardReport card list with PDF download/share
(student)/re-evaluationRequest and track re-evaluation of a mark
(parent)/promotion-status, (student)/promotion-statusView promotion/detention decision history