Skip to main content

Documentation 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.

Gobarau Academy Backend is a comprehensive Django REST Framework API purpose-built for managing the full lifecycle of a multi-wing Islamic school. Designed for developers who are integrating with, extending, or building client applications on top of the school platform, the API exposes structured REST endpoints covering everything from student admissions and academic records to finance, welfare, and communications. Whether you are building a mobile app for parents, a dashboard for administrators, or automating school workflows, this backend provides a consistent, role-aware interface to all school data.

Multi-Wing School Structure

Gobarau Academy operates across three distinct educational wings, each with its own student population and curriculum focus. Every user account and enrollment record in the system is associated with one of these wings:
WingValueDescription
RegularregularThe conventional academic programme following a standard Nigerian curriculum
IslamiyyahislamiyyahAn Islamic studies wing integrating Quranic education with general academics
TahfeeztahfeezA Quran memorisation wing focused on full Hifz completion alongside core subjects

Django Application Modules

The backend is organized into 10 domain-specific Django apps, each responsible for a distinct area of school operations:
  • accounts — Custom user model with role and wing assignment, user management endpoints, and the Person identity record that ties every human (student, staff, parent) to a unified profile.
  • administration — School-wide administrative data including academic sessions, terms, classes, and operational configuration that other apps depend on.
  • people — Detailed records for students, teachers, parents, and alumni. Extends the base Person model with role-specific profiles and relationships.
  • academics — Academic operations including subjects, timetables, attendance tracking, assessments, grades, and Tahfeez Juz progress records.
  • admissions — The full admissions pipeline: applications, status tracking (pending, accepted, rejected, waitlisted), and onboarding workflows for new students.
  • finance — Fee structures, invoices, payments, and bursar-level financial reporting. Supports cash, bank transfer, and online payment methods.
  • communication — Internal messaging, announcements, and notification delivery across the school community.
  • content — Learning resources, digital materials, and library or resource management for academic content distribution.
  • welfare — Student welfare and pastoral care: health records, disciplinary cases, merit/demerit tracking, counselling sessions, and intervention management.
  • services — Auxiliary school services such as transport routing and library borrowing records.

API Domain Areas

Administration

Academic sessions, terms, timetables, and school-wide configuration.

Accounts

User management, roles, wing assignment, and identity records.

People

Student, teacher, parent, and alumni profiles and relationships.

Admissions

Application pipeline, status tracking, and onboarding workflows.

Academics

Subjects, attendance, assessments, grades, and Tahfeez progress.

Welfare

Health records, disciplinary cases, counselling, and interventions.

Finance

Fee structures, invoices, payments, and financial reporting.

Services

Transport routing and library borrowing management.

Communication

Messaging, announcements, and notifications.

Content

Learning resources and digital academic materials.

Authentication & Authorization

All API endpoints require authentication. The backend uses JWT (JSON Web Tokens) via djangorestframework-simplejwt. Clients authenticate by exchanging credentials for a short-lived access token and a longer-lived refresh token. Every request to a protected endpoint must include the access token in the Authorization header as a Bearer token. Access to individual endpoints is further governed by role-based access control (RBAC). The system defines 10 distinct roles — from super_admin and principal down to student, parent, and nurse — and four custom permission classes (IsAdminLevel, IsStaffOrAdmin, IsOwnStudent, IsOwnWard) that restrict what each role can read or modify. See the Authentication guide for full details.

Infrastructure Notes

  • Media Storage — User profile photos and other uploaded files are stored via Cloudinary using django-cloudinary-storage, ensuring scalable cloud media delivery without local disk dependency.
  • Database — The default development database is SQLite (db.sqlite3 at the project root). Production deployments should swap this for a robust relational database such as PostgreSQL.
  • Admin Panel — The Django admin is enhanced with django-unfold for an improved UI. It is accessible at /admin/ and supports django-import-export for bulk data operations.
Gobarau Academy Backend is under active development. Endpoints, serializers, and permission logic are subject to change. Always check the latest source and this documentation before building integrations. Breaking changes will be communicated via the project changelog.

Build docs developers (and LLMs) love