Courses API
The Courses module manages subject courses (e.g., Mathematics 10A, English Literature).
Model
{
"id": "uuid",
"name": "Mathematics 10A",
"code": "MATH-10A-2024",
"short_name": "Math 10A",
"academic_session_id": "session-uuid",
"semester_id": "semester-uuid",
"subject_id": "subject-uuid",
"subject": {"id": "...", "name": "Mathematics"},
"program_id": "program-uuid",
"education_level_id": "level-uuid",
"primary_teacher_id": "teacher-uuid",
"primary_teacher": {...},
"teacher_assistants": [...],
"status": "inprocess",
"type": "core",
"canvas_id": "12345",
"team_id": "team-uuid"
}
Status Values
Status |
Description |
|---|---|
|
Course being planned |
|
Currently running |
|
Course finished |
Course Types
Type |
Description |
|---|---|
|
Required course |
|
Elective course |
|
Optional course |
Endpoints
Standard CRUD
Method |
Endpoint |
Description |
|---|---|---|
POST |
|
List courses |
GET |
|
Get course details |
POST |
|
Create course |
PUT |
|
Update course |
DELETE |
|
Delete course |
Get Enrolled Students
Endpoint: GET /api/courses/:id/students
Returns students enrolled in the course with optional attendance data.
Import Courses
Endpoint: POST /api/courses/import
Import Enrollments
Endpoint: POST /api/courses/import-enroll
Export Courses
Endpoint: POST /api/courses/export
Teacher Assignment
primary_teacher_id: Main teacher responsible for the courseteacher_assistants: Additional teaching staff
Changes to primary teacher trigger Canvas sync if integration enabled.
Canvas Integration
When Canvas is enabled:
Course creation creates Canvas course
Enrollments sync to Canvas
Assignments import from Canvas
Grades sync from Canvas gradebook
Set need_canvas_sync: true to trigger sync.