{"info":{"_postman_id":"4f8b4930-16de-4284-b630-9d6e87ee6c24","name":"AnginatLearning","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"description":"<html><head></head><body></body></html>","owner":"39343750","collectionId":"4f8b4930-16de-4284-b630-9d6e87ee6c24","publishedId":"2sB2qXj2s9","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-01-28T13:58:36.000Z"},"item":[{"name":"AuthService","item":[{"name":"RegisterInstitution","id":"bdb79940-7e20-4102-bbe6-a3556d4aeae3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\": \"tarankalsi0123@gmail.com\",\r\n    \"phoneNumber\": \"9818129221\",\r\n    \"username\": \"singhjeet\",\r\n    \"password\": \"securepass\",\r\n    \"role\":\"admin\",\r\n    \"status\" : \"active\",\r\n    \"institutionData\": {\r\n        \"name\": \"cdba school\",\r\n        \"address\": \"IITM\",\r\n        \"email\": \"tarankalsi0123@gmail.com\",\r\n        \"institutionType\": \"college\",\r\n        \"domainName\": \"kalsi.com\",\r\n        \"status\" : \"active\"\r\n    }\r\n} \r\n","options":{"raw":{"language":"json"}}},"url":"{{AuthbaseURL}}/register","description":"<p>Registers a new <strong>admin user</strong> along with their institution details on the Anginat Learning platform.</p>\n<p><strong>Description:</strong></p>\n<p>This endpoint allows the creation of a new admin user and simultaneously registers the associated institution. The admin can later access and manage the institution through their dashboard.</p>\n<p><strong>Authentication:</strong></p>\n<p>No authentication required for this endpoint (open registration).</p>\n<p><em>(Can be restricted later via internal token or approval workflow if needed.)</em></p>\n<p><strong>Field Descriptions:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>email</code></td>\n<td><code>string</code></td>\n<td>✅</td>\n<td>Admin's email address</td>\n</tr>\n<tr>\n<td><code>phoneNumber</code></td>\n<td><code>string</code></td>\n<td>✅</td>\n<td>Admin's phone number</td>\n</tr>\n<tr>\n<td><code>username</code></td>\n<td><code>string</code></td>\n<td>✅</td>\n<td>Desired username for login</td>\n</tr>\n<tr>\n<td><code>password</code></td>\n<td><code>string</code></td>\n<td>✅</td>\n<td>Password for the admin account</td>\n</tr>\n<tr>\n<td><code>role</code></td>\n<td><code>string</code></td>\n<td>✅</td>\n<td>Should be <code>admin</code></td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td><code>string</code></td>\n<td>✅</td>\n<td>Status of the account, e.g., <code>active</code></td>\n</tr>\n<tr>\n<td><code>institutionData.name</code></td>\n<td><code>string</code></td>\n<td>✅</td>\n<td>Name of the institution</td>\n</tr>\n<tr>\n<td><code>institutionData.address</code></td>\n<td><code>string</code></td>\n<td>✅</td>\n<td>Physical address of the institution</td>\n</tr>\n<tr>\n<td><code>institutionData.email</code></td>\n<td><code>string</code></td>\n<td>✅</td>\n<td>Contact email for the institution</td>\n</tr>\n<tr>\n<td><code>institutionData.institutionType</code></td>\n<td><code>string</code></td>\n<td>✅</td>\n<td>Type of institution (e.g., <code>school</code>, <code>college</code>)</td>\n</tr>\n<tr>\n<td><code>institutionData.domainName</code></td>\n<td><code>string</code></td>\n<td>✅</td>\n<td>Domain or subdomain name for institution login (e.g., <code>myschool.com</code>)</td>\n</tr>\n<tr>\n<td><code>institutionData.status</code></td>\n<td><code>string</code></td>\n<td>✅</td>\n<td>Status of the institution, e.g., <code>active</code>, <code>inactive</code></td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Success Response:</strong></p>\n<p><strong>Status:</strong> <code>201 Created</code><br /><strong>Content-Type:</strong> <code>application/json</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Admin and institution registered successfully\",\n  \"adminId\": \"abc123\",\n  \"institutionId\": \"inst456\"\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Meaning</th>\n<th>Reason</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>400 Bad Request</code></td>\n<td>Validation Error</td>\n<td>Missing fields or invalid input</td>\n</tr>\n<tr>\n<td><code>409 Conflict</code></td>\n<td>Already Exists</td>\n<td>Email, phone, or domain already in use</td>\n</tr>\n<tr>\n<td><code>500 Internal Server Error</code></td>\n<td>Server failure</td>\n<td>Unexpected server issue</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example Request (cURL):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -X POST https://api.anginat.com/api/auth/register-admin \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"email\": \"tarankalsi0123@gmail.com\",\n    \"phoneNumber\": \"9818129221\",\n    \"username\": \"singhjeet\",\n    \"password\": \"securepass\",\n    \"role\": \"admin\",\n    \"status\": \"active\",\n    \"institutionData\": {\n      \"name\": \"cdba school\",\n      \"address\": \"IITM\",\n      \"email\": \"tarankalsi0123@gmail.com\",\n      \"institutionType\": \"college\",\n      \"domainName\": \"kalsi.com\",\n      \"status\": \"active\"\n    }\n  }'\n\n</code></pre>\n","urlObject":{"path":["register"],"host":["{{AuthbaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"bdb79940-7e20-4102-bbe6-a3556d4aeae3"},{"name":"Login","id":"74845d52-f11c-404c-aed6-d138cda5e2d0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"emailOrUsername\": \"springlearns@gmail.com\",\r\n    \"password\": \"securepassword123\"\r\n    // \"emailOrUsername\": \"instructor@demo.com\",\r\n    // \"password\": \"securepass\"\r\n} \r\n","options":{"raw":{"language":"json"}}},"url":"{{AuthbaseURL}}/login","description":"<p>Authenticates a user (admin, instructor, or student) and returns a secure access token for further requests.</p>\n<p><strong>Description:</strong></p>\n<p>This endpoint allows any registered user to log in using either their <strong>email</strong> or <strong>username</strong> along with a <strong>password</strong>. Upon successful authentication, the server returns a JWT or token along with user role and relevant session details.</p>\n<p><strong>Authentication:</strong></p>\n<p>Not required for this endpoint.</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n{\n  \"message\": \"Login successful\",\n  \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n  \"user\": {\n    \"id\": \"user123\",\n    \"username\": \"singhjeet\",\n    \"email\": \"taranjeet3412@gmail.com\",\n    \"role\": \"admin\"\n  }\n}\n\n</code></pre>\n<p><strong>Field Descriptions:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>emailOrUsername</code></td>\n<td><code>string</code></td>\n<td>✅</td>\n<td>The user's email or username</td>\n</tr>\n<tr>\n<td><code>password</code></td>\n<td><code>string</code></td>\n<td>✅</td>\n<td>The user's password</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Success Response:</strong></p>\n<ul>\n<li><p><strong>Status:</strong> <code>200 OK</code></p>\n</li>\n<li><p><strong>Content-Type:</strong> <code>application/json</code></p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Login successful\",\n  \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n  \"user\": {\n    \"id\": \"user123\",\n    \"username\": \"singhjeet\",\n    \"email\": \"taranjeet3412@gmail.com\",\n    \"role\": \"admin\"\n  }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Meaning</th>\n<th>Reason</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>400 Bad Request</code></td>\n<td>Validation failed</td>\n<td>Missing or malformed fields</td>\n</tr>\n<tr>\n<td><code>401 Unauthorized</code></td>\n<td>Invalid credentials</td>\n<td>Wrong email/username or password</td>\n</tr>\n<tr>\n<td><code>500 Internal Server Error</code></td>\n<td>Server issue</td>\n<td>Something went wrong on the server</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["login"],"host":["{{AuthbaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"74845d52-f11c-404c-aed6-d138cda5e2d0"},{"name":"ForgotPassword","id":"f10227a9-aec9-4425-82b8-fa433ba2b193","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"email\": \"tarankhalsa3412@gmail.com\",\r\n  \"otpType\": \"email\"                 \r\n}","options":{"raw":{"language":"json"}}},"url":"{{AuthbaseURL}}/forgot-password","description":"<h2 id=\"forgot-password-endpoint\">Forgot Password Endpoint</h2>\n<p>This endpoint allows users to initiate the password recovery process by sending a request to receive a One-Time Password (OTP) via email. It is essential for users who have forgotten their passwords and need to reset them securely.</p>\n<h3 id=\"request-format\">Request Format</h3>\n<ul>\n<li><p><strong>Method</strong>: POST</p>\n</li>\n<li><p><strong>URL</strong>: <code>{{AuthbaseURL}}/forgot-password</code></p>\n</li>\n</ul>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request body must be in JSON format and should include the following parameters:</p>\n<ul>\n<li><p><strong>email</strong> (string): The email address associated with the user's account. This is where the OTP will be sent.</p>\n</li>\n<li><p><strong>otpType</strong> (string): Specifies the type of OTP to be sent. In this case, it should be set to \"email\" to indicate that the OTP should be sent to the provided email address.</p>\n</li>\n</ul>\n<p><strong>Example Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"email\": \"user@example.com\",\n  \"otpType\": \"email\"\n}\n\n</code></pre>\n<h3 id=\"response-structure\">Response Structure</h3>\n<p>Upon a successful request, the server will respond with a confirmation message indicating that the OTP has been sent to the user's email. The response will typically include:</p>\n<ul>\n<li><p><strong>status</strong> (string): Indicates the success or failure of the request.</p>\n</li>\n<li><p><strong>message</strong> (string): A descriptive message providing further details about the request outcome.</p>\n</li>\n</ul>\n<p><strong>Example Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"success\",\n  \"message\": \"OTP has been sent to your email.\"\n}\n\n</code></pre>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li><p>Ensure that the email provided is valid and registered in the system to receive the OTP.</p>\n</li>\n<li><p>The OTP sent via email will be required for the subsequent steps to reset the password.</p>\n</li>\n</ul>\n","urlObject":{"path":["forgot-password"],"host":["{{AuthbaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"f10227a9-aec9-4425-82b8-fa433ba2b193"},{"name":"UpdatePassword","id":"475cd8cb-b687-4a6b-8b58-413338be7f44","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"email\": \"taranjeet3412@gmail.com\",\r\n  \"newPassword\" :\"securepass\"              \r\n} ","options":{"raw":{"language":"json"}}},"url":"{{AuthbaseURL}}/update-password","description":"<h3 id=\"update-password-endpoint\">Update Password Endpoint</h3>\n<p>This endpoint allows users to update their password associated with their email address.</p>\n<h4 id=\"request\">Request</h4>\n<ul>\n<li><p><strong>Method</strong>: POST</p>\n</li>\n<li><p><strong>URL</strong>: <code>{{AuthbaseURL}}/update-password</code></p>\n</li>\n<li><p><strong>Content-Type</strong>: application/json</p>\n</li>\n</ul>\n<h4 id=\"request-body-parameters\">Request Body Parameters</h4>\n<ul>\n<li><p><strong>email</strong> (string): The email address of the user whose password is being updated. This is required to identify the account.</p>\n</li>\n<li><p><strong>newPassword</strong> (string): The new password that the user wishes to set. This should meet the security requirements set by the application.</p>\n</li>\n</ul>\n<h4 id=\"expected-response\">Expected Response</h4>\n<p>Upon a successful request, the server will respond with a confirmation message indicating that the password has been updated. The response will typically include:</p>\n<ul>\n<li><p>A success status code (e.g., 200 OK)</p>\n</li>\n<li><p>A message confirming the password update</p>\n</li>\n</ul>\n<h4 id=\"notes\">Notes</h4>\n<ul>\n<li><p>Ensure that the new password complies with any specified security policies (e.g., minimum length, complexity).</p>\n</li>\n<li><p>If the email provided does not correspond to an existing account, an appropriate error message will be returned.</p>\n</li>\n<li><p>This endpoint is intended for authenticated users, and appropriate authentication headers should be included in the request.</p>\n</li>\n</ul>\n<p>Make sure to handle any errors gracefully in your application to provide a better user experience.</p>\n","urlObject":{"path":["update-password"],"host":["{{AuthbaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"475cd8cb-b687-4a6b-8b58-413338be7f44"},{"name":"GetInstitutionDetails","id":"8c560e69-77ec-4fa3-ae14-f65886134020","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY4Mzg1ZWJkNjJlN2ZkMTE1N2EzN2ZhYyIsInJvbGUiOiJpbnN0cnVjdG9yIiwiaW5zdGl0dXRpb24iOiI2ODMwNmM5ODM4N2EwMjdmOGE3MDkyOWIiLCJpbnN0aXR1dGlvblR5cGUiOiJjb2xsZWdlIiwiaWF0IjoxNzUxNzg5MTY1LCJleHAiOjE3NTE3OTI3NjV9.LqzEUJRcITeWMPdtovah2KzW89EQjJY6niBg4UUq3O4","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{AuthbaseURL}}/get-institution","description":"<h2 id=\"get-institution-api\">Get Institution API</h2>\n<p>This endpoint retrieves information about institutions from the system. It is designed to provide users with a list of available institutions, which can be useful for various purposes such as selection or verification.</p>\n<h3 id=\"request\">Request</h3>\n<ul>\n<li><p><strong>Method</strong>: GET</p>\n</li>\n<li><p><strong>Endpoint</strong>: <code>{{AuthbaseURL}}/get-institution</code></p>\n</li>\n</ul>\n<h3 id=\"input-parameters\">Input Parameters</h3>\n<p>This endpoint does not require any input parameters in the request body. The request is made without any specific payload.</p>\n<h3 id=\"response-structure\">Response Structure</h3>\n<p>The response will contain a list of institutions, typically structured as follows:</p>\n<ul>\n<li><p><strong>institutions</strong>: An array of institution objects, where each object may contain:</p>\n<ul>\n<li><p><strong>id</strong>: Unique identifier for the institution.</p>\n</li>\n<li><p><strong>name</strong>: The name of the institution.</p>\n</li>\n<li><p><strong>type</strong>: The type of institution (e.g., university, college).</p>\n</li>\n<li><p><strong>location</strong>: The geographical location of the institution.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"institutions\": [\n    {\n      \"id\": \"123\",\n      \"name\": \"Example University\",\n      \"type\": \"University\",\n      \"location\": \"City, Country\"\n    },\n    {\n      \"id\": \"456\",\n      \"name\": \"Sample College\",\n      \"type\": \"College\",\n      \"location\": \"City, Country\"\n    }\n  ]\n}\n\n</code></pre>\n<h3 id=\"usage-notes\">Usage Notes</h3>\n<ul>\n<li><p>Ensure that you have the necessary authentication to access this endpoint.</p>\n</li>\n<li><p>The response may vary depending on the available institutions in the system.</p>\n</li>\n<li><p>This endpoint is useful for applications that require institution selection or display of available options to users.</p>\n</li>\n</ul>\n","urlObject":{"path":["get-institution"],"host":["{{AuthbaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"8c560e69-77ec-4fa3-ae14-f65886134020"},{"name":"GetUserDetails","id":"9bb90a88-ebb9-4737-b6f9-2859623ee73e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY4NTU1NzE5ZmYwMGUwOGYyMTdiMzE4OSIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjc1Njg5NGJkMmFjZDFiMGVmNDMyOWU3IiwiaW5zdGl0dXRpb25UeXBlIjoic2Nob29sIiwiaWF0IjoxNzUxNzkwNjgyLCJleHAiOjE3NTE3OTQyODJ9.FcqYWIMyYNVuHTwLMmnkQpHMn9Zj6a8iD5Tm5vLpLro","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{AuthbaseURL}}/get-user","description":"<h3 id=\"get-user-information\">Get User Information</h3>\n<p>This endpoint retrieves user information based on the provided authentication credentials.</p>\n<h4 id=\"request-method\">Request Method</h4>\n<p><code>GET</code></p>\n<h4 id=\"endpoint\">Endpoint</h4>\n<p><code>{{AuthbaseURL}}/get-user</code></p>\n<h4 id=\"request-parameters\">Request Parameters</h4>\n<p>This endpoint does not require any additional query parameters or body content. It relies on the authentication context established in the request headers.</p>\n<h4 id=\"expected-response-format\">Expected Response Format</h4>\n<p>Upon a successful request, the server responds with a JSON object containing user details. The structure of the response typically includes:</p>\n<ul>\n<li><p><code>userId</code>: Unique identifier for the user.</p>\n</li>\n<li><p><code>username</code>: The user's username.</p>\n</li>\n<li><p><code>email</code>: The user's email address.</p>\n</li>\n<li><p><code>profile</code>: Additional profile information.</p>\n</li>\n</ul>\n<p>In case of an error, the response will include an error message detailing the issue encountered during the request.</p>\n<p>Ensure that the request is made with valid authentication to receive the appropriate user data.</p>\n","urlObject":{"path":["get-user"],"host":["{{AuthbaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"9bb90a88-ebb9-4737-b6f9-2859623ee73e"},{"name":"RefreshToken","id":"967e1877-b4d0-431f-8564-a28fb1f6068e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY4MzA2Yzk4Mzg3YTAyN2Y4YTcwOTI5ZCIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjgzMDZjOTgzODdhMDI3ZjhhNzA5MjliIiwiaW5zdGl0dXRpb25UeXBlIjoiY29sbGVnZSIsImlhdCI6MTc1MDc2MTI0MiwiZXhwIjoxNzUxMzY2MDQyfQ.PIKSoqkLnGJV06qD0Aan2gzoy6RgV-H0XmLEV_4GNe8","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{AuthbaseURL}}/refresh-token","description":"<h2 id=\"refresh-token-api\">Refresh Token API</h2>\n<p>This endpoint allows users to refresh their authentication tokens. It is essential for maintaining user sessions without requiring them to log in again. By sending a valid refresh token, the user can obtain a new access token, which can be used for subsequent API requests.</p>\n<h3 id=\"request\">Request</h3>\n<p><strong>Method:</strong> POST<br /><strong>URL:</strong> <code>{{AuthbaseURL}}/auth/refresh-token</code></p>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request must include the following parameters in the body:</p>\n<ul>\n<li><strong>refresh_token</strong> (string): The refresh token issued to the user during the initial authentication. This token is required to obtain a new access token.</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>Upon a successful request, the API will return a response with the following structure:</p>\n<ul>\n<li><p><strong>access_token</strong> (string): The new access token that can be used for authenticating subsequent requests.</p>\n</li>\n<li><p><strong>expires_in</strong> (integer): The duration (in seconds) until the access token expires.</p>\n</li>\n<li><p><strong>token_type</strong> (string): The type of token returned, typically \"Bearer\".</p>\n</li>\n</ul>\n<h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"access_token\": \"new_access_token_value\",\n  \"expires_in\": 3600,\n}\n\n</code></pre>\n<p>This endpoint is crucial for maintaining secure user sessions and ensuring a seamless user experience by allowing token renewal without re-authentication.</p>\n","urlObject":{"path":["refresh-token"],"host":["{{AuthbaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"967e1877-b4d0-431f-8564-a28fb1f6068e"},{"name":"Create User","id":"e2dd7c91-1791-4d1b-8add-8b42edc10b3c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"body":{"mode":"raw","raw":"{   \r\n    \"name\":\"Proffessor Simmi Chawla\",\r\n    \"email\": \"instructor@demo.com\",\r\n    \"phoneNumber\": \"1234567890\",\r\n    \"username\": \"instructor01\",\r\n    \"password\": \"securepass\",\r\n    \"role\":\"instructor\",\r\n    \"status\" : \"active\",\r\n    \"institutionId\":\"68306c98387a027f8a70929b\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{AuthbaseURL}}/create-user","description":"<h2 id=\"create-user-api\">Create User API</h2>\n<p>This endpoint allows you to create a new user in the system. It accepts user details in the request body and returns a confirmation of the user creation.</p>\n<h3 id=\"http-method\">HTTP Method</h3>\n<p><code>POST</code></p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<p><code>{{AuthbaseURL}}/create-user</code></p>\n<h3 id=\"request-body-parameters\">Request Body Parameters</h3>\n<p>The request body must be in JSON format and include the following parameters:</p>\n<ul>\n<li><p><code>name</code> (string): The full name of the user.</p>\n</li>\n<li><p><code>email</code> (string): The email address of the user.</p>\n</li>\n<li><p><code>phoneNumber</code> (string): The contact number of the user.</p>\n</li>\n<li><p><code>username</code> (string): The unique username for the user.</p>\n</li>\n<li><p><code>password</code> (string): The password for the user account.</p>\n</li>\n<li><p><code>role</code> (string): The role assigned to the user (e.g., instructor).</p>\n</li>\n<li><p><code>status</code> (string): The current status of the user (e.g., active).</p>\n</li>\n<li><p><code>institutionId</code> (string): The identifier for the institution the user is associated with.</p>\n</li>\n</ul>\n<h3 id=\"expected-response-format\">Expected Response Format</h3>\n<p>Upon a successful request, the API will return a response confirming the creation of the user. The response typically includes a status message and may also contain the newly created user's details.</p>\n<p>Make sure to provide valid data for all required fields to ensure successful user creation.</p>\n","urlObject":{"path":["create-user"],"host":["{{AuthbaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"e2dd7c91-1791-4d1b-8add-8b42edc10b3c"},{"name":"verifyToken","id":"75a418c7-49cb-4bb0-a451-574d59e5d8f6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"url":"{{AuthbaseURL}}/verify-token","description":"<h2 id=\"verify-token-endpoint\">Verify Token Endpoint</h2>\n<p>This endpoint is used to verify the validity of a provided authentication token. It checks whether the token is still active and associated with a valid user session.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<ul>\n<li><strong>Authorization</strong>: This is a required header parameter. It should contain the token that needs to be verified. The format typically follows the pattern <code>Bearer {token}</code>.</li>\n</ul>\n<h3 id=\"expected-response\">Expected Response</h3>\n<p>On a successful verification, the response will include:</p>\n<ul>\n<li><p><strong>status</strong>: Indicates the result of the verification process (e.g., success or failure).</p>\n</li>\n<li><p><strong>userId</strong>: The identifier of the user associated with the token, if valid.</p>\n</li>\n<li><p><strong>expiresAt</strong>: The expiration time of the token, indicating how long it remains valid.</p>\n</li>\n</ul>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li><p>Ensure that the token is included in the Authorization header to avoid authentication errors.</p>\n</li>\n<li><p>If the token is invalid or expired, the response will indicate the failure and may include an error message.</p>\n</li>\n</ul>\n","urlObject":{"path":["verify-token"],"host":["{{AuthbaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"75a418c7-49cb-4bb0-a451-574d59e5d8f6"},{"name":"Find User","id":"402eaa72-f0f2-4883-b63d-84ebadb04391","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"phoneNumber\":\"8287193995\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{AuthbaseURL}}/find-user","description":"<h3 id=\"find-user-endpoint\">Find User Endpoint</h3>\n<p>This endpoint allows you to find a user in the system based on their phone number. It is primarily used for user identification and retrieval of user-related information.</p>\n<h4 id=\"request\">Request</h4>\n<ul>\n<li><p><strong>Method:</strong> POST</p>\n</li>\n<li><p><strong>URL:</strong> <code>{{AuthbaseURL}}/find-user</code></p>\n</li>\n<li><p><strong>Content-Type:</strong> application/json</p>\n</li>\n</ul>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request body must be in JSON format and should include the following parameter:</p>\n<ul>\n<li><strong>phoneNumber</strong> (string): The phone number of the user you want to find. This should be a valid phone number format.</li>\n</ul>\n<p><strong>Example Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"phoneNumber\": \"8287193995\"\n}\n\n</code></pre>\n<h4 id=\"response\">Response</h4>\n<p>The expected response will include user details if the phone number matches an existing user in the system. The structure of the response will typically contain user information such as user ID, name, and other relevant details.</p>\n<h4 id=\"notes\">Notes</h4>\n<ul>\n<li><p>Ensure that the phone number provided is correctly formatted to avoid errors.</p>\n</li>\n<li><p>This endpoint is useful for applications that require user verification or identification based on phone numbers.</p>\n</li>\n</ul>\n","urlObject":{"path":["find-user"],"host":["{{AuthbaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"402eaa72-f0f2-4883-b63d-84ebadb04391"},{"name":"Upload User Profile Image","id":"d9cb41eb-08c1-4eae-9121-578f3d2afcad","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"profile","type":"file","uuid":"43bf9cbf-e465-40e6-a74e-fd1182be662f","src":"/C:/Users/Taran/Downloads/taranProfile.jpg"}]},"url":"{{AuthbaseURL}}/upload-profile-image","urlObject":{"path":["upload-profile-image"],"host":["{{AuthbaseURL}}"],"query":[{"disabled":true,"key":"","value":""}],"variable":[]}},"response":[],"_postman_id":"d9cb41eb-08c1-4eae-9121-578f3d2afcad"},{"name":"Update User Details","id":"c12e2e0c-e28a-4cce-b0b8-a0b469b524d7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"name\":\"Taranjit Singh\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{AuthbaseURL}}/update-user","urlObject":{"path":["update-user"],"host":["{{AuthbaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"c12e2e0c-e28a-4cce-b0b8-a0b469b524d7"}],"id":"a1915c78-17d0-4961-8a13-f8fc333ab16a","_postman_id":"a1915c78-17d0-4961-8a13-f8fc333ab16a","description":""},{"name":"CourseService","item":[{"name":"CreateCourse","id":"858d131c-1a1c-45f4-bb28-28f37550cfb5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"thumbnail","type":"file","fileNotInWorkingDirectoryWarning":"This file isn't in your working directory. Teammates you share this request with won't be able to use this file. To make collaboration easier you can setup your working directory in Settings.","filesNotInWorkingDirectory":["/C:/Users/micha/Pictures/Screenshots/Screenshot 2024-09-23 014038.png"],"src":"/C:/Users/Taran/Downloads/image.png"},{"key":"payload","value":"{\n  \"institutionCode\": \"AL_24_0001\",\n  \"institution\": \"6726257ac9656e2f6add3c55\",\n  \"courseName\": \"Advanced Html\",\n  \"description\": \"Learn advanced concepts of JavaScript programming.\",\n  \"pricingType\": \"batch\",\n  \"price\": [\n        {\n            \"currency\": \"NGN\",\n            \"offerPrice\": 5000,\n            \"standardPrice\": 10000\n        }\n    ],\n \n  \"languages\": [\"English\", \"Spanish\"],\n  \"batches\": [\n    {\n      \"name\": \"Evening Batch\",\n      \"startDate\": \"205-12-15\",\n      \"endDate\": \"2025-12-19\",\n      \"timeZone\": \"6:00 PM - 8:00 PM\",\n      \"seats\": 25,\n      \"status\": \"active\"\n    }\n  ],\n  \"status\": \"active\"\n}\n","type":"text"}]},"url":"{{CoursebaseURL}}/courses/create-course","description":"<h3 id=\"📘-create-a-new-course\">📘 Create a New Course</h3>\n<p><strong>Endpoint:</strong><br /><code>POST {{CoursebaseURL}}/courses/create-course</code></p>\n<hr />\n<h4 id=\"📄-description\">📄 Description:</h4>\n<p>Creates a new course with its pricing, instructors, batches, languages, and thumbnail image.</p>\n<hr />\n<h4 id=\"🔒-authorization\">🔒 Authorization:</h4>\n<p>✅ Required (e.g., Bearer Token)</p>\n<hr />\n<h4 id=\"📤-content-type\">📤 Content-Type:</h4>\n<p><code>multipart/form-data</code></p>\n<hr />\n<h4 id=\"📁-form-data-fields\">📁 Form Data Fields:</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>payload</code></td>\n<td>String (JSON)</td>\n<td>✅</td>\n<td>JSON string of the full course data.</td>\n</tr>\n<tr>\n<td><code>thumbnail</code></td>\n<td>File (Image)</td>\n<td>✅</td>\n<td>Course thumbnail image.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h4 id=\"🧾-example-payload-as-stringified-json\">🧾 Example <code>payload</code> (as stringified JSON):</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"institutionCode\": \"AL_24_0001\",\n  \"institution\": \"673f4bfa1c208ed487d658b0\",\n  \"courseName\": \"Advanced Html\",\n  \"description\": \"Learn advanced concepts of JavaScript programming.\",\n  \"pricingType\": \"batch\",\n  \"price\": [\n    {\n      \"currency\": \"NGN\",\n      \"offerPrice\": 5000,\n      \"standardPrice\": 10000\n    }\n  ],\n  \"instructor\": [\"64b8c9ede7891c001edc78ac\"],\n  \"languages\": [\"English\", \"Spanish\"],\n  \"batches\": [\n    {\n      \"name\": \"Evening Batch\",\n      \"startDate\": \"2024-12-15\",\n      \"endDate\": \"2024-12-19\",\n      \"timeZone\": \"6:00 PM - 8:00 PM\",\n      \"seats\": 25,\n      \"status\": \"active\"\n    }\n  ],\n  \"status\": \"active\"\n}\n\n</code></pre><hr />\n<h4 id=\"📸-example-thumbnail\">📸 Example <code>thumbnail</code>:</h4>\n<p>Use a file field named <code>thumbnail</code> and attach a <code>.png</code>, <code>.jpg</code>, or <code>.jpeg</code> file representing the course image.</p>\n<hr />\n<h4 id=\"✅-success-response\">✅ Success Response:</h4>\n<ul>\n<li><p><strong>Code:</strong> <code>201 Created</code></p>\n</li>\n<li><p><strong>Body Example:</strong></p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"success\": true,\n  \"message\": \"Course created successfully.\",\n  \"data\": {\n    \"_id\": \"67cf5fc7b28fdd8eccca67d9\",\n    \"courseName\": \"Advanced Html\",\n    ...\n  }\n}\n\n</code></pre>","urlObject":{"path":["courses","create-course"],"host":["{{CoursebaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"858d131c-1a1c-45f4-bb28-28f37550cfb5"},{"name":"EditCourse","id":"25fe6c1f-b0e3-41db-833a-4e7797a2593e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"},{"key":"Content-Type","value":"multipart/form-data","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"thumbnail","type":"file","fileNotInWorkingDirectoryWarning":"This file isn't in your working directory. Teammates you share this request with won't be able to use this file. To make collaboration easier you can setup your working directory in Settings.","filesNotInWorkingDirectory":["/C:/Users/micha/Pictures/Screenshots/Screenshot 2024-09-22 214032.png"],"src":"/C:/Users/micha/Pictures/Screenshots/Screenshot 2024-09-22 214032.png","disabled":true},{"key":"payload","value":"{\n  \"courseName\": \"Advanced Html\",\n  \"description\": \"Learn advanced concepts of JavaScript programming.\",\n \"pricingType\": \"batch\",\n  \"price\": [\n        {\n            \"currency\": \"NGN\",\n            \"offerPrice\": 5000,\n            \"standardPrice\": 10000\n        }\n    ],\n  \"languages\": [\"English\", \"Spanish\"],\n  \"status\": \"active\"\n}\n","type":"text"}]},"url":"{{CoursebaseURL}}/courses/6749d7def99edee8975297b1","description":"<h3 id=\"update-course-thumbnail\">Update Course Thumbnail</h3>\n<p>This endpoint allows you to update the thumbnail for a specific course identified by its unique ID. The course ID in this example is <code>6749c0bdc6a2b3794938118c</code>.</p>\n<h4 id=\"request-format\">Request Format</h4>\n<ul>\n<li><p><strong>Method</strong>: PUT</p>\n</li>\n<li><p><strong>URL</strong>: <code>{{CoursebaseURL}}/courses/{courseId}</code></p>\n</li>\n<li><p><strong>Request Body</strong>: The request body should be sent as form-data and must include the following parameters:</p>\n<ul>\n<li><p><code>thumbnail</code>: A file parameter that represents the new thumbnail image for the course.</p>\n</li>\n<li><p><code>payload</code>: A text parameter that may contain additional information or metadata related to the thumbnail update.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h4 id=\"expected-response-format\">Expected Response Format</h4>\n<p>Upon a successful update, the server will respond with a confirmation message, typically including the status of the operation and any relevant details about the updated course. The response will be in JSON format, containing keys that indicate the success of the request and the updated course information.</p>\n","urlObject":{"path":["courses","6749d7def99edee8975297b1"],"host":["{{CoursebaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"25fe6c1f-b0e3-41db-833a-4e7797a2593e"},{"name":"AddPricing","id":"3a1c2d0b-c15d-4642-937e-44b3a6bf2d49","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MjYyNTdhYzk2NTZlMmY2YWRkM2M1NyIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjcyNjI1N2FjOTY1NmUyZjZhZGQzYzU1IiwiaWF0IjoxNzM0MTMzODczLCJleHAiOjE3MzQxMzc0NzN9.x-fUDLEIQJTRd4MdKPUltbRoaM5voHb8iroeXwJZ9VY","type":"text"},{"key":"Content-Type","value":"multipart/form-data","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"file","type":"file","src":"/C:/Users/micha/Downloads/mycsv.csv"},{"key":"payload","value":"{\n  \"courseName\": \"Advanced Html\",\n  \"description\": \"Learn advanced concepts of JavaScript programming.\",\n  \"pricingType\": \"one-time\",\n    \"languages\": [\"English\", \"Spanish\"],\n  \"status\": \"active\"\n}","type":"text","disabled":true}]},"url":"{{CoursebaseURL}}/courses/67461cea3d3904acad48fd6e/pricing/upload","description":"<h2 id=\"upload-course-pricing\">Upload Course Pricing</h2>\n<p>This endpoint allows you to upload a pricing file for a specific course identified by its unique ID. The request is made via an HTTP POST method to the specified course's pricing upload URL.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<ul>\n<li><strong>file</strong> (type: file): This parameter is required and should contain the pricing file you wish to upload for the course. Ensure that the file format is compatible with the system requirements.</li>\n</ul>\n<h3 id=\"expected-response\">Expected Response</h3>\n<p>Upon a successful upload, the API will return a response indicating the status of the upload. The response typically includes information such as:</p>\n<ul>\n<li><p>Confirmation of the upload</p>\n</li>\n<li><p>Any relevant metadata about the uploaded file</p>\n</li>\n<li><p>Error messages if the upload fails</p>\n</li>\n</ul>\n<h3 id=\"notes-for-users\">Notes for Users</h3>\n<ul>\n<li><p>Make sure that the file you are uploading adheres to the required format and size limitations.</p>\n</li>\n<li><p>Ensure that the course ID in the URL is correct, as this determines which course the pricing file will be associated with.</p>\n</li>\n<li><p>Check for appropriate permissions to upload files to the specified course.</p>\n</li>\n</ul>\n<p>This endpoint is crucial for maintaining up-to-date pricing information for courses in the system.</p>\n","urlObject":{"path":["courses","67461cea3d3904acad48fd6e","pricing","upload"],"host":["{{CoursebaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"3a1c2d0b-c15d-4642-937e-44b3a6bf2d49"},{"name":"GetCourses","id":"40c35cb0-2d7f-4659-aa71-f947e59f2ef6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY4Mzg1ZWJkNjJlN2ZkMTE1N2EzN2ZhYyIsInJvbGUiOiJpbnN0cnVjdG9yIiwiaW5zdGl0dXRpb24iOiI2ODMwNmM5ODM4N2EwMjdmOGE3MDkyOWIiLCJpbnN0aXR1dGlvblR5cGUiOiJjb2xsZWdlIiwiaWF0IjoxNzUxNzg5MTY1LCJleHAiOjE3NTE3OTI3NjV9.LqzEUJRcITeWMPdtovah2KzW89EQjJY6niBg4UUq3O4","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{CoursebaseURL}}/courses","description":"<h3 id=\"get-courses\">Get Courses</h3>\n<p>This endpoint retrieves a list of courses available in the system. It allows users to access course information, which may include details such as course titles, descriptions, and other relevant metadata.</p>\n<h4 id=\"request-format\">Request Format</h4>\n<ul>\n<li><p><strong>Method:</strong> GET</p>\n</li>\n<li><p><strong>URL:</strong> <code>{{CoursebaseURL}}/courses</code></p>\n</li>\n<li><p><strong>Request Body:</strong> None</p>\n</li>\n</ul>\n<h4 id=\"response-structure\">Response Structure</h4>\n<p>The response will be in JSON format and typically includes an array of course objects. Each course object may contain the following fields:</p>\n<ul>\n<li><p><code>id</code>: Unique identifier for the course</p>\n</li>\n<li><p><code>title</code>: Title of the course</p>\n</li>\n<li><p><code>description</code>: Brief description of the course</p>\n</li>\n<li><p><code>duration</code>: Duration of the course</p>\n</li>\n<li><p><code>instructor</code>: Name of the instructor for the course</p>\n</li>\n</ul>\n<p>The response will provide users with the necessary details to understand the courses offered.</p>\n","urlObject":{"path":["courses"],"host":["{{CoursebaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"40c35cb0-2d7f-4659-aa71-f947e59f2ef6"},{"name":"GetCourse","id":"2cf409c8-b017-4856-a4a9-c5e68ec21173","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MjYyNTdhYzk2NTZlMmY2YWRkM2M1NyIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjcyNjI1N2FjOTY1NmUyZjZhZGQzYzU1IiwiaWF0IjoxNzM0NDYxNjM1LCJleHAiOjE3MzQ0NjUyMzV9.VF2LsZMWQB-zczCltdrhpANC2rN-o-DH5wfchPyJXhY","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{CoursebaseURL}}/courses/6749d7def99edee8975297b1","description":"<h3 id=\"get-course-details\">Get Course Details</h3>\n<p>This endpoint retrieves detailed information about a specific course identified by its unique course ID.</p>\n<h4 id=\"request\">Request</h4>\n<ul>\n<li><p><strong>Method</strong>: GET</p>\n</li>\n<li><p><strong>URL</strong>: <code>{{CoursebaseURL}}/courses/{courseId}</code></p>\n</li>\n<li><p><strong>Path Parameter</strong>:</p>\n<ul>\n<li><code>courseId</code> (string): The unique identifier of the course you want to retrieve. In this example, the course ID is <code>6749d7def99edee8975297b1</code>.</li>\n</ul>\n</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<p>Upon a successful request, the API will return a response containing the details of the course. The expected response will typically include:</p>\n<ul>\n<li><p>Course title</p>\n</li>\n<li><p>Description</p>\n</li>\n<li><p>Duration</p>\n</li>\n<li><p>Instructor information</p>\n</li>\n<li><p>Enrollment details</p>\n</li>\n</ul>\n<h4 id=\"notes\">Notes</h4>\n<ul>\n<li><p>Ensure that the course ID provided in the request is valid and exists in the system to avoid errors.</p>\n</li>\n<li><p>The response will be in JSON format, and it will contain all relevant details associated with the specified course ID.</p>\n</li>\n</ul>\n","urlObject":{"path":["courses","6749d7def99edee8975297b1"],"host":["{{CoursebaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"2cf409c8-b017-4856-a4a9-c5e68ec21173"},{"name":"GetCourseDomain","id":"b976f5f2-9d92-441d-bf9f-809633e8d94c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"courseId\":\"67461cea3d3904acad48fd6e\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{CoursebaseURL}}/courses/get-course-domain","description":"<h2 id=\"get-course-domain\">Get Course Domain</h2>\n<p>This endpoint retrieves the domain information associated with a specific course identified by its unique <code>courseId</code>.</p>\n<h3 id=\"request\">Request</h3>\n<ul>\n<li><p><strong>Method</strong>: POST</p>\n</li>\n<li><p><strong>URL</strong>: <code>{{CoursebaseURL}}/courses/get-course-domain</code></p>\n</li>\n</ul>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request body must be in JSON format and should contain the following parameter:</p>\n<ul>\n<li><strong>courseId</strong> (string): The unique identifier of the course for which the domain information is being requested.</li>\n</ul>\n<p><strong>Example Request Body</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"courseId\": \"67461cea3d3904acad48fd6e\"\n}\n\n</code></pre>\n<h3 id=\"headers\">Headers</h3>\n<p>Ensure to include the following headers in your request:</p>\n<ul>\n<li><code>Content-Type</code>: <code>application/json</code> - This indicates that the request body is in JSON format.</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>The response will contain the domain information for the specified course. The structure of the response may include:</p>\n<ul>\n<li><p><strong>domain</strong> (string): The domain associated with the course.</p>\n</li>\n<li><p><strong>status</strong> (string): Indicates the success or failure of the request.</p>\n</li>\n<li><p><strong>message</strong> (string): Provides additional information about the request status.</p>\n</li>\n</ul>\n<p><strong>Example Response</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"domain\": \"example.course.com\",\n  \"status\": \"success\",\n  \"message\": \"Domain retrieved successfully.\"\n}\n\n</code></pre>\n<h3 id=\"summary\">Summary</h3>\n<p>This endpoint is essential for obtaining the domain details of a course, allowing users to access course-specific resources effectively.</p>\n","urlObject":{"path":["courses","get-course-domain"],"host":["{{CoursebaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"b976f5f2-9d92-441d-bf9f-809633e8d94c"},{"name":"DeleteCourse","id":"d312e84c-4dbd-4b5d-a0b8-aa1b3ee0f0fb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MjYyNTdhYzk2NTZlMmY2YWRkM2M1NyIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjcyNjI1N2FjOTY1NmUyZjZhZGQzYzU1IiwiaWF0IjoxNzMyMDY4NDcyLCJleHAiOjE3MzIwNzIwNzJ9.dsSmQp0XZVuQ72xQVSaUX8UCj96g7lKxGHgfjpq8ALo","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{CoursebaseURL}}/courses/67481ebff99edee897525de7","description":"<h2 id=\"delete-coursescourseid\">DELETE /courses/{courseId}</h2>\n<p>This endpoint is used to delete a specific course from the system. The course is identified by its unique <code>courseId</code>, which is included in the URL path.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<ul>\n<li><strong>courseId</strong> (path parameter): A unique identifier for the course that you want to delete. In this example, the course ID is <code>67481ebff99edee897525de7</code>.</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>Upon successful deletion of the course, the API will return a response indicating the outcome of the operation. The response structure typically includes:</p>\n<ul>\n<li><p><strong>status</strong>: Indicates whether the deletion was successful (e.g., success or error).</p>\n</li>\n<li><p><strong>message</strong>: Provides additional information about the result of the deletion request.</p>\n</li>\n</ul>\n<h3 id=\"example\">Example</h3>\n<ul>\n<li><p><strong>Request</strong>: <code>DELETE {{CoursebaseURL}}/courses/67481ebff99edee897525de7</code></p>\n</li>\n<li><p>{ \"status\": \"success\", \"message\": \"Course deleted successfully.\"}</p>\n</li>\n</ul>\n<p>Ensure that you have the necessary permissions to delete a course when making this request.</p>\n","urlObject":{"path":["courses","67481ebff99edee897525de7"],"host":["{{CoursebaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"d312e84c-4dbd-4b5d-a0b8-aa1b3ee0f0fb"},{"name":"Get Courses of Institute","id":"01a5352a-fd62-4eb2-a295-a3e1db4a77ac","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{CoursebaseURL}}/courses/get-institute-courses/6726257ac9656e2f6add3c55","description":"<h3 id=\"get-institute-courses\">Get Institute Courses</h3>\n<p>This endpoint retrieves a list of courses associated with a specific institute identified by its unique ID.</p>\n<h4 id=\"request\">Request</h4>\n<ul>\n<li><p><strong>Method</strong>: GET</p>\n</li>\n<li><p><strong>URL</strong>: <code>{{CoursebaseURL}}/courses/get-institute-courses/{instituteId}</code></p>\n</li>\n</ul>\n<h4 id=\"path-parameters\">Path Parameters</h4>\n<ul>\n<li><code>instituteId</code> (string): The unique identifier for the institute whose courses are being requested. In this example, the value is <code>6726257ac9656e2f6add3c55</code>.</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<p>The response will contain a structured JSON object that includes details about the courses offered by the specified institute. The structure typically includes:</p>\n<ul>\n<li><p><strong>courses</strong> (array): A list of course objects, each containing:</p>\n<ul>\n<li><p><code>courseId</code> (string): The unique identifier for the course.</p>\n</li>\n<li><p><code>courseName</code> (string): The name of the course.</p>\n</li>\n<li><p><code>courseDescription</code> (string): A brief description of the course content.</p>\n</li>\n<li><p><code>duration</code> (string): The duration of the course.</p>\n</li>\n<li><p><code>instructor</code> (string): The name of the instructor for the course.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h4 id=\"example-response-structure\">Example Response Structure</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"courses\": [\n    {\n      \"courseId\": \"course_1\",\n      \"courseName\": \"Introduction to Programming\",\n      \"courseDescription\": \"Learn the basics of programming.\",\n      \"duration\": \"3 months\",\n      \"instructor\": \"John Doe\"\n    },\n    {\n      \"courseId\": \"course_2\",\n      \"courseName\": \"Advanced Data Structures\",\n      \"courseDescription\": \"Deep dive into data structures.\",\n      \"duration\": \"4 months\",\n      \"instructor\": \"Jane Smith\"\n    }\n  ]\n}\n\n</code></pre>\n<p>This endpoint is useful for retrieving course information for students, administrators, or any stakeholders interested in the offerings of a particular institute.</p>\n","urlObject":{"path":["courses","get-institute-courses","6726257ac9656e2f6add3c55"],"host":["{{CoursebaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"01a5352a-fd62-4eb2-a295-a3e1db4a77ac"}],"id":"2054f618-b420-4dff-b4e1-4fbcfdfc2f8e","_postman_id":"2054f618-b420-4dff-b4e1-4fbcfdfc2f8e","description":""},{"name":"LeadService","item":[{"name":"GetAllLeads","id":"f59634ec-44eb-4ab2-a5cd-b7ec87157489","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MjYyNTdhYzk2NTZlMmY2YWRkM2M1NyIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjcyNjI1N2FjOTY1NmUyZjZhZGQzYzU1IiwiaWF0IjoxNzM1Mzc5NTE1LCJleHAiOjE3MzUzODMxMTV9.co2w0nMAls6TXYcW9YjEArVnkdauJ9nD1LX-AKVBQJU","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{LeadURL}}/leads","description":"<h3 id=\"get-leads\">Get Leads</h3>\n<p>This endpoint retrieves a list of leads from the system.</p>\n<h4 id=\"request-parameters\">Request Parameters</h4>\n<p>This is a <strong>GET</strong> request and does not require any input parameters.</p>\n<h4 id=\"response-structure\">Response Structure</h4>\n<p>The response will return a JSON object containing the following fields:</p>\n<ul>\n<li><p><code>leads</code>: An array of lead objects, each containing details about a specific lead.</p>\n<ul>\n<li><p>Each lead object may include properties such as:</p>\n<ul>\n<li><p><code>id</code>: Unique identifier for the lead.</p>\n</li>\n<li><p><code>name</code>: Name of the lead.</p>\n</li>\n<li><p><code>email</code>: Email address of the lead.</p>\n</li>\n<li><p><code>status</code>: Current status of the lead.</p>\n</li>\n<li><p>Other relevant fields related to the lead.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h4 id=\"example-response\">Example Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"leads\": [\n    {\n      \"id\": \"123\",\n      \"name\": \"John Doe\",\n      \"email\": \"john.doe@example.com\",\n      \"status\": \"active\"\n    },\n    {\n      \"id\": \"124\",\n      \"name\": \"Jane Smith\",\n      \"email\": \"jane.smith@example.com\",\n      \"status\": \"inactive\"\n    }\n  ]\n}\n\n</code></pre>\n<p>This endpoint is useful for fetching all leads available in the system for further processing or analysis.</p>\n","urlObject":{"path":["leads"],"host":["{{LeadURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"f59634ec-44eb-4ab2-a5cd-b7ec87157489"},{"name":"UpdateLeads","id":"38544899-9f46-4194-b9fd-e0797634efc6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3M2Y0YmZhMWMyMDhlZDQ4N2Q2NThiMiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjczZjRiZmExYzIwOGVkNDg3ZDY1OGIwIiwiaWF0IjoxNzMyODY3ODU4LCJleHAiOjE3MzI4NzE0NTh9.n-UNMctGUWEdambZOAd--crCkB8orvMsOYkr4_Nc5wA","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"leadId\": \"673edaf001b1cce4ef15b3ab\",\r\n  \"updateData\": {\r\n  \"status\": \"Restore\",\r\n  \"course\": \"Agile and Scrums\" ,\r\n  \"applicantName\": \"Satyam test\",\r\n  \"phoneNumber\": \"9650582767\", \r\n  \"email\": \"satyamvatsa@gmail.com\"\r\n  }\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"{{LeadURL}}/lead/lead/status","description":"<h3 id=\"update-lead-status\">Update Lead Status</h3>\n<p>This endpoint allows you to update the status of a lead in the system. You can change the lead's status and provide additional information such as the course, applicant's name, phone number, and email.</p>\n<h4 id=\"request-parameters\">Request Parameters</h4>\n<ul>\n<li><p><strong>leadId</strong> (string): The unique identifier for the lead that you want to update.</p>\n</li>\n<li><p><strong>updateData</strong> (object): An object containing the details to be updated for the lead.</p>\n<ul>\n<li><p><strong>status</strong> (string): The new status of the lead (e.g., \"Restore\").</p>\n</li>\n<li><p><strong>course</strong> (string): The course associated with the lead (e.g., \"Agile and Scrums\").</p>\n</li>\n<li><p><strong>applicantName</strong> (string): The name of the applicant.</p>\n</li>\n<li><p><strong>phoneNumber</strong> (string): The phone number of the applicant.</p>\n</li>\n<li><p><strong>email</strong> (string): The email address of the applicant.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h4 id=\"expected-response\">Expected Response</h4>\n<p>Upon a successful request, the server will respond with a confirmation of the updated lead status. The response will typically include details about the updated lead, confirming that the changes have been applied.</p>\n<h4 id=\"notes\">Notes</h4>\n<ul>\n<li><p>Ensure that the <code>leadId</code> provided corresponds to an existing lead in the system.</p>\n</li>\n<li><p>The <code>updateData</code> object must include valid values for all fields to avoid validation errors.</p>\n</li>\n<li><p>This endpoint is designed for partial updates, so only the fields included in the <code>updateData</code> will be modified.</p>\n</li>\n</ul>\n","urlObject":{"path":["lead","lead","status"],"host":["{{LeadURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"38544899-9f46-4194-b9fd-e0797634efc6"},{"name":"CreateLead","id":"45231f90-926b-48ba-a220-86a91026d9b0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MjYyNTdhYzk2NTZlMmY2YWRkM2M1NyIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjcyNjI1N2FjOTY1NmUyZjZhZGQzYzU1IiwiaWF0IjoxNzMyMTA0MDcyLCJleHAiOjE3MzIxMDc2NzJ9.MbhF22PKp4FfLTaTTrvG92StW1FP3P6hD8mnTsvDCTo","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"institutionDomain\": \"www.springlearns.com\",\r\n  \"course\": \"Data Science\",\r\n  \"applicantName\": \"Khushal Hirani\",\r\n  \"phoneNumber\": \"1234567890\",\r\n  \"email\": \"johndoe@example.com\",\r\n  \"status\": \"Pending\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"{{LeadURL}}/create","description":"<h3 id=\"create-lead-endpoint\">Create Lead Endpoint</h3>\n<p>This endpoint allows you to create a new lead in the system. By sending a POST request to <code>{{LeadURL}}/create</code>, you can submit the details of an applicant interested in a course.</p>\n<h4 id=\"request-body-parameters\">Request Body Parameters</h4>\n<p>The request body must be in JSON format and include the following parameters:</p>\n<ul>\n<li><p><strong>institutionDomain</strong> (string): The domain of the institution offering the course.</p>\n</li>\n<li><p><strong>course</strong> (string): The name of the course the applicant is interested in.</p>\n</li>\n<li><p><strong>applicantName</strong> (string): The full name of the applicant.</p>\n</li>\n<li><p><strong>phoneNumber</strong> (string): The contact phone number of the applicant.</p>\n</li>\n<li><p><strong>email</strong> (string): The email address of the applicant.</p>\n</li>\n<li><p><strong>status</strong> (string): The current status of the lead (e.g., \"Pending\").</p>\n</li>\n</ul>\n<h4 id=\"response-structure\">Response Structure</h4>\n<p>Upon a successful request, the response will typically include a confirmation of the lead creation along with relevant details of the newly created lead. The structure of the response will provide information that may include the lead ID, status message, and any additional metadata related to the created lead.</p>\n<p>Make sure to validate the input parameters before sending the request to ensure successful lead creation.</p>\n","urlObject":{"path":["create"],"host":["{{LeadURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"45231f90-926b-48ba-a220-86a91026d9b0"},{"name":"Contact Us Form","id":"a99a5fdf-c34e-43ea-a6c4-a478a2e751d0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\":\"tarankhalsa3412@gmail.com\",\r\n    \"name\":\"Taranjit Singh\",\r\n    \"message\":\"Hi how are you?\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{LeadURL}}/contact-us","description":"<h3 id=\"contact-us-endpoint\">Contact Us Endpoint</h3>\n<p>This endpoint allows users to submit inquiries or messages through a contact form. It is designed to facilitate communication between users and the service team.</p>\n<h4 id=\"http-method\">HTTP Method</h4>\n<p><code>POST</code></p>\n<h4 id=\"request-body-format\">Request Body Format</h4>\n<p>The request body must be sent in JSON format and should include the following parameters:</p>\n<ul>\n<li><p><strong>email</strong> (string): The email address of the user submitting the inquiry.</p>\n</li>\n<li><p><strong>name</strong> (string): The full name of the user.</p>\n</li>\n<li><p><strong>message</strong> (string): The message or inquiry that the user wishes to send.</p>\n</li>\n</ul>\n<p><strong>Example Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"email\": \"user@example.com\",\n  \"name\": \"John Doe\",\n  \"message\": \"Hello, I would like to know more about your services.\"\n}\n\n</code></pre>\n<h4 id=\"expected-response\">Expected Response</h4>\n<p>Upon successful submission, the server will respond with a confirmation message indicating that the inquiry has been received. The response will typically include:</p>\n<ul>\n<li><p><strong>status</strong> (string): A message indicating the success or failure of the request.</p>\n</li>\n<li><p><strong>data</strong> (object): An object containing any additional information related to the inquiry, if applicable.</p>\n</li>\n</ul>\n<p><strong>Example Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"success\",\n  \"data\": {\n    \"message\": \"Your message has been sent successfully.\"\n  }\n}\n\n</code></pre>\n<p>Make sure to provide valid email and message content to ensure proper handling of your request.</p>\n","urlObject":{"path":["contact-us"],"host":["{{LeadURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"a99a5fdf-c34e-43ea-a6c4-a478a2e751d0"},{"name":"Institute Contact Us","id":"c3d6d3cc-a167-4ea7-93a6-4c89f1568d1e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"firstName\":\"Taranjit\",\r\n    \"lastName\":\"Singh\",\r\n    \"phoneNumber\":\"8287193995\",\r\n    \"message\":\"Hi how are you?\",\r\n    \"email\":\"tarankhalsa3412@gmail.com\",\r\n    \"receiverEmail\":\"taranjeet3412@gmail.com\"\r\n} ","options":{"raw":{"language":"json"}}},"url":"{{LeadURL}}/institute-contact-form","description":"<h2 id=\"institute-contact-form-submission\">Institute Contact Form Submission</h2>\n<p>This endpoint allows users to submit an institute contact form. The request requires the user's personal information and a message to be sent to the designated receiver.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<p>The request body must be in JSON format and include the following parameters:</p>\n<ul>\n<li><p><code>firstName</code> (string): The first name of the user submitting the form.</p>\n</li>\n<li><p><code>lastName</code> (string): The last name of the user submitting the form.</p>\n</li>\n<li><p><code>phoneNumber</code> (string): The contact phone number of the user.</p>\n</li>\n<li><p><code>message</code> (string): A message or inquiry from the user.</p>\n</li>\n<li><p><code>email</code> (string): The email address of the user submitting the form.</p>\n</li>\n<li><p><code>receiverEmail</code> (string): The email address of the receiver who will receive the message.</p>\n</li>\n</ul>\n<h3 id=\"expected-response\">Expected Response</h3>\n<p>Upon successful submission of the contact form, the API will respond with a confirmation message indicating that the form has been submitted successfully. The exact structure of the response may vary based on the implementation.</p>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li><p>Ensure that all required fields are filled out correctly to avoid validation errors.</p>\n</li>\n<li><p>The phone number should be in a valid format to ensure proper communication.</p>\n</li>\n<li><p>This endpoint is designed for use by individuals seeking to reach out to the institute for inquiries or support.</p>\n</li>\n</ul>\n","urlObject":{"path":["institute-contact-form"],"host":["{{LeadURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"c3d6d3cc-a167-4ea7-93a6-4c89f1568d1e"},{"name":"Event Demo Request","id":"c300cbda-9c7b-4f54-9574-65de8494d2b4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"name\": \"Jane Doe\",\r\n  \"email\": \"jane.doe@example.com\",\r\n  \"company\": \"Acme Corp\",\r\n  \"phoneNumber\": \"+1234567890\",\r\n  \"eventType\": \"Product Demo\",\r\n  \"preferedDate\": \"2025-07-03\",\r\n  \"preferedTime\": \"14:00\",\r\n  \"expectedAttendees\": 25,\r\n  \"message\": \"Looking forward to learning more about your platform.\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{LeadURL}}/schedule-demo","description":"<h2 id=\"schedule-demo-api\">Schedule Demo API</h2>\n<p>This endpoint allows users to schedule a product demo by submitting relevant details through an HTTP POST request. The information provided will be used to arrange a demonstration of the product, tailored to the user's preferences.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<p>The request body must be in JSON format and include the following parameters:</p>\n<ul>\n<li><p><strong>name</strong> (string): The full name of the individual requesting the demo.</p>\n</li>\n<li><p><strong>email</strong> (string): The email address of the requester, used for confirmation and communication.</p>\n</li>\n<li><p><strong>company</strong> (string): The name of the company the requester represents.</p>\n</li>\n<li><p><strong>phoneNumber</strong> (string): A contact number for the requester, which may be used for follow-up.</p>\n</li>\n<li><p><strong>eventType</strong> (string): The type of event being scheduled, in this case, it should be \"Product Demo\".</p>\n</li>\n<li><p><strong>preferedDate</strong> (string): The preferred date for the demo in the format YYYY-MM-DD.</p>\n</li>\n<li><p><strong>preferedTime</strong> (string): The preferred time for the demo in the format HH:MM (24-hour format).</p>\n</li>\n<li><p><strong>expectedAttendees</strong> (integer): The estimated number of attendees for the demo session.</p>\n</li>\n<li><p><strong>message</strong> (string): An optional message from the requester, providing additional context or questions.</p>\n</li>\n</ul>\n<h3 id=\"response-structure\">Response Structure</h3>\n<p>Upon successful scheduling of the demo, the API will respond with a confirmation message, which typically includes:</p>\n<ul>\n<li><p><strong>status</strong> (string): Indicates whether the demo scheduling was successful or if there was an error.</p>\n</li>\n<li><p><strong>demoId</strong> (string): A unique identifier for the scheduled demo, which can be used for future reference.</p>\n</li>\n<li><p><strong>scheduledDate</strong> (string): The date and time the demo has been scheduled for.</p>\n</li>\n</ul>\n<h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"Jane Doe\",\n  \"email\": \"jane.doe@example.com\",\n  \"company\": \"Acme Corp\",\n  \"phoneNumber\": \"+1234567890\",\n  \"eventType\": \"Product Demo\",\n  \"preferedDate\": \"2025-07-03\",\n  \"preferedTime\": \"14:00\",\n  \"expectedAttendees\": 25,\n  \"message\": \"Looking forward to learning more about the product.\"\n}\n\n</code></pre>\n<p>This endpoint is essential for facilitating product demonstrations and ensuring that potential clients have a seamless experience when scheduling their sessions.</p>\n","urlObject":{"path":["schedule-demo"],"host":["{{LeadURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"c300cbda-9c7b-4f54-9574-65de8494d2b4"},{"name":"Event Contact Us","id":"faa6c603-5153-435f-8142-222699809af6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\":\"taran\",\r\n    \"email\":\"tarankhalsa3412@gmail.com\",\r\n    \"subect\":\"Test\",\r\n    \"message\":\"Hello\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{LeadURL}}/events-contact-us","description":"<h2 id=\"post-events-contact-us\">POST /events-contact-us</h2>\n<p>This endpoint allows users to submit a contact form with their details and message. It is typically used for inquiries or feedback.</p>\n<h3 id=\"request-body\">Request Body</h3>\n<p>The request must be sent in JSON format and should include the following fields:</p>\n<ul>\n<li><p><strong>name</strong> (string): The name of the person submitting the form.</p>\n</li>\n<li><p><strong>email</strong> (string): The email address of the person submitting the form.</p>\n</li>\n<li><p><strong>subect</strong> (string): The subject of the message (note the typo in the key).</p>\n</li>\n<li><p><strong>message</strong> (string): The content of the message being sent.</p>\n</li>\n</ul>\n<h4 id=\"example-request-body\">Example Request Body</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"string\",\n  \"email\": \"string\",\n  \"subect\": \"string\",\n  \"message\": \"string\"\n}\n\n</code></pre>\n<h3 id=\"response-structure\">Response Structure</h3>\n<p>Upon successful submission, the server will respond with a confirmation message indicating that the contact form has been received. The response will typically include a status code and a message confirming the submission.</p>\n<h4 id=\"example-response\">Example Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"success\",\n  \"message\": \"Your message has been sent successfully.\"\n}\n\n</code></pre>\n<p>Ensure that the request body adheres to the specified format for successful processing.</p>\n","urlObject":{"path":["events-contact-us"],"host":["{{LeadURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"faa6c603-5153-435f-8142-222699809af6"}],"id":"861b6b8a-8a31-424b-bb81-f37dc4066348","_postman_id":"861b6b8a-8a31-424b-bb81-f37dc4066348","description":""},{"name":"OTPService","item":[{"name":"VerifyOTP","id":"da45dd0e-c981-4f63-89ce-dd333328db66","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"otp\": \"668521\",\r\n  \"otpType\": \"email\",\r\n  \"receiverId\":\"tarankhalsa3412@gmail.com\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"{{OTPURL}}/verify","description":"<h3 id=\"verify-otp-endpoint\">Verify OTP Endpoint</h3>\n<p>This endpoint is used to verify a One-Time Password (OTP) that has been sent to a user via email. It is essential for confirming the identity of the user during authentication processes.</p>\n<h4 id=\"request\">Request</h4>\n<ul>\n<li><p><strong>Method:</strong> POST</p>\n</li>\n<li><p><strong>URL:</strong> <code>{{OTPURL}}/verify</code></p>\n</li>\n</ul>\n<h5 id=\"request-body\">Request Body</h5>\n<p>The request body must be in JSON format and include the following parameters:</p>\n<ul>\n<li><p><strong>otp</strong> (string, required): The OTP code that the user has received.</p>\n</li>\n<li><p><strong>otpType</strong> (string, required): The type of OTP being verified. In this case, it should be set to \"email\".</p>\n</li>\n<li><p><strong>receiverId</strong> (string, required): The email address of the user to whom the OTP was sent.</p>\n</li>\n</ul>\n<p><strong>Example Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"otp\": \"668521\",\n  \"otpType\": \"email\",\n  \"receiverId\": \"example@example.com\"\n}\n\n</code></pre>\n<h4 id=\"response\">Response</h4>\n<p>The response from this endpoint will typically include a status indicating whether the OTP verification was successful or not. The structure of the response may vary based on the implementation but generally includes the following fields:</p>\n<ul>\n<li><p><strong>status</strong> (string): Indicates the result of the verification (e.g., \"success\" or \"failure\").</p>\n</li>\n<li><p><strong>message</strong> (string): A message providing additional information about the verification result.</p>\n</li>\n</ul>\n<p><strong>Example Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"success\",\n  \"message\": \"OTP verified successfully.\"\n}\n\n</code></pre>\n<p>Ensure that the request body is correctly formatted and that the OTP matches the one sent to the specified email address for successful verification.</p>\n","urlObject":{"path":["verify"],"host":["{{OTPURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"da45dd0e-c981-4f63-89ce-dd333328db66"},{"name":"GenerateOTP","id":"b56a1e85-0e52-4b07-942d-b2439ef749bc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"receiverId\": \"9650582767\",     \r\n  \"otpType\": \"phone\"                  \r\n}","options":{"raw":{"language":"json"}}},"url":"{{OTPURL}}/generate","description":"<h2 id=\"generate-otp-endpoint\">Generate OTP Endpoint</h2>\n<p>This endpoint is used to generate a One-Time Password (OTP) for a specified receiver. The OTP can be sent via different channels, such as SMS or email, depending on the <code>otpType</code> provided in the request.</p>\n<h3 id=\"request\">Request</h3>\n<ul>\n<li><p><strong>Method</strong>: POST</p>\n</li>\n<li><p><strong>URL</strong>: <code>{{OTPURL}}/generate</code></p>\n</li>\n</ul>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request body must be in JSON format and should include the following parameters:</p>\n<ul>\n<li><p><strong>receiverId</strong> (string): The identifier for the recipient of the OTP. This can be a phone number or an email address, depending on the context.</p>\n</li>\n<li><p><strong>otpType</strong> (string): Specifies the type of OTP to be generated. In this case, it is set to \"phone\" to indicate that the OTP should be sent to the receiver's phone.</p>\n</li>\n</ul>\n<p><strong>Example Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"receiverId\": \"9650582767\",\n  \"otpType\": \"phone\"\n}\n\n</code></pre>\n<h3 id=\"headers\">Headers</h3>\n<p>Ensure to include the following headers in your request:</p>\n<ul>\n<li><strong>Content-Type</strong>: <code>application/json</code> - This header indicates that the request body is in JSON format.</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>The response will typically contain a status indicating the success or failure of the OTP generation process. The structure of the response may include:</p>\n<ul>\n<li><p><strong>status</strong> (string): Indicates whether the OTP generation was successful or not.</p>\n</li>\n<li><p><strong>message</strong> (string): A descriptive message providing additional information about the result of the request.</p>\n</li>\n</ul>\n<p><strong>Example Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"success\",\n  \"message\": \"OTP has been sent successfully.\"\n}\n\n</code></pre>\n<h3 id=\"important-notes\">Important Notes</h3>\n<ul>\n<li><p>Ensure that the <code>receiverId</code> is valid and formatted correctly based on the <code>otpType</code> specified.</p>\n</li>\n<li><p>Handle any error responses gracefully, as they may contain useful information for debugging.</p>\n</li>\n</ul>\n","urlObject":{"path":["generate"],"host":["{{OTPURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"b56a1e85-0e52-4b07-942d-b2439ef749bc"}],"id":"e4202a34-7544-46a5-933c-dcf4dacff752","_postman_id":"e4202a34-7544-46a5-933c-dcf4dacff752","description":""},{"name":"Batch","item":[{"name":"EditBatch","id":"3427fd0a-19ad-40e4-9470-6a2fb5f499f1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3NDRkMTIwZDJhY2QxYjBlZjQzMjM0ZCIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjc0NGQxMjBkMmFjZDFiMGVmNDMyMzRiIiwiaWF0IjoxNzM1Mzc1NzcxLCJleHAiOjE3MzUzNzkzNzF9.IdA4qEb95cyHrJF_G2hEhiG9K_tGLUu8KuTagQcpk7Y","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"name\": \"batchUpdated11\",\r\n  \"startDate\": \"2024-12-28T20:00:00Z\",\r\n  \"endDate\": \"2024-12-31T21:00:00Z\",\r\n  \"timeZone\": \"08:00 PM - 09:00 PM\",\r\n  \"seats\": 15,\r\n  \"status\": \"active\",\r\n  \"batchType\": \"weekends\",\r\n  \"price\": [\r\n        {\r\n            \"currency\": \"USD\",\r\n            \"offerPrice\": 5000,\r\n            \"standardPrice\": 10000\r\n        },\r\n        {\r\n            \"currency\": \"NGN\",\r\n            \"offerPrice\": 6000,\r\n            \"standardPrice\": 90000\r\n        }\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"{{CoursebaseURL}}/courses/674e584e0a51efbe5a2dee4d/batches/674e584e0a51efbe5a2dee4e","description":"<h2 id=\"update-batch-details\">Update Batch Details</h2>\n<p>This endpoint allows you to update the details of a specific batch within a course. By sending a PUT request to the specified URL, you can modify various attributes of the batch, including its name, start and end dates, time zone, available seats, status, batch type, and pricing information.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<p>The request body must be in JSON format and include the following parameters:</p>\n<ul>\n<li><p><strong>name</strong> (string): The new name for the batch.</p>\n</li>\n<li><p><strong>startDate</strong> (string, ISO 8601 format): The starting date and time of the batch.</p>\n</li>\n<li><p><strong>endDate</strong> (string, ISO 8601 format): The ending date and time of the batch.</p>\n</li>\n<li><p><strong>timeZone</strong> (string): The time zone during which the batch operates.</p>\n</li>\n<li><p><strong>seats</strong> (integer): The number of available seats in the batch.</p>\n</li>\n<li><p><strong>status</strong> (string): The current status of the batch (e.g., active, inactive).</p>\n</li>\n<li><p><strong>batchType</strong> (string): The type of the batch (e.g., weekends, weekdays).</p>\n</li>\n<li><p><strong>price</strong> (array of objects): An array containing pricing details. Each object should include:</p>\n<ul>\n<li><p><strong>currency</strong> (string): The currency of the price (e.g., USD).</p>\n</li>\n<li><p><strong>offerPrice</strong> (integer): The promotional price for the batch.</p>\n</li>\n<li><p><strong>standardPrice</strong> (integer): The regular price for the batch.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"response-structure\">Response Structure</h3>\n<p>Upon a successful update, the API will respond with a confirmation of the updated batch details. The response will typically include the updated attributes of the batch, confirming the changes made.</p>\n<h3 id=\"example-request-body\">Example Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"batchUpdated11\",\n  \"startDate\": \"2024-12-28T20:00:00Z\",\n  \"endDate\": \"2024-12-31T21:00:00Z\",\n  \"timeZone\": \"08:00 PM - 09:00 PM\",\n  \"seats\": 15,\n  \"status\": \"active\",\n  \"batchType\": \"weekends\",\n  \"price\": [\n    {\n      \"currency\": \"USD\",\n      \"offerPrice\": 5000,\n      \"standardPrice\": 10000\n    }\n  ]\n}\n\n</code></pre>\n<p>Ensure that all required fields are provided in the request for a successful update of the batch details.</p>\n","urlObject":{"path":["courses","674e584e0a51efbe5a2dee4d","batches","674e584e0a51efbe5a2dee4e"],"host":["{{CoursebaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"3427fd0a-19ad-40e4-9470-6a2fb5f499f1"},{"name":"CreateBatch","id":"74f67d69-e98e-4330-91ca-d082bc101b78","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3NDRkMTIwZDJhY2QxYjBlZjQzMjM0ZCIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjc0NGQxMjBkMmFjZDFiMGVmNDMyMzRiIiwiaWF0IjoxNzM0MDAzMTc4LCJleHAiOjE3MzQwMDY3Nzh9.dSDSbEPcNSc_1V5J0CcSjXS_saycq4Hc4892mKe4-jQ","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"name\": \"batch21\",\r\n  \"startDate\": \"2024-12-01T09:00:00Z\",\r\n  \"endDate\": \"2024-12-02T09:00:00Z\",\r\n  \"timeZone\": \"12:00 AM - 15:00 PM\",\r\n  \"seats\": 15,\r\n  \"status\": \"active\",\r\n  \"batchtype\":\"weekends\",\r\n  \"instructor\":\"\",\r\n  \"price\": [\r\n        {\r\n            \"currency\": \"NGN\",\r\n            \"offerPrice\": 5000,\r\n            \"standardPrice\": 10000\r\n        }\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"{{CoursebaseURL}}/course/batches/67461cea3d3904acad48fd6e","description":"<h3 id=\"📘-create-batch-for-a-course\">📘 Create Batch for a Course</h3>\n<p><strong>Endpoint:</strong><br /><code>POST {{CoursebaseURL}}/course/batches/:courseId</code></p>\n<hr />\n<h4 id=\"📄-description\">📄 Description:</h4>\n<p>Adds a new batch to a specific course.</p>\n<hr />\n<h4 id=\"🔒-authorization\">🔒 Authorization:</h4>\n<p>✅ Required (e.g., Bearer Token)</p>\n<hr />\n<h4 id=\"📤-content-type\">📤 Content-Type:</h4>\n<p><code>application/json</code></p>\n<hr />\n<h4 id=\"🔁-path-parameter\">🔁 Path Parameter:</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Param</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>courseId</code></td>\n<td>String</td>\n<td>ID of the target course</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h4 id=\"🧾-request-body-json\">🧾 Request Body (JSON):</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"name\": \"batch21\",\n  \"startDate\": \"2024-12-01T09:00:00Z\",\n  \"endDate\": \"2024-12-02T09:00:00Z\",\n  \"timeZone\": \"12:00 AM - 15:00 PM\",\n  \"seats\": 15,\n  \"status\": \"active\",\n  \"batchtype\": \"weekends\",\n  \"instructor\": \"\",  // Provide instructor ID here\n  \"price\": [\n    {\n      \"currency\": \"NGN\",\n      \"offerPrice\": 5000,\n      \"standardPrice\": 10000\n    }\n  ]\n}\n\n</code></pre><blockquote>\n</blockquote>\n<p>🔸 <code>instructor</code> should be the valid instructor ID (string). Leave it empty only if it's optional or to be assigned later.</p>\n<hr />\n<h4 id=\"✅-success-response\">✅ Success Response:</h4>\n<ul>\n<li><p><strong>Code:</strong> <code>201 Created</code></p>\n</li>\n<li><p><strong>Body Example:</strong></p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"success\": true,\n  \"message\": \"Batch created successfully\",\n  \"data\": {\n    \"_id\": \"674625dfa2305f289d2b4c33\",\n    \"name\": \"batch21\",\n    \"course\": \"67461cea3d3904acad48fd6e\",\n    ...\n  }\n}\n\n</code></pre>","urlObject":{"path":["course","batches","67461cea3d3904acad48fd6e"],"host":["{{CoursebaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"74f67d69-e98e-4330-91ca-d082bc101b78"},{"name":"DeleteBatch","id":"967ae078-f55f-4536-89ad-0b66c3ceaebe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MjYyNTdhYzk2NTZlMmY2YWRkM2M1NyIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjcyNjI1N2FjOTY1NmUyZjZhZGQzYzU1IiwiaWF0IjoxNzMyMDY4NDcyLCJleHAiOjE3MzIwNzIwNzJ9.dsSmQp0XZVuQ72xQVSaUX8UCj96g7lKxGHgfjpq8ALo","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{CoursebaseURL}}/courses/67481ebff99edee897525de7/batches/674c68122ca0195149207c67","description":"<h3 id=\"delete-batch-endpoint\">Delete Batch Endpoint</h3>\n<p>This endpoint is used to delete a specific batch from a course in the system. By sending a DELETE request to the specified URL, the user can remove the batch identified by its unique ID.</p>\n<h4 id=\"request-parameters\">Request Parameters</h4>\n<ul>\n<li><p><strong>Path Parameters:</strong></p>\n<ul>\n<li><p><code>courseId</code>: The unique identifier of the course from which the batch is to be deleted. (Example: <code>67481ebff99edee897525de7</code>)</p>\n</li>\n<li><p><code>batchId</code>: The unique identifier of the batch that is to be deleted. (Example: <code>674c68122ca0195149207c67</code>)</p>\n</li>\n</ul>\n</li>\n</ul>\n<h4 id=\"response-structure\">Response Structure</h4>\n<p>Upon a successful deletion, the server will return a response indicating the success of the operation. The response typically includes:</p>\n<ul>\n<li><p>A status code confirming the deletion (e.g., HTTP 204 No Content for a successful delete).</p>\n</li>\n<li><p>A message confirming that the batch has been successfully deleted.</p>\n</li>\n</ul>\n<p>Make sure to handle any errors that may occur, such as attempting to delete a batch that does not exist or lacking the necessary permissions.</p>\n","urlObject":{"path":["courses","67481ebff99edee897525de7","batches","674c68122ca0195149207c67"],"host":["{{CoursebaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"967ae078-f55f-4536-89ad-0b66c3ceaebe"}],"id":"a495d831-ed29-49a3-9e3a-512c1fab986e","_postman_id":"a495d831-ed29-49a3-9e3a-512c1fab986e","description":""},{"name":"FAQ","item":[{"name":"EditFAQ","id":"fda03336-de5b-4e1d-a661-ca56f5754c89","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MjYyNTdhYzk2NTZlMmY2YWRkM2M1NyIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjcyNjI1N2FjOTY1NmUyZjZhZGQzYzU1IiwiaWF0IjoxNzMyMDY4NDcyLCJleHAiOjE3MzIwNzIwNzJ9.dsSmQp0XZVuQ72xQVSaUX8UCj96g7lKxGHgfjpq8ALo","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"question\": \"school\",\r\n  \"answer\": \"anginat\"\r\n  \r\n}","options":{"raw":{"language":"json"}}},"url":"{{CoursebaseURL}}/courses/674e584e0a51efbe5a2dee4d/faqs/67505ad13540a054d3487fd0","description":"<h2 id=\"update-faq-for-a-course\">Update FAQ for a Course</h2>\n<p>This endpoint allows you to update an existing FAQ item associated with a specific course.</p>\n<h3 id=\"request\">Request</h3>\n<ul>\n<li><p><strong>Method:</strong> <code>PUT</code></p>\n</li>\n<li><p><strong>Endpoint:</strong> <code>{{CoursebaseURL}}/courses/{courseId}/faqs/{faqId}</code></p>\n<ul>\n<li><p>Replace <code>{courseId}</code> with the unique identifier of the course.</p>\n</li>\n<li><p>Replace <code>{faqId}</code> with the unique identifier of the FAQ item you wish to update.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>The request body must be in JSON format and include the following parameters:</p>\n<ul>\n<li><p><strong>question</strong> (string): The question for the FAQ.</p>\n</li>\n<li><p><strong>answer</strong> (string): The answer corresponding to the FAQ question.</p>\n</li>\n</ul>\n<h4 id=\"example-request-body\">Example Request Body</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"question\": \"school\",\n  \"answer\": \"anginat\"\n}\n\n</code></pre>\n<h3 id=\"response\">Response</h3>\n<p>Upon a successful update, the API will return a response indicating the status of the operation. The expected response format is typically a JSON object confirming the update, which may include the updated FAQ details or a success message.</p>\n<h3 id=\"notes\">Notes</h3>\n<p>Ensure that you have the necessary permissions to update FAQs for the specified course. The course and FAQ identifiers must be valid and exist in the system.</p>\n","urlObject":{"path":["courses","674e584e0a51efbe5a2dee4d","faqs","67505ad13540a054d3487fd0"],"host":["{{CoursebaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"fda03336-de5b-4e1d-a661-ca56f5754c89"},{"name":"CreateFAQ","id":"76557780-7662-4067-83af-801307ae0f6a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MjYyNTdhYzk2NTZlMmY2YWRkM2M1NyIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjcyNjI1N2FjOTY1NmUyZjZhZGQzYzU1IiwiaWF0IjoxNzMzMzE4OTI1LCJleHAiOjE3MzMzMjI1MjV9.Iz1ZptGe5EyZg_AMZogxltPzNT-Fpx_UG9oKR0rAW68","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"question\": \"what is anginat\",\r\n  \"answer\": \"it is unlimited life\"\r\n  \r\n}","options":{"raw":{"language":"json"}}},"url":"{{CoursebaseURL}}/courses/674b13edf99edee89752b29f/faqs","description":"<h2 id=\"add-faq-to-course\">Add FAQ to Course</h2>\n<p>This endpoint allows users to add a Frequently Asked Question (FAQ) to a specific course identified by its unique ID.</p>\n<h3 id=\"request\">Request</h3>\n<ul>\n<li><p><strong>Method</strong>: POST</p>\n</li>\n<li><p><strong>URL</strong>: <code>{{CoursebaseURL}}/courses/{courseId}/faqs</code></p>\n<ul>\n<li>Replace <code>{courseId}</code> with the actual ID of the course (e.g., <code>674b13edf99edee89752b29f</code>).</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>The request body must be in JSON format and should include the following parameters:</p>\n<ul>\n<li><p><strong>question</strong> (string): The question that users frequently ask about the course.</p>\n</li>\n<li><p><strong>answer</strong> (string): The answer to the frequently asked question.</p>\n</li>\n</ul>\n<h4 id=\"example-request-body\">Example Request Body</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"question\": \"what is anginat\",\n  \"answer\": \"it is unlimited life\"\n}\n\n</code></pre>\n<h3 id=\"response\">Response</h3>\n<p>Upon successfully adding the FAQ, the response will typically include a confirmation of the addition. The structure of the response may vary, but it generally includes:</p>\n<ul>\n<li><p>A success message indicating that the FAQ has been added.</p>\n</li>\n<li><p>The details of the newly created FAQ entry, such as the question and answer provided.</p>\n</li>\n</ul>\n<p>Make sure to handle any errors that may occur, such as invalid course IDs or missing parameters in the request body.</p>\n","urlObject":{"path":["courses","674b13edf99edee89752b29f","faqs"],"host":["{{CoursebaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"76557780-7662-4067-83af-801307ae0f6a"},{"name":"DeleteFAQ","id":"06862bb8-315c-4802-8fdc-54f6894ac064","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3NDRkMTIwZDJhY2QxYjBlZjQzMjM0ZCIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjc0NGQxMjBkMmFjZDFiMGVmNDMyMzRiIiwiaWF0IjoxNzM0NjAzNTEyLCJleHAiOjE3MzQ2MDcxMTJ9.yYCQQqDoYHhqAJBERDShYDkes5-zTIKXW7HX3NdbR04","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{CoursebaseURL}}/courses/67484e5cf99edee89752613a/faqs/6763f34dbea467b62b9c44c8","description":"<h2 id=\"delete-faq\">Delete FAQ</h2>\n<p>This endpoint allows users to delete a specific FAQ associated with a course. The request is made to the URL that includes both the course ID and the FAQ ID.</p>\n<h3 id=\"request\">Request</h3>\n<ul>\n<li><p><strong>Method</strong>: DELETE</p>\n</li>\n<li><p><strong>URL</strong>: <code>{{CoursebaseURL}}/courses/{courseId}/faqs/{faqId}</code></p>\n</li>\n</ul>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><p><code>courseId</code> (string): The unique identifier of the course from which the FAQ will be deleted.</p>\n</li>\n<li><p><code>faqId</code> (string): The unique identifier of the FAQ that needs to be deleted.</p>\n</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>Upon successful deletion, the API will return a response indicating the status of the operation. The expected response is typically a confirmation message or status code indicating that the FAQ has been successfully deleted.</p>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li><p>Ensure that the <code>courseId</code> and <code>faqId</code> provided in the URL are correct, as this will determine the specific FAQ to be deleted.</p>\n</li>\n<li><p>This operation is irreversible; once an FAQ is deleted, it cannot be recovered.</p>\n</li>\n</ul>\n","urlObject":{"path":["courses","67484e5cf99edee89752613a","faqs","6763f34dbea467b62b9c44c8"],"host":["{{CoursebaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"06862bb8-315c-4802-8fdc-54f6894ac064"}],"id":"23ff3892-9e24-4438-bffa-026e02ca7bf5","_postman_id":"23ff3892-9e24-4438-bffa-026e02ca7bf5","description":""},{"name":"Enrollement","item":[{"name":"InitializeEnrollment","id":"85dc7a9b-7914-4269-a494-735ff116802c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"email\": \"tarankalsi0123@gmail.com\",\r\n  \"phone\": \"8287193995\",\r\n  \"courseId\": \"67461cea3d3904acad48fd6e\",\r\n  \"batchId\": \"675c5e4deb91e87a0eaf3d3b\",\r\n  \"currency\": \"USD\",\r\n  \"status\": \"active\",\r\n  \"includeRazorpayFee\":\"true\"\r\n}   ","options":{"raw":{"language":"json"}}},"url":"{{CoursebaseURL}}/courses/enrollment/initiate","description":"<h3 id=\"endpoint-description\">Endpoint Description</h3>\n<p>This endpoint is used to initiate the enrollment process for a specific course. It allows users to provide their contact information and course details to start the enrollment procedure.</p>\n<h3 id=\"request\">Request</h3>\n<p><strong>Method:</strong> POST<br /><strong>URL:</strong> <code>{{CoursebaseURL}}/courses/enrollment/initiate</code></p>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request body must be in JSON format and include the following parameters:</p>\n<ul>\n<li><p><strong>email</strong> (string): The email address of the user enrolling in the course.</p>\n</li>\n<li><p><strong>phone</strong> (string): The phone number of the user enrolling in the course.</p>\n</li>\n<li><p><strong>courseId</strong> (string): The unique identifier for the course the user wishes to enroll in.</p>\n</li>\n<li><p><strong>batchId</strong> (string): The unique identifier for the specific batch of the course.</p>\n</li>\n<li><p><strong>currency</strong> (string): The currency in which the payment will be processed (e.g., \"USD\").</p>\n</li>\n<li><p><strong>status</strong> (string): The current status of the enrollment (e.g., \"active\").</p>\n</li>\n<li><p><strong>includeRazorpayFee</strong> (boolean): Indicates whether to include the Razorpay fee in the payment calculation.</p>\n</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>The response structure will typically include confirmation of the enrollment initiation, which may contain fields such as:</p>\n<ul>\n<li><p><strong>success</strong> (boolean): Indicates whether the enrollment initiation was successful.</p>\n</li>\n<li><p><strong>message</strong> (string): A message providing additional information about the enrollment status.</p>\n</li>\n<li><p><strong>data</strong> (object): An object containing any relevant data related to the enrollment process, such as a transaction ID or further instructions.</p>\n</li>\n</ul>\n<h3 id=\"example\">Example</h3>\n<p><strong>Request Body Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"email\": \"user@example.com\",\n  \"phone\": \"1234567890\",\n  \"courseId\": \"exampleCourseId\",\n  \"batchId\": \"exampleBatchId\",\n  \"currency\": \"USD\",\n  \"status\": \"active\",\n  \"includeRazorpayFee\": \"true\"\n}\n\n</code></pre>\n<p>This endpoint is essential for users looking to enroll in courses and manage their enrollment details efficiently.</p>\n","urlObject":{"path":["courses","enrollment","initiate"],"host":["{{CoursebaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"85dc7a9b-7914-4269-a494-735ff116802c"},{"name":"confirmEnrollment","id":"6541b68b-7a43-4953-b103-3d54dbb5a6fa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"transactionId\": \"6760de081282d32465095581\",\r\n    \"razorpay_payment_id\": \"pay_PXcdefghijklmno\",\r\n    \"razorpay_order_id\": \"order_PXrGouhwEtj3GQ\",\r\n    \"razorpay_signature\": \"bc51dfd889f896b9b9ff7193a8ff23d9d19422f8415c36a96c350cd00c4725d4\",\r\n    \"email\": \"user@example.com\",\r\n    \"phone\": \"1234567890\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{CoursebaseURL}}/courses/enrollment/confirm","description":"<h3 id=\"confirm-course-enrollment\">Confirm Course Enrollment</h3>\n<p>This endpoint is used to confirm the enrollment of a user in a course after a payment has been processed. It validates the transaction details provided by the user and ensures that the payment was successful before finalizing the enrollment.</p>\n<h4 id=\"request-parameters\">Request Parameters</h4>\n<p>The request must include the following parameters in the JSON body:</p>\n<ul>\n<li><p><strong>transactionId</strong> (string): A unique identifier for the transaction, used to track the payment process.</p>\n</li>\n<li><p><strong>razorpay_payment_id</strong> (string): The ID of the payment generated by Razorpay, which confirms the payment was processed.</p>\n</li>\n<li><p><strong>razorpay_order_id</strong> (string): The ID of the order created in Razorpay, linking the payment to the specific course enrollment.</p>\n</li>\n<li><p><strong>razorpay_signature</strong> (string): A cryptographic signature generated by Razorpay to verify the integrity of the payment data.</p>\n</li>\n<li><p><strong>email</strong> (string): The email address of the user enrolling in the course.</p>\n</li>\n<li><p><strong>phone</strong> (string): The contact phone number of the user.</p>\n</li>\n</ul>\n<h4 id=\"expected-response\">Expected Response</h4>\n<p>Upon successful confirmation of the enrollment, the API will return a response indicating the status of the operation. The response will typically include:</p>\n<ul>\n<li><p>A success message confirming the enrollment.</p>\n</li>\n<li><p>Any relevant details about the course or user.</p>\n</li>\n</ul>\n<h4 id=\"notes\">Notes</h4>\n<ul>\n<li><p>Ensure that all parameters are provided and correctly formatted to avoid errors during the confirmation process.</p>\n</li>\n<li><p>The signature must be validated against the payment details to ensure security and prevent fraud.</p>\n</li>\n<li><p>This endpoint is crucial for maintaining the integrity of course enrollments linked to payment transactions.</p>\n</li>\n</ul>\n","urlObject":{"path":["courses","enrollment","confirm"],"host":["{{CoursebaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"6541b68b-7a43-4953-b103-3d54dbb5a6fa"},{"name":"Check enrollment","id":"a4abaecc-f384-46be-bd8f-b9efcdb532f2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\":\"taranjeet3412@gmail.com\",\r\n    \"courseId\":\"1\",\r\n    \"batchId\":\"1\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{CoursebaseURL}}/courses/enrollment/checkEnrollment","description":"<h3 id=\"check-course-enrollment\">Check Course Enrollment</h3>\n<p>This endpoint allows users to verify their enrollment status in a specific course. By providing the user's email along with the course and batch identifiers, the system checks if the user is enrolled in the specified course and batch.</p>\n<h4 id=\"request-parameters\">Request Parameters</h4>\n<ul>\n<li><p><strong>email</strong> (string): The email address of the user whose enrollment status is being checked.</p>\n</li>\n<li><p><strong>courseId</strong> (string): The unique identifier for the course.</p>\n</li>\n<li><p><strong>batchId</strong> (string): The unique identifier for the batch within the course.</p>\n</li>\n</ul>\n<h4 id=\"expected-response\">Expected Response</h4>\n<p>The response will indicate the enrollment status of the user in the specified course and batch. The exact structure of the response will depend on the implementation but typically includes fields that confirm whether the user is enrolled or not.</p>\n<h4 id=\"notes\">Notes</h4>\n<ul>\n<li><p>Ensure that the email provided is associated with an existing user in the system.</p>\n</li>\n<li><p>The courseId and batchId must correspond to valid entries in the database to receive an accurate response.</p>\n</li>\n</ul>\n","urlObject":{"path":["courses","enrollment","checkEnrollment"],"host":["{{CoursebaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"a4abaecc-f384-46be-bd8f-b9efcdb532f2"},{"name":"Fetch Student Enrolled Courses","id":"42ff5d73-7319-48a7-98d3-ed3f017af78f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    // \"email\":\"tarankhalsa3412@gmail.com\"\r\n    \"email\":\"tarankalsi3412@gmail.com\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{CoursebaseURL}}/courses/enrollment/enrolled-courses","description":"<h3 id=\"enroll-in-courses\">Enroll in Courses</h3>\n<p>This endpoint allows users to enroll in courses by submitting their email address. It is designed to facilitate the enrollment process for users who wish to participate in available courses.</p>\n<h4 id=\"request\">Request</h4>\n<ul>\n<li><p><strong>Method</strong>: POST</p>\n</li>\n<li><p><strong>Endpoint</strong>: <code>{{CoursebaseURL}}/courses/enrollment/enrolled-courses</code></p>\n</li>\n</ul>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request body must be sent in JSON format and should contain the following key:</p>\n<ul>\n<li><code>email</code> (string): The email address of the user enrolling in the courses. This parameter is required.</li>\n</ul>\n<p><strong>Example Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"email\": \"user@example.com\"\n}\n\n</code></pre>\n<h4 id=\"response\">Response</h4>\n<p>Upon a successful enrollment, the server will respond with a JSON object containing the details of the enrollment. The structure of the response will typically include:</p>\n<ul>\n<li><p><code>status</code> (string): Indicates the success or failure of the enrollment process.</p>\n</li>\n<li><p><code>message</code> (string): A message providing additional information about the enrollment status.</p>\n</li>\n<li><p><code>data</code> (object): Contains any relevant data regarding the enrolled courses.</p>\n</li>\n</ul>\n<p><strong>Example Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"success\",\n  \"message\": \"Enrollment successful.\",\n  \"data\": {\n    \"courses\": [\n      {\n        \"courseId\": \"12345\",\n        \"courseName\": \"Introduction to Programming\"\n      }\n    ]\n  }\n}\n\n</code></pre>\n<p>Ensure that the email provided is valid and corresponds to a user in the system to avoid enrollment errors.</p>\n","urlObject":{"path":["courses","enrollment","enrolled-courses"],"host":["{{CoursebaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"42ff5d73-7319-48a7-98d3-ed3f017af78f"}],"id":"09b4d2e2-b4ac-4957-8a30-8b9a9251d3eb","_postman_id":"09b4d2e2-b4ac-4957-8a30-8b9a9251d3eb","description":""},{"name":"InstituteService","item":[{"name":"Get Institute Details","id":"cea50238-7465-4f0f-abb3-f0e4dd929a53","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{InstituteURL}}/get-institute/68306c98387a027f8a70929b","description":"<h2 id=\"get-institute-details\">Get Institute Details</h2>\n<p>This endpoint retrieves detailed information about a specific institute identified by its unique ID.</p>\n<h3 id=\"request\">Request</h3>\n<ul>\n<li><p><strong>Method</strong>: GET</p>\n</li>\n<li><p><strong>URL</strong>: <code>{{InstituteURL}}/get-institute/{instituteId}</code></p>\n</li>\n</ul>\n<h4 id=\"path-parameters\">Path Parameters</h4>\n<ul>\n<li><code>instituteId</code> (string): The unique identifier of the institute you wish to retrieve information for. In this example, the ID is <code>68306c98387a027f8a70929b</code>.</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>The response will return a JSON object containing the details of the requested institute. The structure of the response typically includes the following fields:</p>\n<ul>\n<li><p><code>id</code> (string): The unique identifier of the institute.</p>\n</li>\n<li><p><code>name</code> (string): The name of the institute.</p>\n</li>\n<li><p><code>location</code> (string): The geographical location of the institute.</p>\n</li>\n<li><p><code>courses</code> (array): A list of courses offered by the institute, where each course may include additional details such as course name, duration, and fees.</p>\n</li>\n<li><p><code>contact</code> (object): An object containing contact details, including phone number and email address.</p>\n</li>\n</ul>\n<h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"68306c98387a027f8a70929b\",\n  \"name\": \"Example Institute\",\n  \"location\": \"123 Example Street, Example City\",\n  \"courses\": [\n    {\n      \"courseId\": \"course123\",\n      \"courseName\": \"Example Course\",\n      \"duration\": \"6 months\",\n      \"fees\": \"1000\"\n    }\n  ],\n  \"contact\": {\n    \"phone\": \"+1234567890\",\n    \"email\": \"contact@example.com\"\n  }\n}\n\n</code></pre>\n<p>This endpoint is useful for obtaining comprehensive information about an institute, which can be utilized for various applications such as displaying details on a website or mobile application.</p>\n","urlObject":{"path":["get-institute","68306c98387a027f8a70929b"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"cea50238-7465-4f0f-abb3-f0e4dd929a53"},{"name":"Update Institute Details","id":"fd0c2647-5e57-4217-986e-14077fe30f5e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3ODU4MzcwZmUxODFkOTFiOTRkZDNiYyIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjc4NTgzNzBmZTE4MWQ5MWI5NGRkM2JhIiwiaWF0IjoxNzM3MDMwNjY5LCJleHAiOjE3MzcwMzQyNjl9.VypVRtYb0LihdPF3nIez64nsvmT57FAIyYQocBdMU9A","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"email\":\"taranjeet3412@gmail.com\"\r\n} ","options":{"raw":{"language":"json"}}},"url":"{{InstituteURL}}/update-details/67858370fe181d91b94dd3ba","description":"<h2 id=\"update-user-details\">Update User Details</h2>\n<p>This endpoint allows you to update the details of a user identified by a unique ID in the URL. The request is made using the HTTP POST method.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<ul>\n<li><strong>email</strong> (string): The new email address of the user. This parameter is required and must be a valid email format.</li>\n</ul>\n<h3 id=\"request-example\">Request Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"email\": \"user@example.com\"\n}\n\n</code></pre>\n<h3 id=\"response-structure\">Response Structure</h3>\n<p>Upon a successful request, the response will typically include a confirmation message indicating that the user details have been updated. The exact structure of the response may vary, but it generally includes:</p>\n<ul>\n<li><p><strong>status</strong> (string): Indicates the success or failure of the operation.</p>\n</li>\n<li><p><strong>message</strong> (string): A descriptive message about the result of the update operation.</p>\n</li>\n</ul>\n<h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"success\",\n  \"message\": \"User details updated successfully.\"\n}\n\n</code></pre>\n<p>Ensure that the email provided is valid to avoid errors during the update process.</p>\n","urlObject":{"path":["update-details","67858370fe181d91b94dd3ba"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"fd0c2647-5e57-4217-986e-14077fe30f5e"},{"name":"Upload cover or profile","id":"aa9567e4-6765-428a-aec7-4994e2f301fa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY4NzIyODJiNzYxNTY2YWUyN2E0ZDQxNCIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjczZjkwMDExYzIwOGVkNDg3ZDY1OTMwIiwiaW5zdGl0dXRpb25UeXBlIjoic2Nob29sIiwiaWF0IjoxNzUzMjgxMDQxLCJleHAiOjE3NTMyODQ2NDF9.4g5UaSaCayzKY9ZYfPiq-V5x4TbI4Y6jZgv_0_uuVU8","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"file","type":"file","src":"xSs2sNdQn/evergreen_pos1_june2025_homepage_desktop.jpg"},{"key":"type","value":"cover","type":"text"}]},"url":"{{InstituteURL}}/upload/673f90011c208ed487d65930","description":"<h2 id=\"upload-file-endpoint\">Upload File Endpoint</h2>\n<p>This endpoint allows users to upload files to the specified institute. It is designed to handle file uploads along with an associated type descriptor.</p>\n<h3 id=\"request\">Request</h3>\n<p><strong>Method:</strong> POST<br /><strong>URL:</strong> <code>{{InstituteURL}}/upload/67858370fe181d91b94dd3ba</code></p>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request body must be sent as <code>form-data</code> and should contain the following parameters:</p>\n<ul>\n<li><p><strong>file</strong> (type: file): The file to be uploaded. This parameter is required.</p>\n</li>\n<li><p><strong>type</strong> (type: text): A string that describes the type of the file being uploaded. This parameter is also required.</p>\n</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>The response structure will typically include a confirmation of the upload status, along with any relevant metadata about the uploaded file. The exact response format may vary depending on the implementation but generally includes status codes and messages indicating the success or failure of the upload.</p>\n<p>Ensure that the request body adheres to the specified format for successful processing of the upload.</p>\n","urlObject":{"path":["upload","673f90011c208ed487d65930"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"aa9567e4-6765-428a-aec7-4994e2f301fa"},{"name":"Get Institute Details By Domain","id":"ded303e1-ced4-491f-85a6-fc8a65140e2f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"instituteDomain\":\"www.springlearns.com\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{InstituteURL}}/get-institute-by-domain","description":"<h2 id=\"get-institute-by-domain\">Get Institute by Domain</h2>\n<p>This endpoint allows users to retrieve information about an educational institute based on its domain name. It is particularly useful for applications that need to gather details about institutes for various purposes, such as enrollment, information dissemination, or analytics.</p>\n<h3 id=\"request\">Request</h3>\n<ul>\n<li><p><strong>Method</strong>: POST</p>\n</li>\n<li><p><strong>Endpoint</strong>: <code>{{InstituteURL}}/get-institute-by-domain</code></p>\n</li>\n</ul>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request body must be in JSON format and should contain the following parameter:</p>\n<ul>\n<li><strong>instituteDomain</strong> (string): The domain name of the institute for which information is being requested. This should be a valid domain format (e.g., <code>www.example.com</code>).</li>\n</ul>\n<p><strong>Example Request Body</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"instituteDomain\": \"www.springlearns.com\"\n}\n\n</code></pre>\n<h3 id=\"response\">Response</h3>\n<p>Upon a successful request, the response will provide detailed information about the institute associated with the specified domain. The structure of the response may include various attributes related to the institute, such as:</p>\n<ul>\n<li><p><strong>instituteId</strong> (string): Unique identifier for the institute.</p>\n</li>\n<li><p><strong>name</strong> (string): The name of the institute.</p>\n</li>\n<li><p><strong>location</strong> (string): The geographical location of the institute.</p>\n</li>\n<li><p><strong>courses</strong> (array): A list of courses offered by the institute.</p>\n</li>\n<li><p><strong>contactInfo</strong> (object): Contains details like phone number and email address.</p>\n</li>\n</ul>\n<h3 id=\"usage\">Usage</h3>\n<p>To use this endpoint effectively, ensure that the <code>instituteDomain</code> is correctly formatted and corresponds to an existing institute. The response will provide the necessary information that can be utilized for further processing or display in your application.</p>\n","urlObject":{"path":["get-institute-by-domain"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"ded303e1-ced4-491f-85a6-fc8a65140e2f"}],"id":"8f9c561b-8b84-43bf-9edd-6128039f0400","_postman_id":"8f9c561b-8b84-43bf-9edd-6128039f0400","description":""},{"name":"StudentAuthService","item":[{"name":"Register or generate Student","id":"6d4c657b-2bec-4edf-b467-d685290f6835","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"\r\n   {\r\n    \"firstName\":\"Kalsi\",     //optional\r\n    \"lastName\":\"Singh\",         //optional  \r\n    \"email\":\"taranjeet3412@gmail.com\",\r\n    \"phoneNumber\":\"8368419670\",\r\n    \"institutionId\":\"68306c98387a027f8a70929b\",\r\n    \"password\":\"12345\",\r\n    \"confirmPassword\":\"12345\",\r\n    \"autoGeneratePassword\":false    // True = will generate password and send it to email\r\n} ","options":{"raw":{"language":"json"}}},"url":"{{StudentUrl}}/api/student/auth/generate-cred","description":"<h2 id=\"generate-credentials-for-student\">Generate Credentials for Student</h2>\n<p>This endpoint is used to generate credentials for a student by providing their personal information and desired password settings. It is typically used during the registration or onboarding process to create a new student account.</p>\n<h3 id=\"request\">Request</h3>\n<p><strong>Method:</strong> POST<br /><strong>Endpoint:</strong> <code>{{StudentUrl}}/api/student/auth/generate-cred</code></p>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request body must be in JSON format and include the following parameters:</p>\n<ul>\n<li><p><strong>firstName</strong> (string): The first name of the student.</p>\n</li>\n<li><p><strong>lastName</strong> (string): The last name of the student.</p>\n</li>\n<li><p><strong>email</strong> (string): The email address of the student, which will be used for account verification and communication.</p>\n</li>\n<li><p><strong>phoneNumber</strong> (string): The phone number of the student for contact purposes.</p>\n</li>\n<li><p><strong>institutionId</strong> (string): The unique identifier for the institution the student is associated with.</p>\n</li>\n<li><p><strong>password</strong> (string): The desired password for the student account.</p>\n</li>\n<li><p><strong>confirmPassword</strong> (string): A confirmation of the password to ensure it is entered correctly.</p>\n</li>\n<li><p><strong>autoGeneratePassword</strong> (boolean): A flag indicating whether to automatically generate a password if set to true.</p>\n</li>\n</ul>\n<h4 id=\"example-request-body\">Example Request Body</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"firstName\": \"Kalsi\",\n  \"lastName\": \"Singh\",\n  \"email\": \"taranjeet3412@gmail.com\",\n  \"phoneNumber\": \"8368419670\",\n  \"institutionId\": \"68306c98387a027f8a70929b\",\n  \"password\": \"12345\",\n  \"confirmPassword\": \"12345\",\n  \"autoGeneratePassword\": false\n}\n\n</code></pre>\n<h3 id=\"response\">Response</h3>\n<p>The response will contain a confirmation of the credential generation process. The structure of the response may include:</p>\n<ul>\n<li><p><strong>status</strong> (string): Indicates the success or failure of the operation.</p>\n</li>\n<li><p><strong>message</strong> (string): A descriptive message providing further details about the result of the request.</p>\n</li>\n<li><p><strong>data</strong> (object): Contains additional information related to the generated credentials, such as the student ID or account status.</p>\n</li>\n</ul>\n<h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"success\",\n  \"message\": \"Credentials generated successfully.\",\n  \"data\": {\n    \"studentId\": \"123456\",\n    \"email\": \"taranjeet3412@gmail.com\"\n  }\n}\n\n</code></pre>\n<p>Ensure that all required fields are provided in the request to avoid errors during credential generation.</p>\n","urlObject":{"path":["api","student","auth","generate-cred"],"host":["{{StudentUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"6d4c657b-2bec-4edf-b467-d685290f6835"},{"name":"Login","id":"096ed577-fcf1-47a9-97dc-03647b2aaa84","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"emailOrPhoneNumber\":\"tarankhalsa3412@gmail.com\",\r\n    \"password\":\"secure\"\r\n} \r\n","options":{"raw":{"language":"json"}}},"url":"https://studentapi.anginatlearning.com/api/student/auth/login","description":"<h2 id=\"login-endpoint\">Login Endpoint</h2>\n<p>This endpoint is used for authenticating a student user by logging them into the system. It validates the provided credentials and returns an authentication token if the login is successful.</p>\n<h3 id=\"request\">Request</h3>\n<ul>\n<li><p><strong>Method</strong>: POST</p>\n</li>\n<li><p><strong>URL</strong>: <code>https://studentapi.anginatlearning.com/api/student/auth/login</code></p>\n</li>\n</ul>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request body must be in JSON format and should contain the following parameters:</p>\n<ul>\n<li><p><strong>emailOrPhoneNumber</strong> (string): The email address or phone number associated with the student account. This is used to identify the user attempting to log in.</p>\n</li>\n<li><p><strong>password</strong> (string): The password corresponding to the provided email or phone number. This is used to verify the user's identity.</p>\n</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>Upon a successful login, the API will return a response containing the following structure:</p>\n<ul>\n<li><p><strong>status</strong> (string): Indicates the success or failure of the login attempt.</p>\n</li>\n<li><p><strong>token</strong> (string): A unique authentication token that can be used for subsequent requests to access protected resources.</p>\n</li>\n<li><p><strong>message</strong> (string): A message providing additional information about the login attempt, such as success confirmation or error details.</p>\n</li>\n</ul>\n<h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"success\",\n  \"token\": \"your_auth_token_here\",\n  \"message\": \"Login successful\"\n}\n\n</code></pre>\n<p>This endpoint is essential for users to gain access to their accounts and utilize the features provided by the application.</p>\n","urlObject":{"protocol":"https","path":["api","student","auth","login"],"host":["studentapi","anginatlearning","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"096ed577-fcf1-47a9-97dc-03647b2aaa84"},{"name":"Refresh Token","id":"bc0b553e-cf03-4be9-81d8-ce2f41ad8d40","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"","type":"text"}],"url":"https://studentapi.anginatlearning.com/api/student/auth/refresh-token","description":"<h2 id=\"refresh-token-api\">Refresh Token API</h2>\n<p>This endpoint allows users to refresh their authentication tokens. It is particularly useful for maintaining user sessions without requiring them to log in again.</p>\n<h3 id=\"request\">Request</h3>\n<ul>\n<li><p><strong>Method</strong>: <code>POST</code></p>\n</li>\n<li><p><strong>Endpoint</strong>: <code>http://localhost:3002/api/student/auth/refresh-token</code></p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>The request body must be sent in <code>application/x-www-form-urlencoded</code> format and should include the following parameters:</p>\n<ul>\n<li><strong>token</strong> (string): The current refresh token that is being used to obtain a new access token.</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>Upon a successful request, the server will respond with a JSON object containing the following fields:</p>\n<ul>\n<li><p><strong>accessToken</strong> (string): The newly generated access token.</p>\n</li>\n<li><p><strong>expiresIn</strong> (integer): The duration (in seconds) until the access token expires.</p>\n</li>\n</ul>\n<h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"accessToken\": \"new_access_token_value\",\n  \"expiresIn\": 3600\n}\n\n</code></pre>\n<p>Ensure that the refresh token is valid and has not expired to receive a successful response.</p>\n","urlObject":{"protocol":"https","path":["api","student","auth","refresh-token"],"host":["studentapi","anginatlearning","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"bc0b553e-cf03-4be9-81d8-ce2f41ad8d40"},{"name":"Forgot Password","id":"f950fab2-8e06-4c4c-a03f-7df7679b3cd8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\":\"taranjeet3412@gmail.com\",\r\n    \"otpType\":\"email\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{StudentUrl}}/api/student/auth/forgot-password","description":"<h2 id=\"forgot-password-api\">Forgot Password API</h2>\n<p>This endpoint allows users to initiate the password recovery process by sending a request to receive a One-Time Password (OTP) via email.</p>\n<h3 id=\"request\">Request</h3>\n<ul>\n<li><p><strong>Method</strong>: POST</p>\n</li>\n<li><p><strong>Endpoint</strong>: <code>{{StudentUrl}}/api/student/auth/forgot-password</code></p>\n</li>\n</ul>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request must include a JSON object with the following parameters:</p>\n<ul>\n<li><p><strong>email</strong> (string): The email address associated with the user's account. This is required to send the OTP.</p>\n</li>\n<li><p><strong>otpType</strong> (string): Specifies the type of OTP to be sent. In this case, it should be set to \"email\" to indicate that the OTP will be sent to the user's email address.</p>\n</li>\n</ul>\n<p><strong>Example Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"email\": \"user@example.com\",\n  \"otpType\": \"email\"\n}\n\n</code></pre>\n<h3 id=\"response\">Response</h3>\n<p>Upon successful processing of the request, the API will return a response indicating the status of the OTP request. The structure of the response may include:</p>\n<ul>\n<li><p><strong>status</strong> (string): Indicates whether the request was successful or if there was an error.</p>\n</li>\n<li><p><strong>message</strong> (string): A descriptive message providing additional information regarding the request status.</p>\n</li>\n</ul>\n<p><strong>Example Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"success\",\n  \"message\": \"OTP has been sent to your email.\"\n}\n\n</code></pre>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li><p>Ensure that the email provided is valid and associated with an existing account to successfully receive the OTP.</p>\n</li>\n<li><p>If the email is not registered, the response may indicate an error, and no OTP will be sent.</p>\n</li>\n</ul>\n","urlObject":{"path":["api","student","auth","forgot-password"],"host":["{{StudentUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"f950fab2-8e06-4c4c-a03f-7df7679b3cd8"},{"name":"Verify Otp","id":"5e275682-576d-4148-9a32-f7ebac2d6541","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"receiverId\":\"tarankhalsa3412@gmail.com\",\r\n    \"otpType\":\"email\",\r\n    \"otp\":\"672767\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{StudentUrl}}/api/student/auth/verify-otp","description":"<h2 id=\"verify-otp\">Verify OTP</h2>\n<p>This endpoint is used to verify a One-Time Password (OTP) sent to a user's email. It is essential for confirming the user's identity during the authentication process.</p>\n<h3 id=\"request-method\">Request Method</h3>\n<p><code>POST</code></p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<p><code>http://localhost:3002/api/student/auth/verify-otp</code></p>\n<h3 id=\"request-body\">Request Body</h3>\n<p>The request body must be in JSON format and should include the following parameters:</p>\n<ul>\n<li><p><strong>receiverId</strong> (string): The email address of the user who is verifying the OTP.</p>\n</li>\n<li><p><strong>otpType</strong> (string): The type of OTP being verified, which in this case is set to \"email\".</p>\n</li>\n<li><p><strong>otp</strong> (string): The OTP that the user has received and needs to verify.</p>\n</li>\n</ul>\n<h3 id=\"example-request\">Example Request</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"receiverId\": \"example@example.com\",\n  \"otpType\": \"email\",\n  \"otp\": \"123456\"\n}\n\n</code></pre>\n<h3 id=\"expected-response-format\">Expected Response Format</h3>\n<p>Upon successful verification, the server will respond with a JSON object indicating the result of the OTP verification. The response will typically include a success message or an error message if the verification fails.</p>\n<h3 id=\"notes\">Notes</h3>\n<p>Ensure that the OTP provided matches the one sent to the specified email address for successful verification.</p>\n","urlObject":{"path":["api","student","auth","verify-otp"],"host":["{{StudentUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"5e275682-576d-4148-9a32-f7ebac2d6541"},{"name":"Reset Password","id":"6da15646-5cd8-4a0a-bb69-5a1d44c3f959","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"newPassword\":\"secure\",\r\n    \"confirmPassword\":\"secure\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:3002/api/student/auth/reset-password","description":"<h3 id=\"reset-password-api\">Reset Password API</h3>\n<p>This endpoint allows users to reset their password. It requires the user to provide a new password and a confirmation of that password to ensure accuracy.</p>\n<h4 id=\"request\">Request</h4>\n<p><strong>Method:</strong> POST<br /><strong>Endpoint:</strong> <code>{{StudentUrl}}/api/student/auth/reset-password</code></p>\n<p><strong>Request Body:</strong><br />The request should include a JSON object with the following parameters:</p>\n<ul>\n<li><p><code>newPassword</code> (string): The new password that the user wants to set.</p>\n</li>\n<li><p><code>confirmPassword</code> (string): A confirmation of the new password to validate that both entries match.</p>\n</li>\n</ul>\n<p>Example Request Body:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"newPassword\": \"secure\",\n  \"confirmPassword\": \"secure\"\n}\n\n</code></pre>\n<h4 id=\"response\">Response</h4>\n<p>The response will indicate the success or failure of the password reset operation. The structure of the response may include:</p>\n<ul>\n<li><p>A success message or error details indicating the outcome of the request.</p>\n</li>\n<li><p>Additional information may be provided based on the implementation.</p>\n</li>\n</ul>\n<p>Ensure that both password fields match to successfully reset the password.</p>\n","urlObject":{"protocol":"http","port":"3002","path":["api","student","auth","reset-password"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"6da15646-5cd8-4a0a-bb69-5a1d44c3f959"},{"name":"Send Otp","id":"b1cc0c9a-b4d7-4332-9fb7-e6bc5438cdb4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\":\"tarankhalsa3412@gmail.com\",\r\n    \"otpType\":\"email\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://studentapi.anginatlearning.com/api/student/auth/send-otp","description":"<h2 id=\"send-otp-for-student-authentication\">Send OTP for Student Authentication</h2>\n<p>This endpoint allows users to initiate the process of authentication by sending a One-Time Password (OTP) to the specified email address. It is primarily used for verifying the identity of students during the login process.</p>\n<h3 id=\"request\">Request</h3>\n<p><strong>Method:</strong> POST<br /><strong>URL:</strong> <code>https://studentapi.anginatlearning.com/api/student/auth/send-otp</code></p>\n<h4 id=\"request-body-parameters\">Request Body Parameters</h4>\n<ul>\n<li><p><strong>email</strong> (string): The email address to which the OTP will be sent. This should be a valid email format.</p>\n</li>\n<li><p><strong>otpType</strong> (string): Specifies the type of OTP to be sent. In this case, it is set to \"email\" to indicate that the OTP should be sent via email.</p>\n</li>\n</ul>\n<h3 id=\"expected-response\">Expected Response</h3>\n<p>On successful request, the API will respond with a confirmation of the OTP being sent. The exact structure of the response may vary, but it typically includes:</p>\n<ul>\n<li><p>A success message indicating that the OTP has been dispatched to the provided email address.</p>\n</li>\n<li><p>Any relevant status codes to indicate the outcome of the request (e.g., success or error).</p>\n</li>\n</ul>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li><p>Ensure that the email provided is registered in the system to receive the OTP.</p>\n</li>\n<li><p>If the email is not registered, the response will indicate an error.</p>\n</li>\n<li><p>This endpoint is essential for enhancing security during the authentication process by using OTPs.</p>\n</li>\n</ul>\n<p>Make sure to handle the OTP verification process after receiving the OTP to complete the authentication flow.</p>\n","urlObject":{"protocol":"https","path":["api","student","auth","send-otp"],"host":["studentapi","anginatlearning","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"b1cc0c9a-b4d7-4332-9fb7-e6bc5438cdb4"},{"name":"Fetch Student","id":"4a5ae28a-b4be-480f-90cc-42c2907f075e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\":\"tarankhalsa3412@gmail.com\"\r\n} ","options":{"raw":{"language":"json"}}},"url":"{{StudentUrl}}/api/student/auth/fetch-student","description":"<h2 id=\"fetch-student-authentication\">Fetch Student Authentication</h2>\n<p>This endpoint is used to authenticate a student by fetching their information based on the provided email address. It is essential for verifying student credentials and retrieving relevant data from the system.</p>\n<h3 id=\"request\">Request</h3>\n<ul>\n<li><p><strong>Method</strong>: POST</p>\n</li>\n<li><p><strong>Endpoint</strong>: <code>{{StudentUrl}}/api/student/auth/fetch-student</code></p>\n</li>\n</ul>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request body should be in JSON format and must include the following parameter:</p>\n<ul>\n<li><strong>email</strong> (string): The email address of the student. This is required for the authentication process.</li>\n</ul>\n<p><strong>Example Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"email\": \"student@example.com\"\n}\n\n</code></pre>\n<h3 id=\"response\">Response</h3>\n<p>Upon a successful request, the server will respond with a JSON object containing the student's authentication status and any relevant data associated with the student. The structure of the response may include:</p>\n<ul>\n<li><p><strong>status</strong> (string): Indicates the success or failure of the authentication process.</p>\n</li>\n<li><p><strong>data</strong> (object): Contains student-specific information, which may include fields such as student ID, name, and enrollment status.</p>\n</li>\n<li><p><strong>message</strong> (string): A descriptive message providing additional context about the authentication result.</p>\n</li>\n</ul>\n<p><strong>Example Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"success\",\n  \"data\": {\n    \"studentId\": \"12345\",\n    \"name\": \"John Doe\",\n    \"enrollmentStatus\": \"active\"\n  },\n  \"message\": \"Authentication successful.\"\n}\n\n</code></pre>\n<p>Ensure that the email provided in the request body is valid and corresponds to a registered student in the system for successful authentication.</p>\n","urlObject":{"path":["api","student","auth","fetch-student"],"host":["{{StudentUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"4a5ae28a-b4be-480f-90cc-42c2907f075e"},{"name":"Verify Token","id":"9ce5b66d-ffbf-4f1d-8046-a24664662f4f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3ZDA4ZmI3NzQ2ZjMyYjk4MjBmMDQ5MSIsImVtYWlsIjoidGFyYW5raGFsc2EzNDEyQGdtYWlsLmNvbSIsInBob25lTnVtYmVyIjoiODI4NzE5Mzk5NSIsImlhdCI6MTc0MjgxNzg2NiwiZXhwIjoxNzQyODIxNDY2fQ.8AtzubUvvj58oWFvebS205cxV3SB3B41AI_oonA2aSA","type":"text"}],"url":"{{StudentUrl}}/api/student/auth/verify-token","description":"<h1 id=\"verify-token-endpoint\">Verify Token Endpoint</h1>\n<p>This endpoint is used to verify the authentication token of a student. It checks if the provided token is valid and has not expired.</p>\n<h2 id=\"request\">Request</h2>\n<ul>\n<li><p><strong>Method</strong>: GET</p>\n</li>\n<li><p><strong>URL</strong>: <code>{{StudentUrl}}/api/student/auth/verify-token</code></p>\n</li>\n</ul>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<p>This endpoint does not require any additional parameters in the request body. The token should be included in the request headers as follows:</p>\n<ul>\n<li><strong>Authorization</strong>: <code>Bearer {token}</code><br />  This header should contain the authentication token that needs to be verified.</li>\n</ul>\n<h2 id=\"response\">Response</h2>\n<p>Upon successful verification, the response will include:</p>\n<ul>\n<li><p><strong>status</strong>: Indicates the success or failure of the token verification.</p>\n</li>\n<li><p><strong>message</strong>: A descriptive message about the result of the verification.</p>\n</li>\n<li><p><strong>data</strong>: Contains any additional information if the token is valid.</p>\n</li>\n</ul>\n<h3 id=\"expected-response-example\">Expected Response Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"success\",\n  \"message\": \"Token is valid.\",\n  \"data\": {\n    \"userId\": \"12345\",\n    \"role\": \"student\"\n  }\n}\n\n</code></pre>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li><p>Ensure that the token is correctly formatted and valid.</p>\n</li>\n<li><p>If the token is invalid or expired, the response will indicate the failure and provide an appropriate message.</p>\n</li>\n<li><p>This endpoint is crucial for maintaining secure access to student-related resources.</p>\n</li>\n</ul>\n","urlObject":{"path":["api","student","auth","verify-token"],"host":["{{StudentUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"9ce5b66d-ffbf-4f1d-8046-a24664662f4f"},{"name":"Update Email","id":"94493b89-73d0-4300-8a78-14ad18284c5e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\":\"taranjeet3412@gmail.com\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{StudentUrl}}/api/student/auth/update-email","description":"<h2 id=\"update-student-email\">Update Student Email</h2>\n<p>This endpoint allows the user to update the email address associated with a student account.</p>\n<h3 id=\"request\">Request</h3>\n<ul>\n<li><p><strong>Method</strong>: POST</p>\n</li>\n<li><p><strong>URL</strong>: <code>{{StudentUrl}}/api/student/auth/update-email</code></p>\n</li>\n<li><p><strong>Content-Type</strong>: application/json</p>\n</li>\n</ul>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request body must be a JSON object containing the following parameter:</p>\n<ul>\n<li><strong>email</strong> (string): The new email address to be associated with the student account. This should be a valid email format.</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>Upon a successful request, the API will return a response indicating the status of the email update. The expected response will typically include:</p>\n<ul>\n<li><p>A success message confirming that the email has been updated.</p>\n</li>\n<li><p>Any relevant details regarding the update process.</p>\n</li>\n</ul>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li><p>Ensure that the email provided is unique and not already in use by another account.</p>\n</li>\n<li><p>If the email format is invalid or if the email is already associated with another account, an error response will be returned.</p>\n</li>\n</ul>\n","urlObject":{"path":["api","student","auth","update-email"],"host":["{{StudentUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"94493b89-73d0-4300-8a78-14ad18284c5e"},{"name":"Fetch Institute Student","id":"605dd823-4111-4e9d-8e11-aaf46923f9de","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"url":"{{StudentUrl}}/api/student/get-institute-students","description":"<h3 id=\"get-institute-students\">Get Institute Students</h3>\n<p>This endpoint retrieves a list of students associated with a specific institute. It is designed to provide information about all students enrolled in the institute, which can be useful for administrative purposes or for displaying student data in applications.</p>\n<h4 id=\"request\">Request</h4>\n<ul>\n<li><p><strong>Method</strong>: GET</p>\n</li>\n<li><p><strong>URL</strong>: <code>{{StudentUrl}}/api/student/get-institute-students</code></p>\n</li>\n</ul>\n<h5 id=\"request-body\">Request Body</h5>\n<p>This endpoint does not require a request body.</p>\n<h4 id=\"response\">Response</h4>\n<p>The response will be a JSON object containing the following structure:</p>\n<ul>\n<li><p><strong>status</strong>: A string indicating the success or failure of the request.</p>\n</li>\n<li><p><strong>data</strong>: An array of student objects, where each object may contain:</p>\n<ul>\n<li><p><strong>studentId</strong>: A unique identifier for the student.</p>\n</li>\n<li><p><strong>name</strong>: The name of the student.</p>\n</li>\n<li><p><strong>email</strong>: The email address of the student.</p>\n</li>\n<li><p><strong>enrollmentDate</strong>: The date the student enrolled in the institute.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h5 id=\"example-response\">Example Response</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"success\",\n  \"data\": [\n    {\n      \"studentId\": \"12345\",\n      \"name\": \"John Doe\",\n      \"email\": \"john.doe@example.com\",\n      \"enrollmentDate\": \"2022-01-15\"\n    },\n    {\n      \"studentId\": \"67890\",\n      \"name\": \"Jane Smith\",\n      \"email\": \"jane.smith@example.com\",\n      \"enrollmentDate\": \"2022-01-20\"\n    }\n  ]\n}\n\n</code></pre>\n<p>This structure allows clients to easily parse the list of students and access relevant information as needed.</p>\n","urlObject":{"path":["api","student","get-institute-students"],"host":["{{StudentUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"605dd823-4111-4e9d-8e11-aaf46923f9de"}],"id":"d938765c-93f7-4e6b-a486-d31e6c72bd69","_postman_id":"d938765c-93f7-4e6b-a486-d31e6c72bd69","description":""},{"name":"StudentService","item":[{"name":"Fetch Students","id":"be84b77f-a809-4499-a7eb-1011d0f20e8c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"url":"{{StudentUrl}}/api/student/profile/get-students?sectionId=68386800e951ba52db560873&academicClass=68386088ea3f402e8672fb33&degree&semester","description":"<h2 id=\"get---fetch-students\">GET - Fetch Students</h2>\n<p>This endpoint allows users to get students according to the filteration</p>\n<h3 id=\"request\">Request</h3>\n<p><strong>Method:</strong> POST<br /><strong>Endpoint:</strong> {{StudentUrl}}/api/student/profile/assign-students</p>\n<h4 id=\"request-query-parameters\">Request Query Parameters</h4>\n<p>The request parameters and should contain the following parameters:</p>\n<ul>\n<li><p><strong>degree</strong> : id of degree (if institute is college )</p>\n</li>\n<li><p><strong>section :</strong> id of section</p>\n</li>\n<li><p><strong>semester :</strong> id of semester ( if institute is college )</p>\n</li>\n<li><p><strong>academicClass :</strong> id of academicClass</p>\n</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>The response will contain the result of the</p>\n<ul>\n<li><p>A success message indicating that students are fetched .</p>\n</li>\n<li><p>Data of each student.</p>\n</li>\n</ul>\n<p>Ensure that the input parameters are correctly formatted to receive a successful response.</p>\n","urlObject":{"path":["api","student","profile","get-students"],"host":["{{StudentUrl}}"],"query":[{"key":"sectionId","value":"68386800e951ba52db560873"},{"key":"academicClass","value":"68386088ea3f402e8672fb33"},{"key":"degree","value":null},{"key":"semester","value":null}],"variable":[]}},"response":[],"_postman_id":"be84b77f-a809-4499-a7eb-1011d0f20e8c"},{"name":"Update Profile Details","id":"2ffcba61-d812-46ac-8f1f-ea5652894ff2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY4MWI1NGQ1Nzg1MzdlZjkzN2RjYjFlNSIsImVtYWlsIjoidGFyYW5qZWV0MzQxMkBnbWFpbC5jb20iLCJwaG9uZU51bWJlciI6IjgzNjg0MTk2NzAiLCJyb2xlIjoic3R1ZGVudCIsImlhdCI6MTc0NjYyMTczNiwiZXhwIjoxNzQ2NjI1MzM2fQ.flO_2gHwwvKls_o5TMOc4Z70jQQ_mY0_h14z4IT6Es0","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"address\":{\r\n        \"street\":\"C-58 DDA flats Garhi East Of Kailash\",\r\n        \"city\":\"New Delhi\",\r\n        \"state\":\"Delhi\",\r\n        \"zipCode\":\"110065\"\r\n    },\r\n    \"gender\":\"male\",\r\n    \"nationality\":\"Indian\",\r\n    \"religion\":\"Sikhism\",\r\n    \"caste\":\"General\",\r\n    \"fatherName\":\"Mahan Singh\",\r\n    \"motherName\":\"Amrit Kaur\",\r\n    \"fatherContact\":\"1234567890\",\r\n    \"motherContact\":\"1234567890\"\r\n} ","options":{"raw":{"language":"json"}}},"url":"{{StudentUrl}}/api/student/profile/update-profile","description":"<h2 id=\"post---update-profile-details\">POST - Update Profile Details</h2>\n<p>This endpoint allows student to update their profile data</p>\n<h3 id=\"request\">Request</h3>\n<p><strong>Method:</strong> POST<br /><strong>Endpoint:</strong> {{StudentUrl}}/api/student/profile/assign-students</p>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request parameters and should contain the following parameters:</p>\n<ul>\n<li><p><strong>address</strong>:</p>\n<ul>\n<li><p>street</p>\n</li>\n<li><p>city</p>\n</li>\n<li><p>state</p>\n</li>\n<li><p>zipCode</p>\n</li>\n</ul>\n</li>\n<li><p><strong>gender:</strong></p>\n</li>\n<li><p><strong>nationality</strong></p>\n</li>\n<li><p><strong>religion</strong></p>\n</li>\n<li><p><strong>caste</strong></p>\n</li>\n<li><p><strong>fatherName</strong></p>\n</li>\n<li><p><strong>motherName</strong></p>\n</li>\n<li><p><strong>fatherContact</strong></p>\n</li>\n<li><p><strong>motherContact</strong></p>\n</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>The response will contain the result of the</p>\n<ul>\n<li><p>A success message indicating that students are fetched .</p>\n</li>\n<li><p>Updated Data of student profile</p>\n</li>\n</ul>\n<p>Ensure that the input parameters are correctly formatted to receive a successful response.</p>\n","urlObject":{"path":["api","student","profile","update-profile"],"host":["{{StudentUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"2ffcba61-d812-46ac-8f1f-ea5652894ff2"},{"name":"Upload Profile Image","id":"7d5ffe4f-9bb3-42df-a459-9391b3fdc33b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3ZWQ1ODdjM2E1Nzk1NTA5YTE1NGZiZCIsImVtYWlsIjoidGFyYW5qZWV0MzQxMkBnbWFpbC5jb20iLCJwaG9uZU51bWJlciI6IjgzNjg0MTk2NzAiLCJyb2xlIjoic3R1ZGVudCIsImlhdCI6MTc0NDYyNTE1NSwiZXhwIjoxNzQ0NjI4NzU1fQ.FXo5UgAszH-TDb45AiYS-gO2bh0HeeUbcJyJ6frQWGo","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"profile","type":"file","uuid":"43045c75-8632-4a98-aad5-c13a43048ada","value":null}]},"url":"{{StudentUrl}}/api/student/profile/upload-profile-image","description":"<h2 id=\"post---update-profile-image\">POST - Update Profile Image</h2>\n<p>This endpoint allows student to update their profile Image</p>\n<h3 id=\"request\">Request</h3>\n<p><strong>Method:</strong> POST<br /><strong>Endpoint:</strong> {{StudentUrl}}/api/student/profile/upload-profile-image</p>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request form-data body and should contain the following parameters:</p>\n<ul>\n<li>**profile ( file ) : (**to change profile pic of student )</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>The response will contain the result of the</p>\n<ul>\n<li><p>A success message indicating that students are fetched .</p>\n</li>\n<li><p>Updated Data of student profile</p>\n</li>\n</ul>\n<p>Ensure that the input parameters are correctly formatted to receive a successful response.</p>\n","urlObject":{"path":["api","student","profile","upload-profile-image"],"host":["{{StudentUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"7d5ffe4f-9bb3-42df-a459-9391b3fdc33b"},{"name":"Student History","id":"84754810-f0f9-4abe-8ed0-fe6c08a9bc66","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"url":"{{StudentUrl}}/api/student/student-history?id={{studentId}}","description":"<h2 id=\"get---get-student-history\">GET - Get Student History</h2>\n<p>This endpoint allows admin to fetch student history.</p>\n<h3 id=\"request\">Request</h3>\n<p><strong>Method:</strong> POST<br /><strong>Endpoint:</strong>{{StudentUrl}}/api/student/promote-students</p>\n<h4 id=\"request-query-parameters\">Request Query Parameters</h4>\n<p>The request should contain the following parameters:</p>\n<ul>\n<li><p><strong>id:</strong> id of student</p>\n</li>\n<li><p><strong>field :</strong> specific field changed of student in studentProfile user want to get ( fetch student profile to see the variables field )</p>\n</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>The response will contain the result of the</p>\n<ul>\n<li><p>A success message indicating that students are promoted.</p>\n</li>\n<li><p>data of student history</p>\n</li>\n</ul>\n<p>Ensure that the input parameters are correctly formatted to receive a successful response.</p>\n","urlObject":{"path":["api","student","student-history"],"host":["{{StudentUrl}}"],"query":[{"key":"id","value":"{{studentId}}"},{"disabled":true,"key":"field","value":"currentSemester"}],"variable":[]}},"response":[],"_postman_id":"84754810-f0f9-4abe-8ed0-fe6c08a9bc66"}],"id":"bbaedb5c-5343-46df-a607-c02f5dd2cdee","_postman_id":"bbaedb5c-5343-46df-a607-c02f5dd2cdee","description":""},{"name":"AdminStudentService","item":[{"name":"initially assign students to class","id":"96039357-0b39-489b-b99f-ef246d0ef474","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"studentIds\":[\"6867d441336089dc3608fec7\",\"68306c98387a027f8a70929b\"],\r\n\r\n    \"section\":\"682a6e58822722bcd97db0ab\",\r\n\r\n    \"academicClass\":\"{{academicClass}}\"\r\n} ","options":{"raw":{"language":"json"}}},"url":"{{StudentUrl}}/api/student/profile/assign-students","description":"<h2 id=\"post---initially-assign-students-to-class\">POST - Initially Assign students to class</h2>\n<p>This endpoint allows users to inititally assign student to section,semester,academic class and degree.</p>\n<h3 id=\"request\">Request</h3>\n<p><strong>Method:</strong> POST<br /><strong>Endpoint:</strong> {{StudentUrl}}/api/student/profile/assign-students</p>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request body must be sent as json and should contain the following parameters:</p>\n<ul>\n<li><p><strong>studentIds :</strong> Array of studentId</p>\n</li>\n<li><p><strong>degree</strong> : id of degree (if institute is college )</p>\n</li>\n<li><p><strong>section :</strong> id of section</p>\n</li>\n<li><p><strong>semester :</strong> id of semester ( if institute is college )</p>\n</li>\n<li><p><strong>academicClass :</strong> id of academicClass</p>\n</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>The response will contain the result of the</p>\n<ul>\n<li><p>A success message indicating that students are assigned to their class.</p>\n</li>\n<li><p>Any additional details that may be relevant to the user.</p>\n</li>\n</ul>\n<p>Ensure that the input parameters are correctly formatted to receive a successful response.</p>\n","urlObject":{"path":["api","student","profile","assign-students"],"host":["{{StudentUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"96039357-0b39-489b-b99f-ef246d0ef474"},{"name":"Admin Update Student Profile","id":"12682035-07e1-43ab-b9e1-4d5eecef6229","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"address\":{\r\n        \"street\":\"C-58 DDA flats Garhi East Of Kailash\",\r\n        \"city\":\"New Delhi\",\r\n        \"state\":\"Delhi\",\r\n        \"zipCode\":\"110065\"\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"{{StudentUrl}}/api/student/admin/update-profile/682db79bdc610c571808be4b","urlObject":{"path":["api","student","admin","update-profile","682db79bdc610c571808be4b"],"host":["{{StudentUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"12682035-07e1-43ab-b9e1-4d5eecef6229"},{"name":"Promote Student","id":"eaeed417-3664-443d-93fb-20abbd011abb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"studentIds\":[\"683e12158758475aabe864fb\",\"683e11d98758475aabe864f4\"],\r\n    // \"degree\":\"682a6519468c83e99245d7c0\",\r\n    // \"section\":\"682a6e58822722bcd97db0ab\",\r\n    \"semester\":\"{{semesterId}}\"\r\n    // \"academicClass\":\"{{academicClass}}\"\r\n\r\n}","options":{"raw":{"language":"json"}}},"url":"{{StudentUrl}}/api/student/promote-students","description":"<h2 id=\"post---promote-students\">POST - Promote Students</h2>\n<p>This endpoint allows admin to promote students to further semester or classes.</p>\n<h3 id=\"request\">Request</h3>\n<p><strong>Method:</strong> POST<br /><strong>Endpoint:</strong>{{StudentUrl}}/api/student/promote-students</p>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request and should contain the following parameters:</p>\n<ul>\n<li><p><strong>studentIds :</strong> list of student ids (array)</p>\n</li>\n<li><p><strong>section :</strong> optional if student section will not changed</p>\n</li>\n<li><p><strong>semester :</strong> if institute type is college then required while promoting</p>\n</li>\n<li><p><strong>academicClass :</strong> if institute type is college then only required if semester and academic years wants to change , and if institute type is school then it is required</p>\n</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>The response will contain the result of the</p>\n<ul>\n<li>A success message indicating that students are promoted.</li>\n</ul>\n<p>Ensure that the input parameters are correctly formatted to receive a successful response.</p>\n","urlObject":{"path":["api","student","promote-students"],"host":["{{StudentUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"eaeed417-3664-443d-93fb-20abbd011abb"},{"name":"Assign Subject to Students","id":"ce068ce4-9bf1-4790-afbc-b8ec6f769dd0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"studentIds\":[\"6867d441336089dc3608fec7\"],\r\n    \"studentSubjects\":[\"\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://studentapi.anginatlearning.com/api/student/profile/assign-subjects","urlObject":{"protocol":"https","path":["api","student","profile","assign-subjects"],"host":["studentapi","anginatlearning","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"ce068ce4-9bf1-4790-afbc-b8ec6f769dd0"},{"name":"Get Student Detials","id":"72f00227-0c51-4499-bb73-0c1446ea9b32","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"url":"{{StudentUrl}}/api/student/student-details/:studentId","urlObject":{"path":["api","student","student-details",":studentId"],"host":["{{StudentUrl}}"],"query":[],"variable":[{"type":"any","value":"682db79bdc610c571808be4b","key":"studentId"}]}},"response":[],"_postman_id":"72f00227-0c51-4499-bb73-0c1446ea9b32"}],"id":"ebdde016-f4d8-4b79-b36a-156f80ca5968","_postman_id":"ebdde016-f4d8-4b79-b36a-156f80ca5968","description":""},{"name":"Subject","item":[{"name":"Create Subject","event":[{"listen":"test","script":{"id":"3ab7ae96-2ec1-43b5-bf33-b1b7b04636a3","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Subject created', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('Subject created successfully');","    pm.expect(jsonData.data._id).to.exist;","    pm.environment.set('subjectId', jsonData.data._id);","});"],"type":"text/javascript","packages":{}}}],"id":"e3643794-055d-4816-b02c-c683ed8e0b94","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"Python basics\",\r\n    \"code\": \"PYTHON1\",\r\n    \"description\": \"Programmin Language\",\r\n    \"degree\": \"682a6519468c83e99245d7c0\",    // if institutionType is college\r\n    \"credits\": 4,                // for college\r\n    \"classCode\":\"YEAR_1\",   \r\n    \"type\": \"theory\",\r\n    \"instructors\": []\r\n}","options":{"raw":{"language":"json"}}},"url":"{{InstituteURL}}/subjects","description":"<h3 id=\"📘-create-subject\">📘 Create Subject</h3>\n<p><strong>Endpoint:</strong> <code>POST /subjects</code><br /><strong>Description:</strong> Creates a new subject under a specific degree. Used to define academic subjects like \"Data Structures\" along with details such as credit value, type, and assigned instructors.</p>\n<p><strong>Authorization:</strong> ✅ Required (Bearer Token in Authorization header)</p>\n<hr />\n<h3 id=\"🔐-headers\">🔐 Headers</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>pgsqlCopyEditAuthorization: Bearer &lt;your_token_here&gt;\nContent-Type: application/json\n\n</code></pre><hr />\n<h3 id=\"📤-request-body\">📤 Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"name\": \"Data Structures\",\n  \"code\": \"BCA102\",\n  \"description\": \"Introduction to Data Structures and Algorithms\",\n  \"degree\": \"682a6519468c83e99245d7c0\",  //only for college\n  \"credits\": 4,   //only for college\n  \"classCode\":YEAR_1\n  \"type\": \"theory\",\n  \"instructors\": [\n    \"68385ebd62e7fd1157a37fac\"\n  ]\n}\n\n</code></pre><h4 id=\"🔸-field-details\">🔸 Field Details:</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Name of the subject</td>\n</tr>\n<tr>\n<td><code>code</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Unique subject code (e.g., BCA102)</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Brief explanation of the subject</td>\n</tr>\n<tr>\n<td><code>degree</code></td>\n<td>string</td>\n<td>✅(only for college)</td>\n<td>The ID of the degree this subject belongs to</td>\n</tr>\n<tr>\n<td><code>credits</code></td>\n<td>number</td>\n<td>✅(only for college)</td>\n<td>Number of academic credits awarded</td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Subject type (<code>theory</code>, <code>practical</code>, etc.)</td>\n</tr>\n<tr>\n<td><code>instructors</code></td>\n<td>array</td>\n<td>✅</td>\n<td>Array of instructor IDs assigned to teach the subject</td>\n</tr>\n<tr>\n<td><code>classCode</code></td>\n<td>string</td>\n<td>✅</td>\n<td>classCode is a definite value ( for college starts with \"YEAR_1\" and for schools \"CLASS_1\", \"NURSERY\", \"KG\".</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"✅-success-response\">✅ Success Response</h3>\n<p><strong>Status:</strong> <code>201 Created</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Subject created successfully\",\n  \"data\": {\n    \"id\": \"subj_12345\",\n    \"name\": \"Data Structures\",\n    \"code\": \"BCA102\",\n    \"description\": \"Introduction to Data Structures and Algorithms\",\n    \"degree\": \"deg_12345\",\n    \"credits\": 4,\n    \"classCode\": \"YEAR_1\",\n    \"type\": \"theory\",\n    \"instructors\": [\n      \"68385ebd62e7fd1157a37fac\"\n    ]\n  }\n}\n\n</code></pre><hr />\n<h3 id=\"❌-error-responses\">❌ Error Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Message</th>\n<th>Reason</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>\"Missing required fields\"</td>\n<td>One or more required fields are missing</td>\n</tr>\n<tr>\n<td>401</td>\n<td>\"Unauthorized\"</td>\n<td>Missing or invalid token</td>\n</tr>\n<tr>\n<td>404</td>\n<td>\"Degree or Instructor not found\"</td>\n<td>Degree ID or Instructor ID doesn't exist</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["subjects"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"e3643794-055d-4816-b02c-c683ed8e0b94"},{"name":"Create Subject - Invalid Instructor","event":[{"listen":"test","script":{"exec":["pm.test('Status code is 400', function () {","    pm.response.to.have.status(400);","});","pm.test('Invalid instructors error', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.false;","    pm.expect(jsonData.message).to.equal('Invalid instructors');","});"],"type":"text/javascript","id":"acc36f6c-1f9c-423e-afc1-946a4816b547"}}],"id":"cecb183e-9286-4018-b5e9-df2aca70c99f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"body":{"mode":"raw","raw":"{\"institution\": \"67cdc7d7c99c0010b0803c74\", \"name\": \"Algorithms\", \"code\": \"BCA102\", \"description\": \"Study of algorithms\", \"degree\": \"682a6519468c83e99245d7c0\", \"credits\": 4, \"type\": \"theory\", \"instructors\": [\"{{adminId}}\"]}","options":{"raw":{"language":"json"}}},"url":"http://localhost:3000/api/institute/api/subjects","urlObject":{"path":["api","subjects"],"host":["http://localhost:3000/api/institute"],"query":[],"variable":[]}},"response":[],"_postman_id":"cecb183e-9286-4018-b5e9-df2aca70c99f"},{"name":"Get Subject by ID","event":[{"listen":"test","script":{"id":"7ced2920-ae03-4fb8-945d-f3c55505ccd3","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Subject retrieved', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('Subject retrieved successfully');","    pm.expect(jsonData.data._id).to.equal(pm.environment.get('subjectId'));","});"],"type":"text/javascript","packages":{}}}],"id":"978770cf-f0b3-48f7-a390-3a38a6f6cf08","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"url":"{{InstituteURL}}/subjects/682a7064822722bcd97db0c9","description":"<p>StartFragment</p>\n<h3 id=\"📘-get-subject-by-id\">📘 Get Subject by ID</h3>\n<p><strong>Endpoint:</strong> <code>GET /subjects/:subjectId</code><br /><strong>Description:</strong> Retrieves detailed information about a specific subject using its unique ID. This includes subject name, code, type, credits, associated degree, and instructors.</p>\n<p><strong>Authorization:</strong> ✅ Required (Bearer Token in Authorization header)</p>\n<hr />\n<h3 id=\"🔐-headers\">🔐 Headers</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>pgsqlCopyEditAuthorization: Bearer &lt;your_token_here&gt;\nContent-Type: application/json\n\n</code></pre><hr />\n<h3 id=\"🔁-path-parameter\">🔁 Path Parameter</h3>\n<ul>\n<li><code>subjectId</code> (string) — The unique ID of the subject to fetch</li>\n</ul>\n<hr />\n<h3 id=\"✅-success-response\">✅ Success Response</h3>\n<p><strong>Status:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Subject fetched successfully\",\n  \"data\": {\n    \"id\": \"subj_12345\",\n    \"name\": \"Data Structures\",\n    \"code\": \"BCA102\",\n    \"description\": \"Introduction to Data Structures and Algorithms\",\n    \"degree\": {\n      \"id\": \"deg_12345\",\n      \"name\": \"Bachelor of Computer Application\"\n    },\n    \"credits\": 4,\n    \"type\": \"theory\",\n    \"instructors\": [\n      {\n        \"id\": \"68385ebd62e7fd1157a37fac\",\n        \"name\": \"Prof. John Doe\"\n      }\n    ]\n  }\n}\n\n</code></pre><hr />\n<h3 id=\"❌-error-responses\">❌ Error Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Message</th>\n<th>Reason</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>\"Invalid subject ID\"</td>\n<td>Malformed or invalid subject ID</td>\n</tr>\n<tr>\n<td>401</td>\n<td>\"Unauthorized\"</td>\n<td>Token missing or invalid</td>\n</tr>\n<tr>\n<td>404</td>\n<td>\"Subject not found\"</td>\n<td>No subject found with the given ID</td>\n</tr>\n</tbody>\n</table>\n</div><p>EndFragment</p>\n","urlObject":{"path":["subjects","682a7064822722bcd97db0c9"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"978770cf-f0b3-48f7-a390-3a38a6f6cf08"},{"name":"Get All Subjects","event":[{"listen":"test","script":{"id":"71d2c22f-5ffe-47ae-8199-12a6bd6ad44a","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Subjects retrieved', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('Subjects retrieved successfully');","    pm.expect(jsonData.data).to.be.an('array');","});"],"type":"text/javascript","packages":{}}}],"id":"d08b1fbb-eb3a-445b-b2a3-09e11cbbac63","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"url":"{{InstituteURL}}/subjects","description":"<h3 id=\"📘-get-all-subjects\">📘 Get All Subjects</h3>\n<p><strong>Endpoint:</strong> <code>GET /subjects</code><br /><strong>Description:</strong> Fetches a list of all subjects available in the system. Each subject includes details like name, code, degree, credits, type, and assigned instructors.</p>\n<p><strong>Authorization:</strong> ✅ Required (Bearer Token in Authorization header)</p>\n<hr />\n<h3 id=\"🔐-headers\">🔐 Headers</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>pgsqlCopyEditAuthorization: Bearer &lt;your_token_here&gt;\nContent-Type: application/json\n\n</code></pre><hr />\n<h3 id=\"✅-success-response\">✅ Success Response</h3>\n<p><strong>Status:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Subjects fetched successfully\",\n  \"data\": [\n    {\n      \"id\": \"subj_12345\",\n      \"name\": \"Data Structures\",\n      \"code\": \"BCA102\",\n      \"description\": \"Introduction to Data Structures and Algorithms\",\n      \"degree\": {\n        \"id\": \"deg_12345\",\n        \"name\": \"Bachelor of Computer Application\"\n      },\n      \"credits\": 4,\n      \"type\": \"theory\",\n      \"instructors\": [\n        {\n          \"id\": \"68385ebd62e7fd1157a37fac\",\n          \"name\": \"Prof. John Doe\"\n        }\n      ]\n    },\n    {\n      \"id\": \"subj_67890\",\n      \"name\": \"Operating Systems\",\n      \"code\": \"BCA201\",\n      \"description\": \"Basics of Operating Systems\",\n      \"degree\": {\n        \"id\": \"deg_12345\",\n        \"name\": \"Bachelor of Computer Application\"\n      },\n      \"credits\": 4,\n      \"type\": \"theory\",\n      \"instructors\": [\n        {\n          \"id\": \"68385ebd62e7fd1157a37fac\",\n          \"name\": \"Prof. Jane Smith\"\n        }\n      ]\n    }\n  ]\n}\n\n</code></pre><hr />\n<h3 id=\"❌-error-responses\">❌ Error Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Message</th>\n<th>Reason</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401</td>\n<td>\"Unauthorized\"</td>\n<td>Token is missing or invalid</td>\n</tr>\n<tr>\n<td>403</td>\n<td>\"Forbidden\"</td>\n<td>User does not have access rights</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["subjects"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"d08b1fbb-eb3a-445b-b2a3-09e11cbbac63"},{"name":"Update Subject","event":[{"listen":"test","script":{"id":"a5e1552f-8453-4c1e-b369-39baa153572f","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Subject updated', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('Subject updated successfully');","    pm.expect(jsonData.data.description).to.equal('Updated introduction to Data Structures and Algorithms');","});"],"type":"text/javascript","packages":{}}}],"id":"8004e314-67c5-4476-92b4-e4e4f513bc27","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"body":{"mode":"raw","raw":"{\"description\": \"Updated introduction to Data Structures and Algorithms\"}","options":{"raw":{"language":"json"}}},"url":"{{InstituteURL}}/subjects/682a7064822722bcd97db0c9","description":"<h3 id=\"📘-update-subject\">📘 Update Subject</h3>\n<p><strong>Endpoint:</strong> <code>PUT /subjects/:subjectId</code><br /><strong>Description:</strong> Updates the details of an existing subject using its unique ID. This allows changes to the subject’s name, code, degree, description, credit value, type, or assigned instructors.</p>\n<p><strong>Authorization:</strong> ✅ Required (Bearer Token in Authorization header)</p>\n<hr />\n<h3 id=\"🔐-headers\">🔐 Headers</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>pgsqlCopyEditAuthorization: Bearer &lt;your_token_here&gt;\nContent-Type: application/json\n\n</code></pre><hr />\n<h3 id=\"🔁-path-parameter\">🔁 Path Parameter</h3>\n<ul>\n<li><code>subjectId</code> (string) — The unique ID of the subject to update</li>\n</ul>\n<hr />\n<h3 id=\"📤-request-body\">📤 Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"name\": \"Data Structures\",\n  \"code\": \"BCA102\",\n  \"description\": \"Introduction to Data Structures and Algorithms\",\n  \"degree\": \"682a6519468c83e99245d7c0\",\n  \"credits\": 4,\n  \"type\": \"theory\",\n  \"instructors\": [\n    \"68385ebd62e7fd1157a37fac\"\n  ]\n}\n\n</code></pre><h4 id=\"🔸-field-details\">🔸 Field Details:</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Name of the subject</td>\n</tr>\n<tr>\n<td><code>code</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Unique subject code</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Short description of the subject</td>\n</tr>\n<tr>\n<td><code>degree</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Degree ID the subject is associated with</td>\n</tr>\n<tr>\n<td><code>credits</code></td>\n<td>number</td>\n<td>✅</td>\n<td>Academic credit points for the subject</td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Subject type (<code>theory</code>, <code>practical</code>, etc.)</td>\n</tr>\n<tr>\n<td><code>instructors</code></td>\n<td>array</td>\n<td>✅</td>\n<td>Array of instructor IDs assigned to this subject</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"✅-success-response\">✅ Success Response</h3>\n<p><strong>Status:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Subject updated successfully\",\n  \"data\": {\n    \"id\": \"subj_12345\",\n    \"name\": \"Data Structures\",\n    \"code\": \"BCA102\",\n    \"description\": \"Introduction to Data Structures and Algorithms\",\n    \"degree\": \"deg_12345\",\n    \"credits\": 4,\n    \"type\": \"theory\",\n    \"instructors\": [\n      \"68385ebd62e7fd1157a37fac\"\n    ]\n  }\n}\n\n</code></pre><hr />\n<h3 id=\"❌-error-responses\">❌ Error Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Message</th>\n<th>Reason</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>\"Invalid input data\"</td>\n<td>One or more fields are incorrect</td>\n</tr>\n<tr>\n<td>401</td>\n<td>\"Unauthorized\"</td>\n<td>Token missing or invalid</td>\n</tr>\n<tr>\n<td>404</td>\n<td>\"Subject or related data not found\"</td>\n<td>Subject, Degree, or Instructor ID doesn't exist</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["subjects","682a7064822722bcd97db0c9"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"8004e314-67c5-4476-92b4-e4e4f513bc27"},{"name":"Delete Subject","event":[{"listen":"test","script":{"id":"441a2c6a-d63a-444d-9fa5-07f43898f167","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Subject deleted', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('Subject deleted successfully');","});"],"type":"text/javascript","packages":{}}}],"id":"5bee2737-8069-4989-ac5d-83f5be6edc75","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"url":"{{InstituteURL}}/subjects/682a7064822722bcd97db0c9","description":"<h3 id=\"📘-delete-subject\">📘 Delete Subject</h3>\n<p><strong>Endpoint:</strong> <code>DELETE /subjects/:subjectId</code><br /><strong>Description:</strong> Deletes a subject from the system using its unique ID. This action removes the subject and disassociates it from any linked degrees or instructors.</p>\n<p><strong>Authorization:</strong> ✅ Required (Bearer Token in Authorization header)</p>\n<hr />\n<h3 id=\"🔐-headers\">🔐 Headers</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>pgsqlCopyEditAuthorization: Bearer &lt;your_token_here&gt;\nContent-Type: application/json\n\n</code></pre><hr />\n<h3 id=\"🔁-path-parameter\">🔁 Path Parameter</h3>\n<ul>\n<li><code>subjectId</code> (string) — The unique ID of the subject to delete</li>\n</ul>\n<hr />\n<h3 id=\"✅-success-response\">✅ Success Response</h3>\n<p><strong>Status:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Subject deleted successfully\"\n}\n\n</code></pre><hr />\n<h3 id=\"❌-error-responses\">❌ Error Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Message</th>\n<th>Reason</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401</td>\n<td>\"Unauthorized\"</td>\n<td>Token is missing or invalid</td>\n</tr>\n<tr>\n<td>403</td>\n<td>\"Forbidden\"</td>\n<td>User does not have permission to delete</td>\n</tr>\n<tr>\n<td>404</td>\n<td>\"Subject not found\"</td>\n<td>No subject exists with the given ID</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["subjects","682a7064822722bcd97db0c9"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"5bee2737-8069-4989-ac5d-83f5be6edc75"}],"id":"abe196b6-0983-4898-acbc-6f4df614a58a","_postman_id":"abe196b6-0983-4898-acbc-6f4df614a58a","description":""},{"name":"Timetable","item":[{"name":"Create Timetable","event":[{"listen":"test","script":{"id":"79186148-7ee4-4c7a-91dc-851f245f6a17","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Timetable created', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('Timetable created successfully');","    pm.expect(jsonData.data._id).to.exist;","    pm.environment.set('timetableId', jsonData.data._id);","});"],"type":"text/javascript","packages":{}}}],"id":"bf5d8fd1-30d3-4bef-a217-1cdd2a223506","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"body":{"mode":"raw","raw":"{\r\n    \"academicClass\": \"682a6b79dba413c9db166687\",\r\n    \"section\": \"682a6e58822722bcd97db0ab\", //optional for colleges\r\n    \"subject\": \"682a7064822722bcd97db0c9\",\r\n    \"degree\": \"682a6519468c83e99245d7c0\",\r\n    \"semester\": \"{{semesterId}}\",\r\n    \"instructor\": \"{{instructorId}}\",\r\n    \"weeklyHours\": 4,\r\n    \"scheduleDetails\": [\r\n        {\r\n            \"day\": \"Monday\",\r\n            \"startTime\": \"10:00\",\r\n            \"endTime\": \"11:00\",\r\n            \"room\": \"Lecture Hall 1\"\r\n        },\r\n        {\r\n            \"day\": \"Wednesday\",\r\n            \"startTime\": \"14:00\",\r\n            \"endTime\": \"15:00\",\r\n            \"room\": \"Lecture Hall 1\"\r\n        }\r\n    ],\r\n    \"notes\": \"Theory only - no lab\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{InstituteURL}}/timetables","description":"<h3 id=\"📘-create-timetable\">📘 Create Timetable</h3>\n<p><strong>Endpoint:</strong> <code>POST /timetables</code><br /><strong>Description:</strong> Creates a timetable entry for a specific subject, class, and instructor. Includes scheduling details such as weekly hours, class times, and room assignments.</p>\n<p><strong>Authorization:</strong> ✅ Required (Bearer Token in Authorization header)</p>\n<hr />\n<h3 id=\"🔐-headers\">🔐 Headers</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>pgsqlCopyEditAuthorization: Bearer &lt;your_token_here&gt;\nContent-Type: application/json\n\n</code></pre><hr />\n<h3 id=\"📤-request-body\">📤 Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"academicClass\": \"682a6b79dba413c9db166687\",\n  \"section\": \"682a6e58822722bcd97db0ab\",\n  \"subject\": \"682a7064822722bcd97db0c9\",\n  \"degree\": \"682a6519468c83e99245d7c0\",\n  \"semester\": \"{{semesterId}}\",\n  \"instructor\": \"{{instructorId}}\",\n  \"weeklyHours\": 4,\n  \"scheduleDetails\": [\n    {\n      \"day\": \"Monday\",\n      \"startTime\": \"10:00\",\n      \"endTime\": \"11:00\",\n      \"room\": \"Lecture Hall 1\"\n    },\n    {\n      \"day\": \"Wednesday\",\n      \"startTime\": \"14:00\",\n      \"endTime\": \"15:00\",\n      \"room\": \"Lecture Hall 1\"\n    }\n  ],\n  \"notes\": \"Theory only - no lab\"\n}\n\n</code></pre><h4 id=\"🔸-field-details\">🔸 Field Details:</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>academicClass</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID of the class</td>\n</tr>\n<tr>\n<td><code>section</code></td>\n<td>string</td>\n<td>(optional for colleges)</td>\n<td>ID of the section</td>\n</tr>\n<tr>\n<td><code>subject</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID of the subject</td>\n</tr>\n<tr>\n<td><code>degree</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID of the associated degree</td>\n</tr>\n<tr>\n<td><code>semester</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID of the semester</td>\n</tr>\n<tr>\n<td><code>instructor</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID of the instructor teaching the subject</td>\n</tr>\n<tr>\n<td><code>weeklyHours</code></td>\n<td>number</td>\n<td>✅</td>\n<td>Total number of hours per week for this subject</td>\n</tr>\n<tr>\n<td><code>scheduleDetails</code></td>\n<td>array</td>\n<td>✅</td>\n<td>Schedule array with day-wise time and room allocation</td>\n</tr>\n<tr>\n<td><code>notes</code></td>\n<td>string</td>\n<td>❌</td>\n<td>Optional notes related to the timetable entry</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"✅-success-response\">✅ Success Response</h3>\n<p><strong>Status:</strong> <code>201 Created</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Timetable created successfully\",\n  \"data\": {\n    \"id\": \"tt_12345\",\n    \"academicClass\": \"class_001\",\n    \"section\": \"sec_01\",\n    \"subject\": \"subj_123\",\n    \"degree\": \"deg_001\",\n    \"semester\": \"sem_001\",\n    \"instructor\": \"inst_001\",\n    \"weeklyHours\": 4,\n    \"scheduleDetails\": [\n      {\n        \"day\": \"Monday\",\n        \"startTime\": \"10:00\",\n        \"endTime\": \"11:00\",\n        \"room\": \"Lecture Hall 1\"\n      },\n      {\n        \"day\": \"Wednesday\",\n        \"startTime\": \"14:00\",\n        \"endTime\": \"15:00\",\n        \"room\": \"Lecture Hall 1\"\n      }\n    ],\n    \"notes\": \"Theory only - no lab\"\n  }\n}\n\n</code></pre><hr />\n<h3 id=\"❌-error-responses\">❌ Error Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Message</th>\n<th>Reason</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>\"Invalid or missing fields\"</td>\n<td>One or more required fields are invalid/missing</td>\n</tr>\n<tr>\n<td>401</td>\n<td>\"Unauthorized\"</td>\n<td>Token missing or invalid</td>\n</tr>\n<tr>\n<td>404</td>\n<td>\"Resource not found\"</td>\n<td>One of the IDs (class, subject, etc.) is invalid</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["timetables"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"bf5d8fd1-30d3-4bef-a217-1cdd2a223506"},{"name":"Create Timetable - Invalid Instructor","event":[{"listen":"test","script":{"exec":["pm.test('Status code is 400', function () {","    pm.response.to.have.status(400);","});","pm.test('Invalid instructor error', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.false;","    pm.expect(jsonData.message).to.equal('Invalid instructor');","});"],"type":"text/javascript","id":"2933e20d-346b-41f1-9e6d-5798eeaa879b"}}],"id":"e1dbf5af-7d65-4eb0-8b06-b7ff520138db","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"body":{"mode":"raw","raw":"{\"institution\": \"67cdc7d7c99c0010b0803c74\", \"academicClass\": \"682a6b79dba413c9db166687\", \"section\": \"682a6e58822722bcd97db0ab\", \"subject\": \"682a7064822722bcd97db0c9\", \"degree\": \"682a6519468c83e99245d7c0\", \"semester\": 1, \"instructor\": \"{{adminId}}\", \"weeklyHours\": 4, \"scheduleDetails\": [{\"day\": \"Monday\", \"startTime\": \"10:00\", \"endTime\": \"11:00\", \"room\": \"Lecture Hall 1\"}], \"notes\": \"Invalid instructor\"}","options":{"raw":{"language":"json"}}},"url":"http://localhost:3000/api/institute/api/timetables","urlObject":{"path":["api","timetables"],"host":["http://localhost:3000/api/institute"],"query":[],"variable":[]}},"response":[],"_postman_id":"e1dbf5af-7d65-4eb0-8b06-b7ff520138db"},{"name":"Get Timetable by ID","event":[{"listen":"test","script":{"id":"22cb4ef1-aedd-4281-970f-00113dcb2911","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Timetable retrieved', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('Timetable retrieved successfully');","    pm.expect(jsonData.data._id).to.equal(pm.environment.get('timetableId'));","});"],"type":"text/javascript","packages":{}}}],"id":"0827d7b5-f9a0-42a4-a3bc-6c6593fa55ec","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"url":"{{InstituteURL}}/api/timetables/{{timetableId}}","description":"<h3 id=\"📘-get-timetable-by-id\">📘 Get Timetable by ID</h3>\n<p><strong>Endpoint:</strong> <code>GET /api/timetables/:timetableId</code><br /><strong>Description:</strong> Retrieves detailed information about a specific timetable entry using its unique ID. Includes associated class, subject, instructor, schedule details, and notes.</p>\n<p><strong>Authorization:</strong> ✅ Required (Bearer Token in Authorization header)</p>\n<hr />\n<h3 id=\"🔐-headers\">🔐 Headers</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>pgsqlCopyEditAuthorization: Bearer &lt;your_token_here&gt;\nContent-Type: application/json\n\n</code></pre><hr />\n<h3 id=\"🔁-path-parameter\">🔁 Path Parameter</h3>\n<ul>\n<li><code>timetableId</code> (string) — The unique ID of the timetable to retrieve</li>\n</ul>\n<hr />\n<h3 id=\"✅-success-response\">✅ Success Response</h3>\n<p><strong>Status:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Timetable fetched successfully\",\n  \"data\": {\n    \"id\": \"tt_12345\",\n    \"academicClass\": {\n      \"id\": \"class_001\",\n      \"name\": \"BCA 1st Year\"\n    },\n    \"section\": {\n      \"id\": \"sec_01\",\n      \"name\": \"A\"\n    },\n    \"subject\": {\n      \"id\": \"subj_123\",\n      \"name\": \"Data Structures\"\n    },\n    \"degree\": {\n      \"id\": \"deg_001\",\n      \"name\": \"Bachelor of Computer Application\"\n    },\n    \"semester\": {\n      \"id\": \"sem_001\",\n      \"number\": 1\n    },\n    \"instructor\": {\n      \"id\": \"inst_001\",\n      \"name\": \"Prof. John Doe\"\n    },\n    \"weeklyHours\": 4,\n    \"scheduleDetails\": [\n      {\n        \"day\": \"Monday\",\n        \"startTime\": \"10:00\",\n        \"endTime\": \"11:00\",\n        \"room\": \"Lecture Hall 1\"\n      },\n      {\n        \"day\": \"Wednesday\",\n        \"startTime\": \"14:00\",\n        \"endTime\": \"15:00\",\n        \"room\": \"Lecture Hall 1\"\n      }\n    ],\n    \"notes\": \"Theory only - no lab\"\n  }\n}\n\n</code></pre><hr />\n<h3 id=\"❌-error-responses\">❌ Error Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Message</th>\n<th>Reason</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>\"Invalid timetable ID\"</td>\n<td>Malformed or missing ID</td>\n</tr>\n<tr>\n<td>401</td>\n<td>\"Unauthorized\"</td>\n<td>Token missing or invalid</td>\n</tr>\n<tr>\n<td>404</td>\n<td>\"Timetable not found\"</td>\n<td>No timetable found with the given ID</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["api","timetables","{{timetableId}}"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"0827d7b5-f9a0-42a4-a3bc-6c6593fa55ec"},{"name":"Get All Timetables","event":[{"listen":"test","script":{"id":"4c394299-3269-46cf-9f23-ede3fd3b4cca","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Timetables retrieved', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('Timetables retrieved successfully');","    pm.expect(jsonData.data).to.be.an('array');","});"],"type":"text/javascript","packages":{}}}],"id":"708384f8-b9b5-43cc-a042-9872400aa182","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"url":"{{InstituteURL}}/timetables","description":"<h3 id=\"📘-get-all-timetables\">📘 Get All Timetables</h3>\n<p><strong>Endpoint:</strong> <code>GET /timetables</code><br /><strong>Description:</strong> Retrieves a list of all timetable entries created in the system. Each entry includes details like class, section, subject, instructor, schedule, and notes.</p>\n<p><strong>Authorization:</strong> ✅ Required (Bearer Token in Authorization header)</p>\n<hr />\n<h3 id=\"🔐-headers\">🔐 Headers</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>pgsqlCopyEditAuthorization: Bearer &lt;your_token_here&gt;\nContent-Type: application/json\n\n</code></pre><hr />\n<h3 id=\"✅-success-response\">✅ Success Response</h3>\n<p><strong>Status:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Timetables fetched successfully\",\n  \"data\": [\n    {\n      \"id\": \"tt_12345\",\n      \"academicClass\": {\n        \"id\": \"class_001\",\n        \"name\": \"BCA 1st Year\"\n      },\n      \"section\": {\n        \"id\": \"sec_01\",\n        \"name\": \"A\"\n      },\n      \"subject\": {\n        \"id\": \"subj_123\",\n        \"name\": \"Data Structures\"\n      },\n      \"degree\": {\n        \"id\": \"deg_001\",\n        \"name\": \"Bachelor of Computer Application\"\n      },\n      \"semester\": {\n        \"id\": \"sem_001\",\n        \"number\": 1\n      },\n      \"instructor\": {\n        \"id\": \"inst_001\",\n        \"name\": \"Prof. John Doe\"\n      },\n      \"weeklyHours\": 4,\n      \"scheduleDetails\": [\n        {\n          \"day\": \"Monday\",\n          \"startTime\": \"10:00\",\n          \"endTime\": \"11:00\",\n          \"room\": \"Lecture Hall 1\"\n        },\n        {\n          \"day\": \"Wednesday\",\n          \"startTime\": \"14:00\",\n          \"endTime\": \"15:00\",\n          \"room\": \"Lecture Hall 1\"\n        }\n      ],\n      \"notes\": \"Theory only - no lab\"\n    },\n    {\n      \"id\": \"tt_67890\",\n      \"academicClass\": {\n        \"id\": \"class_002\",\n        \"name\": \"BBA 1st Year\"\n      },\n      \"section\": {\n        \"id\": \"sec_02\",\n        \"name\": \"B\"\n      },\n      \"subject\": {\n        \"id\": \"subj_456\",\n        \"name\": \"Business Communication\"\n      },\n      \"degree\": {\n        \"id\": \"deg_002\",\n        \"name\": \"Bachelor of Business Administration\"\n      },\n      \"semester\": {\n        \"id\": \"sem_002\",\n        \"number\": 1\n      },\n      \"instructor\": {\n        \"id\": \"inst_002\",\n        \"name\": \"Prof. Jane Smith\"\n      },\n      \"weeklyHours\": 3,\n      \"scheduleDetails\": [\n        {\n          \"day\": \"Tuesday\",\n          \"startTime\": \"12:00\",\n          \"endTime\": \"13:00\",\n          \"room\": \"Lecture Hall 2\"\n        }\n      ],\n      \"notes\": \"Communication Skills Module\"\n    }\n  ]\n}\n\n</code></pre><hr />\n<h3 id=\"❌-error-responses\">❌ Error Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Message</th>\n<th>Reason</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401</td>\n<td>\"Unauthorized\"</td>\n<td>Token is missing or invalid</td>\n</tr>\n<tr>\n<td>403</td>\n<td>\"Forbidden\"</td>\n<td>User does not have access rights</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["timetables"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"708384f8-b9b5-43cc-a042-9872400aa182"},{"name":"Update Timetable","event":[{"listen":"test","script":{"id":"285d2bec-9408-4988-aa4e-41c970f86513","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Timetable updated', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('Timetable updated successfully');","    pm.expect(jsonData.data.notes).to.equal('Updated theory only - no lab');","});"],"type":"text/javascript","packages":{}}}],"id":"73edb153-ba96-4ac8-8c72-0a06bfa72f4e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"body":{"mode":"raw","raw":"{\"notes\": \"theory only - no lab\"}","options":{"raw":{"language":"json"}}},"url":"{{InstituteURL}}/timetables/{{timetableId}}","description":"<h3 id=\"📘-update-timetable\">📘 Update Timetable</h3>\n<p><strong>Endpoint:</strong> <code>PUT /timetables/:timetableId</code><br /><strong>Description:</strong> Updates an existing timetable entry using its unique ID. You can modify the subject, instructor, schedule details, or any other field in the timetable.</p>\n<p><strong>Authorization:</strong> ✅ Required (Bearer Token in Authorization header)</p>\n<hr />\n<h3 id=\"🔐-headers\">🔐 Headers</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>pgsqlCopyEditAuthorization: Bearer &lt;your_token_here&gt;\nContent-Type: application/json\n\n</code></pre><hr />\n<h3 id=\"🔁-path-parameter\">🔁 Path Parameter</h3>\n<ul>\n<li><code>timetableId</code> (string) — The unique ID of the timetable to update</li>\n</ul>\n<hr />\n<h3 id=\"📤-request-body\">📤 Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"academicClass\": \"682a6b79dba413c9db166687\",\n  \"section\": \"682a6e58822722bcd97db0ab\",\n  \"subject\": \"682a7064822722bcd97db0c9\",\n  \"degree\": \"682a6519468c83e99245d7c0\",\n  \"semester\": \"{{semesterId}}\",\n  \"instructor\": \"{{instructorId}}\",\n  \"weeklyHours\": 4,\n  \"scheduleDetails\": [\n    {\n      \"day\": \"Monday\",\n      \"startTime\": \"10:00\",\n      \"endTime\": \"11:00\",\n      \"room\": \"Lecture Hall 1\"\n    },\n    {\n      \"day\": \"Wednesday\",\n      \"startTime\": \"14:00\",\n      \"endTime\": \"15:00\",\n      \"room\": \"Lecture Hall 1\"\n    }\n  ],\n  \"notes\": \"Theory only - no lab\"\n}\n\n</code></pre><h4 id=\"🔸-field-details\">🔸 Field Details:</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>academicClass</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID of the class</td>\n</tr>\n<tr>\n<td><code>section</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID of the section</td>\n</tr>\n<tr>\n<td><code>subject</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID of the subject</td>\n</tr>\n<tr>\n<td><code>degree</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID of the degree</td>\n</tr>\n<tr>\n<td><code>semester</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID of the semester</td>\n</tr>\n<tr>\n<td><code>instructor</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID of the instructor</td>\n</tr>\n<tr>\n<td><code>weeklyHours</code></td>\n<td>number</td>\n<td>✅</td>\n<td>Weekly total hours for the subject</td>\n</tr>\n<tr>\n<td><code>scheduleDetails</code></td>\n<td>array</td>\n<td>✅</td>\n<td>Array of scheduled sessions with day, time, and room info</td>\n</tr>\n<tr>\n<td><code>notes</code></td>\n<td>string</td>\n<td>❌</td>\n<td>Optional notes</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"✅-success-response\">✅ Success Response</h3>\n<p><strong>Status:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Timetable updated successfully\",\n  \"data\": {\n    \"id\": \"tt_12345\",\n    \"academicClass\": \"class_001\",\n    \"section\": \"sec_01\",\n    \"subject\": \"subj_123\",\n    \"degree\": \"deg_001\",\n    \"semester\": \"sem_001\",\n    \"instructor\": \"inst_001\",\n    \"weeklyHours\": 4,\n    \"scheduleDetails\": [\n      {\n        \"day\": \"Monday\",\n        \"startTime\": \"10:00\",\n        \"endTime\": \"11:00\",\n        \"room\": \"Lecture Hall 1\"\n      },\n      {\n        \"day\": \"Wednesday\",\n        \"startTime\": \"14:00\",\n        \"endTime\": \"15:00\",\n        \"room\": \"Lecture Hall 1\"\n      }\n    ],\n    \"notes\": \"Theory only - no lab\"\n  }\n}\n\n</code></pre><hr />\n<h3 id=\"❌-error-responses\">❌ Error Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Message</th>\n<th>Reason</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>\"Invalid or missing fields\"</td>\n<td>One or more required fields are incorrect</td>\n</tr>\n<tr>\n<td>401</td>\n<td>\"Unauthorized\"</td>\n<td>Missing or invalid token</td>\n</tr>\n<tr>\n<td>404</td>\n<td>\"Timetable not found\"</td>\n<td>No timetable exists with the given ID</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["timetables","{{timetableId}}"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"73edb153-ba96-4ac8-8c72-0a06bfa72f4e"},{"name":"Delete Timetable","event":[{"listen":"test","script":{"id":"04668a01-0c19-4f2f-a0f5-0a8a0304a291","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Timetable deleted', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('Timetable deleted successfully');","});"],"type":"text/javascript","packages":{}}}],"id":"07289db2-82ef-48fa-ba72-74337e884cb3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"url":"{{InstituteURL}}/api/timetables/{{timetableId}}","description":"<h3 id=\"📘-delete-timetable\">📘 Delete Timetable</h3>\n<p><strong>Endpoint:</strong> <code>DELETE /api/timetables/:timetableId</code><br /><strong>Description:</strong> Deletes a timetable entry from the system using its unique ID. This action removes the entire timetable, including associated schedule details.</p>\n<p><strong>Authorization:</strong> ✅ Required (Bearer Token in Authorization header)</p>\n<hr />\n<h3 id=\"🔐-headers\">🔐 Headers</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>pgsqlCopyEditAuthorization: Bearer &lt;your_token_here&gt;\nContent-Type: application/json\n\n</code></pre><hr />\n<h3 id=\"🔁-path-parameter\">🔁 Path Parameter</h3>\n<ul>\n<li><code>timetableId</code> (string) — The unique ID of the timetable to delete</li>\n</ul>\n<hr />\n<h3 id=\"✅-success-response\">✅ Success Response</h3>\n<p><strong>Status:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Timetable deleted successfully\"\n}\n\n</code></pre><hr />\n<h3 id=\"❌-error-responses\">❌ Error Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Message</th>\n<th>Reason</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401</td>\n<td>\"Unauthorized\"</td>\n<td>Token is missing or invalid</td>\n</tr>\n<tr>\n<td>403</td>\n<td>\"Forbidden\"</td>\n<td>User lacks permission to delete</td>\n</tr>\n<tr>\n<td>404</td>\n<td>\"Timetable not found\"</td>\n<td>No timetable exists with the given ID</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["api","timetables","{{timetableId}}"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"07289db2-82ef-48fa-ba72-74337e884cb3"}],"id":"6bdc1519-8cba-4a8b-9fc9-7131f8142d4e","_postman_id":"6bdc1519-8cba-4a8b-9fc9-7131f8142d4e","description":""},{"name":"AcademicClass","item":[{"name":"Create AcademicClass","event":[{"listen":"test","script":{"id":"1bc856af-7f6d-40b2-9c32-402976aba9a6","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('AcademicClass created', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('AcademicClass created successfully');","    pm.expect(jsonData.data._id).to.exist;","    pm.environment.set('classId', jsonData.data._id);","});"],"type":"text/javascript","packages":{}}}],"id":"283dd7d1-916a-4584-b031-2e6f2116e1f8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"Class 1\",\r\n    \"classCode\":\"CLASS_1\",\r\n    \"academicYear\":\"2025-26\",\r\n    \"startTime\":\"09:00\",\r\n    \"endTime\":\"15:00\",\r\n    \"level\":\"{{level}}\"\r\n    // \"degree\": \"682a6519468c83e99245d7c0\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{InstituteURL}}/classes","description":"<h3 id=\"📘-create-academic-class\">📘 Create Academic Class</h3>\n<p><strong>Endpoint:</strong> <code>POST /classes</code><br /><strong>Description:</strong> Creates a new academic class under a specified institution and degree. This is used to represent a year-level or grade (e.g., \"BCA Year 1\" or \"Class 10\") within a school or college.</p>\n<p><strong>Authorization:</strong> ✅ Required (Bearer Token in Authorization header)</p>\n<hr />\n<h3 id=\"🔐-headers\">🔐 Headers</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>pgsqlCopyEditAuthorization: Bearer &lt;your_token_here&gt;\nContent-Type: application/json\n\n</code></pre><hr />\n<h3 id=\"📤-request-body\">📤 Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"institution\": \"67cdc7d7c99c0010b0803c74\",\n  \"name\": \"BCA Year 1\",\n  \"classCode\": \"YEAR_1\",\n  \"degree\": \"682a6519468c83e99245d7c0\"\n}\n\n</code></pre><h4 id=\"🔸-field-details\">🔸 Field Details:</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>institution</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID of the institution the class belongs to</td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Display name for the class (e.g., \"BCA Year 1\")</td>\n</tr>\n<tr>\n<td><code>classCode</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Predefined class code used for system mapping</td>\n</tr>\n<tr>\n<td><code>degree</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Degree ID associated with this academic class (if college-level)</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"🔒-valid-values-for-classcode\">🔒 Valid Values for <code>classCode</code>:</h3>\n<h4 id=\"for-schools\">For Schools:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>tsCopyEdit[\n  'NURSERY', 'KG', 'CLASS_1', 'CLASS_2', 'CLASS_3', 'CLASS_4',\n  'CLASS_5', 'CLASS_6', 'CLASS_7', 'CLASS_8', 'CLASS_9',\n  'CLASS_10', 'CLASS_11', 'CLASS_12'\n]\n\n</code></pre><h4 id=\"for-colleges\">For Colleges:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>tsCopyEdit[\n  'YEAR_1', 'YEAR_2', 'YEAR_3', 'YEAR_4', 'YEAR_5'\n]\n\n</code></pre><hr />\n<h3 id=\"✅-success-response\">✅ Success Response</h3>\n<p><strong>Status:</strong> <code>201 Created</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Class created successfully\",\n  \"data\": {\n    \"id\": \"class_12345\",\n    \"institution\": \"inst_001\",\n    \"name\": \"BCA Year 1\",\n    \"classCode\": \"YEAR_1\",\n    \"degree\": \"deg_001\"\n  }\n}\n\n</code></pre><hr />\n<h3 id=\"❌-error-responses\">❌ Error Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Message</th>\n<th>Reason</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>\"Invalid classCode\"</td>\n<td>If classCode is not in the allowed list</td>\n</tr>\n<tr>\n<td>401</td>\n<td>\"Unauthorized\"</td>\n<td>Token is missing or invalid</td>\n</tr>\n<tr>\n<td>404</td>\n<td>\"Institution or Degree not found\"</td>\n<td>Provided IDs do not exist</td>\n</tr>\n<tr>\n<td>409</td>\n<td>\"Class with same code exists\"</td>\n<td>Duplicate class code under same institution/degree</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["classes"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"283dd7d1-916a-4584-b031-2e6f2116e1f8"},{"name":"Get AcademicClass by ID","event":[{"listen":"test","script":{"id":"04cef532-e290-43a8-9ebb-6927dd195560","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('AcademicClass retrieved', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('AcademicClass retrieved successfully');","    pm.expect(jsonData.data._id).to.equal(pm.environment.get('classId'));","});"],"type":"text/javascript","packages":{}}}],"id":"85a4fc82-9b24-4608-ba57-49bb807bf264","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"url":"{{InstituteURL}}/classes/682a6b79dba413c9db166687","description":"<h3 id=\"📘-get-academic-class-by-id\">📘 Get Academic Class by ID</h3>\n<p><strong>Endpoint:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>bashCopyEditGET http://localhost:3000/api/institute/classes/682a6b79dba413c9db166687\n\n</code></pre><p><strong>Description:</strong>  </p>\n<p>Fetch a single academic class by its unique <code>classId</code>.</p>\n<p><strong>Path Parameters:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>classId</td>\n<td>String</td>\n<td>The unique ID of the class</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Authentication:</strong>  </p>\n<p>🔒 Requires Authorization Header<br /><code>Authorization: Bearer</code></p>\n<p><strong>Response:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"_id\": \"class_id\",\n  \"institution\": \"institution_id\",\n  \"name\": \"BCA Year 1\",\n  \"classCode\": \"YEAR_1\",\n  \"degree\": \"degree_id\",\n}\n\n</code></pre><p><strong>Errors:</strong></p>\n<ul>\n<li><p><code>401 Unauthorized</code> – Missing or invalid token</p>\n</li>\n<li><p><code>404 Not Found</code> – Class with provided ID does not exist</p>\n</li>\n</ul>\n","urlObject":{"path":["classes","682a6b79dba413c9db166687"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"85a4fc82-9b24-4608-ba57-49bb807bf264"},{"name":"Get All AcademicClasses","event":[{"listen":"test","script":{"id":"1f67ec61-6d9d-4eae-9932-d37bbbd50c8f","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('AcademicClasses retrieved', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('AcademicClasses retrieved successfully');","    pm.expect(jsonData.data).to.be.an('array');","});"],"type":"text/javascript","packages":{}}}],"id":"b8e16fa8-49da-4519-a980-1e3d9977ba7a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"url":"{{InstituteURL}}/classes","description":"<h3 id=\"📘-get-all-academic-classes\">📘 Get All Academic Classes</h3>\n<p><strong>Endpoint:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>bashCopyEditGET http://localhost:3000/api/institute/classes\n\n</code></pre><p><strong>Description:</strong>  </p>\n<p>Retrieve a complete list of all academic classes available in the system.</p>\n<p><strong>Authentication:</strong>  </p>\n<p>🔒 Requires Authorization Header<br /><code>Authorization: Bearer</code></p>\n<p><strong>Response:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit[\n  {\n    \"_id\": \"64f1b8c9f15c9e7b620f19ab\",\n    \"institution\": \"64f1b88ef15c9e7b620f19a2\",\n    \"name\": \"BCA Year 1\",\n    \"classCode\": \"YEAR_1\",\n    \"degree\": \"64f1b893f15c9e7b620f19a5\",\n    \"createdAt\": \"2025-06-01T12:00:00.000Z\",\n    \"updatedAt\": \"2025-06-01T12:00:00.000Z\"\n  },\n  {\n    \"_id\": \"64f1b8c9f15c9e7b620f19ac\",\n    \"institution\": \"64f1b88ef15c9e7b620f19a2\",\n    \"name\": \"BCA Year 2\",\n    \"classCode\": \"YEAR_2\",\n    \"degree\": \"64f1b893f15c9e7b620f19a5\",\n    \"createdAt\": \"2025-06-01T12:00:00.000Z\",\n    \"updatedAt\": \"2025-06-01T12:00:00.000Z\"\n  }\n]\n\n</code></pre><p><strong>Errors:</strong></p>\n<ul>\n<li><p><code>401 Unauthorized</code> – If the auth token is missing or invalid</p>\n</li>\n<li><p><code>500 Internal Server Error</code> – On server issues</p>\n</li>\n</ul>\n","urlObject":{"path":["classes"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"b8e16fa8-49da-4519-a980-1e3d9977ba7a"},{"name":"Update AcademicClass","event":[{"listen":"test","script":{"id":"6b353042-eeae-457d-a070-a4aaf0798c7f","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('AcademicClass updated', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('AcademicClass updated successfully');","    pm.expect(jsonData.data.name).to.equal('BCA Year 1 Updated');","});"],"type":"text/javascript","packages":{}}}],"id":"c4f29077-6094-40bd-85db-3f9bf1d319dc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"body":{"mode":"raw","raw":"{\"name\": \"1st Year\"}","options":{"raw":{"language":"json"}}},"url":"{{InstituteURL}}/classes/682a6b79dba413c9db166687","description":"<h3 id=\"🔄-update-academic-class\">🔄 Update Academic Class</h3>\n<p><strong>Endpoint:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>bashCopyEditPUT http://localhost:3000/api/institute/classes/682a6b79dba413c9db166687\n\n</code></pre><p><strong>Description:</strong>  </p>\n<p>Update the details of a specific academic class by its ID.</p>\n<p><strong>Authentication:</strong>  </p>\n<p>🔒 Requires Authorization Header<br /><code>Authorization: Bearer</code></p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"institution\": \"67cdc7d7c99c0010b0803c74\",\n  \"name\": \"BCA Year 1\",\n  \"classCode\": \"YEAR_1\",\n  \"degree\": \"682a6519468c83e99245d7c0\"\n}\n\n</code></pre><blockquote>\n</blockquote>\n<p>💡 <code>classCode</code> can be one of the following based on education type:</p>\n<ul>\n<li><p><strong>School:</strong> <code>NURSERY</code>, <code>KG</code>, <code>CLASS_1</code> to <code>CLASS_12</code></p>\n</li>\n<li><p><strong>College:</strong> <code>YEAR_1</code> to <code>YEAR_5</code></p>\n</li>\n</ul>\n<p><strong>Response:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Academic class updated successfully.\",\n  \"class\": {\n    \"_id\": \"682a6b79dba413c9db166687\",\n    \"institution\": \"67cdc7d7c99c0010b0803c74\",\n    \"name\": \"BCA Year 1\",\n    \"classCode\": \"YEAR_1\",\n    \"degree\": \"682a6519468c83e99245d7c0\",\n    \"updatedAt\": \"2025-07-01T12:34:56.789Z\",\n    \"createdAt\": \"2025-06-01T10:00:00.000Z\"\n  }\n}\n\n</code></pre><p><strong>Errors:</strong></p>\n<ul>\n<li><p><code>400 Bad Request</code> – Missing or invalid fields</p>\n</li>\n<li><p><code>401 Unauthorized</code> – Invalid/missing auth token</p>\n</li>\n<li><p><code>404 Not Found</code> – If the class with <code>classId</code> doesn’t exist</p>\n</li>\n<li><p><code>500 Internal Server Error</code> – On server failure</p>\n</li>\n</ul>\n","urlObject":{"path":["classes","682a6b79dba413c9db166687"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"c4f29077-6094-40bd-85db-3f9bf1d319dc"},{"name":"Delete AcademicClass","event":[{"listen":"test","script":{"id":"dbb6199a-9f90-400b-aca1-ccae2a56df44","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('AcademicClass deleted', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('AcademicClass deleted successfully');","});"],"type":"text/javascript","packages":{}}}],"id":"19631dea-9429-4bc2-8174-00335611b800","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"url":"{{InstituteURL}}/api/classes/682a6b79dba413c9db166687","description":"<h3 id=\"🗑️-delete-academic-class\">🗑️ Delete Academic Class</h3>\n<p><strong>Endpoint:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>bashCopyEditDELETE http://localhost:3000/api/institute/api/classes/682a6b79dba413c9db166687\n\n</code></pre><p><strong>Description:</strong>  </p>\n<p>Deletes a specific academic class by its ID.</p>\n<p><strong>Authentication:</strong>  </p>\n<p>🔒 Requires Authorization Header<br /><code>Authorization: Bearer</code></p>\n<p><strong>Path Parameters:</strong></p>\n<ul>\n<li><code>classId</code> (string) — ID of the academic class to delete</li>\n</ul>\n<p><strong>Response:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Academic class deleted successfully.\"\n}\n\n</code></pre><p><strong>Errors:</strong></p>\n<ul>\n<li><p><code>401 Unauthorized</code> – Invalid or missing access token</p>\n</li>\n<li><p><code>404 Not Found</code> – Class not found with the given ID</p>\n</li>\n<li><p><code>500 Internal Server Error</code> – Server-side error</p>\n</li>\n</ul>\n","urlObject":{"path":["api","classes","682a6b79dba413c9db166687"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"19631dea-9429-4bc2-8174-00335611b800"}],"id":"72ae7ff8-b984-4b95-9ecb-5b801a7803c3","_postman_id":"72ae7ff8-b984-4b95-9ecb-5b801a7803c3","description":""},{"name":"Section","item":[{"name":"Create Section","event":[{"listen":"test","script":{"id":"84ae0698-257f-40b9-a3f9-0c4e87636464","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Section created', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('Section created successfully');","    pm.expect(jsonData.data._id).to.exist;","    pm.environment.set('sectionId', jsonData.data._id);","});"],"type":"text/javascript","packages":{}}}],"id":"d82a1df4-f9fb-4a0e-a8af-646a012b853c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"body":{"mode":"raw","raw":"{\r\n    \"academicClass\": \"682a6b79dba413c9db166687\",\r\n    \"name\": \"section A\",\r\n    \"section\":\"A\",\r\n    \"description\": \"\",\r\n    // Add subject in section if institute type is school otherwise if institute type is college add subjects in semester\r\n    \"subjects\":[\r\n        \"6868f38e492cb6a04f828308\"\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"{{InstituteURL}}/sections","description":"<h3 id=\"➕-create-section\">➕ Create Section</h3>\n<p><strong>Endpoint:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>bashCopyEditPOST {{InstituteURL}}/sections\n\n</code></pre><p><strong>Description:</strong></p>\n<p>Creates a new section under a specific academic class.</p>\n<p><strong>Authentication:</strong></p>\n<p>🔒 Requires Authorization Header<br /><code>Authorization: Bearer</code></p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"academicClass\": \"682a6b79dba413c9db166687\",      // Required: ID of the academic class\n  \"name\": \"Section A\",                 // Required: Name of the section\n  \"section\": \"A\",                      // Required: Short code or identifier (e.g., \"A\", \"B\")\n  \"description\": \"BCA Section A\"       // Optional: Description of the section\n    // Add subject in section if institute type is school otherwise if institute type is college add subjects in semester\n   \"subjects\":[\n        \"\"\n    ]\n    //add subject IDs\n}\n\n</code></pre><p><strong>Response:</strong> <code>201 Created</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Section created successfully.\",\n  \"section\": {\n    \"_id\": \"64eea1991f1f4f001ea65314\",\n    \"name\": \"Section A\",\n    \"section\": \"A\",\n    \"description\": \"BCA Section A\",\n    \"academicClass\": \"64eea1991f1f4f001ea65300\",\n    \"createdAt\": \"2025-07-01T12:00:00.000Z\",\n    \"updatedAt\": \"2025-07-01T12:00:00.000Z\"\n  }\n}\n\n</code></pre><p><strong>Errors:</strong></p>\n<ul>\n<li><p><code>400 Bad Request</code> – Missing or invalid fields</p>\n</li>\n<li><p><code>401 Unauthorized</code> – Invalid or missing access token</p>\n</li>\n<li><p><code>500 Internal Server Error</code> – Something went wrong on the server</p>\n</li>\n</ul>\n","urlObject":{"path":["sections"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"d82a1df4-f9fb-4a0e-a8af-646a012b853c"},{"name":"Get Section by ID","event":[{"listen":"test","script":{"id":"0ec7fd13-fec6-4dfb-9d5c-e2e6009e2725","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Section retrieved', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('Section retrieved successfully');","    pm.expect(jsonData.data._id).to.equal(pm.environment.get('sectionId'));","});"],"type":"text/javascript","packages":{}}}],"id":"d7e39390-1cbb-4d29-b90e-eb65426f5f2d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"url":"{{InstituteURL}}/sections/682a6e58822722bcd97db0ab","description":"<h3 id=\"🔍-get-section-by-id\">🔍 Get Section by ID</h3>\n<p><strong>Endpoint:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>bashCopyEditGET http://localhost:3000/api/institute/sections/682a6e58822722bcd97db0ab\n\n</code></pre><p><strong>Description:</strong>  </p>\n<p>Fetches details of a specific section using its unique ID.</p>\n<p><strong>Authentication:</strong>  </p>\n<p>🔒 Requires Authorization Header<br /><code>Authorization: Bearer</code></p>\n<p><strong>Path Parameters:</strong></p>\n<ul>\n<li><code>sectionId</code> (string) – The ID of the section to retrieve</li>\n</ul>\n<p><strong>Response:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"_id\": \"64eea1991f1f4f001ea65314\",\n  \"name\": \"Section A\",\n  \"section\": \"A\",\n  \"description\": \"BCA Section A\",\n  \"academicClass\": {\n    \"_id\": \"64eea1991f1f4f001ea65300\",\n    \"name\": \"BCA Year 1\",\n    \"classCode\": \"YEAR_1\"\n  },\n  \"createdAt\": \"2025-07-01T12:00:00.000Z\",\n  \"updatedAt\": \"2025-07-01T12:00:00.000Z\"\n}\n\n</code></pre><p><strong>Errors:</strong></p>\n<ul>\n<li><p><code>404 Not Found</code> – If the section ID does not exist</p>\n</li>\n<li><p><code>401 Unauthorized</code> – Missing or invalid token</p>\n</li>\n<li><p><code>500 Internal Server Error</code> – Server-side error</p>\n</li>\n</ul>\n","urlObject":{"path":["sections","682a6e58822722bcd97db0ab"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"d7e39390-1cbb-4d29-b90e-eb65426f5f2d"},{"name":"Get All Sections","event":[{"listen":"test","script":{"id":"47b911a1-291c-48ca-8bc3-7f0e72173313","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Sections retrieved', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('Sections retrieved successfully');","    pm.expect(jsonData.data).to.be.an('array');","});"],"type":"text/javascript","packages":{}}}],"id":"29bb4407-0688-4a74-a3bd-358ec1d0b749","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"url":"{{InstituteURL}}/sections","description":"<h3 id=\"📄-get-all-sections\">📄 Get All Sections</h3>\n<p><strong>Endpoint:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>bashCopyEditGET http://localhost:3000/api/institute/sections\n\n</code></pre><p><strong>Description:</strong>  </p>\n<p>Retrieves a list of all sections available in the system.</p>\n<p><strong>Authentication:</strong>  </p>\n<p>🔒 Requires Authorization Header<br /><code>Authorization: Bearer</code></p>\n<p><strong>Query Parameters:</strong><br /><em>None</em></p>\n<p><strong>Response:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit[\n  {\n    \"_id\": \"64eea1991f1f4f001ea65314\",\n    \"name\": \"Section A\",\n    \"section\": \"A\",\n    \"description\": \"BCA Section A\",\n    \"academicClass\": {\n      \"_id\": \"64eea1991f1f4f001ea65300\",\n      \"name\": \"BCA Year 1\",\n      \"classCode\": \"YEAR_1\"\n    },\n    \"createdAt\": \"2025-07-01T12:00:00.000Z\",\n    \"updatedAt\": \"2025-07-01T12:00:00.000Z\"\n  },\n  {\n    \"_id\": \"64eea1991f1f4f001ea65315\",\n    \"name\": \"Section B\",\n    \"section\": \"B\",\n    \"description\": \"BCA Section B\",\n    \"academicClass\": {\n      \"_id\": \"64eea1991f1f4f001ea65300\",\n      \"name\": \"BCA Year 1\",\n      \"classCode\": \"YEAR_1\"\n    },\n    \"createdAt\": \"2025-07-01T12:30:00.000Z\",\n    \"updatedAt\": \"2025-07-01T12:30:00.000Z\"\n  }\n]\n\n</code></pre><p><strong>Errors:</strong></p>\n<ul>\n<li><p><code>401 Unauthorized</code> – Missing or invalid token</p>\n</li>\n<li><p><code>500 Internal Server Error</code> – Server-side issue</p>\n</li>\n</ul>\n","urlObject":{"path":["sections"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"29bb4407-0688-4a74-a3bd-358ec1d0b749"},{"name":"Update Section","event":[{"listen":"test","script":{"id":"5e21339e-cd4a-4252-9a95-33002e46a37b","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Section updated', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('Section updated successfully');","    pm.expect(jsonData.data.name).to.equal('Section A Updated');","});"],"type":"text/javascript","packages":{}}}],"id":"c9c7c1e8-fb87-4dc5-a14c-16d130b64948","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"body":{"mode":"raw","raw":"{\"name\": \"Section A\"}","options":{"raw":{"language":"json"}}},"url":"{{InstituteURL}}/sections/682a6e58822722bcd97db0ab","description":"<h3 id=\"✏️-update-section\">✏️ Update Section</h3>\n<p><strong>Endpoint:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>bashCopyEditPUT http://localhost:3000/api/institute/sections/682a6e58822722bcd97db0ab\n\n</code></pre><p><strong>Description:</strong>  </p>\n<p>Updates the details of an existing section.</p>\n<p><strong>Authentication:</strong>  </p>\n<p>🔒 Requires Authorization Header<br /><code>Authorization: Bearer</code></p>\n<p><strong>Request Parameters:</strong></p>\n<ul>\n<li><code>sectionId</code> – The ID of the section to update (passed in the URL path)</li>\n</ul>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"academicClass\": \"682a6b79dba413c9db166687\",\n  \"name\": \"Section A\",\n  \"section\": \"A\",\n  \"description\": \"BCA Section A\"\n}\n\n</code></pre><p><strong>Response:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Section updated successfully\",\n  \"data\": {\n    \"_id\": \"682a6e58822722bcd97db0ab\",\n    \"academicClass\": \"682a6b79dba413c9db166687\",\n    \"name\": \"Section A\",\n    \"section\": \"A\",\n    \"description\": \"BCA Section A\",\n    \"updatedAt\": \"2025-07-01T12:00:00.000Z\"\n  }\n}\n\n</code></pre><p><strong>Errors:</strong></p>\n<ul>\n<li><p><code>400 Bad Request</code> – Validation error (e.g. missing required fields)</p>\n</li>\n<li><p><code>401 Unauthorized</code> – Missing or invalid token</p>\n</li>\n<li><p><code>404 Not Found</code> – Section ID not found</p>\n</li>\n<li><p><code>500 Internal Server Error</code> – Server-side issue</p>\n</li>\n</ul>\n","urlObject":{"path":["sections","682a6e58822722bcd97db0ab"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"c9c7c1e8-fb87-4dc5-a14c-16d130b64948"},{"name":"Delete Section","event":[{"listen":"test","script":{"id":"2b8634b3-3da0-4fc4-a2ab-bcc9e0121048","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Section deleted', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('Section deleted successfully');","});"],"type":"text/javascript","packages":{}}}],"id":"8763bc00-ddf4-44fd-98fe-0d693337db18","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"url":"{{InstituteURL}}/sections/682a6e58822722bcd97db0ab","description":"<h3 id=\"🗑️-delete-section\">🗑️ Delete Section</h3>\n<p><strong>Endpoint:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>bashCopyEditDELETE http://localhost:3000/api/institute/sections/682a6e58822722bcd97db0ab\n\n</code></pre><p><strong>Description:</strong>  </p>\n<p>Deletes a section by its ID.</p>\n<p><strong>Authentication:</strong>  </p>\n<p>🔒 Requires Authorization Header<br /><code>Authorization: Bearer</code></p>\n<p><strong>Path Parameter:</strong></p>\n<ul>\n<li><code>sectionId</code> – The unique ID of the section to delete</li>\n</ul>\n<p><strong>Response:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Section deleted successfully\"\n}\n\n</code></pre><p><strong>Errors:</strong></p>\n<ul>\n<li><p><code>401 Unauthorized</code> – Token is missing or invalid</p>\n</li>\n<li><p><code>404 Not Found</code> – Section not found</p>\n</li>\n<li><p><code>500 Internal Server Error</code> – Server error while deleting</p>\n</li>\n</ul>\n","urlObject":{"path":["sections","682a6e58822722bcd97db0ab"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"8763bc00-ddf4-44fd-98fe-0d693337db18"}],"id":"b4f8732c-b403-4947-b251-5c988113dc0d","_postman_id":"b4f8732c-b403-4947-b251-5c988113dc0d","description":""},{"name":"Level","item":[{"name":"Create Level","event":[{"listen":"test","script":{"id":"d5916a9c-beee-4469-9008-790a4f20a0fd","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Level created', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.environment.set('levelId', jsonData.data._id);","});"],"type":"text/javascript","packages":{}}}],"id":"ed3ea42e-665f-4479-9b92-63335a3914b7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"levelNumber\": 2,\r\n  \"name\": \"CBSE primary\",\r\n  \"category\": \"primary\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:3000/api/institute/levels","description":"<h3 id=\"➕-create-level\">➕ Create Level</h3>\n<p><strong>Endpoint:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>bashCopyEditPOST http://localhost:3000/api/institute/api/institute/levels\n\n</code></pre><p><strong>Description:</strong>  </p>\n<p>Creates a new academic level for an institution (e.g., \"CBSE Secondary\").</p>\n<p><strong>Authentication:</strong>  </p>\n<p>🔒 Requires Authorization Header<br /><code>Authorization: Bearer</code></p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"institution\": \"67858370fe181d91b94dd3ba\", // Institution ID\n  \"levelNumber\": 2,                          // Level ordering number\n  \"name\": \"CBSE Secondary\",                 // Name of the level\n  \"category\": \"secondary\"                   // Category: primary | secondary | higher | college | etc.\n}\n\n</code></pre><p><strong>Response:</strong> <code>201 Created</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Level created successfully\",\n  \"data\": {\n    \"_id\": \"levelId\",\n    \"institution\": \"67858370fe181d91b94dd3ba\",\n    \"levelNumber\": 2,\n    \"name\": \"CBSE Secondary\",\n    \"category\": \"secondary\",\n    \"createdAt\": \"...\",\n    \"updatedAt\": \"...\"\n  }\n}\n\n</code></pre><p><strong>Errors:</strong></p>\n<ul>\n<li><p><code>400 Bad Request</code> – Missing or invalid fields</p>\n</li>\n<li><p><code>401 Unauthorized</code> – No token or invalid token</p>\n</li>\n<li><p><code>500 Internal Server Error</code> – Server issue</p>\n</li>\n</ul>\n","urlObject":{"protocol":"http","port":"3000","path":["api","institute","levels"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"ed3ea42e-665f-4479-9b92-63335a3914b7"},{"name":"Get All Levels","event":[{"listen":"test","script":{"id":"b05e3a3b-56ff-4136-afef-4648400a7da2","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Levels retrieved', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.data).to.be.an('array');","});"],"type":"text/javascript","packages":{}}}],"id":"fdb02cb3-c30e-4231-a4d5-3f81a9dbb646","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3ODU4MzcwZmUxODFkOTFiOTRkZDNiYyIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjc4NTgzNzBmZTE4MWQ5MWI5NGRkM2JhIiwiaWF0IjoxNzQ3OTE4MTY4LCJleHAiOjE3NDc5MjE3Njh9.KcwFaykBNGvZp1jgyKNjW9_rr8-Va0ReZDwXWUxZeiI","type":"text"}],"url":"http://localhost:3000/api/institute/levels","description":"<h3 id=\"📄-get-all-levels\">📄 Get All Levels</h3>\n<p><strong>Endpoint:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>bashCopyEditGET http://localhost:3000/api/institute/api/institute/levels\n\n</code></pre><p><strong>Description:</strong>  </p>\n<p>Fetches all academic levels (e.g., \"Primary\", \"Secondary\") for the logged-in institution.</p>\n<p><strong>Authentication:</strong>  </p>\n<p>🔒 Requires Authorization Header<br /><code>Authorization: Bearer</code></p>\n<p><strong>Query Parameters:</strong><br /><em>No query parameters required</em></p>\n<p><strong>Response:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Levels fetched successfully\",\n  \"data\": [\n    {\n      \"_id\": \"levelId1\",\n      \"institution\": \"67858370fe181d91b94dd3ba\",\n      \"levelNumber\": 1,\n      \"name\": \"CBSE Primary\",\n      \"category\": \"primary\",\n      \"createdAt\": \"...\",\n      \"updatedAt\": \"...\"\n    },\n    {\n      \"_id\": \"levelId2\",\n      \"institution\": \"67858370fe181d91b94dd3ba\",\n      \"levelNumber\": 2,\n      \"name\": \"CBSE Secondary\",\n      \"category\": \"secondary\",\n      \"createdAt\": \"...\",\n      \"updatedAt\": \"...\"\n    }\n  ]\n}\n\n</code></pre><p><strong>Errors:</strong></p>\n<ul>\n<li><p><code>401 Unauthorized</code> – No token or invalid token</p>\n</li>\n<li><p><code>500 Internal Server Error</code> – Server issue</p>\n</li>\n</ul>\n","urlObject":{"protocol":"http","port":"3000","path":["api","institute","levels"],"host":["localhost"],"query":[{"disabled":true,"key":"authorization","value":""}],"variable":[]}},"response":[],"_postman_id":"fdb02cb3-c30e-4231-a4d5-3f81a9dbb646"}],"id":"3d25d82c-76ee-4513-bc4d-f841f4431c00","_postman_id":"3d25d82c-76ee-4513-bc4d-f841f4431c00","description":""},{"name":"Semester","item":[{"name":"Create Semester","event":[{"listen":"test","script":{"id":"998d4dc5-b938-4de4-b103-153b76bbfbbe","exec":["pm.test('Status code is 201', function () {","    pm.response.to.have.status(201);","});","pm.test('Semester created', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('Semester created successfully');","    pm.expect(jsonData.data._id).to.exist;","    pm.expect(jsonData.data.semesterNumber).to.equal(1);","    pm.expect(jsonData.data.durationDays).to.exist;","    pm.environment.set('semesterId', jsonData.data._id);","});"],"type":"text/javascript","packages":{}}}],"id":"c9ad0808-6691-4489-82ad-d5e115ccd0b5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"degree\":\"682a6519468c83e99245d7c0\",\r\n    \"academicClass\": \"682a6b79dba413c9db166687\",\r\n    \"semesterNumber\": 2,\r\n    \"startDate\": \"2025-07-01T00:00:00Z\",\r\n    \"endDate\": \"2025-12-30T23:59:59Z\",\r\n    \"courses\": [\r\n        \"682a7064822722bcd97db0c9\"\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"{{InstituteURL}}/create/semesters","description":"<h3 id=\"📄-create-semester\">📄 Create Semester</h3>\n<p><strong>Endpoint:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>bashCopyEditPOST http://localhost:3000/api/institute/create/semesters\n\n</code></pre><p><strong>Description:</strong>  </p>\n<p>Creates a new semester for a specific academic class and degree, along with associated subjects.</p>\n<p><strong>Authentication:</strong>  </p>\n<p>🔒 Requires Authorization Header<br /><code>Authorization: Bearer</code></p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"degree\": \"682a6519468c83e99245d7c0\",\n  \"academicClass\": \"682a6b79dba413c9db166687\",\n  \"semesterNumber\": 2,\n  \"startDate\": \"2025-07-01T00:00:00Z\",\n  \"endDate\": \"2025-12-30T23:59:59Z\",\n  \"courses\": [\n    \"682a7064822722bcd97db0c9\"\n  ]\n}\n\n</code></pre><p><strong>Field Descriptions:</strong></p>\n<ul>\n<li><p><code>degree</code> – (string) ID of the degree the semester belongs to</p>\n</li>\n<li><p><code>academicClass</code> – (string) ID of the academic class</p>\n</li>\n<li><p><code>semesterNumber</code> – (number) The semester number (e.g., 1, 2, 3)</p>\n</li>\n<li><p><code>startDate</code> – (string) Start date of the semester in ISO format</p>\n</li>\n<li><p><code>endDate</code> – (string) End date of the semester in ISO format</p>\n</li>\n<li><p><code>courses</code> – (array of strings) List of subject/course IDs for this semester</p>\n</li>\n</ul>\n<p><strong>Response:</strong> <code>201 Created</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Semester created successfully\",\n  \"data\": {\n    \"_id\": \"semesterId\",\n    \"degree\": \"degreeId\",\n    \"academicClass\": \"classId\",\n    \"semesterNumber\": 2,\n    \"startDate\": \"2025-07-01T00:00:00Z\",\n    \"endDate\": \"2025-12-30T23:59:59Z\",\n    \"courses\": [\"subjectId\"],\n    \"createdAt\": \"...\",\n    \"updatedAt\": \"...\"\n  }\n}\n\n</code></pre><p><strong>Errors:</strong></p>\n<ul>\n<li><p><code>400 Bad Request</code> – Missing or invalid required fields</p>\n</li>\n<li><p><code>401 Unauthorized</code> – Token is missing or invalid</p>\n</li>\n<li><p><code>500 Internal Server Error</code> – Server issue</p>\n</li>\n</ul>\n","urlObject":{"path":["create","semesters"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"c9ad0808-6691-4489-82ad-d5e115ccd0b5"},{"name":"Create Semester - Overlapping Dates","event":[{"listen":"test","script":{"exec":["pm.test('Status code is 400', function () {","    pm.response.to.have.status(400);","});","pm.test('Overlapping semester error', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.false;","    pm.expect(jsonData.message).to.equal('Semester dates overlap with an existing semester for this academic class');","});"],"type":"text/javascript","id":"6584898d-cf7f-4fb3-b7a3-0ede4c2cba7d"}}],"id":"239e47e0-84fa-49ae-8a2c-0cb0fb950ad3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"body":{"mode":"raw","raw":"{\"academicClass\": \"682a6b79dba413c9db166687\", \"semesterNumber\": 2, \"startDate\": \"2025-02-01T00:00:00Z\", \"endDate\": \"2025-07-31T23:59:59Z\", \"courses\": [\"682a7064822722bcd97db0c9\"]}","options":{"raw":{"language":"json"}}},"url":"http://localhost:3000/api/institute/api/semesters","urlObject":{"path":["api","semesters"],"host":["http://localhost:3000/api/institute"],"query":[],"variable":[]}},"response":[],"_postman_id":"239e47e0-84fa-49ae-8a2c-0cb0fb950ad3"},{"name":"Get All Semesters","event":[{"listen":"test","script":{"id":"6a23baf7-7e8f-4809-90ed-8b900dd7ae3f","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Semesters retrieved', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('Semesters retrieved successfully');","    pm.expect(jsonData.data.semesters).to.be.an('array');","    pm.expect(jsonData.data.total).to.be.a('number');","    pm.expect(jsonData.data.page).to.equal(1);","    pm.expect(jsonData.data.limit).to.equal(10);","    pm.expect(jsonData.data.totalPages).to.be.a('number');","});"],"type":"text/javascript","packages":{}}}],"id":"14d3ed29-0bf4-47f7-b143-f872b9c34116","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"url":"{{InstituteURL}}/get/semesters?page=1&limit=10&academicClass=682a6b79dba413c9db166687","description":"<h3 id=\"📄-get-semesters-by-academic-class\">📄 Get Semesters by Academic Class</h3>\n<p><strong>Endpoint:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>arduinoCopyEditGET http://localhost:3000/api/institute/get/semesters\n\n</code></pre><p><strong>Description:</strong>  </p>\n<p>Fetches a paginated list of semesters filtered by <code>academicClass</code>.</p>\n<p><strong>Authentication:</strong>  </p>\n<p>🔒 Requires Authorization Header<br /><code>Authorization: Bearer</code></p>\n<p><strong>Query Parameters:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>page</code></td>\n<td>number</td>\n<td>✅ Yes</td>\n<td>Page number for pagination</td>\n</tr>\n<tr>\n<td><code>limit</code></td>\n<td>number</td>\n<td>✅ Yes</td>\n<td>Number of items per page</td>\n</tr>\n<tr>\n<td><code>academicClass</code></td>\n<td>string</td>\n<td>✅ Yes</td>\n<td>ID of the academic class to filter by</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example Request:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>bashCopyEditGET http://localhost:3000/api/institute/get/semesters?page=1&amp;limit=10&amp;academicClass=682a6b79dba413c9db166687\n\n</code></pre><p><strong>Success Response:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"total\": 4,\n  \"page\": 1,\n  \"limit\": 10,\n  \"data\": [\n    {\n      \"_id\": \"semesterId1\",\n      \"degree\": \"degreeId\",\n      \"academicClass\": \"classId\",\n      \"semesterNumber\": 1,\n      \"startDate\": \"2025-01-01T00:00:00Z\",\n      \"endDate\": \"2025-06-30T23:59:59Z\",\n      \"courses\": [\"subjectId1\", \"subjectId2\"],\n      \"createdAt\": \"...\",\n      \"updatedAt\": \"...\"\n    },\n    ...\n  ]\n}\n\n</code></pre><p><strong>Errors:</strong></p>\n<ul>\n<li><p><code>400 Bad Request</code> – Missing or invalid query parameters</p>\n</li>\n<li><p><code>401 Unauthorized</code> – Token is missing or invalid</p>\n</li>\n<li><p><code>500 Internal Server Error</code> – Server issue</p>\n</li>\n</ul>\n","urlObject":{"path":["get","semesters"],"host":["{{InstituteURL}}"],"query":[{"key":"page","value":"1"},{"key":"limit","value":"10"},{"key":"academicClass","value":"682a6b79dba413c9db166687"}],"variable":[]}},"response":[],"_postman_id":"14d3ed29-0bf4-47f7-b143-f872b9c34116"},{"name":"Update Semester","event":[{"listen":"test","script":{"id":"c0af3fa9-449c-442b-9106-7103ac542a0a","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Semester updated', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('Semester updated successfully');","    pm.expect(jsonData.data._id).to.equal(pm.environment.get('semesterId'));","    pm.expect(jsonData.data.endDate).to.equal('2025-07-15T23:59:59.000Z');","});"],"type":"text/javascript","packages":{}}}],"id":"86d79c2e-9451-4bcc-a79f-64ab116bd17d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"body":{"mode":"raw","raw":"{\"endDate\": \"2025-07-15T23:59:59Z\"}","options":{"raw":{"language":"json"}}},"url":"{{InstituteURL}}/semester/{{semesterId}}","description":"<h3 id=\"✏️-update-semester\">✏️ Update Semester</h3>\n<p><strong>Endpoint:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>bashCopyEditPUT http://localhost:3000/api/institute/semester/{{semesterId}}\n\n</code></pre><p><strong>Description:</strong>  </p>\n<p>Updates an existing semester with new details such as class, dates, and courses.</p>\n<p><strong>Authentication:</strong>  </p>\n<p>🔒 Requires Authorization Header<br /><code>Authorization: Bearer</code></p>\n<p><strong>Path Parameters:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>semesterId</code></td>\n<td>string</td>\n<td>✅ Yes</td>\n<td>ID of the semester to update</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"degree\": \"682a6519468c83e99245d7c0\",\n  \"academicClass\": \"682a6b79dba413c9db166687\",\n  \"semesterNumber\": 2,\n  \"startDate\": \"2025-07-01T00:00:00Z\",\n  \"endDate\": \"2025-12-30T23:59:59Z\",\n  \"courses\": [\n    \"682a7064822722bcd97db0c9\"\n  ]\n}\n\n</code></pre><p><strong>Body Fields:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>degree</code></td>\n<td>string</td>\n<td>✅ Yes</td>\n<td>ID of the associated degree</td>\n</tr>\n<tr>\n<td><code>academicClass</code></td>\n<td>string</td>\n<td>✅ Yes</td>\n<td>ID of the academic class</td>\n</tr>\n<tr>\n<td><code>semesterNumber</code></td>\n<td>number</td>\n<td>✅ Yes</td>\n<td>Semester number (e.g., 1, 2, 3)</td>\n</tr>\n<tr>\n<td><code>startDate</code></td>\n<td>string</td>\n<td>✅ Yes</td>\n<td>Start date in ISO format</td>\n</tr>\n<tr>\n<td><code>endDate</code></td>\n<td>string</td>\n<td>✅ Yes</td>\n<td>End date in ISO format</td>\n</tr>\n<tr>\n<td><code>courses</code></td>\n<td>string[]</td>\n<td>✅ Yes</td>\n<td>Array of subject/course IDs</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example Request:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>bashCopyEditPUT http://localhost:3000/api/institute/semester/64b456abc123456789d4a321\n\n</code></pre><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"degree\": \"64b1234567890abcdef12345\",\n  \"academicClass\": \"64b0987654321fedcba09876\",\n  \"semesterNumber\": 2,\n  \"startDate\": \"2025-07-01T00:00:00Z\",\n  \"endDate\": \"2025-12-30T23:59:59Z\",\n  \"courses\": [\"64c123456789abcdef01234\"]\n}\n\n</code></pre><p><strong>Success Response:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Semester updated successfully\",\n  \"data\": {\n    \"_id\": \"64b456abc123456789d4a321\",\n    \"degree\": \"64b1234567890abcdef12345\",\n    \"academicClass\": \"64b0987654321fedcba09876\",\n    \"semesterNumber\": 2,\n    \"startDate\": \"2025-07-01T00:00:00Z\",\n    \"endDate\": \"2025-12-30T23:59:59Z\",\n    \"courses\": [\"64c123456789abcdef01234\"]\n  }\n}\n\n</code></pre><p><strong>Error Responses:</strong></p>\n<ul>\n<li><p><code>400 Bad Request</code> – Invalid or missing fields</p>\n</li>\n<li><p><code>404 Not Found</code> – Semester ID not found</p>\n</li>\n<li><p><code>401 Unauthorized</code> – Missing or invalid token</p>\n</li>\n<li><p><code>500 Internal Server Error</code> – Server issue</p>\n</li>\n</ul>\n","urlObject":{"path":["semester","{{semesterId}}"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"86d79c2e-9451-4bcc-a79f-64ab116bd17d"},{"name":"Get Semester by ID - Not Found","event":[{"listen":"test","script":{"exec":["pm.test('Status code is 404', function () {","    pm.response.to.have.status(404);","});","pm.test('Semester not found', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.false;","    pm.expect(jsonData.message).to.equal('Semester not found or unauthorized');","});"],"type":"text/javascript","id":"a3f6f9af-2ab9-445e-b3d0-ec1089f131e8"}}],"id":"8873def5-5c21-4ad5-b8f0-f5c300b74efc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"url":"http://localhost:3000/api/institute/api/semesters/invalidSemesterId","urlObject":{"path":["api","semesters","invalidSemesterId"],"host":["http://localhost:3000/api/institute"],"query":[],"variable":[]}},"response":[],"_postman_id":"8873def5-5c21-4ad5-b8f0-f5c300b74efc"},{"name":"Create Semester - Invalid Academic Class","event":[{"listen":"test","script":{"exec":["pm.test('Status code is 400', function () {","    pm.response.to.have.status(400);","});","pm.test('Invalid academic class error', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.false;","    pm.expect(jsonData.message).to.equal('Invalid or unauthorized academic class');","});"],"type":"text/javascript","id":"f9d911bc-8c3c-410b-8407-10ec8f4eadd1"}}],"id":"d4984c8d-8b04-4391-92fb-2a28369e36c8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"body":{"mode":"raw","raw":"{\"academicClass\": \"invalidClassId\", \"semesterNumber\": 3, \"startDate\": \"2025-08-01T00:00:00Z\", \"endDate\": \"2025-12-31T23:59:59Z\", \"courses\": [\"682a7064822722bcd97db0c9\"]}","options":{"raw":{"language":"json"}}},"url":"http://localhost:3000/api/institute/api/semesters","urlObject":{"path":["api","semesters"],"host":["http://localhost:3000/api/institute"],"query":[],"variable":[]}},"response":[],"_postman_id":"d4984c8d-8b04-4391-92fb-2a28369e36c8"},{"name":"Soft Delete Semester","event":[{"listen":"test","script":{"id":"2eae79b4-a110-4fd8-9a10-0bf1b73c340f","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Semester soft deleted', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('Semester deleted successfully');","    pm.expect(jsonData.data).to.be.null;","});"],"type":"text/javascript","packages":{}}}],"id":"78cf05b4-112c-4efc-aa1a-f5e623ab893c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"url":"{{InstituteURL}}/api/semesters/{{semesterId}}","description":"<h3 id=\"🗑️-delete-semester\">🗑️ Delete Semester</h3>\n<p><strong>Endpoint:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>bashCopyEditDELETE http://localhost:3000/api/institute/api/semesters/{{semesterId}}\n\n</code></pre><p><strong>Description:</strong>  </p>\n<p>Deletes an existing semester by its ID. This action is irreversible and will remove all associations of the semester with classes, courses, and other linked entities.</p>\n<p><strong>Authentication:</strong>  </p>\n<p>🔒 Requires Authorization Header<br /><code>Authorization: Bearer</code></p>\n<p><strong>Path Parameters:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>semesterId</code></td>\n<td>string</td>\n<td>✅ Yes</td>\n<td>ID of the semester to delete</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Request Body:</strong><br /><em>None</em></p>\n<p><strong>Example Request:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>bashCopyEditDELETE http://localhost:3000/api/institute/api/semesters/64b456abc123456789d4a321\n\n</code></pre><p><strong>Success Response:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Semester deleted successfully\"\n}\n\n</code></pre><p><strong>Error Responses:</strong></p>\n<ul>\n<li><p><code>400 Bad Request</code> – Invalid semester ID format</p>\n</li>\n<li><p><code>404 Not Found</code> – Semester not found</p>\n</li>\n<li><p><code>401 Unauthorized</code> – Missing or invalid token</p>\n</li>\n<li><p><code>500 Internal Server Error</code> – Unexpected server error</p>\n</li>\n</ul>\n","urlObject":{"path":["api","semesters","{{semesterId}}"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"78cf05b4-112c-4efc-aa1a-f5e623ab893c"},{"name":"Soft Delete Semester - Already Deleted","event":[{"listen":"test","script":{"exec":["pm.test('Status code is 404', function () {","    pm.response.to.have.status(404);","});","pm.test('Semester already deleted', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.false;","    pm.expect(jsonData.message).to.equal('Semester not found or unauthorized');","});"],"type":"text/javascript","id":"5ecfef58-e225-4578-9b36-50b494e7b89d"}}],"id":"b605015c-b309-4db0-8f15-867612373cde","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"url":"http://localhost:3000/api/institute/api/semesters/{{semesterId}}","urlObject":{"path":["api","semesters","{{semesterId}}"],"host":["http://localhost:3000/api/institute"],"query":[],"variable":[]}},"response":[],"_postman_id":"b605015c-b309-4db0-8f15-867612373cde"},{"name":"Update Semester - Invalid Dates","event":[{"listen":"test","script":{"exec":["pm.test('Status code is 400', function () {","    pm.response.to.have.status(400);","});","pm.test('Invalid dates error', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.false;","    pm.expect(jsonData.message).to.equal('Start date must be before end date');","});"],"type":"text/javascript","id":"aac485fa-7ddf-4dcd-87d6-0f92d6f1d756"}}],"id":"3e79546d-ce4f-4010-be96-3f453c914db7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"body":{"mode":"raw","raw":"{\"startDate\": \"2025-08-01T00:00:00Z\", \"endDate\": \"2025-07-01T23:59:59Z\"}","options":{"raw":{"language":"json"}}},"url":"http://localhost:3000/api/institute/api/semesters/{{semesterId}}","urlObject":{"path":["api","semesters","{{semesterId}}"],"host":["http://localhost:3000/api/institute"],"query":[],"variable":[]}},"response":[],"_postman_id":"3e79546d-ce4f-4010-be96-3f453c914db7"},{"name":"Get Semester by ID","event":[{"listen":"test","script":{"id":"3e195bfe-a5a7-4446-9cd1-fcb4dac36aec","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Semester retrieved', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('Semester retrieved successfully');","    pm.expect(jsonData.data._id).to.equal(pm.environment.get('semesterId'));","    pm.expect(jsonData.data.semesterNumber).to.equal(1);","    pm.expect(jsonData.data.durationDays).to.exist;","    pm.expect(jsonData.data.isDeleted).to.be.false;","});"],"type":"text/javascript","packages":{}}}],"id":"447474ef-9c7b-4b6e-a43f-e1b79df7ba0f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"url":"{{InstituteURL}}/semester/{{semesterId}}","description":"<h3 id=\"📘-get-semester-by-id\">📘 Get Semester by ID</h3>\n<p><strong>Endpoint:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>bashCopyEditGET http://localhost:3000/api/institute/semester/{{semesterId}}\n\n</code></pre><p><strong>Description:</strong>  </p>\n<p>Fetches detailed information of a specific semester by its unique ID, including its class, degree, courses, and duration.</p>\n<p><strong>Authentication:</strong>  </p>\n<p>🔒 Requires Authorization Header<br /><code>Authorization: Bearer</code></p>\n<p><strong>Path Parameters:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>semesterId</code></td>\n<td>string</td>\n<td>✅ Yes</td>\n<td>The ID of the semester to retrieve</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Request Body:</strong><br /><em>None</em></p>\n<p><strong>Example Request:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>bashCopyEditGET http://localhost:3000/api/institute/semester/64b456abc123456789d4a321\n\n</code></pre><p><strong>Success Response:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"_id\": \"64b456abc123456789d4a321\",\n  \"degree\": \"64a111def456abc123d0e456\",\n  \"academicClass\": \"64b444abc111456789d0c123\",\n  \"semesterNumber\": 2,\n  \"startDate\": \"2025-07-01T00:00:00.000Z\",\n  \"endDate\": \"2025-12-30T23:59:59.000Z\",\n  \"courses\": [\n    {\n      \"_id\": \"64c1234abc5678ef90d1a123\",\n      \"name\": \"Computer Networks\",\n      \"code\": \"CS302\"\n    }\n  ],\n  \"createdAt\": \"2025-06-30T12:00:00.000Z\",\n  \"updatedAt\": \"2025-07-01T10:30:00.000Z\"\n}\n\n</code></pre><p><strong>Error Responses:</strong></p>\n<ul>\n<li><p><code>400 Bad Request</code> – Invalid semester ID format</p>\n</li>\n<li><p><code>404 Not Found</code> – Semester not found</p>\n</li>\n<li><p><code>401 Unauthorized</code> – Missing or invalid token</p>\n</li>\n<li><p><code>500 Internal Server Error</code> – Server encountered an error</p>\n</li>\n</ul>\n","urlObject":{"path":["semester","{{semesterId}}"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"447474ef-9c7b-4b6e-a43f-e1b79df7ba0f"},{"name":"Create Semester - Unauthorized (Wrong Institution)","event":[{"listen":"test","script":{"exec":["pm.test('Status code is 400', function () {","    pm.response.to.have.status(400);","});","pm.test('Unauthorized institution error', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.false;","    pm.expect(jsonData.message).to.equal('Invalid or unauthorized academic class');","});"],"type":"text/javascript","id":"b778d4c3-5b75-418c-b99f-a06a54be7dc6"}}],"id":"ca31542c-c1a9-48e0-9ef9-d49aab32cbf1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"body":{"mode":"raw","raw":"{\"academicClass\": \"682a6b79dba413c9db166687\", \"semesterNumber\": 4, \"startDate\": \"2025-08-01T00:00:00Z\", \"endDate\": \"2025-12-31T23:59:59Z\", \"courses\": [\"682a7064822722bcd97db0c9\"], \"institution\": \"differentInstitutionId\"}","options":{"raw":{"language":"json"}}},"url":"http://localhost:3000/api/institute/api/semesters","urlObject":{"path":["api","semesters"],"host":["http://localhost:3000/api/institute"],"query":[],"variable":[]}},"response":[],"_postman_id":"ca31542c-c1a9-48e0-9ef9-d49aab32cbf1"}],"id":"b8a3115b-d914-4a39-a577-4a03a0ec4d16","_postman_id":"b8a3115b-d914-4a39-a577-4a03a0ec4d16","description":""},{"name":"AttendanceService","item":[{"name":"New Attendance Session","id":"8a38a926-d675-4b90-99ad-7ab7fee8eda6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"body":{"mode":"raw","raw":"{\r\n    \"timetable\":\"683d81868fa5b7d8c9aaa80a\",\r\n    \"instructor\":\"68385ebd62e7fd1157a37fac\",\r\n    \"academicClass\":\"68386088ea3f402e8672fb33\",\r\n    \"section\":\"68386800e951ba52db560873\", //optional for colleges\r\n    \"subject\":\"683864e13a90dae160281638\",\r\n    \"scheduleDetail\":{\r\n        \"day\":\"Monday\",\r\n        \"startTime\":\"12:00\",\r\n        \"endTime\":\"13:00\"\r\n    },\r\n    \"date\":\"2025-05-29\"\r\n\r\n}","options":{"raw":{"language":"json"}}},"url":"{{InstituteURL}}/attendance/create-session","description":"<h3 id=\"📝-create-attendance-session\">📝 Create Attendance Session</h3>\n<p><strong>Endpoint:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>bashCopyEditPOST http://localhost:3000/api/institute/attendance/create-session\n\n</code></pre><p><strong>Description:</strong>  </p>\n<p>Creates a new attendance session for a specific class, subject, instructor, and timetable schedule.</p>\n<p><strong>Authentication:</strong>  </p>\n<p>🔒 Requires Authorization Header<br /><code>Authorization: Bearer</code></p>\n<hr />\n<h3 id=\"📥-request-body\">📥 Request Body</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>timetable</code></td>\n<td>string</td>\n<td>✅ Yes</td>\n<td>ID of the timetable entry</td>\n</tr>\n<tr>\n<td><code>instructor</code></td>\n<td>string</td>\n<td>✅ Yes</td>\n<td>ID of the instructor</td>\n</tr>\n<tr>\n<td><code>academicClass</code></td>\n<td>string</td>\n<td>✅ Yes</td>\n<td>ID of the academic class</td>\n</tr>\n<tr>\n<td><code>section</code></td>\n<td>string</td>\n<td>✅ Yes</td>\n<td>ID of the section</td>\n</tr>\n<tr>\n<td><code>subject</code></td>\n<td>string</td>\n<td>✅ Yes</td>\n<td>ID of the subject</td>\n</tr>\n<tr>\n<td><code>scheduleDetail</code></td>\n<td>object</td>\n<td>✅ Yes</td>\n<td>Schedule detail for the session (see below)</td>\n</tr>\n<tr>\n<td>┗ <code>day</code></td>\n<td>string</td>\n<td>✅ Yes</td>\n<td>Day of the week (e.g. \"Monday\")</td>\n</tr>\n<tr>\n<td>┗ <code>startTime</code></td>\n<td>string</td>\n<td>✅ Yes</td>\n<td>Start time of the session (e.g. \"12:00\")</td>\n</tr>\n<tr>\n<td>┗ <code>endTime</code></td>\n<td>string</td>\n<td>✅ Yes</td>\n<td>End time of the session (e.g. \"13:00\")</td>\n</tr>\n<tr>\n<td><code>date</code></td>\n<td>string</td>\n<td>✅ Yes</td>\n<td>Date of the session in <code>YYYY-MM-DD</code> format</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"🧾-example-request\">🧾 Example Request</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"timetable\": \"683d81868fa5b7d8c9aaa80a\",\n  \"instructor\": \"68385ebd62e7fd1157a37fac\",\n  \"academicClass\": \"68386088ea3f402e8672fb33\",\n  \"section\": \"68386800e951ba52db560873\",\n  \"subject\": \"683864e13a90dae160281638\",\n  \"scheduleDetail\": {\n    \"day\": \"Monday\",\n    \"startTime\": \"12:00\",\n    \"endTime\": \"13:00\"\n  },\n  \"date\": \"2025-05-29\"\n}\n\n</code></pre><hr />\n<h3 id=\"✅-success-response--201-created\">✅ Success Response — <code>201 Created</code></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Attendance session created successfully\",\n  \"data\": {\n    \"_id\": \"683e8b7c9c9f96bca1b31d7e\",\n    \"date\": \"2025-05-29\",\n    \"scheduleDetail\": {\n      \"day\": \"Monday\",\n      \"startTime\": \"12:00\",\n      \"endTime\": \"13:00\"\n    },\n    \"timetable\": \"683d81868fa5b7d8c9aaa80a\",\n    \"instructor\": \"68385ebd62e7fd1157a37fac\",\n    \"academicClass\": \"68386088ea3f402e8672fb33\",\n    \"section\": \"68386800e951ba52db560873\",\n    \"subject\": \"683864e13a90dae160281638\",\n    \"createdAt\": \"2025-07-01T11:00:00.000Z\"\n  }\n}\n\n</code></pre><hr />\n<h3 id=\"❌-error-responses\">❌ Error Responses</h3>\n<ul>\n<li><p><code>400 Bad Request</code> – Missing or invalid required fields</p>\n</li>\n<li><p><code>401 Unauthorized</code> – Token is missing or invalid</p>\n</li>\n<li><p><code>409 Conflict</code> – Session already exists for the given time/date</p>\n</li>\n<li><p><code>500 Internal Server Error</code> – Server-side issue</p>\n</li>\n</ul>\n","urlObject":{"path":["attendance","create-session"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"8a38a926-d675-4b90-99ad-7ab7fee8eda6"},{"name":"Get atttendance with filters","id":"5f8a46d5-d4d9-4976-a9d9-7a5e55603486","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"url":"{{InstituteURL}}/attendance?subjectId=683864e13a90dae160281638&sectionId=68386800e951ba52db560873","description":"<h3 id=\"✅-get-attendance-by-filters\">✅ <strong>Get Attendance by Filters</strong></h3>\n<p><strong>URL:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>bashCopyEdithttp://localhost:3000/api/institute/attendance\n\n</code></pre><p><strong>Method:</strong><br /><code>GET</code></p>\n<p><strong>Query Parameters:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>subjectId</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID of the subject</td>\n</tr>\n<tr>\n<td><code>sectionId</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID of the section</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example Request:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>httpCopyEditGET http://localhost:3000/api/institute/attendance?subjectId=683864e13a90dae160281638§ionId=68386800e951ba52db560873\n\n</code></pre><p><strong>Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit[\n  {\n    \"_id\": \"sessionId\",\n    \"date\": \"2025-05-29\",\n    \"subject\": {\n      \"_id\": \"683864e13a90dae160281638\",\n      \"name\": \"Mathematics\"\n    },\n    \"section\": {\n      \"_id\": \"68386800e951ba52db560873\",\n      \"name\": \"Section A\"\n    },\n    \"attendanceRecords\": [\n      {\n        \"student\": \"studentId\",\n        \"status\": \"Present\"\n      }\n    ]\n  }\n]\n\n</code></pre>","urlObject":{"path":["attendance"],"host":["{{InstituteURL}}"],"query":[{"key":"subjectId","value":"683864e13a90dae160281638"},{"key":"sectionId","value":"68386800e951ba52db560873"}],"variable":[]}},"response":[],"_postman_id":"5f8a46d5-d4d9-4976-a9d9-7a5e55603486"},{"name":"Mark Attendance of students","id":"2b352207-a9fe-4070-bade-1b4ad58ecf7b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"session\":\"{{sessionId}}\",\r\n    \"attendance\": [\r\n        {\r\n            \"student\": \"683e11d98758475aabe864f4\",\r\n            \"status\": \"PRESENT\"\r\n        },\r\n        {\r\n            \"student\": \"683e12158758475aabe864fb\",\r\n            \"status\": \"ABSENT\"\r\n        }\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"{{InstituteURL}}/attendance/mark","description":"<h3 id=\"✅-mark-attendance\">✅ <strong>Mark Attendance</strong></h3>\n<p><strong>URL:</strong> {{InstituteURL}}/attendance/mark</p>\n<p><strong>Method:</strong><br /><code>POST</code></p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"session\": \"{{sessionId}}\",\n  \"attendance\": [\n    {\n      \"student\": \"683e11d98758475aabe864f4\",\n      \"status\": \"PRESENT\"\n    },\n    {\n      \"student\": \"683e12158758475aabe864fb\",\n      \"status\": \"ABSENT\"\n    }\n  ]\n}\n\n</code></pre><p><strong>Body Parameters:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>session</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID of the attendance session</td>\n</tr>\n<tr>\n<td><code>attendance</code></td>\n<td>array</td>\n<td>✅</td>\n<td>List of students with their attendance info</td>\n</tr>\n<tr>\n<td>→ <code>student</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Student ID</td>\n</tr>\n<tr>\n<td>→ <code>status</code></td>\n<td>string</td>\n<td>✅</td>\n<td>One of: <code>PRESENT</code>, <code>ABSENT</code>, <code>LATE</code>, etc.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example Request:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"session\": \"683e11058758475aabe864dd\",\n  \"attendance\": [\n    {\n      \"student\": \"683e11d98758475aabe864f4\",\n      \"status\": \"PRESENT\"\n    },\n    {\n      \"student\": \"683e12158758475aabe864fb\",\n      \"status\": \"ABSENT\"\n    }\n  ]\n}\n\n</code></pre><p><strong>Success Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Attendance marked successfully\",\n  \"markedCount\": 2\n}\n\n</code></pre>","urlObject":{"path":["attendance","mark"],"host":["{{InstituteURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"2b352207-a9fe-4070-bade-1b4ad58ecf7b"}],"id":"5b829ad9-676c-4c88-abf4-92c88f834047","_postman_id":"5b829ad9-676c-4c88-abf4-92c88f834047","description":""},{"name":"Media","item":[{"name":"Create Media","id":"681aa3f4-552d-491f-888a-5ae367419bcf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[]},"isInherited":false},"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"institution","value":"6726257ac9656e2f6add3c55","type":"text"},{"key":"module","value":"692ac1ddcc91f4017f4cf237","type":"text"},{"key":"title","value":"Mountain walk","type":"text"},{"key":"type","value":"video","type":"text"},{"key":"file","type":"file","src":"/C:/Users/SoftwareUnit/Downloads/sec(x).mp4"},{"key":"isDownloadable","value":"false","type":"text"},{"key":"visibility","value":"enrolledOnly","type":"text"},{"key":"expiresIn","value":"3600","type":"text"}]},"url":"{{CoursebaseURL}}/courses/media","description":"<h3 id=\"📼-create-media\">📼 <strong>Create Media</strong></h3>\n<p><strong>URL:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>bashCopyEdit{{CoursebaseURL}}/media\n\n</code></pre><p><strong>Method:</strong><br /><code>POST</code></p>\n<p><strong>Content-Type:</strong><br /><code>multipart/form-data</code></p>\n<p><strong>Form Data Parameters:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>institution</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID of the institution (e.g., <code>6726257ac9656e2f6add3c55</code>)</td>\n</tr>\n<tr>\n<td><code>module</code></td>\n<td>string</td>\n<td>✅</td>\n<td>ID of the module (e.g., <code>683b77d63c2e678e2b28626c</code>)</td>\n</tr>\n<tr>\n<td><code>title</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Title of the media (e.g., <code>Calculus Basics</code>)</td>\n</tr>\n<tr>\n<td><code>type</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Type of media (<code>video</code>, <code>pdf</code>, etc.)</td>\n</tr>\n<tr>\n<td><code>isDownloadable</code></td>\n<td>boolean</td>\n<td>✅</td>\n<td>Allow media download (<code>true</code> / <code>false</code>)</td>\n</tr>\n<tr>\n<td><code>visibility</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Visibility type (<code>public</code>, <code>enrolledOnly</code>, etc.)</td>\n</tr>\n<tr>\n<td><code>expiresIn</code></td>\n<td>number</td>\n<td>✅</td>\n<td>Time in seconds the media is valid (e.g., <code>3600</code>)</td>\n</tr>\n<tr>\n<td><code>file</code></td>\n<td>file</td>\n<td>✅</td>\n<td>Media file (e.g., video file)</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example (form-data):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>yamlCopyEditinstitution: 6726257ac9656e2f6add3c55  \nmodule: 683b77d63c2e678e2b28626c  \ntitle: Calculus Basics  \ntype: video  \nisDownloadable: false  \nvisibility: enrolledOnly  \nexpiresIn: 3600  \nfile: &lt;attach a file&gt;\n\n</code></pre><p><strong>Success Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Media uploaded successfully\",\n  \"mediaId\": \"68402c568b8a85f0a64ff099\"\n}\n\n</code></pre>","urlObject":{"path":["courses","media"],"host":["{{CoursebaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"681aa3f4-552d-491f-888a-5ae367419bcf"},{"name":"Get Media by ID","id":"91cac10a-fadc-46e0-beb0-d857ee156544","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"body":{"mode":"formdata","formdata":[]},"url":"https://studentapi.anginatlearning.com/api/course/courses/media/68905a6ce20b87c84f3550fe","description":"<p>StartFragment</p>\n<h3 id=\"📄-get-media-by-id\">📄 <strong>Get Media by ID</strong></h3>\n<p><strong>URL:</strong> /api/media/:id?institution=inst_id</p>\n<p><strong>Method:</strong><br /><code>GET</code></p>\n<p><strong>URL Parameters:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>:id</code></td>\n<td>string</td>\n<td>✅</td>\n<td>The unique ID of the media</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Query Parameters:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>institution</code></td>\n<td>string</td>\n<td>✅</td>\n<td>The ID of the institution requesting the media</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<p><strong>Example Request:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>bashCopyEditGET http://localhost:3000/api/media/68402c568b8a85f0a64ff099?institution=6726257ac9656e2f6add3c55\n\n</code></pre><p><strong>Success Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"media\": {\n    \"_id\": \"68402c568b8a85f0a64ff099\",\n    \"title\": \"Calculus Basics\",\n    \"type\": \"video\",\n    \"isDownloadable\": false,\n    \"visibility\": \"enrolledOnly\",\n    \"expiresIn\": 3600,\n    \"institution\": \"6726257ac9656e2f6add3c55\",\n    \"module\": \"683b77d63c2e678e2b28626c\",\n    \"url\": \"https://example.com/path-to-video.mp4\"\n  }\n}\n\n</code></pre><p>EndFragment</p>\n","urlObject":{"protocol":"https","path":["api","course","courses","media","68905a6ce20b87c84f3550fe"],"host":["studentapi","anginatlearning","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"91cac10a-fadc-46e0-beb0-d857ee156544"},{"name":"Get Media by Module","id":"849dc2a6-619b-4403-8a13-9be5a3fab93c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"url":"{{CoursebaseURL}}/media/module/:moduleid","description":"<h3 id=\"📄-get-media-by-module\">📄 <strong>Get Media by Module</strong></h3>\n<p><strong>URL:</strong> /api/media/module/:moduleId?institution=inst_id</p>\n<p><strong>Method:</strong><br /><code>GET</code></p>\n<hr />\n<h3 id=\"🔗-path-parameters\">🔗 <strong>Path Parameters:</strong></h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>moduleId</code></td>\n<td>string</td>\n<td>✅</td>\n<td>The ID of the module to fetch media from</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"🧾-query-parameters\">🧾 <strong>Query Parameters:</strong></h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>institution</code></td>\n<td>string</td>\n<td>✅</td>\n<td>The ID of the institution</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"✅-example-request\">✅ <strong>Example Request:</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>bashCopyEditGET http://localhost:3000/api/media/module/683b77d63c2e678e2b28626c?institution=6726257ac9656e2f6add3c55\n\n</code></pre><hr />\n<h3 id=\"📦-success-response\">📦 <strong>Success Response:</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"media\": [\n    {\n      \"_id\": \"68402c568b8a85f0a64ff099\",\n      \"title\": \"Calculus Basics\",\n      \"type\": \"video\",\n      \"isDownloadable\": false,\n      \"visibility\": \"enrolledOnly\",\n      \"expiresIn\": 3600,\n      \"institution\": \"6726257ac9656e2f6add3c55\",\n      \"module\": \"683b77d63c2e678e2b28626c\",\n      \"url\": \"https://example.com/path-to-video.mp4\"\n    },\n    {\n      \"_id\": \"68402cabc123456789abcdef\",\n      \"title\": \"Integration Practice\",\n      \"type\": \"pdf\",\n      \"isDownloadable\": true,\n      \"visibility\": \"public\",\n      \"expiresIn\": null,\n      \"institution\": \"6726257ac9656e2f6add3c55\",\n      \"module\": \"683b77d63c2e678e2b28626c\",\n      \"url\": \"https://example.com/resources/integration-practice.pdf\"\n    }\n  ]\n}\n\n</code></pre>","urlObject":{"path":["media","module",":moduleid"],"host":["{{CoursebaseURL}}"],"query":[],"variable":[{"type":"any","value":"683b77d63c2e678e2b28626c","key":"moduleid"}]}},"response":[],"_postman_id":"849dc2a6-619b-4403-8a13-9be5a3fab93c"},{"name":"Update Media","id":"81237927-d667-4192-a3ce-bdf56ded030f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\"title\":\"Updated Calculus Basics\",\"isDownloadable\":true}","options":{"raw":{"language":"json"}}},"url":"{{CoursebaseURL}}/media/module/:moduleid","description":"<h3 id=\"📌-update-media\">📌 Update Media</h3>\n<p><strong>Endpoint</strong>:<br /><code>PUT /api/media/:id?institution=inst_id</code></p>\n<p><strong>Description</strong>:  </p>\n<p>Updates a media resource by its <code>id</code> for a given institution.</p>\n<hr />\n<h4 id=\"🔒-authorization\">🔒 Authorization:</h4>\n<p>Required ✅ (e.g. Admin or Instructor token)</p>\n<hr />\n<h4 id=\"🔗-path-parameters\">🔗 Path Parameters:</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>String</td>\n<td>Yes</td>\n<td>The ID of the media file.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h4 id=\"🧾-query-parameters\">🧾 Query Parameters:</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>institution</code></td>\n<td>String</td>\n<td>Yes</td>\n<td>The institution ID (e.g., <code>inst_id</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h4 id=\"📨-request-body-json\">📨 Request Body (JSON):</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"title\": \"Updated Calculus Basics\",\n  \"isDownloadable\": true\n}\n\n</code></pre><div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>title</code></td>\n<td>String</td>\n<td>No</td>\n<td>Updated title of the media.</td>\n</tr>\n<tr>\n<td><code>isDownloadable</code></td>\n<td>Boolean</td>\n<td>No</td>\n<td>Whether the media can be downloaded by users.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h4 id=\"✅-success-response\">✅ Success Response:</h4>\n<p><strong>Status</strong>: <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"success\": true,\n  \"message\": \"Media updated successfully\",\n  \"data\": {\n    \"_id\": \"media_id\",\n    \"title\": \"Updated Calculus Basics\",\n    \"isDownloadable\": true,\n    ...\n  }\n}\n\n</code></pre><hr />\n<h4 id=\"❌-error-responses\">❌ Error Responses:</h4>\n<ul>\n<li><p><code>400 Bad Request</code> – Missing or invalid parameters.</p>\n</li>\n<li><p><code>404 Not Found</code> – Media not found.</p>\n</li>\n<li><p><code>401 Unauthorized</code> – Invalid or missing auth token.</p>\n</li>\n</ul>\n","urlObject":{"path":["media","module",":moduleid"],"host":["{{CoursebaseURL}}"],"query":[],"variable":[{"type":"any","value":"686ae14e5929326ede2bad6d","key":"moduleid"}]}},"response":[],"_postman_id":"81237927-d667-4192-a3ce-bdf56ded030f"},{"name":"Delete Media","id":"9b5efb75-def4-4638-a7e3-aff186665a24","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"localhost:3000/api/media/:id?institution=inst_id","description":"<h3 id=\"🗑️-delete-media\">🗑️ Delete Media</h3>\n<p><strong>Endpoint</strong>:<br /><code>DELETE /api/media/:id?institution=inst_id</code></p>\n<p><strong>Description</strong>:  </p>\n<p>Deletes a specific media resource using its <code>id</code> for a given institution.</p>\n<hr />\n<h4 id=\"🔒-authorization\">🔒 Authorization:</h4>\n<p>Required ✅ (e.g. Admin or Instructor token)</p>\n<hr />\n<h4 id=\"🔗-path-parameters\">🔗 Path Parameters:</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>String</td>\n<td>Yes</td>\n<td>The ID of the media file.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h4 id=\"🧾-query-parameters\">🧾 Query Parameters:</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>institution</code></td>\n<td>String</td>\n<td>Yes</td>\n<td>The institution ID (e.g., <code>inst_id</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h4 id=\"📥-request-body\">📥 Request Body:</h4>\n<p>No request body required.</p>\n<hr />\n<h4 id=\"✅-success-response\">✅ Success Response:</h4>\n<p><strong>Status</strong>: <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"success\": true,\n  \"message\": \"Media deleted successfully\"\n}\n\n</code></pre><hr />\n<h4 id=\"❌-error-responses\">❌ Error Responses:</h4>\n<ul>\n<li><p><code>400 Bad Request</code> – Missing or invalid parameters.</p>\n</li>\n<li><p><code>404 Not Found</code> – Media not found.</p>\n</li>\n<li><p><code>401 Unauthorized</code> – Invalid or missing auth token.</p>\n</li>\n</ul>\n","urlObject":{"port":"3000","path":["api","media",":id"],"host":["localhost"],"query":[{"key":"institution","value":"inst_id"}],"variable":[{"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"9b5efb75-def4-4638-a7e3-aff186665a24"},{"name":"New Request","id":"544e9469-707a-45e1-81ae-4e006d8b5226","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"544e9469-707a-45e1-81ae-4e006d8b5226"}],"id":"96705d6c-57ea-40e1-ad57-3eb71bdb96c7","_postman_id":"96705d6c-57ea-40e1-ad57-3eb71bdb96c7","description":""},{"name":"Assignment","item":[{"name":"Create Assignment","id":"1e25d33e-47ca-4926-8add-1ed28d753146","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"media\": \"686ae8f714e34a79350be5d2\",\r\n    \"context\": \"online\",\r\n    \"target\": \"67504c8a0a51efbe5a2e3e9d\",\r\n    \"contextRef\": \"Course.batches\",\r\n    \"course\":\"67504c8a0a51efbe5a2e3e9c\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{CoursebaseURL}}/assignments","description":"<h3 id=\"📝-create-assignment\">📝 Create Assignment</h3>\n<p><strong>Endpoint</strong>:<br /><code>POST {{CoursebaseURL}}/assignments</code></p>\n<hr />\n<h4 id=\"📄-description\">📄 Description:</h4>\n<p>Creates a new assignment and associates it with a course, target (e.g., batch), and a media resource.</p>\n<hr />\n<h4 id=\"🔒-authorization\">🔒 Authorization:</h4>\n<p>Required ✅ (e.g., Instructor or Admin token)</p>\n<hr />\n<h4 id=\"📥-request-body-json\">📥 Request Body (JSON):</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"media\": \"68589456b748ecb70ea8f7b5\",          // Media ID (e.g., video or document)\n  \"context\": \"online\",                          // Context of assignment (e.g., \"online\" / \"offline\")\n  \"target\": \"67cf5fc7b28fdd8eccca67db\",         // Target entity (e.g., batch ID)\n  \"contextRef\": \"Course.batches\",               // Reference path for the target\n  \"institution\": \"6726257ac9656e2f6add3c55\",    // Institution ID\n  \"course\": \"67cf5fc7b28fdd8eccca67d9\"          // Course ID\n}\n\n</code></pre><hr />\n<h4 id=\"✅-success-response\">✅ Success Response:</h4>\n<p><strong>Status</strong>: <code>201 Created</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"success\": true,\n  \"data\": {\n    \"_id\": \"6858a5d2b748ecb70ea8f801\",\n    \"media\": \"68589456b748ecb70ea8f7b5\",\n    \"context\": \"online\",\n    \"target\": \"67cf5fc7b28fdd8eccca67db\",\n    \"contextRef\": \"Course.batches\",\n    \"institution\": \"6726257ac9656e2f6add3c55\",\n    \"course\": \"67cf5fc7b28fdd8eccca67d9\",\n    \"createdAt\": \"2025-07-01T15:00:00.000Z\",\n    ...\n  }\n}\n\n</code></pre><hr />\n<h4 id=\"❌-error-responses\">❌ Error Responses:</h4>\n<ul>\n<li><p><code>400 Bad Request</code> – Invalid body or missing fields.</p>\n</li>\n<li><p><code>401 Unauthorized</code> – Auth token is invalid or missing.</p>\n</li>\n<li><p><code>404 Not Found</code> – Provided course or media ID does not exist.</p>\n</li>\n</ul>\n","urlObject":{"path":["assignments"],"host":["{{CoursebaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"1e25d33e-47ca-4926-8add-1ed28d753146"},{"name":"Get Assignment","id":"6cdc0e1e-be50-4015-bf63-478999f3cf52","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"url":"{{CoursebaseURL}}/assignments/:assignmentid","description":"<h3 id=\"📘-get-assignments-by-media-id\">📘 Get Assignments by Media ID</h3>\n<p><strong>Endpoint:</strong><br /><code>GET {{CoursebaseURL}}/media/:mediaId?institution=6726257ac9656e2f6add3c55</code></p>\n<hr />\n<h4 id=\"📄-description\">📄 Description:</h4>\n<p>Fetches all assignments linked to a specific media resource within a given institution.</p>\n<hr />\n<h4 id=\"🔒-authorization\">🔒 Authorization:</h4>\n<p>Required ✅ (e.g., Instructor/Admin token)</p>\n<hr />\n<h4 id=\"🔧-path-parameters\">🔧 Path Parameters:</h4>\n<ul>\n<li><code>:mediaId</code> — The ID of the media whose assignments you want to fetch.</li>\n</ul>\n<h4 id=\"🧩-query-parameters\">🧩 Query Parameters:</h4>\n<ul>\n<li><code>institution</code> — The ID of the institution.</li>\n</ul>\n<hr />\n<h4 id=\"✅-example-request\">✅ Example Request:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>httpCopyEditGET /media/68589456b748ecb70ea8f7b5?institution=6726257ac9656e2f6add3c55\n\n</code></pre><hr />\n<h4 id=\"✅-success-response\">✅ Success Response:</h4>\n<p><strong>Status</strong>: <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"success\": true,\n  \"data\": [\n    {\n      \"_id\": \"6858a5d2b748ecb70ea8f801\",\n      \"media\": \"68589456b748ecb70ea8f7b5\",\n      \"context\": \"online\",\n      \"target\": \"67cf5fc7b28fdd8eccca67db\",\n      \"contextRef\": \"Course.batches\",\n      \"institution\": \"6726257ac9656e2f6add3c55\",\n      \"course\": \"67cf5fc7b28fdd8eccca67d9\",\n      \"createdAt\": \"2025-07-01T15:00:00.000Z\",\n      ...\n    }\n  ]\n}\n\n</code></pre><hr />\n<h4 id=\"❌-error-responses\">❌ Error Responses:</h4>\n<ul>\n<li><p><code>400 Bad Request</code> — Missing <code>institution</code> or invalid ID format.</p>\n</li>\n<li><p><code>404 Not Found</code> — No assignments found for the given media.</p>\n</li>\n<li><p><code>401 Unauthorized</code> — Invalid or missing auth token.</p>\n</li>\n</ul>\n","urlObject":{"path":["assignments",":assignmentid"],"host":["{{CoursebaseURL}}"],"query":[{"disabled":true,"key":"institution","value":"6726257ac9656e2f6add3c55"}],"variable":[{"type":"any","value":"686b0f56f26dc8df12d37495","key":"assignmentid"}]}},"response":[],"_postman_id":"6cdc0e1e-be50-4015-bf63-478999f3cf52"},{"name":"Get Assignment by Media","id":"99339038-5539-422f-9ec4-c72175f0d035","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"url":"{{CoursebaseURL}}/assignments/media/:mediaId","description":"<h3 id=\"📘-get-assignments-by-media-id\">📘 Get Assignments by Media ID</h3>\n<p><strong>Endpoint:</strong><br /><code>GET {{CoursebaseURL}}/media/:mediaId?institution=6726257ac9656e2f6add3c55</code></p>\n<hr />\n<h4 id=\"📄-description\">📄 Description:</h4>\n<p>Fetches all assignments linked to a specific media resource within a given institution.</p>\n<hr />\n<h4 id=\"🔒-authorization\">🔒 Authorization:</h4>\n<p>Required ✅ (e.g., Instructor/Admin token)</p>\n<hr />\n<h4 id=\"🔧-path-parameters\">🔧 Path Parameters:</h4>\n<ul>\n<li><code>:mediaId</code> — The ID of the media whose assignments you want to fetch.</li>\n</ul>\n<h4 id=\"🧩-query-parameters\">🧩 Query Parameters:</h4>\n<ul>\n<li><code>institution</code> — The ID of the institution.</li>\n</ul>\n<hr />\n<h4 id=\"✅-example-request\">✅ Example Request:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>httpCopyEditGET /media/68589456b748ecb70ea8f7b5?institution=6726257ac9656e2f6add3c55\n\n</code></pre><hr />\n<h4 id=\"✅-success-response\">✅ Success Response:</h4>\n<p><strong>Status</strong>: <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"success\": true,\n  \"data\": [\n    {\n      \"_id\": \"6858a5d2b748ecb70ea8f801\",\n      \"media\": \"68589456b748ecb70ea8f7b5\",\n      \"context\": \"online\",\n      \"target\": \"67cf5fc7b28fdd8eccca67db\",\n      \"contextRef\": \"Course.batches\",\n      \"institution\": \"6726257ac9656e2f6add3c55\",\n      \"course\": \"67cf5fc7b28fdd8eccca67d9\",\n      \"createdAt\": \"2025-07-01T15:00:00.000Z\",\n      ...\n    }\n  ]\n}\n\n</code></pre><hr />\n<h4 id=\"❌-error-responses\">❌ Error Responses:</h4>\n<ul>\n<li><p><code>400 Bad Request</code> — Missing <code>institution</code> or invalid ID format.</p>\n</li>\n<li><p><code>404 Not Found</code> — No assignments found for the given media.</p>\n</li>\n<li><p><code>401 Unauthorized</code> — Invalid or missing auth token.</p>\n</li>\n</ul>\n","urlObject":{"path":["assignments","media",":mediaId"],"host":["{{CoursebaseURL}}"],"query":[],"variable":[{"type":"any","value":"686ae8f714e34a79350be5d2","key":"mediaId"}]}},"response":[],"_postman_id":"99339038-5539-422f-9ec4-c72175f0d035"},{"name":"Delete Assignment","id":"a6a4a250-dd31-49e5-ba55-63c083440939","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"https://studentapi.anginatlearning.com/api/assignments/:id?institution=inst_id","description":"<h3 id=\"🗑️-delete-assignment\">🗑️ Delete Assignment</h3>\n<p><strong>Endpoint:</strong><br /><code>DELETE /api/assignments/:id?institution=inst_id</code></p>\n<hr />\n<h4 id=\"📄-description\">📄 Description:</h4>\n<p>Deletes a specific assignment by its ID within the context of a specified institution.</p>\n<hr />\n<h4 id=\"🔒-authorization\">🔒 Authorization:</h4>\n<p>Required ✅ (Instructor/Admin)</p>\n<hr />\n<h4 id=\"🔧-path-parameters\">🔧 Path Parameters:</h4>\n<ul>\n<li><code>:id</code> — The ID of the assignment to delete.</li>\n</ul>\n<h4 id=\"🧩-query-parameters\">🧩 Query Parameters:</h4>\n<ul>\n<li><code>institution</code> — The ID of the institution (required).</li>\n</ul>\n<hr />\n<h4 id=\"✅-example-request\">✅ Example Request:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>httpCopyEditDELETE /api/assignments/6858a5d2b748ecb70ea8f801?institution=6726257ac9656e2f6add3c55\n\n</code></pre><hr />\n<h4 id=\"✅-success-response\">✅ Success Response:</h4>\n<p><strong>Status:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"success\": true,\n  \"message\": \"Assignment deleted successfully\"\n}\n\n</code></pre><hr />\n<h4 id=\"❌-error-responses\">❌ Error Responses:</h4>\n<ul>\n<li><p><code>400 Bad Request</code> — Missing or invalid <code>institution</code> query param.</p>\n</li>\n<li><p><code>404 Not Found</code> — Assignment not found.</p>\n</li>\n<li><p><code>401 Unauthorized</code> — Invalid or missing auth token.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","assignments",":id"],"host":["studentapi","anginatlearning","com"],"query":[{"key":"institution","value":"inst_id"}],"variable":[{"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"a6a4a250-dd31-49e5-ba55-63c083440939"}],"id":"6507d4d6-b5a9-4fc0-b2f7-519e205ae8a8","_postman_id":"6507d4d6-b5a9-4fc0-b2f7-519e205ae8a8","description":""},{"name":"Module","item":[{"name":"Create Module","event":[{"listen":"test","script":{"id":"bbfd1345-dfdf-49a8-b903-973f279db83c","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Module created', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.environment.set('moduleId', jsonData.data._id);","});"],"type":"text/javascript","packages":{}}}],"id":"6226da71-ba63-4fd4-844b-60e1652f30e6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"title\": \"PMP Certification Course\",\r\n  \"description\": \"Introduction to PMP \",\r\n  \"moduleNumber\": 2\r\n}","options":{"raw":{"language":"json"}}},"url":"{{CoursebaseURL}}/course/courses/modules","description":"<p>StartFragment</p>\n<h3 id=\"📦-create-course-module\">📦 Create Course Module</h3>\n<p><strong>Endpoint:</strong><br /><code>POST /api/course/courses/modules</code></p>\n<hr />\n<h4 id=\"📄-description\">📄 Description:</h4>\n<p>Creates a new module for a course.</p>\n<hr />\n<h4 id=\"🔒-authorization\">🔒 Authorization:</h4>\n<p>Required ✅ (Instructor/Admin)</p>\n<hr />\n<h4 id=\"🧾-request-body-json\">🧾 Request Body (JSON):</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"title\": \"Algebra\",\n  \"description\": \"Introduction to algebra\",\n  \"moduleNumber\": 1\n}\n\n</code></pre><hr />\n<h4 id=\"✅-example-request\">✅ Example Request:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>hCopyEditPOST /api/course/courses/modules\nContent-Type: application/json\n{\n  \"title\": \"Algebra\",\n  \"description\": \"Introduction to algebra\",\n  \"moduleNumber\": 1\n}\n\n</code></pre><hr />\n<h4 id=\"✅-success-response\">✅ Success Response:</h4>\n<p><strong>Status:</strong> <code>201 Created</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"success\": true,\n  \"message\": \"Module created successfully\",\n  \"data\": {\n    \"_id\": \"6849f43c1b9f0cbd2e9b013a\",\n    \"title\": \"Algebra\",\n    \"description\": \"Introduction to algebra\",\n    \"moduleNumber\": 1\n  }\n}\n\n</code></pre><hr />\n<h4 id=\"❌-error-responses\">❌ Error Responses:</h4>\n<ul>\n<li><p><code>400 Bad Request</code> — Missing required fields.</p>\n</li>\n<li><p><code>401 Unauthorized</code> — Invalid or missing auth token.</p>\n</li>\n<li><p><code>500 Internal Server Error</code> — Server issue while creating module.</p>\n</li>\n</ul>\n<p>EndFragment</p>\n","urlObject":{"path":["course","courses","modules"],"host":["{{CoursebaseURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"6226da71-ba63-4fd4-844b-60e1652f30e6"},{"name":"Get All Modules","event":[{"listen":"test","script":{"id":"1f48de4b-f5d7-4541-8c52-5a81f8369e34","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Modules retrieved', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.data).to.be.an('array');","});"],"type":"text/javascript","packages":{}}}],"id":"8b5b9af5-2075-4d40-a3af-8d64d7de6589","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"url":"http://localhost:3000/api/course/courses/modules","description":"<p>StartFragment</p>\n<h3 id=\"📚-get-all-modules\">📚 Get All Modules</h3>\n<p><strong>Endpoint:</strong><br /><code>GET http://localhost:3000/api/institute/api/modules</code></p>\n<hr />\n<h4 id=\"📄-description\">📄 Description:</h4>\n<p>Retrieves a list of all course modules available under the institution or platform.</p>\n<hr />\n<h4 id=\"🔒-authorization\">🔒 Authorization:</h4>\n<p>Optional (can be restricted to admins/instructors if needed)</p>\n<hr />\n<h4 id=\"📥-query-parameters\">📥 Query Parameters:</h4>\n<ul>\n<li>None required<br />  <em>(You may choose to filter by institution in implementation if needed.)</em></li>\n</ul>\n<hr />\n<h4 id=\"✅-example-request\">✅ Example Request:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>httpCopyEditGET /api/modules\n\n</code></pre><hr />\n<h4 id=\"✅-success-response\">✅ Success Response:</h4>\n<p><strong>Status:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"success\": true,\n  \"data\": [\n    {\n      \"_id\": \"6849f43c1b9f0cbd2e9b013a\",\n      \"title\": \"Algebra\",\n      \"description\": \"Introduction to algebra\",\n      \"moduleNumber\": 1\n    },\n    {\n      \"_id\": \"684a1523a5e4bbd21a67f91c\",\n      \"title\": \"Calculus\",\n      \"description\": \"Basics of calculus\",\n      \"moduleNumber\": 2\n    }\n  ]\n}\n\n</code></pre><hr />\n<h4 id=\"❌-error-responses\">❌ Error Responses:</h4>\n<ul>\n<li><code>500 Internal Server Error</code> — Something went wrong on the server.</li>\n</ul>\n<p>EndFragment</p>\n","urlObject":{"protocol":"http","port":"3000","path":["api","course","courses","modules"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"8b5b9af5-2075-4d40-a3af-8d64d7de6589"},{"name":"Get Module by ID","event":[{"listen":"test","script":{"id":"0acbe9ce-ca4b-4099-bbf1-a43ce3b27835","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Module retrieved', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.data._id).to.equal(pm.environment.get('moduleId'));","});"],"type":"text/javascript","packages":{}}}],"id":"8f0a80d5-e0f6-4ed1-8567-2082b4073254","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"text"}],"url":"https://studentapi.anginatlearning.com/api/course/courses/modules/688dd32ae20b87c84f036a3a","description":"<h3 id=\"📘-get-module-by-id\">📘 Get Module by ID</h3>\n<p><strong>Endpoint:</strong><br /><code>GET http://localhost:3000/api/institute/api/modules/{{moduleId}}</code></p>\n<hr />\n<h4 id=\"📄-description\">📄 Description:</h4>\n<p>Fetches detailed information of a specific module using its ID.</p>\n<hr />\n<h4 id=\"🔒-authorization\">🔒 Authorization:</h4>\n<p>Optional (based on your system requirements)</p>\n<hr />\n<h4 id=\"🧾-path-parameters\">🧾 Path Parameters:</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>moduleId</code></td>\n<td>String</td>\n<td>✅</td>\n<td>The ID of the module.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h4 id=\"✅-example-request\">✅ Example Request:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>httpCopyEditGET /api/modules/6849f43c1b9f0cbd2e9b013a\n\n</code></pre><hr />\n<h4 id=\"✅-success-response\">✅ Success Response:</h4>\n<p><strong>Status:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"success\": true,\n  \"data\": {\n    \"_id\": \"6849f43c1b9f0cbd2e9b013a\",\n    \"title\": \"Algebra\",\n    \"description\": \"Introduction to algebra\",\n    \"moduleNumber\": 1\n  }\n}\n\n</code></pre><hr />\n<h4 id=\"❌-error-responses\">❌ Error Responses:</h4>\n<ul>\n<li><p><code>404 Not Found</code> — Module not found.</p>\n</li>\n<li><p><code>500 Internal Server Error</code> — Server-side error.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","course","courses","modules","688dd32ae20b87c84f036a3a"],"host":["studentapi","anginatlearning","com"],"query":[{"disabled":true,"key":"","value":""}],"variable":[]}},"response":[],"_postman_id":"8f0a80d5-e0f6-4ed1-8567-2082b4073254"},{"name":"New Request","id":"0080f013-83c3-4ace-9086-9aa4dccfe529","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{CoursebaseURL}}/course/courses/modules/689095ff93c8e3a8b4ea1645?=","urlObject":{"path":["course","courses","modules","689095ff93c8e3a8b4ea1645"],"host":["{{CoursebaseURL}}"],"query":[{"key":null,"value":""}],"variable":[]}},"response":[],"_postman_id":"0080f013-83c3-4ace-9086-9aa4dccfe529"}],"id":"9f1f2805-724d-4ba9-98a2-24c0970bc131","_postman_id":"9f1f2805-724d-4ba9-98a2-24c0970bc131","description":""},{"name":"Degree","item":[{"name":"Create Degree","event":[{"listen":"test","script":{"id":"957be95d-d455-4271-990f-14cd45e57eb6","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Degree created', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('Degree created successfully');","    pm.expect(jsonData.data._id).to.exist;","    pm.environment.set('degreeId', jsonData.data._id);","});"],"type":"text/javascript","packages":{}}}],"id":"aa1b13d8-a0f9-4915-8d68-144d1d5a06ab","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"body":{"mode":"raw","raw":"{ \r\n    \"name\": \"Bachelor of Computer Application\",\r\n    \"shortCode\": \"BCA\",\r\n    \"duration\": 3,\r\n    \"totalSemesters\": 6,\r\n    \"description\": \"Undergraduate degree in Computer Application\"\r\n}  ","options":{"raw":{"language":"json"}}},"url":"https://studentapi.anginatlearning.com/degrees","description":"<p><strong>Endpoint:</strong> <code>POST http://localhost:3000/api/institute/degrees</code><br /><strong>Description:</strong> Adds a new academic degree to the system. Typically used by admins to define degree programs such as BCA, BSc, BBA, etc.</p>\n<p><strong>Authorization:</strong> ✅ Required (<code>Bearer Token</code> in Authorization header)</p>\n<hr />\n<h3 id=\"🔐-headers\">🔐 Headers</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>pgsqlCopyEditAuthorization: Bearer &lt;your_token_here&gt;\nContent-Type: application/json\n\n</code></pre><hr />\n<h3 id=\"📤-request-body\">📤 Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"name\": \"Bachelor of Computer Application\",\n  \"shortCode\": \"BCA\",\n  \"duration\": 3,\n  \"totalSemesters\": 6,\n  \"description\": \"Undergraduate degree in Computer Application\"\n}\n\n</code></pre><h4 id=\"🔸-field-details\">🔸 Field Details:</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Full name of the degree</td>\n</tr>\n<tr>\n<td><code>shortCode</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Abbreviated code of the degree (e.g., BCA)</td>\n</tr>\n<tr>\n<td><code>duration</code></td>\n<td>number</td>\n<td>✅</td>\n<td>Duration in years</td>\n</tr>\n<tr>\n<td><code>totalSemesters</code></td>\n<td>number</td>\n<td>✅</td>\n<td>Total number of semesters in the degree</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Brief overview of the degree</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"✅-success-response\">✅ Success Response</h3>\n<p><strong>Status:</strong> <code>201 Created</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Degree created successfully\",\n  \"data\": {\n    \"id\": \"deg_12345\",\n    \"name\": \"Bachelor of Computer Application\",\n    \"shortCode\": \"BCA\",\n    \"duration\": 3,\n    \"totalSemesters\": 6,\n    \"description\": \"Undergraduate degree in Computer Application\"\n  }\n}\n\n</code></pre><hr />\n<h3 id=\"❌-error-responses\">❌ Error Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Message</th>\n<th>Reason</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>\"Missing required fields\"</td>\n<td>If any input field is empty</td>\n</tr>\n<tr>\n<td>401</td>\n<td>\"Unauthorized\"</td>\n<td>Missing/invalid token</td>\n</tr>\n<tr>\n<td>409</td>\n<td>\"Degree already exists\"</td>\n<td>Conflict on unique fields</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["degrees"],"host":["studentapi","anginatlearning","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"aa1b13d8-a0f9-4915-8d68-144d1d5a06ab"},{"name":"Get Degree by ID","event":[{"listen":"test","script":{"id":"ff0628de-60b2-4b2a-b266-4d6dbbbff16a","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Degree retrieved', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('Degree retrieved successfully');","    pm.expect(jsonData.data._id).to.equal(pm.environment.get('degreeId'));","});"],"type":"text/javascript","packages":{}}}],"id":"abb13099-3b03-4380-b92b-846439e78dd9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"url":"https://studentapi.anginatlearning.com/degrees/682a6519468c83e99245d7c0","description":"<h3 id=\"📘-get-degree-by-id\">📘 Get Degree by ID</h3>\n<p><strong>Endpoint:</strong> <code>GET /degrees/:degreeId</code><br /><strong>Description:</strong> Retrieves the details of a specific academic degree using its unique ID. Useful for viewing a single degree's information such as name, duration, and description.</p>\n<p><strong>Authorization:</strong> ✅ Required (Bearer Token in Authorization header)</p>\n<hr />\n<h3 id=\"🔐-headers\">🔐 Headers</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>pgsqlCopyEditAuthorization: Bearer &lt;your_token_here&gt;\nContent-Type: application/json\n\n</code></pre><hr />\n<h3 id=\"🔁-path-parameter\">🔁 Path Parameter</h3>\n<ul>\n<li><code>degreeId</code> (string) — The unique ID of the degree to fetch</li>\n</ul>\n<hr />\n<h3 id=\"✅-success-response\">✅ Success Response</h3>\n<p><strong>Status:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Degree fetched successfully\",\n  \"data\": {\n    \"id\": \"deg_12345\",\n    \"name\": \"Bachelor of Computer Application\",\n    \"shortCode\": \"BCA\",\n    \"duration\": 3,\n    \"totalSemesters\": 6,\n    \"description\": \"Undergraduate degree in Computer Application\"\n  }\n}\n\n</code></pre><hr />\n<h3 id=\"❌-error-responses\">❌ Error Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Message</th>\n<th>Reason</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>\"Invalid degree ID\"</td>\n<td>Provided ID is malformed</td>\n</tr>\n<tr>\n<td>401</td>\n<td>\"Unauthorized\"</td>\n<td>Token missing or invalid</td>\n</tr>\n<tr>\n<td>404</td>\n<td>\"Degree not found\"</td>\n<td>No degree exists with this ID</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["degrees","682a6519468c83e99245d7c0"],"host":["studentapi","anginatlearning","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"abb13099-3b03-4380-b92b-846439e78dd9"},{"name":"Get All Degrees","event":[{"listen":"test","script":{"id":"65819e88-a071-4f3b-8691-a9ec54bfe45f","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Degrees retrieved', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('Degrees retrieved successfully');","    pm.expect(jsonData.data).to.be.an('array');","});"],"type":"text/javascript","packages":{}}}],"id":"d47628ca-9094-4dc8-b747-c4a53a4261a6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"url":"https://studentapi.anginatlearning.com/api/institute/degrees","description":"<h3 id=\"📘-get-all-degrees\">📘 Get All Degrees</h3>\n<p><strong>Endpoint:</strong> <code>GET /api/institute/degrees</code><br /><strong>Description:</strong> Fetches a list of all academic degrees created under the institute. Typically used to display available degree programs to admins or users with access.</p>\n<p><strong>Authorization:</strong> ✅ Required (Bearer Token in Authorization header)</p>\n<hr />\n<h3 id=\"🔐-headers\">🔐 Headers</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>pgsqlCopyEditAuthorization: Bearer &lt;your_token_here&gt;\nContent-Type: application/json\n\n</code></pre><hr />\n<h3 id=\"✅-success-response\">✅ Success Response</h3>\n<p><strong>Status:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Degrees fetched successfully\",\n  \"data\": [\n    {\n      \"id\": \"deg_12345\",\n      \"name\": \"Bachelor of Computer Application\",\n      \"shortCode\": \"BCA\",\n      \"duration\": 3,\n      \"totalSemesters\": 6,\n      \"description\": \"Undergraduate degree in Computer Application\"\n    },\n    {\n      \"id\": \"deg_67890\",\n      \"name\": \"Bachelor of Business Administration\",\n      \"shortCode\": \"BBA\",\n      \"duration\": 3,\n      \"totalSemesters\": 6,\n      \"description\": \"Undergraduate degree in Business Administration\"\n    }\n  ]\n}\n\n</code></pre><hr />\n<h3 id=\"❌-error-responses\">❌ Error Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Message</th>\n<th>Reason</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401</td>\n<td>\"Unauthorized\"</td>\n<td>Token is missing or invalid</td>\n</tr>\n<tr>\n<td>403</td>\n<td>\"Forbidden\"</td>\n<td>User does not have access rights</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","institute","degrees"],"host":["studentapi","anginatlearning","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"d47628ca-9094-4dc8-b747-c4a53a4261a6"},{"name":"Update Degree","event":[{"listen":"test","script":{"id":"a2e82f04-c5fe-457a-ace5-d9e0c5518ad4","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Degree updated', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('Degree updated successfully');","    pm.expect(jsonData.data.description).to.equal('Updated undergraduate degree in computer applications');","});"],"type":"text/javascript","packages":{}}}],"id":"ecf4aa9b-4d52-4eed-8481-a5c063f495e8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"body":{"mode":"raw","raw":"{\"description\": \"undergraduate degree in computer applications\"}","options":{"raw":{"language":"json"}}},"url":"https://studentapi.anginatlearning.com/degrees/682a6519468c83e99245d7c0","description":"<h3 id=\"📘-update-degree\">📘 Update Degree</h3>\n<p><strong>Endpoint:</strong> <code>PUT /degrees/:degreeId</code><br /><strong>Description:</strong> Updates the details of an existing academic degree using its ID. This can be used to modify fields such as name, shortcode, duration, total semesters, or description.</p>\n<p><strong>Authorization:</strong> ✅ Required (Bearer Token in Authorization header)</p>\n<hr />\n<h3 id=\"🔐-headers\">🔐 Headers</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>pgsqlCopyEditAuthorization: Bearer &lt;your_token_here&gt;\nContent-Type: application/json\n\n</code></pre><hr />\n<h3 id=\"🔁-path-parameter\">🔁 Path Parameter</h3>\n<ul>\n<li><code>degreeId</code> (string) — The unique ID of the degree to update</li>\n</ul>\n<hr />\n<h3 id=\"📤-request-body\">📤 Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"name\": \"Bachelor of Computer Application\",\n  \"shortCode\": \"BCA\",\n  \"duration\": 3,\n  \"totalSemesters\": 6,\n  \"description\": \"Undergraduate degree in Computer Application\"\n}\n\n</code></pre><h4 id=\"🔸-field-details\">🔸 Field Details:</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Full name of the degree</td>\n</tr>\n<tr>\n<td><code>shortCode</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Abbreviated code of the degree (e.g., BCA)</td>\n</tr>\n<tr>\n<td><code>duration</code></td>\n<td>number</td>\n<td>✅</td>\n<td>Duration in years</td>\n</tr>\n<tr>\n<td><code>totalSemesters</code></td>\n<td>number</td>\n<td>✅</td>\n<td>Total number of semesters</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Brief overview of the degree</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"✅-success-response\">✅ Success Response</h3>\n<p><strong>Status:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Degree updated successfully\",\n  \"data\": {\n    \"id\": \"deg_12345\",\n    \"name\": \"Bachelor of Computer Application\",\n    \"shortCode\": \"BCA\",\n    \"duration\": 3,\n    \"totalSemesters\": 6,\n    \"description\": \"Undergraduate degree in Computer Application\"\n  }\n}\n\n</code></pre><hr />\n<h3 id=\"❌-error-responses\">❌ Error Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Message</th>\n<th>Reason</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>\"Invalid input data\"</td>\n<td>One or more fields are incorrect</td>\n</tr>\n<tr>\n<td>401</td>\n<td>\"Unauthorized\"</td>\n<td>Token missing or invalid</td>\n</tr>\n<tr>\n<td>404</td>\n<td>\"Degree not found\"</td>\n<td>No degree found with the given ID</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["degrees","682a6519468c83e99245d7c0"],"host":["studentapi","anginatlearning","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"ecf4aa9b-4d52-4eed-8481-a5c063f495e8"},{"name":"Delete Degree","event":[{"listen":"test","script":{"id":"c2c38aa7-ba3c-48be-a417-adb18f5205a7","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","pm.test('Degree deleted', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.true;","    pm.expect(jsonData.message).to.equal('Degree deleted successfully');","});"],"type":"text/javascript","packages":{}}}],"id":"d9af69a6-11b8-4178-a4c7-475cde371790","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"url":"{{InstituteURL}}degrees/682a6519468c83e99245d7c0","description":"<h3 id=\"📘-delete-degree\">📘 Delete Degree</h3>\n<p><strong>Endpoint:</strong> <code>DELETE /degrees/:degreeId</code><br /><strong>Description:</strong> Deletes an existing academic degree from the system using its unique ID. This action is typically restricted to admin users.</p>\n<p><strong>Authorization:</strong> ✅ Required (Bearer Token in Authorization header)</p>\n<hr />\n<h3 id=\"🔐-headers\">🔐 Headers</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>pgsqlCopyEditAuthorization: Bearer &lt;your_token_here&gt;\nContent-Type: application/json\n\n</code></pre><hr />\n<h3 id=\"🔁-path-parameter\">🔁 Path Parameter</h3>\n<ul>\n<li><code>degreeId</code> (string) — The unique ID of the degree to delete</li>\n</ul>\n<hr />\n<h3 id=\"✅-success-response\">✅ Success Response</h3>\n<p><strong>Status:</strong> <code>200 OK</code></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>jsonCopyEdit{\n  \"message\": \"Degree deleted successfully\"\n}\n\n</code></pre><hr />\n<h3 id=\"❌-error-responses\">❌ Error Responses</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Message</th>\n<th>Reason</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401</td>\n<td>\"Unauthorized\"</td>\n<td>Token missing or invalid</td>\n</tr>\n<tr>\n<td>403</td>\n<td>\"Forbidden\"</td>\n<td>User does not have delete access</td>\n</tr>\n<tr>\n<td>404</td>\n<td>\"Degree not found\"</td>\n<td>No degree exists with the given ID</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["682a6519468c83e99245d7c0"],"host":["{{InstituteURL}}degrees"],"query":[],"variable":[]}},"response":[],"_postman_id":"d9af69a6-11b8-4178-a4c7-475cde371790"},{"name":"Create Degree - Duplicate Name","event":[{"listen":"test","script":{"exec":["pm.test('Status code is 409', function () {","    pm.response.to.have.status(409);","});","pm.test('Duplicate degree name error', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.success).to.be.false;","    pm.expect(jsonData.message).to.equal('Degree with this name already exists');","});"],"type":"text/javascript","id":"50f622f5-f345-4f8d-9bd3-cb779c0ba1ed"}}],"id":"5d6ff429-6887-4504-8457-45f9d95fa2dd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M"}],"body":{"mode":"raw","raw":"{\"institution\": \"67cdc7d7c99c0010b0803c74\", \"name\": \"Bachelor of Computer Applications\", \"shortCode\": \"BCA2\", \"duration\": 3, \"totalSemesters\": 6, \"description\": \"Duplicate degree\"}","options":{"raw":{"language":"json"}}},"url":"http://localhost:3000/api/institute/api/degrees","urlObject":{"path":["api","degrees"],"host":["http://localhost:3000/api/institute"],"query":[],"variable":[]}},"response":[],"_postman_id":"5d6ff429-6887-4504-8457-45f9d95fa2dd"}],"id":"89f91b41-9a93-430a-8d89-6e74ec02e396","_postman_id":"89f91b41-9a93-430a-8d89-6e74ec02e396","description":""},{"name":"InstructorAuthService","item":[{"name":"New Request","id":"922c1794-060f-4a4e-9420-c7c50f5bac60","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"922c1794-060f-4a4e-9420-c7c50f5bac60"}],"id":"7d990528-0f32-4210-8322-43af8101dbbf","_postman_id":"7d990528-0f32-4210-8322-43af8101dbbf","description":""},{"name":"SubscriptionPlanService","item":[{"name":"Get All Subscription","id":"2e319961-d105-4aa9-a258-e2468455c1f3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{rbacURL}}/subscription","urlObject":{"path":["subscription"],"host":["{{rbacURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"2e319961-d105-4aa9-a258-e2468455c1f3"},{"name":"Create New Subsription Plan","id":"25824264-8ba3-4dbd-97c8-62aba51c4e3c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \r\n}","options":{"raw":{"language":"json"}}},"url":"{{rbacURL}}/subscription","urlObject":{"path":["subscription"],"host":["{{rbacURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"25824264-8ba3-4dbd-97c8-62aba51c4e3c"}],"id":"76e1a8a5-02ae-41ec-8d6e-2e2fdd4e4fec","_postman_id":"76e1a8a5-02ae-41ec-8d6e-2e2fdd4e4fec","description":""},{"name":"Feature Access Control","item":[{"name":"Feature Service","item":[{"name":"Create Feature","id":"4faa0c28-c612-48af-82a9-b482e73c0486","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"  {\r\n    \"name\": \"study_materials\",\r\n    \"displayName\": \"Study Materials\",\r\n    \"description\": \"Upload, organize and share study materials and resources\",\r\n    \"module\": \"study_materials\",\r\n    \"commonForTypes\": [\"school\", \"college\", \"online_institute\"],\r\n    \"requiredPermissions\": [\"read_study_materials\", \"create_study_materials\", \"update_study_materials\", \"upload_materials\", \"share_materials\", \"organize_materials\"],\r\n    \"isCore\": false,\r\n    \"isToggleable\": true,\r\n    \"sortOrder\": 110\r\n  }","options":{"raw":{"language":"json"}}},"url":"{{rbacURL}}/feature","urlObject":{"path":["feature"],"host":["{{rbacURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"4faa0c28-c612-48af-82a9-b482e73c0486"},{"name":"Update Feature","id":"6f37cc0c-a032-45de-91cd-532e336ef9b2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"description\":\"Main dashboard with quick actions\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{featureURL}}/feature/","urlObject":{"path":["feature",""],"host":["{{featureURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"6f37cc0c-a032-45de-91cd-532e336ef9b2"},{"name":"Get All Features","id":"67582191-82ae-4e2e-9443-e8518fa2f6fb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{rbacURL}}/feature/get-all","urlObject":{"path":["feature","get-all"],"host":["{{rbacURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"67582191-82ae-4e2e-9443-e8518fa2f6fb"},{"name":"Assign Custom Features","id":"7af469d4-7877-47db-b13c-1c4a01e67a82","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"institutionId\": \"6726257ac9656e2f6add3c55\",\r\n    \"featureConfigs\": [{\r\n        \"featureId\":\"68889bf24dd0a578e9c9bdc3\"\r\n        // \"customLimit\":20,   //by default = null\r\n        // \"resetCycle\":\"monthly\"  //by default = never\r\n    }],\r\n    // \"limits\": {},\r\n    \"mode\": \"hyberid\"\r\n} ","options":{"raw":{"language":"json"}}},"url":"{{featureURL}}/feature/assign","urlObject":{"path":["feature","assign"],"host":["{{featureURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"7af469d4-7877-47db-b13c-1c4a01e67a82"},{"name":"Hybrid Mode switch","id":"6ccbbfdd-fd78-40e6-aa2b-4705a5de7d8b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"institutionId\": \"6726257ac9656e2f6add3c55\",\r\n    \"featureConfigs\": [{\r\n        \"featureId\":\"68889bf24dd0a578e9c9bdc3\"\r\n        // \"customLimit\":20,   //by default = null\r\n        // \"resetCycle\":\"monthly\"  //by default = never\r\n    }],\r\n    // \"limits\": {},\r\n    \"mode\": \"hyberid\"\r\n} ","options":{"raw":{"language":"json"}}},"url":"{{featureURL}}/feature/assign","urlObject":{"path":["feature","assign"],"host":["{{featureURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"6ccbbfdd-fd78-40e6-aa2b-4705a5de7d8b"}],"id":"5d2d6ae7-f77f-4f47-b604-49db7a131828","_postman_id":"5d2d6ae7-f77f-4f47-b604-49db7a131828","description":""},{"name":"Subscription Service","item":[{"name":"Create Subscription Plan","id":"6c0937ba-626e-48b4-b03a-66dc4dc56ffe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"name\": \"pro\",\r\n  \"displayName\": \"Pro Plan\",\r\n  \"description\": \"A subscription plan for professional users.\",\r\n  \"pricing\": [\r\n    { \"billingCycle\": \"monthly\", \"amount\": 499, \"currency\": \"INR\" },\r\n    { \"billingCycle\": \"yearly\", \"amount\": 4999, \"currency\": \"INR\" },\r\n    { \"billingCycle\": \"half-yearly\", \"amount\": 2499, \"currency\": \"INR\" }\r\n  ],\r\n//   \"limits\": {},\r\n  \"features\": [\r\n    { \"featureId\": \"688897da4552d17dfab54275\", \"isEnabled\": true, \"usageLimit\": null, \"resetCycle\": \"never\" },\r\n    { \"featureId\": \"68889a8154715f76597f3f4b\", \"isEnabled\": true, \"usageLimit\": null, \"resetCycle\": \"never\" },\r\n    { \"featureId\": \"68889b63085d1ced42a1537e\", \"isEnabled\": true, \"usageLimit\": null, \"resetCycle\": \"never\" },\r\n    { \"featureId\": \"68889bf24dd0a578e9c9bdc3\", \"isEnabled\": true, \"usageLimit\": null, \"resetCycle\": \"never\" }\r\n  ],\r\n  \"isActive\": true,\r\n  \"sortOrder\": 1\r\n}","options":{"raw":{"language":"json"}}},"url":"{{rbacURL}}/subscription","urlObject":{"path":["subscription"],"host":["{{rbacURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"6c0937ba-626e-48b4-b03a-66dc4dc56ffe"},{"name":"Update Subscription Plan","id":"4b610048-1625-4b79-b02e-0f56873105c3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \r\n}","options":{"raw":{"language":"json"}}},"url":"{{rbacURL}}/subscription/688f4593498aff4e30c22ed1","urlObject":{"path":["subscription","688f4593498aff4e30c22ed1"],"host":["{{rbacURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"4b610048-1625-4b79-b02e-0f56873105c3"},{"name":"Get All Subscription Plan","id":"b6f628ef-5fd7-49a7-b7f1-8501b49757c1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{rbacURL}}/subscription","urlObject":{"path":["subscription"],"host":["{{rbacURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"b6f628ef-5fd7-49a7-b7f1-8501b49757c1"},{"name":"Add Feature in Subscription Plan","id":"9a2e7cc7-ffa3-493d-a3d1-6e3740b997f8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"features\": [\r\n    { \"featureId\": \"688897da4552d17dfab54275\", \"isEnabled\": true, \"usageLimit\": null, \"resetCycle\": \"never\" },\r\n    { \"featureId\": \"68889c50006a6582031bf417\", \"isEnabled\": true, \"usageLimit\": 15, \"resetCycle\": \"never\" }\r\n  ]\r\n}","options":{"raw":{"language":"json"}}},"url":"{{rbacURL}}/subscription/6726257ac9656e2f6add3c55/features","urlObject":{"path":["subscription","6726257ac9656e2f6add3c55","features"],"host":["{{rbacURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"9a2e7cc7-ffa3-493d-a3d1-6e3740b997f8"},{"name":"Remove Features from plan","id":"59d146fa-5fe5-42d9-9b2c-5351804ad0e2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"{\r\n    \"featureIds\":[\"68889c50006a6582031bf417\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"{{rbacURL}}/subscription/688f4593498aff4e30c22ed1/features","urlObject":{"path":["subscription","688f4593498aff4e30c22ed1","features"],"host":["{{rbacURL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"59d146fa-5fe5-42d9-9b2c-5351804ad0e2"},{"name":"Update Feature of plan","id":"bfec5c27-406e-40d5-9372-c35bf772e74c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"","urlObject":{"query":[],"variable":[]}},"response":[],"_postman_id":"bfec5c27-406e-40d5-9372-c35bf772e74c"}],"id":"8f7463d4-8217-468b-9201-48f182266158","_postman_id":"8f7463d4-8217-468b-9201-48f182266158","description":""}],"id":"1331ef05-46ca-43fc-981e-73924c6c53ac","_postman_id":"1331ef05-46ca-43fc-981e-73924c6c53ac","description":""}],"variable":[{"key":"baseURL","value":"http://88.222.212.252:3001"},{"key":"institutionId","value":"67cdc7d7c99c0010b0803c74","type":"default"},{"key":"baseUrl","value":"http://localhost:3000/api/institute","type":"default"},{"key":"accessToken","value":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2RjN2Q3Yzk5YzAwMTBiMDgwM2M3NiIsInJvbGUiOiJhZG1pbiIsImluc3RpdHV0aW9uIjoiNjdjZGM3ZDdjOTljMDAxMGIwODAzYzc0IiwiaWF0IjoxNzQ3NjA4MzE0LCJleHAiOjE3NDc2MTE5MTR9.ieiCy4C8OlMq10IIcq8fzPQJcMQHhqh05mibjWcOr5M","type":"default"},{"key":"degreeId","value":"682a6519468c83e99245d7c0","type":"default"},{"key":"classId","value":"682a6b79dba413c9db166687","type":"default"},{"key":"sectionId","value":"682a6e58822722bcd97db0ab","type":"default"},{"key":"subjectId","value":"682a7064822722bcd97db0c9","type":"default"}]}