Gradebooks API
The Gradebooks module manages student grades, report cards, and academic progress.
Models
Gradebook
Main gradebook record linking student to academic period:
{
"id": "uuid",
"student_id": "student-uuid",
"student": {...},
"academic_session_id": "session-uuid",
"semester_id": "semester-uuid",
"class_id": "class-uuid",
"status": "active",
"overall_grade": "A",
"overall_score": 92.5,
"team_id": "team-uuid"
}
GradebookCourse
Per-course grades within a gradebook:
{
"id": "uuid",
"gradebook_id": "gradebook-uuid",
"student_id": "student-uuid",
"course_id": "course-uuid",
"final_score": 88.5,
"final_grade": "B+",
"subject_id": "subject-uuid"
}
Assessment
Individual assignments/tests:
{
"id": "uuid",
"name": "Midterm Exam",
"course_id": "course-uuid",
"max_score": 100,
"weight": 30,
"due_date": "2024-03-15",
"category_id": "category-uuid"
}
AssessmentResult
Student scores on assessments:
{
"id": "uuid",
"assessment_id": "assessment-uuid",
"student_id": "student-uuid",
"score": 85,
"grade": "B",
"submitted_at": "2024-03-14T10:00:00Z"
}
Endpoints
Gradebook CRUD
Method |
Endpoint |
Description |
|---|---|---|
POST |
|
List gradebooks |
GET |
|
Get gradebook |
POST |
|
Create gradebook |
PUT |
|
Update gradebook |
Student Reports
Get Student Report:
GET /api/gradebooks/student/:student_id/report
Response:
{
"student": {...},
"academic_session": {...},
"subjects": [
{
"subject": "Mathematics",
"course_grade": "A",
"assessments": [
{"name": "Quiz 1", "score": 95, "max": 100},
{"name": "Midterm", "score": 88, "max": 100}
]
}
],
"overall_gpa": 3.8
}
Class Summary
Get Class Summary:
GET /api/gradebooks/class/:class_id/summary
Subject Statistics
Get Subject Statistics:
GET /api/gradebooks/subject/:subject_id/statistics
Report Cards
Generate Report Card
Endpoint: POST /api/gradebooks/:id/report-card/generate
Triggers async report card generation.
Check Generation Status
Endpoint: GET /api/gradebooks/:id/report-card/status
Download Report Card
Endpoint: GET /api/gradebooks/:id/report-card
Returns PDF report card.
Assessment Results
List Results for Assessment
GET /api/assessment_results/assessment/:assessment_id
Get Statistics
GET /api/assessment_results/assessment/:assessment_id/stats
Response:
{
"assessment": {...},
"statistics": {
"count": 30,
"average": 78.5,
"median": 80,
"min": 45,
"max": 98,
"std_dev": 12.3
}
}
Student Course Results
GET /api/assessment_results/student/:student_id/course/:course_id
Grade Calculation
Calculate Course Grade
POST /api/gradebook_courses/calculate
Recalculates grades based on assessments and weights.
Recalculate Student Grades
POST /api/gradebook_courses/student/:student_id/recalculate
Grade Scales
Define grading scales:
{
"id": "uuid",
"name": "Standard Scale",
"ranges": [
{"min": 90, "max": 100, "grade": "A", "gpa": 4.0},
{"min": 80, "max": 89, "grade": "B", "gpa": 3.0},
{"min": 70, "max": 79, "grade": "C", "gpa": 2.0}
]
}