The People module is the role layer of Gobarau Academy’s identity system. Every individual in the system starts as aDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/muhammadbugaje/gobarau_backend/llms.txt
Use this file to discover all available pages before exploring further.
Person record in the Accounts app; the People app then builds specialised, role-specific profiles on top of that identity. A single person can simultaneously hold a student profile, a parent profile, or eventually an alumni profile — each captured in its own resource with fields relevant to that role. The six endpoints below cover every profile type, as well as the cross-cutting concerns of class enrollment history and parent-student guardian relationships.
All profile models (
StudentProfile, TeacherProfile, ParentProfile, AlumniProfile) extend SoftDeleteModel. Records are never hard-deleted — they are archived (soft-deleted) and can be restored. Filtering on is_deleted=False is applied automatically by the default queryset manager.Authentication & Permissions
All People endpoints require:- A valid Bearer token in the
Authorizationheader. - The authenticated user must hold a Staff or Admin role (
IsStaffOrAdminpermission class).
Students
Manage student role profiles. EachStudentProfile is linked one-to-one with a Person identity record and tracks the student’s admission number, enrollment status, and current class placement.
List / Create Students
Bearer token. Requires
IsStaffOrAdmin permission.Retrieve / Update / Delete Student
Request Fields
Primary key of the linked
Person (accounts app). One-to-one — each person may have at most one student profile.Unique admission identifier for the student (max 20 characters). Used as the primary human-readable key across the school system.
Current enrollment status of the student. One of:
| Value | Label |
|---|---|
active | Active |
graduated | Graduated |
withdrawn | Withdrawn |
transferred | Transferred |
repeated | Repeated |
ISO 8601 date on which the student was admitted, e.g.
"2024-09-01". Optional.Foreign key to
academics.Class. The class the student is currently placed in. Nullable.Foreign key to
administration.Wing. The school wing (e.g. Regular, Islamiyyah, Tahfeez). Nullable.Foreign key to
administration.Campus. The campus the student attends. Nullable.Example — Create a Student Profile
Example Response
Teachers
Manage teacher role profiles. ATeacherProfile is linked one-to-one with a Person and stores employment details, qualifications, and website visibility settings.
Request Fields
Primary key of the linked
Person. One-to-one — each person may have at most one teacher profile.Unique staff identifier (max 20 characters).
ISO 8601 date of employment commencement. Optional.
Highest academic qualification held by the teacher (max 200 characters). Optional.
Subject area or teaching specialization (max 200 characters). Optional.
Whether the teacher is currently active in the school. Inactive teachers are excluded from scheduling and timetable assignments.
Whether the teacher’s profile should appear on the school’s public website staff listing.
Example — Create a Teacher Profile
Example Response
Parents
Manage parent and guardian role profiles. AParentProfile captures a guardian’s occupational details and flags whether they are a primary guardian. Parent-to-student links are managed separately via the Ward Relationships endpoint.
Request Fields
Primary key of the linked
Person. One-to-one — each person may have at most one parent profile.The parent’s occupation or job title (max 200 characters). Optional.
The parent’s current employer or place of work (max 200 characters). Optional.
Whether this parent is designated as the primary guardian for their ward(s). Note: the primary guardian flag is also set at the
WardRelationship level for per-student granularity.Example — Create a Parent Profile
Example Response
Alumni
Manage alumni role profiles. AnAlumniProfile extends a person’s identity with post-graduation details including career information, location, mentorship availability, and public recognition flags such as the Wall of Fame.
Request Fields
Primary key of the linked
Person. One-to-one — each person may have at most one alumni profile.Optional foreign key to the alumnus’s
StudentProfile (if they were a registered student in the system). One-to-one, nullable.Four-digit year of graduation, e.g.
2019.Foreign key to
academics.Class representing the class from which the alumnus graduated. Nullable.Broad career field or industry, e.g.
"Medicine", "Engineering" (max 200 characters). Optional.Name of the alumnus’s current employer (max 200 characters). Optional.
University or higher institution attended after Gobarau Academy (max 200 characters). Optional.
City of current residence (max 100 characters). Optional.
Country of current residence (max 100 characters).
Full LinkedIn profile URL. Optional.
Whether the alumnus has opted in to mentor current students.
Free-text description of areas the alumnus can offer mentorship in. Only meaningful when
is_available_for_mentorship is true.Whether the alumni record has been verified by school administration. Typically set by staff, not self-reported.
Whether the alumnus is featured on the school’s Wall of Fame. Set by administration.
Example — Create an Alumni Profile
Example Response
Enrollments
Track a student’s class enrollment across academic sessions and terms. EachClassEnrollment record anchors a student to a specific class for a given session and term. The combination of student, class_assigned, session, and term must be unique — a student cannot be enrolled in the same class twice within the same session-term.
Request Fields
Foreign key to
StudentProfile. The student being enrolled.Foreign key to
academics.Class. The class the student is enrolling into.Foreign key to
administration.AcademicSession. The academic session for this enrollment.Foreign key to
administration.Term. The term within the session.Whether this enrollment is currently active. Set to
false to deactivate without deleting the historical record.date_enrolled is set automatically to the current date (auto_now_add=True) and is not accepted in the request body.Example — Create an Enrollment
Example Response
Ward Relationships
Define and manage the guardian-to-student relationships between parent profiles and student profiles. AWardRelationship links a ParentProfile to a StudentProfile with metadata about the relationship type and pickup authorisation. The combination of parent and student must be unique.
Request Fields
Foreign key to
ParentProfile. The guardian in the relationship.Foreign key to
StudentProfile. The ward (student) in the relationship.A free-text label describing the relationship, e.g.
"Father", "Mother", "Uncle" (max 50 characters). Optional.Whether this parent is the primary guardian for this particular student. Multiple parents can be linked to the same student, but typically only one should be marked as primary.
Whether this guardian is authorised to collect the student from school. This flag is used by the gate and attendance management systems.