Backend status and route map. JSON: ?format=json or Accept: application/json.
Auth: send JWT in the token header. Writes require staff or owning student. See docs/API.md.
/accounts activeAuthentication (student and staff)
| Method | Path | Summary | Auth |
|---|---|---|---|
| POST | /accounts/login |
Login; returns JWT in `token` response field | Public |
/student activeStudent advising, eligibility, progress, and course plans
| Method | Path | Summary | Auth |
|---|---|---|---|
| POST | /student/create-plan |
Create advising session + selected courses (self) | Student |
| POST | /student/academic-advising/session/:studentId |
Create advising session (self) | Student |
| GET | /student/eligibleCourses/:semesterId |
Eligible courses for semester | Student |
| GET | /student/degreeProgress |
Degree progress for authenticated student | Student |
| GET | /student/profile |
Logged-in student profile summary | Student |
| GET | /student/grades/:studentId |
Student grades (self) | Student |
| GET | /student/courses/:studentId |
Student course history (self) | Student |
| GET | /student/course-plan/semesters |
Own plan semesters + active term | Student |
| GET | /student/course-plan/:studentId/:semesterId |
Course plan (self) | Student |
| GET | /student/course-plan/detail/:semesterId |
Detailed course plan | Student |
| GET | /student/:studentId/course-plan/:semesterId |
Course plan (alt path, self) | Student |
| GET | /student/course-plans/:semesterId |
Own course plan for semester | Student |
/admin activeStaff operations: accounts, plan review, summaries, curriculum import
| Method | Path | Summary | Auth |
|---|---|---|---|
| POST | /admin/create/admin |
Create admin account | Staff |
| POST | /admin/create/student |
Create student account | Staff |
| GET | /admin/course-plan/all/:semesterId |
All course plans for semester | Staff |
| GET | /admin/course-plan/semesters/:studentId |
Semesters with plans for student | Staff |
| GET | /admin/course-plan/:semesterId/:studentId |
One student course plan | Staff |
| PUT | /admin/course-plan/review/:semesterId/:studentId/:decision |
Review plan (Confirmed) | Staff |
| GET | /admin/student/advising-sessions |
List advising sessions | Staff |
| GET | /admin/detailed-course-plan/all |
Detailed plans | Staff |
| POST | /admin/parse/programmeCourse |
Import programme courses (upload) | Staff |
| POST | /admin/parse/programmeCourseXLSX |
Import programme courses (XLSX) | Staff |
| GET | /admin/degreeProgress/all |
Degree progress for all students | Staff |
| GET | /admin/atRiskStudents |
Students at academic risk (GPA / repeat fails) | Staff |
| GET | /admin/studentsSummary |
Student status summary and analytics insights | Staff |
| GET | /admin/students |
List students | Staff |
| GET | /admin/student/:studentId |
Student detail | Staff |
| GET | /admin/student/:studentId/notes |
List dated staff notes for a student | Staff |
| POST | /admin/student/:studentId/notes |
Add a dated staff note for a student | Staff |
| GET | /admin/degreeProgress/:studentId |
Degree progress for one student | Staff |
| GET | /admin/potentialGraduates |
Cached potential graduates report | Staff |
| POST | /admin/potentialGraduates/refresh |
Rerun and cache potential graduates report | Staff |
/courses activeCourse catalogue (reads public; writes staff)
| Method | Path | Summary | Auth |
|---|---|---|---|
| GET | /courses/all |
List all courses | Public |
| GET | /courses/departments |
List departments | Public |
| GET | /courses/view/:code |
View course by code | Public |
| POST | /courses/add |
Add course | Staff |
| PUT | /courses/edit/:code |
Edit course | Staff |
| DELETE | /courses/delete/:code |
Delete course | Staff |
| GET | /courses/prereqs/:id |
Prerequisites for course | Public |
| GET | /courses/:departmenttype |
Courses by department/type | Public |
| GET | /courses/related-courses/:dept/:semNum |
Related courses | Public |
/programmes activeAcademic programmes (reads public; writes staff)
| Method | Path | Summary | Auth |
|---|---|---|---|
| GET | /programmes/all |
List programmes | Public |
| GET | /programmes/bulk/matrix |
Bulk course×programme matrix | Staff |
| PUT | /programmes/bulk/mappings |
Bulk update type mappings | Staff |
| PUT | /programmes/bulk/prerequisites |
Bulk update prereq overrides | Staff |
| POST | /programmes/bulk/snapshot |
Clone programmes into a new version | Staff |
| GET | /programmes/:programmeId |
Programme by id | Public |
| POST | /programmes/add |
Add programme | Staff |
| POST | /programmes/add/course |
Add course to programme | Staff |
| DELETE | /programmes/delete/:programmeId |
Delete programme version by id | Staff |
| GET | /programmes/offered-courses/:id |
Offered courses for programme | Public |
/types activeCredit types (L1CORE, electives, colours)
| Method | Path | Summary | Auth |
|---|---|---|---|
| GET | /types/all |
List credit types | Public |
| POST | /types/add |
Create credit type | Staff |
| PUT | /types/:id |
Update credit type | Staff |
/transcript activeTranscript details, courses, and PDF parse
| Method | Path | Summary | Auth |
|---|---|---|---|
| GET | /transcript/details/all |
All transcript headers | Staff |
| GET | /transcript/courses/all |
All transcript course rows | Staff |
| GET | /transcript/details/view/:studentId |
Transcript for student | Staff|Self |
| GET | /transcript/courses/view |
View transcript courses | Staff|Self |
| GET | /transcript/courses/viewAll/:studentId |
All courses for student | Staff|Self |
| POST | /transcript/details/add |
Add transcript header | Staff |
| POST | /transcript/courses/add |
Add transcript course | Staff |
| POST | /transcript/parseForm |
Parse uploaded transcript PDF | Staff |
| PUT | /transcript/details/edit/:studentId |
Edit transcript | Staff |
| PUT | /transcript/courses/edit |
Edit transcript course | Staff |
| DELETE | /transcript/details/delete/:studentId |
Delete transcript | Staff |
| DELETE | /transcript/courses/delete |
Delete transcript course | Staff |
| DELETE | /transcript/courses/deleteAll/:studentId |
Delete all courses for student | Staff |
| GET | /transcript/course/options |
Course options (stub) | Student |
/semester activeSemesters, offerings, and planning
| Method | Path | Summary | Auth |
|---|---|---|---|
| POST | /semester/add |
Add semester | Staff |
| GET | /semester/current |
Current semester | Public |
| PUT | /semester/update |
Update semester | Staff |
| GET | /semester/all |
List semesters | Public |
| GET | /semester/:semesterId |
Semester by id | Public |
| GET | /semester/courses/:semesterId |
Courses in semester | Public |
| GET | /semester/semesterCourses/:dept/:semNum |
Semester courses by dept | Public |
| POST | /semester/plan |
Submit plan | Student |
| GET | /semester/courses/:department/:semesterId |
Courses by department | Public |
| GET | /semester/flags/:semesterId |
Semester flags (stub) | Public |
Set DEBUG=true in .env and restart for Node, memory, and env-flag details (secrets are never printed).