Graduation Record
Base URL: http://192.168.100.250/
Endpoints
Section titled “Endpoints”| Method | Endpoint | Description |
|---|---|---|
| GET | /graduations |
List all graduations |
| GET | /graduations/{id} |
Get single graduation |
| POST | /graduations |
Create graduation |
| PUT | /graduations/{id} |
Update graduation |
| DELETE | /graduations/{id} |
Delete graduation |
| POST | /graduations/{id}/approve |
Approve graduation |
| POST | /graduations/{id}/revoke |
Revoke approval |
| POST | /graduations/sync |
Auto-sync eligible students |
| GET | /graduations/{id}/certificate |
Download certificate |
| GET | /graduations/{id}/transcript |
Download transcript |
GET /graduationsAccept: application/jsonView Single
Section titled “View Single”GET /graduations/{id}Accept: application/jsonCreate
Section titled “Create”POST /graduationsContent-Type: multipart/form-data| Field | Required | Type |
|---|---|---|
student_id |
Yes | integer |
degree_awarded |
Yes | string |
final_grade |
No | string |
graduation_date |
Yes | date |
certificate |
No | file (pdf, jpg, png) |
transcript |
No | file (pdf, jpg, png) |
remarks |
No | string |
Update
Section titled “Update”PUT /graduations/{id}Content-Type: multipart/form-dataRequest Body: Same as Create.
Delete
Section titled “Delete”DELETE /graduations/{id}Approve
Section titled “Approve”POST /graduations/{id}/approveRevoke Approval
Section titled “Revoke Approval”POST /graduations/{id}/revokeAuto-Sync
Section titled “Auto-Sync”Bulk graduate eligible students.
POST /graduations/syncDownload Certificate / Transcript
Section titled “Download Certificate / Transcript”GET /graduations/{id}/certificateGET /graduations/{id}/transcriptNotes: Filtering
Section titled “Notes: Filtering”The graduation page uses client-side filtering only. Filter values come from server-side in the same GET /graduations response — not a separate API.
Filter Data Source
Section titled “Filter Data Source”All delivered in one response at GET /graduations:
| Filter | Source | How populated |
|---|---|---|
| Academic Year | AcademicYear::orderBy('start_date', 'desc')->get() |
Server-rendered <option> |
| Faculty | Faculty::all() |
Server-rendered <option> |
| Program | Program::all() |
Server-rendered <option> |
| Status | Hardcoded in Blade | approved, pending, revoked |
| Pass Type | Hardcoded in Blade | regular, partial |
How to Use in React
Section titled “How to Use in React”Step 1: Get filter options + graduation data
GET /graduationsAccept: application/jsonReturns everything in one go — filter options + all graduation records.
Step 2: Filter client-side
Option A — Client-side filter (mirrors current behavior):
const filtered = graduations.filter(g => (!faculty || g.student.currentAcademicRecord.faculty.name === faculty) && (!program || g.student.currentAcademicRecord.program.name === program) && (!status || getStatus(g) === status) && (!passType || g.pass_type === passType));Option B — Add server-side filtering (recommended for large datasets):
GET /graduations?faculty=Management&program=BBS&status=approved&pass_type=regular&academic_year_id=10Accept: application/json