# API v1 Base URL example: ```text http://localhost/f/lab-platform/api/v1 ``` ## Public endpoints ### `GET /meta/bootstrap` Returns: - app info - grade options - section options - practical assessment levels ### `POST /auth/register-supervisor` Body: ```json { "school_name": "مدرسة الملك عبدالله", "full_name": "أحمد محمد", "ministry_number": "123456", "email": "lab@school.edu", "password": "Secret@123" } ``` ### `POST /auth/login/staff` Body: ```json { "ministry_number": "123456", "password": "Secret@123" } ``` ### `POST /auth/login/student` Body: ```json { "full_name": "محمد أحمد علي", "birth_date": "2012-05-20" } ``` ### `POST /auth/recover-password` Supervisor body: ```json { "role": "supervisor", "ministry_number": "123456", "email": "lab@school.edu", "school_name": "مدرسة الملك عبدالله", "new_password": "NewSecret@123" } ``` Teacher body: ```json { "role": "teacher", "ministry_number": "777888", "full_name": "سارة خالد", "subject": "العلوم", "new_password": "NewSecret@123" } ``` ## Protected endpoints Requires: ```text Authorization: Bearer YOUR_TOKEN ``` ### `GET /me` ### `GET /dashboard/summary` ### `GET /teachers` ### `POST /teachers` ### `GET /students` ### `POST /students` ### `GET /lessons` ### `POST /lessons` ### `GET /reservations` ### `POST /reservations` ### `GET /missing-requests` ### `POST /missing-requests` ### `GET /practical-assessments` ### `POST /practical-assessments` ### `GET /student-feedback` ### `POST /student-feedback` ## Notes 1. Supervisors see school-level data. 2. Teachers see their own records and their students. 3. Students only see their own practical assessments and profile data.