{ "info": { "_postman_id": "2a2e8d47-a10e-421f-bc31-8129cf8cbfed", "name": "Academy API - Complete Collection", "description": "Complete API collection for Academy Student Portal with all endpoints including authentication, profile, courses, enrollments, invoices, workshops, progress, graduates, certificate, session classes, and assignments", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", "_exporter_id": "33173097", "_collection_link": "https://go.postman.co/collection/33173097-2a2e8d47-a10e-421f-bc31-8129cf8cbfed?source=collection_link" }, "item": [ { "name": "๐Ÿ  1. API Documentation", "item": [ { "name": "Get API Documentation", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/api/academy/docs", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "docs" ] }, "description": "Returns complete API documentation with all endpoints, parameters, and examples.\n\n๐Ÿ“Œ **No authentication required**" }, "response": [] } ] }, { "name": "๐Ÿ” 2. Authentication", "item": [ { "name": "Login / Authenticate", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"username\": \"{{username}}\",\n \"password\": \"{{password}}\"\n}" }, "url": { "raw": "{{base_url}}/api/academy/auth", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "auth" ] }, "description": "Authenticate user and get student information.\n\n๐Ÿ“Œ **No authentication required for this endpoint**\n\n**Required Parameters:**\n- `username` - User login (email, username, or mobile number)\n- `password` - User password" }, "response": [] } ] }, { "name": "๐Ÿ‘ค 3. Student Profile", "item": [ { "name": "Get Profile (Headers Auth)", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/profile", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "profile" ] }, "description": "Get authenticated student's complete profile information using headers.\n\n๐Ÿ”’ **Authentication Required**\n\n**Headers:**\n- `X-Academy-Username`\n- `X-Academy-Password`" }, "response": [] }, { "name": "Get Profile (Query Params Auth)", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/api/academy/profile?username={{username}}&password={{password}}", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "profile" ], "query": [ { "key": "username", "value": "{{username}}" }, { "key": "password", "value": "{{password}}" } ] }, "description": "Get profile using query parameters instead of headers.\n\n๐Ÿ“Œ **Alternative authentication method**" }, "response": [] } ] }, { "name": "๐Ÿ“š 4. Courses", "item": [ { "name": "Get All Courses (Public)", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/api/academy/courses?page=1&limit=10", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "courses" ], "query": [ { "key": "page", "value": "1", "description": "Page number (default: 1)" }, { "key": "limit", "value": "10", "description": "Items per page (default: 10, max: 100)" } ] }, "description": "Get all available courses with pagination.\n\n๐Ÿ“Œ **No authentication required**" }, "response": [] }, { "name": "Search Courses", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/api/academy/courses?search=php&page=1&limit=10", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "courses" ], "query": [ { "key": "search", "value": "php", "description": "Search by course name" }, { "key": "page", "value": "1" }, { "key": "limit", "value": "10" } ] }, "description": "Search courses by name." }, "response": [] }, { "name": "Get Course Details with Curriculum", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/course/{{course_id}}", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "course", "{{course_id}}" ] }, "description": "Get detailed course information including sections and lessons.\n\n๐Ÿ”’ **Authentication Required**\n\n**URL Parameters:**\n- `course_id` - ID of the course" }, "response": [] } ] }, { "name": "๐Ÿ“– 5. Lessons", "item": [ { "name": "Get Lesson Details", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/lesson/{{lesson_id}}", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "lesson", "{{lesson_id}}" ] }, "description": "Get detailed lesson information including content and materials.\n\n๐Ÿ”’ **Authentication Required**\n\n**URL Parameters:**\n- `lesson_id` - ID of the lesson" }, "response": [] } ] }, { "name": "๐Ÿ“‹ 6. Enrollments", "item": [ { "name": "Get All Enrollments", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/enrollments", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "enrollments" ] }, "description": "Get all course enrollments (no filters, default pagination).\n\n๐Ÿ”’ **Authentication Required**" }, "response": [] }, { "name": "Get Enrollments with Pagination", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/enrollments?page=1&limit=10", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "enrollments" ], "query": [ { "key": "page", "value": "1" }, { "key": "limit", "value": "10" } ] }, "description": "Get enrollments with custom pagination.\n\n**Parameters:**\n- `page` - Page number (default: 1)\n- `limit` - Items per page (default: 10, max: 100)" }, "response": [] }, { "name": "Get Enrollments by Status", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/enrollments?status=Inprogress&page=1&limit=10", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "enrollments" ], "query": [ { "key": "status", "value": "Inprogress", "description": "Filter by status: Inprogress, Complete, Dropout" }, { "key": "page", "value": "1" }, { "key": "limit", "value": "10" } ] }, "description": "Filter enrollments by status.\n\n**Status Options:**\n- `Inprogress` - Currently enrolled\n- `Complete` - Completed courses\n- `Dropout` - Dropped out courses" }, "response": [] }, { "name": "Get Enrollments by Date Range", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/enrollments?from_date=2024-01-01&to_date=2024-12-31&page=1&limit=10", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "enrollments" ], "query": [ { "key": "from_date", "value": "2024-01-01", "description": "Filter enrollments from this date (YYYY-MM-DD)" }, { "key": "to_date", "value": "2024-12-31", "description": "Filter enrollments to this date (YYYY-MM-DD)" }, { "key": "page", "value": "1" }, { "key": "limit", "value": "10" } ] }, "description": "Filter enrollments by enrollment date range." }, "response": [] }, { "name": "Get Enrollments (All Filters Combined)", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/enrollments?status=Inprogress&from_date=2024-01-01&to_date=2024-12-31&page=1&limit=10", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "enrollments" ], "query": [ { "key": "status", "value": "Inprogress" }, { "key": "from_date", "value": "2024-01-01" }, { "key": "to_date", "value": "2024-12-31" }, { "key": "page", "value": "1" }, { "key": "limit", "value": "10" } ] }, "description": "Apply all filters together: status + date range + pagination." }, "response": [] } ] }, { "name": "๐Ÿ’ฐ 7. Invoices & Payments", "item": [ { "name": "Get All Invoices", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/invoices", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "invoices" ] }, "description": "Get all active invoices (default pagination).\n\n๐Ÿ”’ **Authentication Required**" }, "response": [] }, { "name": "Get Invoices with Pagination", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/invoices?page=1&limit=10", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "invoices" ], "query": [ { "key": "page", "value": "1" }, { "key": "limit", "value": "10" } ] }, "description": "Get invoices with custom pagination." }, "response": [] }, { "name": "Get Invoices by Status", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/invoices?status=Active&page=1&limit=10", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "invoices" ], "query": [ { "key": "status", "value": "Active", "description": "Filter by status: Active, Inactive, Cancelled" }, { "key": "page", "value": "1" }, { "key": "limit", "value": "10" } ] }, "description": "Filter invoices by status." }, "response": [] }, { "name": "Get Invoices by Date Range", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/invoices?from_date=2024-01-01&to_date=2024-12-31&page=1&limit=10", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "invoices" ], "query": [ { "key": "from_date", "value": "2024-01-01" }, { "key": "to_date", "value": "2024-12-31" }, { "key": "page", "value": "1" }, { "key": "limit", "value": "10" } ] }, "description": "Filter invoices by invoice date range." }, "response": [] }, { "name": "Get Single Invoice Details", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/invoice/{{invoice_id}}", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "invoice", "{{invoice_id}}" ] }, "description": "Get detailed information for a specific invoice.\n\n๐Ÿ”’ **Authentication Required**\n\n**URL Parameters:**\n- `invoice_id` - ID of the invoice" }, "response": [] } ] }, { "name": "๐ŸŽฏ 8. Progress Tracking", "item": [ { "name": "Get Overall Progress", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/progress", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "progress" ] }, "description": "Get overall progress across all enrolled courses based on enrollment status.\n\n๐Ÿ”’ **Authentication Required**\n\n**Response includes:**\n- Total courses, completed courses, in-progress courses\n- Completion rate percentage\n- Individual course status details" }, "response": [] }, { "name": "Get Course-Specific Progress", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/progress?course_id={{course_id}}", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "progress" ], "query": [ { "key": "course_id", "value": "{{course_id}}", "description": "Filter progress for a specific course" } ] }, "description": "Get progress for a specific course only.\n\n**Query Parameters:**\n- `course_id` - ID of the course" }, "response": [] } ] }, { "name": "๐ŸŽช 9. Workshops", "item": [ { "name": "Get Attended Workshops", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/workshops", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "workshops" ] }, "description": "Get all workshops attended by the student.\n\n๐Ÿ”’ **Authentication Required**" }, "response": [] }, { "name": "Get Attended Workshops by Status", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/workshops?status=completed", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "workshops" ], "query": [ { "key": "status", "value": "completed", "description": "Filter by status: upcoming, completed, cancelled" } ] }, "description": "Filter attended workshops by status." }, "response": [] }, { "name": "Get Attended Workshops by Date Range", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/workshops?from_date=2024-01-01&to_date=2024-12-31", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "workshops" ], "query": [ { "key": "from_date", "value": "2024-01-01" }, { "key": "to_date", "value": "2024-12-31" } ] }, "description": "Filter attended workshops by workshop date range." }, "response": [] }, { "name": "Get Available Workshops (Upcoming)", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/available-workshops?page=1&limit=10", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "available-workshops" ], "query": [ { "key": "page", "value": "1" }, { "key": "limit", "value": "10" } ] }, "description": "Get all upcoming workshops available for registration.\n\n๐Ÿ”’ **Authentication Required**" }, "response": [] }, { "name": "Get Available Workshops by Date Range", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/available-workshops?from_date=2024-06-01&to_date=2024-12-31&page=1&limit=10", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "available-workshops" ], "query": [ { "key": "from_date", "value": "2024-06-01" }, { "key": "to_date", "value": "2024-12-31" }, { "key": "page", "value": "1" }, { "key": "limit", "value": "10" } ] }, "description": "Filter available workshops by date range." }, "response": [] }, { "name": "Register for Workshop", "request": { "method": "POST", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" }, { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"workshop_id\": {{workshop_id}}\n}" }, "url": { "raw": "{{base_url}}/api/academy/register-workshop", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "register-workshop" ] }, "description": "Register the authenticated student for a workshop.\n\n๐Ÿ”’ **Authentication Required**\n\n**Required Body Parameters:**\n- `workshop_id` - ID of the workshop to register for" }, "response": [] } ] }, { "name": "๐ŸŽ“ 10. Graduates & Results", "item": [ { "name": "Get All Graduates", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/graduates", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "graduates" ] }, "description": "Get all graduation/result records for the student.\n\n๐Ÿ”’ **Authentication Required**\n\n**Response includes:**\n- Program type (course/workshop)\n- Graduation date, grade, percentage score\n- Certificate information\n- Employment details\n- Achievements and success story" }, "response": [] }, { "name": "Get Graduates by Program Type", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/graduates?program_type=course", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "graduates" ], "query": [ { "key": "program_type", "value": "course", "description": "Filter by program type: course, workshop" } ] }, "description": "Filter graduates by program type." }, "response": [] }, { "name": "Get Single Graduate Details", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/graduate/{{graduate_id}}", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "graduate", "{{graduate_id}}" ] }, "description": "Get detailed information for a specific graduate record.\n\n๐Ÿ”’ **Authentication Required**\n\n**URL Parameters:**\n- `graduate_id` - ID of the graduate record" }, "response": [] }, { "name": "Get Grade Ranges", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/grade-ranges", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "grade-ranges" ] }, "description": "Get all grade ranges for result calculation.\n\n๐Ÿ”’ **Authentication Required**\n\n**Response includes:**\n- Grade name, grade point\n- Min and max percentage ranges\n- Description" }, "response": [] } ] }, { "name": "๐Ÿ“œ 11. Certificate", "item": [ { "name": "Get Certificate (HTML)", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/certificate/{{graduate_id}}", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "certificate", "{{graduate_id}}" ] }, "description": "Get styled certificate HTML for a graduate. Returns a printable certificate page.\n\n๐Ÿ”’ **Authentication Required**\n\n**URL Parameters:**\n- `graduate_id` - ID of the graduate record (must have certificate_issued = Yes)\n\n**Note:** This returns HTML, not JSON. The response can be printed directly." }, "response": [] } ] }, { "name": "๐Ÿ“… 12. Session Classes (NEW)", "item": [ { "name": "Get Session Classes", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/session/{{session_id}}/classes", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "session", "{{session_id}}", "classes" ] }, "description": "Get all scheduled classes for a specific session with lesson details.\n\n๐Ÿ”’ **Authentication Required**\n\n**URL Parameters:**\n- `session_id` - ID of the course session\n\n**Response includes:**\n- Class date, start time, end time\n- Lesson title, type, duration\n- Section information" }, "response": [] }, { "name": "Get Class Details", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/class/{{class_id}}", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "class", "{{class_id}}" ] }, "description": "Get detailed information for a specific scheduled class.\n\n๐Ÿ”’ **Authentication Required**\n\n**URL Parameters:**\n- `class_id` - ID of the scheduled class\n\n**Response includes:**\n- Class details (date, time)\n- Complete lesson information\n- Lesson materials" }, "response": [] } ] }, { "name": "๐Ÿ“ 13. Assignments (NEW)", "item": [ { "name": "Get Assignment Details", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/assignment/{{lesson_id}}", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "assignment", "{{lesson_id}}" ] }, "description": "Get assignment details including instructions, files, and submission history.\n\n๐Ÿ”’ **Authentication Required**\n\n**URL Parameters:**\n- `lesson_id` - ID of the assignment lesson\n\n**Response includes:**\n- Assignment title, description, files\n- Max attempts, passing score, due date\n- Submission history with grades and feedback\n- Remaining attempts" }, "response": [] } ] }, { "name": "๐Ÿงช 14. Error Testing", "item": [ { "name": "Invalid Login", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"username\": \"wronguser\",\n \"password\": \"wrongpass\"\n}" }, "url": { "raw": "{{base_url}}/api/academy/auth", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "auth" ] }, "description": "Test invalid login - should return 401" }, "response": [] }, { "name": "Invalid Course ID", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/course/99999", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "course", "99999" ] }, "description": "Test invalid course ID - should return 404" }, "response": [] }, { "name": "Invalid Enrollments Filters", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/enrollments?status=Invalid&page=0&limit=200", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "enrollments" ], "query": [ { "key": "status", "value": "Invalid" }, { "key": "page", "value": "0" }, { "key": "limit", "value": "200" } ] }, "description": "Test invalid filters - should return 422 validation error" }, "response": [] }, { "name": "No Auth Headers", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/api/academy/profile", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "profile" ] }, "description": "Test endpoint without authentication - should return 401" }, "response": [] }, { "name": "Invalid Graduate ID", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/graduate/99999", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "graduate", "99999" ] }, "description": "Test invalid graduate ID - should return 404" }, "response": [] }, { "name": "Invalid Session ID for Classes", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/session/99999/classes", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "session", "99999", "classes" ] }, "description": "Test invalid session ID - should return empty data (not error)" }, "response": [] }, { "name": "Invalid Assignment ID", "request": { "method": "GET", "header": [ { "key": "X-Academy-Username", "value": "{{username}}" }, { "key": "X-Academy-Password", "value": "{{password}}" } ], "url": { "raw": "{{base_url}}/api/academy/assignment/99999", "host": [ "{{base_url}}" ], "path": [ "api", "academy", "assignment", "99999" ] }, "description": "Test invalid assignment ID - should return 404" }, "response": [] } ] } ], "variable": [ { "key": "base_url", "value": "http://127.0.0.1:8000", "type": "string" }, { "key": "username", "value": "shahzadkhan317", "type": "string" }, { "key": "password", "value": "abcd1234", "type": "string" }, { "key": "student_id", "value": "", "type": "string" }, { "key": "course_id", "value": "1", "type": "string" }, { "key": "lesson_id", "value": "1", "type": "string" }, { "key": "session_id", "value": "1", "type": "string" }, { "key": "class_id", "value": "1", "type": "string" }, { "key": "workshop_id", "value": "1", "type": "string" }, { "key": "invoice_id", "value": "1", "type": "string" }, { "key": "graduate_id", "value": "1", "type": "string" } ] } responses Get Documentation to understand the integration process show this also in integration process page {{base_url}}/api/academy/docs {"success":true,"message":"Academy API Documentation","base_url":"https://staging.mexyon.dev/skedwise/public/api/academy","version":"1.0.0","authentication":{"method":"Headers or Query Parameters","headers":["X-Academy-Username","X-Academy-Password"],"query_params":["username","password"]},"endpoints":{"authentication":{"method":"POST","endpoint":"https://staging.mexyon.dev/skedwise/public/api/academy/auth","description":"Authenticate user and get student info","required_params":["username","password"],"example_request":{"username":"shahzadkhan317","password":"abcd1234"}},"profile":{"method":"GET","endpoint":"https://staging.mexyon.dev/skedwise/public/api/academy/profile","description":"Get student profile information","headers":["X-Academy-Username","X-Academy-Password"]},"enrollments":{"method":"GET","endpoint":"https://staging.mexyon.dev/skedwise/public/api/academy/enrollments","description":"Get all course enrollments","optional_params":{"status":"Filter by status (Inprogress, Complete, Dropout)","from_date":"Filter from date (YYYY-MM-DD)","to_date":"Filter to date (YYYY-MM-DD)","page":"Page number (default: 1)","limit":"Items per page (default: 10, max: 100)"},"headers":["X-Academy-Username","X-Academy-Password"]},"course_details":{"method":"GET","endpoint":"https://staging.mexyon.dev/skedwise/public/api/academy/course/{courseId}","description":"Get course details with curriculum","required_params":["courseId"],"headers":["X-Academy-Username","X-Academy-Password"]},"lesson_details":{"method":"GET","endpoint":"https://staging.mexyon.dev/skedwise/public/api/academy/lesson/{lessonId}","description":"Get lesson details","required_params":["lessonId"],"headers":["X-Academy-Username","X-Academy-Password"]},"invoices":{"method":"GET","endpoint":"https://staging.mexyon.dev/skedwise/public/api/academy/invoices","description":"Get all invoices","optional_params":{"from_date":"Filter from date (YYYY-MM-DD)","to_date":"Filter to date (YYYY-MM-DD)","status":"Filter by status (Active, Inactive, Cancelled)","page":"Page number (default: 1)","limit":"Items per page (default: 10, max: 100)"},"headers":["X-Academy-Username","X-Academy-Password"]},"workshops":{"method":"GET","endpoint":"https://staging.mexyon.dev/skedwise/public/api/academy/workshops","description":"Get workshops attended by student","optional_params":{"from_date":"Filter from date (YYYY-MM-DD)","to_date":"Filter to date (YYYY-MM-DD)","status":"Filter by status (upcoming, completed, cancelled)"},"headers":["X-Academy-Username","X-Academy-Password"]},"progress":{"method":"GET","endpoint":"https://staging.mexyon.dev/skedwise/public/api/academy/progress","description":"Get student progress across all courses (based on enrollment status)","headers":["X-Academy-Username","X-Academy-Password"]},"courses":{"method":"GET","endpoint":"https://staging.mexyon.dev/skedwise/public/api/academy/courses","description":"Get all available courses (public)","optional_params":{"page":"Page number (default: 1)","limit":"Items per page (default: 10, max: 100)","search":"Search by course name"}},"available_workshops":{"method":"GET","endpoint":"https://staging.mexyon.dev/skedwise/public/api/academy/available-workshops","description":"Get upcoming workshops available for registration","optional_params":{"from_date":"Filter from date (YYYY-MM-DD)","to_date":"Filter to date (YYYY-MM-DD)","page":"Page number (default: 1)","limit":"Items per page (default: 10, max: 100)"},"headers":["X-Academy-Username","X-Academy-Password"]},"register_workshop":{"method":"POST","endpoint":"https://staging.mexyon.dev/skedwise/public/api/academy/register-workshop","description":"Register for a workshop","required_params":["workshop_id"],"headers":["X-Academy-Username","X-Academy-Password"]},"graduates":{"method":"GET","endpoint":"https://staging.mexyon.dev/skedwise/public/api/academy/graduates","description":"Get student graduation/result information","optional_params":{"program_type":"Filter by program type (course, workshop)"},"headers":["X-Academy-Username","X-Academy-Password"]},"grade_ranges":{"method":"GET","endpoint":"https://staging.mexyon.dev/skedwise/public/api/academy/grade-ranges","description":"Get all grade ranges for result calculation","headers":["X-Academy-Username","X-Academy-Password"]}}} {{base_url}}/api/academy/auth { "success": true, "message": "Authentication successful", "data": { "student_id": 4, "customer_id": 1076, "student_name": "Shahzad Khan", "student_email": "shahzadbaloch43333@gmail.com", "student_phone": "03033940595", "status": "register", "is_user": 1, "business_id": 5 } } {{base_url}}/api/academy/profile { "success": true, "data": { "student_id": 4, "customer_id": 1076, "name": "Shahzad Khan", "email": "shahzadbaloch43333@gmail.com", "phone": "03033940595", "gender": "M", "address": null, "status": "register", "how_did_you_hear": null, "career_goals": "Certification", "special_notes": null, "is_user": 1, "registered_at": "2026-03-24 18:02:14" } } {{base_url}}/api/academy/profile?username={{username}}&password={{password}} { "success": true, "data": { "student_id": 4, "customer_id": 1076, "name": "Shahzad Khan", "email": "shahzadbaloch43333@gmail.com", "phone": "03033940595", "gender": "M", "address": null, "status": "register", "how_did_you_hear": null, "career_goals": "Certification", "special_notes": null, "is_user": 1, "registered_at": "2026-03-24 18:02:14" } } {{base_url}}/api/academy/courses?page=1&limit=10 { "success": true, "data": [ { "id": 1, "name": "2 Month Makeup Course", "description": "2 Month Makeup Course", "price": 20000 }, { "id": 3, "name": "Hair Cutting And Styling", "description": "A beginner-friendly course focused on professional hair cutting and styling techniques. Learn modern trends, proper tool usage, and essential skills to create stylish looks with confidence.", "price": 25000 }, { "id": 2, "name": "hair styling", "description": "test", "price": 50000 }, { "id": 4, "name": "hair styling", "description": "description", "price": 25000 } ], "meta": { "current_page": 1, "per_page": 10, "total": 4, "last_page": 1 } } {{base_url}}/api/academy/courses?search=hair&page=1&limit=10 { "success": true, "data": [ { "id": 3, "name": "Hair Cutting And Styling", "description": "A beginner-friendly course focused on professional hair cutting and styling techniques. Learn modern trends, proper tool usage, and essential skills to create stylish looks with confidence.", "price": 25000 }, { "id": 2, "name": "hair styling", "description": "test", "price": 50000 }, { "id": 4, "name": "hair styling", "description": "description", "price": 25000 } ], "meta": { "current_page": 1, "per_page": 10, "total": 3, "last_page": 1 } } {{base_url}}/api/academy/course/{{course_id}} { "success": true, "data": { "course": { "id": 3, "name": "Hair Cutting And Styling", "description": "A beginner-friendly course focused on professional hair cutting and styling techniques. Learn modern trends, proper tool usage, and essential skills to create stylish looks with confidence.", "price": 25000 }, "sections": [ { "id": 3, "title": "Introduction", "description": "Description of the structure of the course", "order": 1, "lessons": [ { "id": 5, "title": "Introduction to the course structure", "type": "text", "short_description": "Short description for introduction", "duration_minutes": 60, "is_free_preview": false, "is_required": true, "content": { "content": "

Duration of the course:

The proposed curriculum is composed of 10 modules that will be covered in 800 hrs. It is proposed that the course may be delivered in a six months period (Five days a week).Training can also be scheduled on part time bases or in the evening classes. The distribution of contact hours is given below:

Total 800 hrs Theory 160 hrs (20%) Practical 640 hrs (80%)


Purpose of the training programme:

The purpose of the training is to provide skilled and motivated manpower to improve the Cosmetics and Beauty Industry. This will result in provision of improved services to the ever increasing cliental of Cosmetics and Beauty Therapy sector. The trainee will be able to provide beauty and beauty therapy services on modern lines using latest techniques in a professional manner. It will also create job, as well as, business opportunities for the graduates and shall significantly contribute to the countryโ€™s economic growth.

" } }, { "id": 11, "title": "Quiz test for Lesson 1", "type": "video", "short_description": "", "duration_minutes": 0, "is_free_preview": false, "is_required": true, "content": { "source": "youtube", "url": "https://www.youtube.com/watch?v=nusRUSQQc9E", "embed_code": null } } ], "total_lessons": 2 }, { "id": 5, "title": "Manage the Salon", "description": "Manage the salon is Lesson special designed for those who want to manage the salon", "order": 2, "lessons": [ { "id": 6, "title": "Manage the Salon video", "type": "video", "short_description": "", "duration_minutes": 0, "is_free_preview": false, "is_required": true, "content": { "source": "youtube", "url": "https://www.youtube.com/watch?v=nusRUSQQc9E", "embed_code": null } }, { "id": 7, "title": "Hair Cutting Text Lesson", "type": "text", "short_description": "Short description for Hair Cutting Text Lesson", "duration_minutes": 50, "is_free_preview": true, "is_required": true, "content": { "content": "

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

" } }, { "id": 8, "title": "Quiz Test", "type": "quiz", "short_description": "Short description for Quiz Test", "duration_minutes": 50, "is_free_preview": false, "is_required": true, "content": { "total_questions": 3, "passing_score": 70 } } ], "total_lessons": 3 }, { "id": 6, "title": "Hair Stylist Training", "description": "Section for Hair Stylist Training", "order": 3, "lessons": [ { "id": 9, "title": "Text Lesson & Material For Hair Styling Training", "type": "text", "short_description": "Short description for Text Lesson", "duration_minutes": 60, "is_free_preview": true, "is_required": true, "content": { "content": "

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

" } }, { "id": 10, "title": "Video Lesson For Practice", "type": "video", "short_description": "Short description", "duration_minutes": 50, "is_free_preview": false, "is_required": true, "content": { "source": "youtube", "url": "https://www.youtube.com/watch?v=D0UnqGm_miA", "embed_code": null } } ], "total_lessons": 2 } ], "total_sections": 3, "total_lessons": 7 } } {{base_url}}/api/academy/lesson/{{lesson_id}} { "success": true, "data": { "id": 6, "title": "Manage the Salon video", "type": "video", "short_description": "", "description": "", "duration_minutes": 0, "is_free_preview": false, "is_required": true, "materials": [], "content": { "source": "youtube", "url": "https://www.youtube.com/watch?v=nusRUSQQc9E", "embed_code": null } } } {{base_url}}/api/academy/enrollments { "success": true, "data": [ { "enrollment_id": 10, "status": "Inprogress", "enrollment_date": "2026-03-25 12:50:53", "course": { "id": 3, "name": "Hair Cutting And Styling", "description": "A beginner-friendly course focused on professional hair cutting and styling techniques. Learn modern trends, proper tool usage, and essential skills to create stylish looks with confidence.", "price": 25000 }, "session": { "id": 3, "name": "hair cutting & styling - April 2026", "start_date": "2026-03-31T19:00:00.000000Z", "end_date": "2026-04-29T19:00:00.000000Z", "instructor": "Farhan Ali" }, "payment": { "total_fee": 25000, "discount": 0, "registration_fee": 0, "tax": 0, "total_receivable": 25000, "total_paid": 0, "balance": 25000, "payment_status": "Unpaid", "payment_plan": "Installment", "installment_months": 12 } } ], "meta": { "current_page": 1, "per_page": 10, "total": 1, "last_page": 1 } } {{base_url}}/api/academy/enrollments?page=1&limit=10 { "success": true, "data": [ { "enrollment_id": 10, "status": "Inprogress", "enrollment_date": "2026-03-25 12:50:53", "course": { "id": 3, "name": "Hair Cutting And Styling", "description": "A beginner-friendly course focused on professional hair cutting and styling techniques. Learn modern trends, proper tool usage, and essential skills to create stylish looks with confidence.", "price": 25000 }, "session": { "id": 3, "name": "hair cutting & styling - April 2026", "start_date": "2026-03-31T19:00:00.000000Z", "end_date": "2026-04-29T19:00:00.000000Z", "instructor": "Farhan Ali" }, "payment": { "total_fee": 25000, "discount": 0, "registration_fee": 0, "tax": 0, "total_receivable": 25000, "total_paid": 0, "balance": 25000, "payment_status": "Unpaid", "payment_plan": "Installment", "installment_months": 12 } } ], "meta": { "current_page": 1, "per_page": 10, "total": 1, "last_page": 1 } } {{base_url}}/api/academy/enrollments?status=Inprogress&page=1&limit=10 { "success": true, "data": [ { "enrollment_id": 10, "status": "Inprogress", "enrollment_date": "2026-03-25 12:50:53", "course": { "id": 3, "name": "Hair Cutting And Styling", "description": "A beginner-friendly course focused on professional hair cutting and styling techniques. Learn modern trends, proper tool usage, and essential skills to create stylish looks with confidence.", "price": 25000 }, "session": { "id": 3, "name": "hair cutting & styling - April 2026", "start_date": "2026-03-31T19:00:00.000000Z", "end_date": "2026-04-29T19:00:00.000000Z", "instructor": "Farhan Ali" }, "payment": { "total_fee": 25000, "discount": 0, "registration_fee": 0, "tax": 0, "total_receivable": 25000, "total_paid": 0, "balance": 25000, "payment_status": "Unpaid", "payment_plan": "Installment", "installment_months": 12 } } ], "meta": { "current_page": 1, "per_page": 10, "total": 1, "last_page": 1 } } {{base_url}}/api/academy/enrollments?status=Inprogress&from_date=2026-01-01&to_date=2026-12-31&page=1&limit=10 { "success": true, "data": [ { "enrollment_id": 14, "status": "Inprogress", "enrollment_date": "2026-04-24 11:26:11", "course": { "id": 3, "name": "Hair Cutting And Styling", "description": "A beginner-friendly course focused on professional hair cutting and styling techniques. Learn modern trends, proper tool usage, and essential skills to create stylish looks with confidence.", "price": 25000 }, "session": { "id": 3, "name": "hair cutting & styling - April 2026", "start_date": "2026-03-31T19:00:00.000000Z", "end_date": "2026-04-29T19:00:00.000000Z", "instructor": "Farhan Ali" }, "payment": { "total_fee": 25000, "discount": 1500, "registration_fee": 10000, "tax": 1675, "total_receivable": 35175, "total_paid": 10500, "balance": 24675, "payment_status": "Partial", "payment_plan": "Full", "installment_months": null } } ], "meta": { "current_page": 1, "per_page": 10, "total": 1, "last_page": 1 } } {{base_url}}/api/academy/invoices { "success": true, "data": [ { "id": 21, "invoice_no": "CINV-2026040002", "invoice_date": "2026-04-24T06:26:41.000000Z", "total_amount": 35175, "discount": 0, "invoice_amount": 35175, "paid": 10000, "balance": 25175, "status": "Active", "payment_date": "2026-04-24T06:26:41.000000Z", "payment_mode": "Cash", "details": [ { "type": "course_fee", "amount": 25000, "course": "Hair Cutting And Styling", "session": "hair cutting & styling - April 2026", "workshop": null }, { "type": "discount", "amount": 1500, "course": "Hair Cutting And Styling", "session": "hair cutting & styling - April 2026", "workshop": null }, { "type": "registration", "amount": 10000, "course": "Hair Cutting And Styling", "session": "hair cutting & styling - April 2026", "workshop": null }, { "type": "tax", "amount": 1675, "course": "Hair Cutting And Styling", "session": "hair cutting & styling - April 2026", "workshop": null } ] }, { "id": 20, "invoice_no": "CINV-2026040001", "invoice_date": "2026-04-24T06:26:23.000000Z", "total_amount": 35175, "discount": 0, "invoice_amount": 35175, "paid": 500, "balance": 34675, "status": "Active", "payment_date": "2026-04-24T06:26:23.000000Z", "payment_mode": "Cash", "details": [ { "type": "course_fee", "amount": 25000, "course": "Hair Cutting And Styling", "session": "hair cutting & styling - April 2026", "workshop": null }, { "type": "discount", "amount": 1500, "course": "Hair Cutting And Styling", "session": "hair cutting & styling - April 2026", "workshop": null }, { "type": "registration", "amount": 10000, "course": "Hair Cutting And Styling", "session": "hair cutting & styling - April 2026", "workshop": null }, { "type": "tax", "amount": 1675, "course": "Hair Cutting And Styling", "session": "hair cutting & styling - April 2026", "workshop": null } ] } ], "summary": { "total_invoices": 2, "total_invoiced": 70350, "total_paid": 10500, "total_balance": 59850, "paid_invoices": 0, "pending_invoices": 2 }, "meta": { "current_page": 1, "per_page": 10, "total": 2, "last_page": 1 } } {{base_url}}/api/academy/invoices?page=1&limit=10 { "success": true, "data": [ { "id": 21, "invoice_no": "CINV-2026040002", "invoice_date": "2026-04-24T06:26:41.000000Z", "total_amount": 35175, "discount": 0, "invoice_amount": 35175, "paid": 10000, "balance": 25175, "status": "Active", "payment_date": "2026-04-24T06:26:41.000000Z", "payment_mode": "Cash", "details": [ { "type": "course_fee", "amount": 25000, "course": "Hair Cutting And Styling", "session": "hair cutting & styling - April 2026", "workshop": null }, { "type": "discount", "amount": 1500, "course": "Hair Cutting And Styling", "session": "hair cutting & styling - April 2026", "workshop": null }, { "type": "registration", "amount": 10000, "course": "Hair Cutting And Styling", "session": "hair cutting & styling - April 2026", "workshop": null }, { "type": "tax", "amount": 1675, "course": "Hair Cutting And Styling", "session": "hair cutting & styling - April 2026", "workshop": null } ] }, { "id": 20, "invoice_no": "CINV-2026040001", "invoice_date": "2026-04-24T06:26:23.000000Z", "total_amount": 35175, "discount": 0, "invoice_amount": 35175, "paid": 500, "balance": 34675, "status": "Active", "payment_date": "2026-04-24T06:26:23.000000Z", "payment_mode": "Cash", "details": [ { "type": "course_fee", "amount": 25000, "course": "Hair Cutting And Styling", "session": "hair cutting & styling - April 2026", "workshop": null }, { "type": "discount", "amount": 1500, "course": "Hair Cutting And Styling", "session": "hair cutting & styling - April 2026", "workshop": null }, { "type": "registration", "amount": 10000, "course": "Hair Cutting And Styling", "session": "hair cutting & styling - April 2026", "workshop": null }, { "type": "tax", "amount": 1675, "course": "Hair Cutting And Styling", "session": "hair cutting & styling - April 2026", "workshop": null } ] } ], "summary": { "total_invoices": 2, "total_invoiced": 70350, "total_paid": 10500, "total_balance": 59850, "paid_invoices": 0, "pending_invoices": 2 }, "meta": { "current_page": 1, "per_page": 10, "total": 2, "last_page": 1 } } {{base_url}}/api/academy/invoices?status=Active&page=1&limit=10 { "success": true, "data": [ { "id": 21, "invoice_no": "CINV-2026040002", "invoice_date": "2026-04-24T06:26:41.000000Z", "total_amount": 35175, "discount": 0, "invoice_amount": 35175, "paid": 10000, "balance": 25175, "status": "Active", "payment_date": "2026-04-24T06:26:41.000000Z", "payment_mode": "Cash", "details": [ { "type": "course_fee", "amount": 25000, "course": "Hair Cutting And Styling", "session": "hair cutting & styling - April 2026", "workshop": null }, { "type": "discount", "amount": 1500, "course": "Hair Cutting And Styling", "session": "hair cutting & styling - April 2026", "workshop": null }, { "type": "registration", "amount": 10000, "course": "Hair Cutting And Styling", "session": "hair cutting & styling - April 2026", "workshop": null }, { "type": "tax", "amount": 1675, "course": "Hair Cutting And Styling", "session": "hair cutting & styling - April 2026", "workshop": null } ] }, { "id": 20, "invoice_no": "CINV-2026040001", "invoice_date": "2026-04-24T06:26:23.000000Z", "total_amount": 35175, "discount": 0, "invoice_amount": 35175, "paid": 500, "balance": 34675, "status": "Active", "payment_date": "2026-04-24T06:26:23.000000Z", "payment_mode": "Cash", "details": [ { "type": "course_fee", "amount": 25000, "course": "Hair Cutting And Styling", "session": "hair cutting & styling - April 2026", "workshop": null }, { "type": "discount", "amount": 1500, "course": "Hair Cutting And Styling", "session": "hair cutting & styling - April 2026", "workshop": null }, { "type": "registration", "amount": 10000, "course": "Hair Cutting And Styling", "session": "hair cutting & styling - April 2026", "workshop": null }, { "type": "tax", "amount": 1675, "course": "Hair Cutting And Styling", "session": "hair cutting & styling - April 2026", "workshop": null } ] } ], "summary": { "total_invoices": 2, "total_invoiced": 70350, "total_paid": 10500, "total_balance": 59850, "paid_invoices": 0, "pending_invoices": 2 }, "meta": { "current_page": 1, "per_page": 10, "total": 2, "last_page": 1 } } {{base_url}}/api/academy/progress { "success": true, "data": { "total_courses": 1, "completed_courses": 0, "in_progress_courses": 1, "dropped_courses": 0, "completion_rate": 0, "course_status": [ { "course_id": 3, "course_name": "Hair Cutting And Styling", "session_name": "hair cutting & styling - April 2026", "status": "Inprogress", "enrollment_date": "2026-04-24" } ] } } { "success": true, "data": { "total_courses": 1, "completed_courses": 1, "in_progress_courses": 0, "dropped_courses": 0, "completion_rate": 100, "course_status": [ { "course_id": 3, "course_name": "Hair Cutting And Styling", "session_name": "hair cutting & styling - April 2026", "status": "Complete", "enrollment_date": "2026-04-24" } ] } } {{base_url}}/api/academy/progress?course_id={{course_id}} { "success": true, "data": { "total_courses": 1, "completed_courses": 1, "in_progress_courses": 0, "dropped_courses": 0, "completion_rate": 100, "course_status": [ { "course_id": 3, "course_name": "Hair Cutting And Styling", "session_name": "hair cutting & styling - April 2026", "status": "Complete", "enrollment_date": "2026-04-24" } ] } } {{base_url}}/api/academy/workshops { "success": true, "data": [ { "workshop_id": 4, "title": "Hair designing workshop", "date": "2026-04-03", "start_time": "14:00:00", "end_time": "16:00:00", "instructor": "Farhan Ali", "fee": 5000, "discount": 200, "tax": 240, "total_fee": 5240, "total_paid": 5040, "balance": 200, "payment_status": "Partial", "enrollment_date": "2026-03-24 18:03:24", "attended": true } ], "total": 1, "attended_count": 1 } {{base_url}}/api/academy/workshops?status=completed { "success": true, "data": [ { "workshop_id": 4, "title": "Hair designing workshop", "date": "2026-04-03", "start_time": "14:00:00", "end_time": "16:00:00", "instructor": "Farhan Ali", "fee": 5000, "discount": 200, "tax": 240, "total_fee": 5240, "total_paid": 5040, "balance": 200, "payment_status": "Partial", "enrollment_date": "2026-03-24 18:03:24", "attended": true } ], "total": 1, "attended_count": 1 } {{base_url}}/api/academy/available-workshops?page=1&limit=10 { "success": true, "data": [ { "id": 5, "title": "Party Makeup Workshop", "date": "2026-06-05T19:00:00.000000Z", "start_time": "2026-04-24T08:00:00.000000Z", "end_time": "2026-04-24T09:30:00.000000Z", "fee": 1500 } ], "meta": { "current_page": 1, "per_page": 10, "total": 1, "last_page": 1 } } {{base_url}}/api/academy/register-workshop { "success": true, "message": "Successfully registered for workshop.", "data": { "enrollment_id": 6, "workshop_id": 5, "workshop_title": "Party Makeup Workshop", "workshop_date": "2026-06-05T19:00:00.000000Z", "total_fee": 1500, "tax": 0 } } {{base_url}}/api/academy/graduates { "success": true, "data": [ { "id": 5, "program_type": "course", "program_details": { "course_name": "Hair Cutting And Styling", "session_name": "hair cutting & styling - April 2026" }, "graduation_date": "2026-03-25", "grade": "A+", "percentage_score": 50, "grade_range": { "min": 90, "max": 100, "grade_name": "A+" }, "certificate": { "issued": true, "number": null, "issued_date": null }, "employment": { "status": null, "current_role": null, "workplace": null, "location": null }, "social_links": { "linkedin": null, "portfolio": null }, "achievements": null, "success_story": null } ], "total": 1 } {{base_url}}/api/academy/graduate/{{graduate_id}} { "success": true, "data": { "id": 5, "program_type": "course", "program_details": { "course_name": "Hair Cutting And Styling", "session_name": "hair cutting & styling - April 2026" }, "graduation_date": "2026-03-25", "grade": "A+", "percentage_score": 50, "grade_range": { "min": 90, "max": 100, "grade_name": "A+" }, "certificate": { "issued": true, "number": null, "issued_date": null }, "employment": { "status": null, "current_role": null, "workplace": null, "location": null, "employment_date": null }, "social_links": { "linkedin": null, "portfolio": null, "instagram": null }, "achievements": null, "success_story": null, "show_in_public_directory": false, "show_contact_publicly": false, "feature_as_success_story": false } } {{base_url}}/api/academy/certificate/{{graduate_id}} Certificate of Completion - Shahzad Khan
CERTIFICATE OF COMPLETION
This certificate is proudly presented to
Shahzad Khan
for successfully completing the
Hair Cutting And Styling
Session: hair cutting & styling - April 2026
Achieved Grade
A+
Score: 50.00%
Awarded on: January 01, 1970
Course Duration: 01 Apr 2026 - 30 Apr 2026
Academy
Director / Program Coordinator
Academic Department
Authorized Signatory
Certificate No:
{{base_url}}/api/academy/session/{{session_id}}/classes { "success": true, "data": [ { "id": 5, "session_id": 3, "lesson_id": 6, "class_date": "2026-04-02", "class_start_time": "13:00:00", "class_end_time": "15:44:00", "lesson_title": "Manage the Salon video", "lesson_type": "video", "duration_minutes": null, "section_title": "Manage the Salon" }, { "id": 6, "session_id": 3, "lesson_id": 7, "class_date": "2026-04-03", "class_start_time": "14:44:00", "class_end_time": "15:46:00", "lesson_title": "Hair Cutting Text Lesson", "lesson_type": "text", "duration_minutes": 50, "section_title": "Manage the Salon" }, { "id": 7, "session_id": 3, "lesson_id": 8, "class_date": "2026-04-04", "class_start_time": "14:45:00", "class_end_time": "15:45:00", "lesson_title": "Quiz Test", "lesson_type": "quiz", "duration_minutes": 50, "section_title": "Manage the Salon" }, { "id": 8, "session_id": 3, "lesson_id": 9, "class_date": "2026-04-06", "class_start_time": "18:45:00", "class_end_time": "19:45:00", "lesson_title": "Text Lesson & Material For Hair Styling Training", "lesson_type": "text", "duration_minutes": 60, "section_title": "Hair Stylist Training" }, { "id": 10, "session_id": 3, "lesson_id": 5, "class_date": "2026-04-20", "class_start_time": "21:30:00", "class_end_time": "22:29:00", "lesson_title": "Introduction to the course structure", "lesson_type": "text", "duration_minutes": 60, "section_title": "Introduction" } ] } {{base_url}}/api/academy/lesson/{{lesson_id}} --- { "success": true, "data": { "id": 1, "title": "Understanding the Basics", "type": "video", "short_description": "In this lesson, you will learn the foundational concepts.", "content": { "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" } } } ===