{"info":{"_postman_id":"588772d7-3170-4507-895b-f849f2a9c721","name":"Integration testing","description":"<html><head></head><body><h1 id=\"get-started-here\">⛓️ Get started here</h1>\n<p>Postman allows you to test your APIs using simple Javascript code. You can evaluate your response body, headers, cookies, and more using the <a href=\"https://www.chaijs.com/api/bdd/\">ChaiJS BDD</a> syntax.</p>\n<p>This template guides you through the process of setting up an integration test to ensure that all individual components of an API function together seamlessly.</p>\n<p>By setting up requests in the order of the operation, we can test the flow of data to and from the endpoints and ensure they work together as expected. We also verify that the data persists between requests on the back end.</p>\n<h2 id=\"🔖-how-to-use-this-template\">🔖 <strong>How to use this template</strong></h2>\n<p><strong>Step 1:</strong> Check out the requests' documentation to learn more about -</p>\n<ul>\n<li>what each request is meant to do.</li>\n<li>the tests we've added against each one.</li>\n</ul>\n<p><strong>Step 2:</strong> Run this collection by clicking on \"Run\".</p>\n<img src=\"https://content.pstmn.io/84019b0f-69c8-4c5f-98b9-2c90a6f9a0b1/Y29sbGVjdGlvbi1ydW5uZXItYnV0dG9uLmpwZWc=\" width=\"266\" height=\"103\">\n\n<p><strong>Step 3:</strong> To customize this template, replace the request URLs with your API endpoints and add or edit the tests if needed.</p>\n<h2 id=\"ℹ️-resources\">ℹ️ Resources</h2>\n<p><a href=\"https://learning.postman.com/docs/writing-scripts/intro-to-scripts/\">Scripting in Postman</a></p>\n<p><a href=\"https://learning.postman.com/docs/writing-scripts/script-references/test-examples/\">Test script examples</a></p>\n<p><a href=\"https://learning.postman.com/docs/sending-requests/grpc/postman-sandbox-api/#writing-assertions\">Postman Sandbox API reference</a></p>\n<p><a href=\"https://learning.postman.com/docs/collections/running-collections/intro-to-collection-runs/\">Using the Collection Runner</a></p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"⛓️ Get started here","slug":"get-started-here"}],"owner":"29310374","collectionId":"588772d7-3170-4507-895b-f849f2a9c721","publishedId":"2sA35BbPtb","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2024-03-24T09:00:43.000Z"},"item":[{"name":"User Roles and Authentication","item":[{"name":"Register","event":[{"listen":"test","script":{"id":"aa3d8294-3c60-4f00-a439-f39b36ef6268","exec":["pm.test(\"Status code is 201\", function () {","    pm.response.to.have.status(201);","});","","pm.test(\"Response body contains success message\", function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.message).to.equal(\"User created successfully!\");","});","",""],"type":"text/javascript","packages":{}}}],"id":"f284b97a-c253-47c1-8c2a-2044cfd864bd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"firstName\": \"Ben\",\r\n    \"lastName\": \"Banner\",\r\n    \"email\": \"ben.b@example.com\",\r\n    \"password\": \"P@ssw0rd\",\r\n    \"role\":\"Faculty\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/users","description":"<p>This returns a <code>token</code> that you can use to retrieve information later on.</p>\n<p>We have included a test to confirm if a token is returned. We have also added test scripts to copy the token to the <code>token</code> collection variable. This makes it easy for us to reuse this token in other requests in the collection.</p>\n","urlObject":{"protocol":"http","port":"8080","path":["api","v1","users"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"190f35e8-4bc1-43b9-b354-9410677f741b","name":"Register","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"firstName\": \"vishwa\",\r\n    \"lastName\": \"kuruppu\",\r\n    \"email\": \"vishwa.k@example.com\",\r\n    \"password\": \"P@ssw0rd\",\r\n    \"role\":\"Admin\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/users"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"40","enabled":true},{"key":"ETag","value":"W/\"28-UPc1BVdXRfombWvapuJttGIKxiI\"","enabled":true},{"key":"Date","value":"Sat, 23 Mar 2024 18:12:36 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"User created successfully!\"\n}"}],"_postman_id":"f284b97a-c253-47c1-8c2a-2044cfd864bd"},{"name":"Login","event":[{"listen":"test","script":{"id":"a2f328b0-1718-49ac-bf29-88772eaf5946","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response body contains token and role\", function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.data.token).to.be.a(\"string\");","    pm.expect(jsonData.data.role).to.be.a(\"string\");","});",""],"type":"text/javascript","packages":{}}}],"id":"09658a00-09b3-4f94-877c-e4bbc3bd04bb","protocolProfileBehavior":{"disableBodyPruning":true,"followOriginalHttpMethod":false},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\": \"jade.watt@example.com\",\r\n    \"password\": \"P@ssw0rd\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/auth","description":"<p>This request uses the saved <code>token</code> collection variable to access a secret 'name' stored against that token.</p>\n<p>In this request, we used the <code>token</code> collection variable as a query param to fetch the name generated for that token. We have added a test to check that a name is correctly returned.</p>\n","urlObject":{"protocol":"http","port":"8080","path":["api","v1","auth"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"8b8afa90-efe3-457e-a168-3aea0790e6ca","name":"Get name","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\": \"vishwa.u@example.com\",\r\n    \"password\": \"P@ssw0rd\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/auth"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"263","enabled":true},{"key":"ETag","value":"W/\"107-OkYVulb7orJHqBT8JB8/GydVwuA\"","enabled":true},{"key":"Date","value":"Fri, 22 Mar 2024 20:31:33 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"token\": \"{{vault:json-web-token}}\",\n        \"role\": \"Student\"\n    },\n    \"message\": \"Login successful!\"\n}"}],"_postman_id":"09658a00-09b3-4f94-877c-e4bbc3bd04bb"},{"name":"Role Access Student","event":[{"listen":"test","script":{"id":"bd59071c-16fa-4688-bc15-f71f54271f9c","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"Response body contains welcome message\", function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.message).to.equal(\"Welcome To University Course Web\");","});",""],"type":"text/javascript","packages":{}}}],"id":"480f6fe2-85ad-41d2-a560-aec8c3579785","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{vault:json-web-token}}","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/users/student/dashboard","description":"<p>This request un-registers a token by using the token collection variable in the POST body.</p>\n<p>We also added a test to ensure the response has a 200 OK status code.</p>\n","urlObject":{"protocol":"http","port":"8080","path":["api","v1","users","student","dashboard"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"328269ab-8db1-4c12-a15e-8f3455a2af66","name":"Role Access","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{vault:json-web-token}}","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/users/student/dashboard"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"46","enabled":true},{"key":"ETag","value":"W/\"2e-hFUKYJOKyBdxiQTdxXmK2ppm+ik\"","enabled":true},{"key":"Date","value":"Sat, 23 Mar 2024 18:11:43 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Welcome To University Course Web\"\n}"}],"_postman_id":"480f6fe2-85ad-41d2-a560-aec8c3579785"},{"name":"Role Access Faculty","id":"3179f0e4-dcba-454d-bf9c-5c303843be35","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{vault:json-web-token}}","type":"text"}],"url":"http://localhost:8080/api/v1/users/faculty/dashboard","urlObject":{"protocol":"http","port":"8080","path":["api","v1","users","faculty","dashboard"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"d9cef37e-03f8-4e0b-835e-d0310b8e6c1c","name":"Role Access Faculty","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{vault:json-web-token}}","type":"text"}],"url":"http://localhost:8080/api/v1/users/faculty/dashboard"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"53","enabled":true},{"key":"ETag","value":"W/\"35-2nWBgD9L0yQLQit3ejD/z5Wom98\"","enabled":true},{"key":"Date","value":"Sun, 24 Mar 2024 09:43:19 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Access Granted You are a Faculty member\"\n}"}],"_postman_id":"3179f0e4-dcba-454d-bf9c-5c303843be35"},{"name":"Role Access Admin","id":"587f7c5b-fdc8-463d-8aee-f12167cfe8e9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{vault:json-web-token}}","type":"text"}],"url":"http://localhost:8080/api/v1/users/admin/dashboard","urlObject":{"protocol":"http","port":"8080","path":["api","v1","users","admin","dashboard"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"c3f417e2-eed5-4e83-bed0-42c89a71d3ca","name":"Role Access Admin","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{vault:json-web-token}}","type":"text"}],"url":"http://localhost:8080/api/v1/users/admin/dashboard"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"50","enabled":true},{"key":"ETag","value":"W/\"32-3p8KUGjUhaoMNS8udoXvmLnkf4w\"","enabled":true},{"key":"Date","value":"Sun, 24 Mar 2024 09:43:59 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Access Granted You are in Admin mode\"\n}"}],"_postman_id":"587f7c5b-fdc8-463d-8aee-f12167cfe8e9"}],"id":"4636aac9-ad03-485f-ad9e-6926a5c4b2d6","description":"<ul>\n<li><p>Register User</p>\n</li>\n<li><p>Login User</p>\n</li>\n<li><p>Role Access With JWT Token</p>\n</li>\n</ul>\n","_postman_id":"4636aac9-ad03-485f-ad9e-6926a5c4b2d6"},{"name":"Course Management","item":[{"name":"Create Course","event":[{"listen":"test","script":{"id":"0540e896-783d-4cd7-8290-f00d74e3cd7f","exec":["pm.test(\"Status code is 201\", function () {\r","    pm.response.to.have.status(201);\r","});\r","\r","pm.test(\"Response body contains success message\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.message).to.equal(\"Course created successfully!\");\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"57b6d6f4-42c2-47d7-8ab0-2eafba046aab","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"Aplication Frameworks\",\r\n    \"code\": \"AF3001\",\r\n    \"description\": \"Aplication Frameworks MERN STACK\",\r\n    \"credits\": 4\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/courses","urlObject":{"protocol":"http","port":"8080","path":["api","v1","courses"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"24eefbab-7095-4e71-aa13-445b2cc6aa54","name":"Create Course","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"Computer Basics\",\r\n    \"code\": \"CB123\",\r\n    \"description\": \"Computer Basics\",\r\n    \"credits\": 4\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/courses"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"42","enabled":true},{"key":"ETag","value":"W/\"2a-tM/vpoABAiS+TCHl4IdWmTXLSpY\"","enabled":true},{"key":"Date","value":"Fri, 22 Mar 2024 21:29:02 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Course created successfully!\"\n}"}],"_postman_id":"57b6d6f4-42c2-47d7-8ab0-2eafba046aab"},{"name":"View Course","event":[{"listen":"test","script":{"id":"6106bf82-e154-45a6-a22a-7544074de18c","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});\r","\r","pm.test(\"Response contains courses\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData).to.be.an(\"array\").that.is.not.empty;\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"80d0be15-3b54-4f76-9f6d-733e49973b79","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/courses","urlObject":{"protocol":"http","port":"8080","path":["api","v1","courses"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"a0680237-5687-4d00-a14f-342bb604c9e4","name":"View Course","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/courses"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"1197","enabled":true},{"key":"ETag","value":"W/\"4ad-l/rY1KfEMLHrH8v8gMm8XZEoz50\"","enabled":true},{"key":"Date","value":"Fri, 22 Mar 2024 21:25:58 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"_id\": \"65fdeec5a1ae1df79aee997c\",\n        \"name\": \"ITP\",\n        \"code\": \"ITP2023\",\n        \"description\": \"IT Project\",\n        \"credits\": 4,\n        \"__v\": 0,\n        \"faculty\": \"Computing\"\n    },\n    {\n        \"_id\": \"65fdf58ba1ae1df79aee9998\",\n        \"name\": \"Web Development\",\n        \"code\": \"WD123\",\n        \"description\": \"Web Development\",\n        \"credits\": 4,\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"65fdf620a1ae1df79aee999e\",\n        \"name\": \"Operating Systems\",\n        \"code\": \"OS123\",\n        \"description\": \"Operating Systems\",\n        \"credits\": 4,\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"65fdf63fa1ae1df79aee99a0\",\n        \"name\": \"Artificial Intelligence\",\n        \"code\": \"AI123\",\n        \"description\": \"Artificial Intelligence\",\n        \"credits\": 4,\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"65fdf655a1ae1df79aee99a2\",\n        \"name\": \"Cloud Computing\",\n        \"code\": \"CC123\",\n        \"description\": \"Cloud Computing\",\n        \"credits\": 4,\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"65fdf66fa1ae1df79aee99a4\",\n        \"name\": \"Machine Learning\",\n        \"code\": \"ML123\",\n        \"description\": \"Machine Learning\",\n        \"credits\": 4,\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"65fdf685a1ae1df79aee99a6\",\n        \"name\": \"Software Engineering\",\n        \"code\": \"SE123\",\n        \"description\": \"Software Engineering\",\n        \"credits\": 4,\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"65fdf699a1ae1df79aee99a8\",\n        \"name\": \"Information Security\",\n        \"code\": \"IS123\",\n        \"description\": \"Information Security\",\n        \"credits\": 4,\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"65fdf6aca1ae1df79aee99aa\",\n        \"name\": \"Computer Graphics\",\n        \"code\": \"CG123\",\n        \"description\": \"Computer Graphics\",\n        \"credits\": 4,\n        \"__v\": 0\n    }\n]"},{"id":"77d48170-f422-43a7-a5f6-fc8ccf667968","name":"View Course","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/courses"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests","enabled":true},{"key":"Cross-Origin-Opener-Policy","value":"same-origin","enabled":true},{"key":"Cross-Origin-Resource-Policy","value":"same-origin","enabled":true},{"key":"Origin-Agent-Cluster","value":"?1","enabled":true},{"key":"Referrer-Policy","value":"no-referrer","enabled":true},{"key":"Strict-Transport-Security","value":"max-age=15552000; includeSubDomains","enabled":true},{"key":"X-Content-Type-Options","value":"nosniff","enabled":true},{"key":"X-DNS-Prefetch-Control","value":"off","enabled":true},{"key":"X-Download-Options","value":"noopen","enabled":true},{"key":"X-Frame-Options","value":"SAMEORIGIN","enabled":true},{"key":"X-Permitted-Cross-Domain-Policies","value":"none","enabled":true},{"key":"X-XSS-Protection","value":"0","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"1477","enabled":true},{"key":"ETag","value":"W/\"5c5-YWGIU4cPX+4nem0QqPnvTs7sPlM\"","enabled":true},{"key":"Date","value":"Sun, 24 Mar 2024 10:08:16 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"_id\": \"65fdeec5a1ae1df79aee997c\",\n        \"name\": \"ITP\",\n        \"code\": \"ITP2023\",\n        \"description\": \"IT Project MERN\",\n        \"credits\": 4,\n        \"__v\": 0,\n        \"faculty\": \"Computing\"\n    },\n    {\n        \"_id\": \"65fdf58ba1ae1df79aee9998\",\n        \"name\": \"Web Development\",\n        \"code\": \"WD123\",\n        \"description\": \"Web Development\",\n        \"credits\": 4,\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"65fdf620a1ae1df79aee999e\",\n        \"name\": \"Operating Systems\",\n        \"code\": \"OS123\",\n        \"description\": \"Operating Systems\",\n        \"credits\": 4,\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"65fdf63fa1ae1df79aee99a0\",\n        \"name\": \"Artificial Intelligence\",\n        \"code\": \"AI123\",\n        \"description\": \"Artificial Intelligence\",\n        \"credits\": 4,\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"65fdf655a1ae1df79aee99a2\",\n        \"name\": \"Cloud Computing\",\n        \"code\": \"CC123\",\n        \"description\": \"Cloud Computing\",\n        \"credits\": 4,\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"65fdf66fa1ae1df79aee99a4\",\n        \"name\": \"Machine Learning\",\n        \"code\": \"ML123\",\n        \"description\": \"Machine Learning\",\n        \"credits\": 4,\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"65fdf685a1ae1df79aee99a6\",\n        \"name\": \"Software Engineering\",\n        \"code\": \"SE123\",\n        \"description\": \"Software Engineering\",\n        \"credits\": 4,\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"65fdf699a1ae1df79aee99a8\",\n        \"name\": \"Information Security\",\n        \"code\": \"IS123\",\n        \"description\": \"Information Security\",\n        \"credits\": 4,\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"65fdf6aca1ae1df79aee99aa\",\n        \"name\": \"Computer Graphics\",\n        \"code\": \"CG123\",\n        \"description\": \"Computer Graphics\",\n        \"credits\": 4,\n        \"__v\": 0,\n        \"faculty\": \"Computing\"\n    },\n    {\n        \"_id\": \"65fdf81ea1ae1df79aee99b2\",\n        \"name\": \"Computer Basics\",\n        \"code\": \"CB123\",\n        \"description\": \"Computer Basics\",\n        \"credits\": 4,\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"65ff25edc1b057129ebd602d\",\n        \"name\": \"Test Course\",\n        \"code\": \"TEST101\",\n        \"description\": \"Test Description\",\n        \"credits\": 3,\n        \"__v\": 0\n    }\n]"}],"_postman_id":"80d0be15-3b54-4f76-9f6d-733e49973b79"},{"name":"View Course By ID","event":[{"listen":"test","script":{"id":"d39c752b-4113-4c13-b2ab-886a305d327b","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});\r","\r","pm.test(\"Response contains course data\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData).to.be.an(\"object\").that.is.not.empty;\r","    pm.expect(jsonData._id).to.equal(\"65fdeec5a1ae1df79aee997c\");\r","});\r","\r",""],"type":"text/javascript","packages":{}}}],"id":"2b568234-0759-4fbc-bb35-37e64d626119","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/courses/65fdeec5a1ae1df79aee997c","urlObject":{"protocol":"http","port":"8080","path":["api","v1","courses","65fdeec5a1ae1df79aee997c"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"75ffb929-03bc-41c9-8115-8cd6720f953d","name":"View Course By ID","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/courses/65fdeec5a1ae1df79aee997c"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"133","enabled":true},{"key":"ETag","value":"W/\"85-eUo/GNeLBo4oF3zLavV7OOVGtB0\"","enabled":true},{"key":"Date","value":"Fri, 22 Mar 2024 21:26:08 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"_id\": \"65fdeec5a1ae1df79aee997c\",\n    \"name\": \"ITP\",\n    \"code\": \"ITP2023\",\n    \"description\": \"IT Project\",\n    \"credits\": 4,\n    \"__v\": 0,\n    \"faculty\": \"Computing\"\n}"}],"_postman_id":"2b568234-0759-4fbc-bb35-37e64d626119"},{"name":"Update a course by ID","event":[{"listen":"test","script":{"id":"116329d0-860a-4ee4-a574-20a7f90efbc3","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});\r","\r","pm.test(\"Response contains updated course data\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData).to.be.an(\"object\").that.is.not.empty;\r","    pm.expect(jsonData._id).to.equal(\"65fdeec5a1ae1df79aee997c\");\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"10983dd3-8951-4b7d-a095-da0841bbcabb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"Cyber Security\",\r\n    \"code\": \"CS2023\",\r\n    \"description\": \"Cyber Security\",\r\n    \"credits\": 4\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/courses/65ffea6e4963d5b51cd03932","urlObject":{"protocol":"http","port":"8080","path":["api","v1","courses","65ffea6e4963d5b51cd03932"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"d8ba28d5-635e-4e0f-96df-d8073f369564","name":"Update a course by ID","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"ITP\",\r\n    \"code\": \"ITP2023\",\r\n    \"description\": \"IT Project MERN\",\r\n    \"credits\": 4\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/courses/65fdeec5a1ae1df79aee997c"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"138","enabled":true},{"key":"ETag","value":"W/\"8a-GWgtJ+KKJUmsRqVfxyY+HSfAyA0\"","enabled":true},{"key":"Date","value":"Fri, 22 Mar 2024 21:26:37 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"_id\": \"65fdeec5a1ae1df79aee997c\",\n    \"name\": \"ITP\",\n    \"code\": \"ITP2023\",\n    \"description\": \"IT Project MERN\",\n    \"credits\": 4,\n    \"__v\": 0,\n    \"faculty\": \"Computing\"\n}"}],"_postman_id":"10983dd3-8951-4b7d-a095-da0841bbcabb"},{"name":"Assign Faculty to a course","event":[{"listen":"test","script":{"id":"c0e92c0c-4b2b-4900-b38c-b27c16ba83e1","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});\r","\r","pm.test(\"Response contains success message\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.message).to.equal(\"Faculty assigned to course successfully\");\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"a57a886c-ba69-40ac-85fd-bac0992dcfa7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{vault:json-web-token}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"faculty\": \"Computing\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/courses/65ffea6e4963d5b51cd03932/assign-faculty","description":"<p><strong>Enable Admins to assign Faculty to courses.</strong></p>\n","urlObject":{"protocol":"http","port":"8080","path":["api","v1","courses","65ffea6e4963d5b51cd03932","assign-faculty"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"05931710-3af8-4a66-a72f-93dc827b8193","name":"Assign Faculty to a course","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{vault:json-web-token}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"faculty\": \"Computing\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/courses/65fdf6aca1ae1df79aee99aa/assign-faculty"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"53","enabled":true},{"key":"ETag","value":"W/\"35-yeii0CM+WGfpCwRjlOPoNvGKtWA\"","enabled":true},{"key":"Date","value":"Fri, 22 Mar 2024 21:27:06 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Faculty assigned to course successfully\"\n}"}],"_postman_id":"a57a886c-ba69-40ac-85fd-bac0992dcfa7"},{"name":"Delete a course by ID","event":[{"listen":"test","script":{"id":"b907783e-aa98-45bd-b204-188f9518c037","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});\r","\r","pm.test(\"Response contains success message\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData.message).to.equal(\"Course deleted successfull!\");\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"774cee60-a1e1-436e-8238-4e077e1c0b98","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/courses/65ff25edc1b057129ebd602d","urlObject":{"protocol":"http","port":"8080","path":["api","v1","courses","65ff25edc1b057129ebd602d"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"61d0ebaa-0cc4-4b49-add2-748a26e79a18","name":"Delete a course by ID","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/courses/65ff25edc1b057129ebd602d"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Origin","value":"http://localhost:8080","enabled":true},{"key":"Vary","value":"Origin","enabled":true},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests","enabled":true},{"key":"Cross-Origin-Opener-Policy","value":"same-origin","enabled":true},{"key":"Cross-Origin-Resource-Policy","value":"same-origin","enabled":true},{"key":"Origin-Agent-Cluster","value":"?1","enabled":true},{"key":"Referrer-Policy","value":"no-referrer","enabled":true},{"key":"Strict-Transport-Security","value":"max-age=15552000; includeSubDomains","enabled":true},{"key":"X-Content-Type-Options","value":"nosniff","enabled":true},{"key":"X-DNS-Prefetch-Control","value":"off","enabled":true},{"key":"X-Download-Options","value":"noopen","enabled":true},{"key":"X-Frame-Options","value":"SAMEORIGIN","enabled":true},{"key":"X-Permitted-Cross-Domain-Policies","value":"none","enabled":true},{"key":"X-XSS-Protection","value":"0","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"41","enabled":true},{"key":"ETag","value":"W/\"29-gccwjs/VAEaFeQ/LVZbkoIQ49J4\"","enabled":true},{"key":"Date","value":"Sun, 24 Mar 2024 13:12:55 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Course deleted successfull!\"\n}"}],"_postman_id":"774cee60-a1e1-436e-8238-4e077e1c0b98"}],"id":"934f88e0-234b-4a95-b988-2392f7d97675","description":"<ul>\n<li><p>Create Course</p>\n</li>\n<li><p>View Course</p>\n</li>\n<li><p>View Course By ID</p>\n</li>\n<li><p>Update Course By ID</p>\n</li>\n<li><p>Delete Course BY ID</p>\n</li>\n<li><p>Assign Faculty Access only For Adimn And Faculty</p>\n</li>\n</ul>\n","_postman_id":"934f88e0-234b-4a95-b988-2392f7d97675"},{"name":"Timetable Management","item":[{"name":"Read Timetable","event":[{"listen":"test","script":{"id":"44f8acfd-a5a0-476f-be45-e0e3fbb4aacb","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});\r","\r","pm.test(\"Response contains array of timetable entries\", function () {\r","    pm.expect(pm.response.json()).to.be.an(\"array\").that.is.not.empty;\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"651aed22-5cb3-4000-9bad-52b2443b94c2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/timetables","urlObject":{"protocol":"http","port":"8080","path":["api","v1","timetables"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"34b72a3d-2b9b-48e2-8213-52ca706e599f","name":"New Request","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/timetables"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"1980","enabled":true},{"key":"ETag","value":"W/\"7bc-j8EXHDd1CvAWaV/+/yM9VteGfg8\"","enabled":true},{"key":"Date","value":"Fri, 22 Mar 2024 21:38:55 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"_id\": \"65fb4a2fc5b9ac48785de4d1\",\n        \"year\": 2024,\n        \"semester\": \"Y3 Semester 1\",\n        \"Monday\": [\n            {\n                \"course\": \"65f7dc42d4277d6569e2ba46\",\n                \"type\": \"Lecture\",\n                \"deliveryMethod\": \"Physical\",\n                \"timeSlot\": \"08:30 - 10:30\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fb555b23eee10eab9a6fed\"\n            },\n            {\n                \"course\": \"65fb46d7c5b9ac48785de4b1\",\n                \"type\": \"Lecture\",\n                \"deliveryMethod\": \"Physical\",\n                \"timeSlot\": \"11:00 - 13:00\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fb555b23eee10eab9a6fee\"\n            }\n        ],\n        \"Tuesday\": [\n            {\n                \"course\": \"65fb4716c5b9ac48785de4b3\",\n                \"type\": \"Lecture\",\n                \"deliveryMethod\": \"Physical\",\n                \"timeSlot\": \"09:00 - 11:00\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fb555b23eee10eab9a6fef\"\n            },\n            {\n                \"course\": \"65fb4747c5b9ac48785de4b5\",\n                \"type\": \"Lab\",\n                \"deliveryMethod\": \"Hybrid\",\n                \"timeSlot\": \"11:00 - 13:00\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fb555b23eee10eab9a6ff0\"\n            },\n            {\n                \"course\": \"65fb4773c5b9ac48785de4b7\",\n                \"type\": \"Lecture\",\n                \"deliveryMethod\": \"Online\",\n                \"timeSlot\": \"14:00 - 16:00\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fb555b23eee10eab9a6ff1\"\n            }\n        ],\n        \"Wednesday\": [\n            {\n                \"course\": \"65fb47b0c5b9ac48785de4b9\",\n                \"type\": \"Lecture\",\n                \"deliveryMethod\": \"Physical\",\n                \"timeSlot\": \"09:00 - 11:00\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fb555b23eee10eab9a6ff2\"\n            }\n        ],\n        \"Thursday\": [\n            {\n                \"course\": \"65fb47eac5b9ac48785de4bb\",\n                \"type\": \"Lecture\",\n                \"deliveryMethod\": \"Physical\",\n                \"timeSlot\": \"09:00 - 11:00\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fb555b23eee10eab9a6ff3\"\n            }\n        ],\n        \"Friday\": [\n            {\n                \"course\": \"65fb484dc5b9ac48785de4bd\",\n                \"type\": \"Lecture\",\n                \"deliveryMethod\": \"Physical\",\n                \"timeSlot\": \"09:00 - 11:00\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fb555b23eee10eab9a6ff4\"\n            }\n        ],\n        \"Saturday\": [\n            {\n                \"course\": \"65fb4a03c5b9ac48785de4cf\",\n                \"type\": \"Lecture\",\n                \"deliveryMethod\": \"Physical\",\n                \"timeSlot\": \"09:00 - 11:00\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fb555b23eee10eab9a6ff5\"\n            }\n        ],\n        \"Sunday\": [\n            {\n                \"course\": \"65fb49d5c5b9ac48785de4cd\",\n                \"type\": \"Lecture\",\n                \"deliveryMethod\": \"Physical\",\n                \"timeSlot\": \"09:00 - 11:00\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fb555b23eee10eab9a6ff6\"\n            }\n        ],\n        \"__v\": 0\n    }\n]"}],"_postman_id":"651aed22-5cb3-4000-9bad-52b2443b94c2"},{"name":"Create Timetable","event":[{"listen":"test","script":{"id":"16283429-1436-4401-946d-2b56a4b60fbe","exec":["pm.test(\"Status code is 201\", function () {\r","    pm.response.to.have.status(201);\r","});\r","\r","pm.test(\"Response contains success message\", function () {\r","    pm.expect(pm.response.json().message).to.equal(\"Timetable entry created successfully\");\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"59dc4474-f3d1-4330-a892-759179b65bea","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"year\": 2024,\r\n    \"semester\": \"Y3 Semester 1\",\r\n    \"Monday\": [\r\n        {\r\n            \"course\": \"65fdeec5a1ae1df79aee997c\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"09:00 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ],\r\n    \"Tuesday\": [\r\n        {\r\n            \"course\": \"65fdf620a1ae1df79aee999e\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Physical\",\r\n            \"timeSlot\": \"09:00 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf63fa1ae1df79aee99a0\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"11:00 - 13:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ],\r\n    \"Wednesday\": [\r\n        {\r\n            \"course\": \"65fdf655a1ae1df79aee99a2\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Physical\",\r\n            \"timeSlot\": \"09:00 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf655a1ae1df79aee99a2\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"11:00 - 13:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf66fa1ae1df79aee99a4\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Online\",\r\n            \"timeSlot\": \"14:00 - 16:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ],\r\n    \"Thursday\": [\r\n        {\r\n            \"course\": \"65fdf699a1ae1df79aee99a8\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Physical\",\r\n            \"timeSlot\": \"09:00 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf699a1ae1df79aee99a8\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"11:00 - 13:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ],\r\n    \"Friday\": [\r\n        {\r\n            \"course\": \"65fdf699a1ae1df79aee99a8\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Physical\",\r\n            \"timeSlot\": \"09:00 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf6aca1ae1df79aee99aa\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"11:00 - 13:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf6aca1ae1df79aee99aa\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Online\",\r\n            \"timeSlot\": \"14:00 - 16:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ],\r\n    \"Saturday\": [\r\n        {\r\n            \"course\": \"65fdf58ba1ae1df79aee9998\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Physical\",\r\n            \"timeSlot\": \"09:00 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf58ba1ae1df79aee9998\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"11:00 - 13:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf620a1ae1df79aee999e\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Online\",\r\n            \"timeSlot\": \"14:00 - 16:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ],\r\n    \"Sunday\": [\r\n        {\r\n            \"course\": \"65fdf63fa1ae1df79aee99a0\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Physical\",\r\n            \"timeSlot\": \"09:00 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf620a1ae1df79aee999e\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"11:00 - 13:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf63fa1ae1df79aee99a0\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Online\",\r\n            \"timeSlot\": \"14:00 - 16:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ]\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/timetables/","urlObject":{"protocol":"http","port":"8080","path":["api","v1","timetables",""],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"df34c1b0-95b9-4b68-9a0a-fb599a9cca02","name":"New Request","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"year\": 2024,\r\n    \"semester\": \"Y3 Semester 1\",\r\n    \"Monday\": [\r\n        {\r\n            \"course\": \"65fdeec5a1ae1df79aee997c\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"09:00 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ],\r\n    \"Tuesday\": [\r\n        {\r\n            \"course\": \"65fdf620a1ae1df79aee999e\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Physical\",\r\n            \"timeSlot\": \"09:00 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf63fa1ae1df79aee99a0\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"11:00 - 13:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ],\r\n    \"Wednesday\": [\r\n        {\r\n            \"course\": \"65fdf655a1ae1df79aee99a2\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Physical\",\r\n            \"timeSlot\": \"09:00 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf655a1ae1df79aee99a2\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"11:00 - 13:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf66fa1ae1df79aee99a4\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Online\",\r\n            \"timeSlot\": \"14:00 - 16:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ],\r\n    \"Thursday\": [\r\n        {\r\n            \"course\": \"65fdf699a1ae1df79aee99a8\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Physical\",\r\n            \"timeSlot\": \"09:00 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf699a1ae1df79aee99a8\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"11:00 - 13:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ],\r\n    \"Friday\": [\r\n        {\r\n            \"course\": \"65fdf699a1ae1df79aee99a8\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Physical\",\r\n            \"timeSlot\": \"09:00 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf6aca1ae1df79aee99aa\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"11:00 - 13:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf6aca1ae1df79aee99aa\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Online\",\r\n            \"timeSlot\": \"14:00 - 16:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ],\r\n    \"Saturday\": [\r\n        {\r\n            \"course\": \"65fdf58ba1ae1df79aee9998\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Physical\",\r\n            \"timeSlot\": \"09:00 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf58ba1ae1df79aee9998\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"11:00 - 13:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf620a1ae1df79aee999e\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Online\",\r\n            \"timeSlot\": \"14:00 - 16:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ],\r\n    \"Sunday\": [\r\n        {\r\n            \"course\": \"65fdf63fa1ae1df79aee99a0\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Physical\",\r\n            \"timeSlot\": \"09:00 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf620a1ae1df79aee999e\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"11:00 - 13:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf63fa1ae1df79aee99a0\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Online\",\r\n            \"timeSlot\": \"14:00 - 16:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ]\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/timetables/"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"50","enabled":true},{"key":"ETag","value":"W/\"32-eEZre1bq2jvIqgKWHbnvL9l9cXI\"","enabled":true},{"key":"Date","value":"Fri, 22 Mar 2024 21:46:33 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Timetable entry created successfully\"\n}"}],"_postman_id":"59dc4474-f3d1-4330-a892-759179b65bea"},{"name":"Get Timetable by ID","event":[{"listen":"test","script":{"id":"c3e163b1-0aad-464f-8418-89e8aed78506","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});\r","\r","pm.test(\"Response contains timetable entry with specified ID\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData).to.be.an(\"object\");\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"0074c7a0-a0aa-4876-b5ce-5837420486ce","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/timetables/65fdfc39a1ae1df79aee99ea","urlObject":{"protocol":"http","port":"8080","path":["api","v1","timetables","65fdfc39a1ae1df79aee99ea"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"8a2c0fac-a256-4245-b120-538b6c0f5e55","name":"New Request","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/timetables/65fdfc39a1ae1df79aee99ea"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"3210","enabled":true},{"key":"ETag","value":"W/\"c8a-bVzN7RLqsMnbURSyIy+MxfI7mK8\"","enabled":true},{"key":"Date","value":"Fri, 22 Mar 2024 21:48:19 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"_id\": \"65fdfc39a1ae1df79aee99ea\",\n    \"year\": 2024,\n    \"semester\": \"Y3 Semester 1\",\n    \"Monday\": [\n        {\n            \"course\": \"65fdeec5a1ae1df79aee997c\",\n            \"type\": \"Lecture\",\n            \"deliveryMethod\": \"Hybrid\",\n            \"timeSlot\": \"09:00 - 11:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfc39a1ae1df79aee99eb\"\n        }\n    ],\n    \"Tuesday\": [\n        {\n            \"course\": \"65fdf620a1ae1df79aee999e\",\n            \"type\": \"Lecture\",\n            \"deliveryMethod\": \"Physical\",\n            \"timeSlot\": \"09:00 - 11:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfc39a1ae1df79aee99ec\"\n        },\n        {\n            \"course\": \"65fdf63fa1ae1df79aee99a0\",\n            \"type\": \"Lab\",\n            \"deliveryMethod\": \"Hybrid\",\n            \"timeSlot\": \"11:00 - 13:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfc39a1ae1df79aee99ed\"\n        }\n    ],\n    \"Wednesday\": [\n        {\n            \"course\": \"65fdf655a1ae1df79aee99a2\",\n            \"type\": \"Lecture\",\n            \"deliveryMethod\": \"Physical\",\n            \"timeSlot\": \"09:00 - 11:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfc39a1ae1df79aee99ee\"\n        },\n        {\n            \"course\": \"65fdf655a1ae1df79aee99a2\",\n            \"type\": \"Lab\",\n            \"deliveryMethod\": \"Hybrid\",\n            \"timeSlot\": \"11:00 - 13:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfc39a1ae1df79aee99ef\"\n        },\n        {\n            \"course\": \"65fdf66fa1ae1df79aee99a4\",\n            \"type\": \"Lecture\",\n            \"deliveryMethod\": \"Online\",\n            \"timeSlot\": \"14:00 - 16:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfc39a1ae1df79aee99f0\"\n        }\n    ],\n    \"Thursday\": [\n        {\n            \"course\": \"65fdf699a1ae1df79aee99a8\",\n            \"type\": \"Lecture\",\n            \"deliveryMethod\": \"Physical\",\n            \"timeSlot\": \"09:00 - 11:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfc39a1ae1df79aee99f1\"\n        },\n        {\n            \"course\": \"65fdf699a1ae1df79aee99a8\",\n            \"type\": \"Lab\",\n            \"deliveryMethod\": \"Hybrid\",\n            \"timeSlot\": \"11:00 - 13:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfc39a1ae1df79aee99f2\"\n        }\n    ],\n    \"Friday\": [\n        {\n            \"course\": \"65fdf699a1ae1df79aee99a8\",\n            \"type\": \"Lecture\",\n            \"deliveryMethod\": \"Physical\",\n            \"timeSlot\": \"09:00 - 11:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfc39a1ae1df79aee99f3\"\n        },\n        {\n            \"course\": \"65fdf6aca1ae1df79aee99aa\",\n            \"type\": \"Lab\",\n            \"deliveryMethod\": \"Hybrid\",\n            \"timeSlot\": \"11:00 - 13:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfc39a1ae1df79aee99f4\"\n        },\n        {\n            \"course\": \"65fdf6aca1ae1df79aee99aa\",\n            \"type\": \"Lecture\",\n            \"deliveryMethod\": \"Online\",\n            \"timeSlot\": \"14:00 - 16:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfc39a1ae1df79aee99f5\"\n        }\n    ],\n    \"Saturday\": [\n        {\n            \"course\": \"65fdf58ba1ae1df79aee9998\",\n            \"type\": \"Lecture\",\n            \"deliveryMethod\": \"Physical\",\n            \"timeSlot\": \"09:00 - 11:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfc39a1ae1df79aee99f6\"\n        },\n        {\n            \"course\": \"65fdf58ba1ae1df79aee9998\",\n            \"type\": \"Lab\",\n            \"deliveryMethod\": \"Hybrid\",\n            \"timeSlot\": \"11:00 - 13:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfc39a1ae1df79aee99f7\"\n        },\n        {\n            \"course\": \"65fdf620a1ae1df79aee999e\",\n            \"type\": \"Lecture\",\n            \"deliveryMethod\": \"Online\",\n            \"timeSlot\": \"14:00 - 16:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfc39a1ae1df79aee99f8\"\n        }\n    ],\n    \"Sunday\": [\n        {\n            \"course\": \"65fdf63fa1ae1df79aee99a0\",\n            \"type\": \"Lecture\",\n            \"deliveryMethod\": \"Physical\",\n            \"timeSlot\": \"09:00 - 11:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfc39a1ae1df79aee99f9\"\n        },\n        {\n            \"course\": \"65fdf620a1ae1df79aee999e\",\n            \"type\": \"Lab\",\n            \"deliveryMethod\": \"Hybrid\",\n            \"timeSlot\": \"11:00 - 13:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfc39a1ae1df79aee99fa\"\n        },\n        {\n            \"course\": \"65fdf63fa1ae1df79aee99a0\",\n            \"type\": \"Lab\",\n            \"deliveryMethod\": \"Online\",\n            \"timeSlot\": \"14:00 - 16:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfc39a1ae1df79aee99fb\"\n        }\n    ],\n    \"__v\": 0\n}"}],"_postman_id":"0074c7a0-a0aa-4876-b5ce-5837420486ce"},{"name":"Update Time table by ID","event":[{"listen":"test","script":{"id":"b616981d-2fca-4d58-9168-94ea5034baed","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});\r","\r","pm.test(\"Response contains updated timetable entry\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData).to.be.an(\"object\");\r","});\r","\r",""],"type":"text/javascript","packages":{}}}],"id":"31200271-7590-402a-8b2c-e257d935891f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"year\": 2024,\r\n    \"semester\": \"Y3 Semester 1\",\r\n    \"Monday\": [\r\n        {\r\n            \"course\": \"65fdeec5a1ae1df79aee997c\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"08:30 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ],\r\n    \"Tuesday\": [\r\n        {\r\n            \"course\": \"65fdf620a1ae1df79aee999e\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Physical\",\r\n            \"timeSlot\": \"09:00 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf63fa1ae1df79aee99a0\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"11:00 - 13:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ],\r\n    \"Wednesday\": [\r\n        {\r\n            \"course\": \"65fdf655a1ae1df79aee99a2\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Physical\",\r\n            \"timeSlot\": \"09:00 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf655a1ae1df79aee99a2\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"11:00 - 13:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf66fa1ae1df79aee99a4\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Online\",\r\n            \"timeSlot\": \"14:00 - 16:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ],\r\n    \"Thursday\": [\r\n        {\r\n            \"course\": \"65fdf699a1ae1df79aee99a8\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Physical\",\r\n            \"timeSlot\": \"09:00 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf699a1ae1df79aee99a8\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"11:00 - 13:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ],\r\n    \"Friday\": [\r\n        {\r\n            \"course\": \"65fdf699a1ae1df79aee99a8\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Physical\",\r\n            \"timeSlot\": \"09:00 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf6aca1ae1df79aee99aa\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"11:00 - 13:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf6aca1ae1df79aee99aa\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Online\",\r\n            \"timeSlot\": \"14:00 - 16:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ],\r\n    \"Saturday\": [\r\n        {\r\n            \"course\": \"65fdf58ba1ae1df79aee9998\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Physical\",\r\n            \"timeSlot\": \"09:00 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf58ba1ae1df79aee9998\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"11:00 - 13:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf620a1ae1df79aee999e\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Online\",\r\n            \"timeSlot\": \"14:00 - 16:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ],\r\n    \"Sunday\": [\r\n        {\r\n            \"course\": \"65fdf63fa1ae1df79aee99a0\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Physical\",\r\n            \"timeSlot\": \"09:00 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf620a1ae1df79aee999e\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"11:00 - 13:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf63fa1ae1df79aee99a0\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Online\",\r\n            \"timeSlot\": \"14:00 - 16:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ]\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/timetables/65fdfc39a1ae1df79aee99ea","description":"<h4 id=\"when-timetable-updated-send-enrolled-students-recive-a-notification-that-timetable-is-updated\"><strong>When timetable updated send enrolled students recive a notification that timetable is updated.</strong></h4>\n","urlObject":{"protocol":"http","port":"8080","path":["api","v1","timetables","65fdfc39a1ae1df79aee99ea"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"6f878159-e39c-409f-bf72-4b5315bfb673","name":"New Request","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"year\": 2024,\r\n    \"semester\": \"Y3 Semester 1\",\r\n    \"Monday\": [\r\n        {\r\n            \"course\": \"65fdeec5a1ae1df79aee997c\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"08:30 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ],\r\n    \"Tuesday\": [\r\n        {\r\n            \"course\": \"65fdf620a1ae1df79aee999e\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Physical\",\r\n            \"timeSlot\": \"09:00 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf63fa1ae1df79aee99a0\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"11:00 - 13:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ],\r\n    \"Wednesday\": [\r\n        {\r\n            \"course\": \"65fdf655a1ae1df79aee99a2\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Physical\",\r\n            \"timeSlot\": \"09:00 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf655a1ae1df79aee99a2\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"11:00 - 13:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf66fa1ae1df79aee99a4\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Online\",\r\n            \"timeSlot\": \"14:00 - 16:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ],\r\n    \"Thursday\": [\r\n        {\r\n            \"course\": \"65fdf699a1ae1df79aee99a8\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Physical\",\r\n            \"timeSlot\": \"09:00 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf699a1ae1df79aee99a8\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"11:00 - 13:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ],\r\n    \"Friday\": [\r\n        {\r\n            \"course\": \"65fdf699a1ae1df79aee99a8\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Physical\",\r\n            \"timeSlot\": \"09:00 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf6aca1ae1df79aee99aa\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"11:00 - 13:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf6aca1ae1df79aee99aa\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Online\",\r\n            \"timeSlot\": \"14:00 - 16:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ],\r\n    \"Saturday\": [\r\n        {\r\n            \"course\": \"65fdf58ba1ae1df79aee9998\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Physical\",\r\n            \"timeSlot\": \"09:00 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf58ba1ae1df79aee9998\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"11:00 - 13:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf620a1ae1df79aee999e\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Online\",\r\n            \"timeSlot\": \"14:00 - 16:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ],\r\n    \"Sunday\": [\r\n        {\r\n            \"course\": \"65fdf63fa1ae1df79aee99a0\",\r\n            \"type\": \"Lecture\",\r\n            \"deliveryMethod\": \"Physical\",\r\n            \"timeSlot\": \"09:00 - 11:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf620a1ae1df79aee999e\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Hybrid\",\r\n            \"timeSlot\": \"11:00 - 13:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        },\r\n        {\r\n            \"course\": \"65fdf63fa1ae1df79aee99a0\",\r\n            \"type\": \"Lab\",\r\n            \"deliveryMethod\": \"Online\",\r\n            \"timeSlot\": \"14:00 - 16:00\",\r\n            \"classroom\": \"65f9557b20708269b3830262\"\r\n        }\r\n    ]\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/timetables/65fdfc39a1ae1df79aee99ea"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"3210","enabled":true},{"key":"ETag","value":"W/\"c8a-az+zfmtMCKOwdACMtOC5Pxef+38\"","enabled":true},{"key":"Date","value":"Fri, 22 Mar 2024 21:51:09 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"_id\": \"65fdfc39a1ae1df79aee99ea\",\n    \"year\": 2024,\n    \"semester\": \"Y3 Semester 1\",\n    \"Monday\": [\n        {\n            \"course\": \"65fdeec5a1ae1df79aee997c\",\n            \"type\": \"Lecture\",\n            \"deliveryMethod\": \"Hybrid\",\n            \"timeSlot\": \"08:30 - 11:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfd4ca1ae1df79aee9a33\"\n        }\n    ],\n    \"Tuesday\": [\n        {\n            \"course\": \"65fdf620a1ae1df79aee999e\",\n            \"type\": \"Lecture\",\n            \"deliveryMethod\": \"Physical\",\n            \"timeSlot\": \"09:00 - 11:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfd4ca1ae1df79aee9a34\"\n        },\n        {\n            \"course\": \"65fdf63fa1ae1df79aee99a0\",\n            \"type\": \"Lab\",\n            \"deliveryMethod\": \"Hybrid\",\n            \"timeSlot\": \"11:00 - 13:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfd4ca1ae1df79aee9a35\"\n        }\n    ],\n    \"Wednesday\": [\n        {\n            \"course\": \"65fdf655a1ae1df79aee99a2\",\n            \"type\": \"Lecture\",\n            \"deliveryMethod\": \"Physical\",\n            \"timeSlot\": \"09:00 - 11:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfd4ca1ae1df79aee9a36\"\n        },\n        {\n            \"course\": \"65fdf655a1ae1df79aee99a2\",\n            \"type\": \"Lab\",\n            \"deliveryMethod\": \"Hybrid\",\n            \"timeSlot\": \"11:00 - 13:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfd4ca1ae1df79aee9a37\"\n        },\n        {\n            \"course\": \"65fdf66fa1ae1df79aee99a4\",\n            \"type\": \"Lecture\",\n            \"deliveryMethod\": \"Online\",\n            \"timeSlot\": \"14:00 - 16:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfd4ca1ae1df79aee9a38\"\n        }\n    ],\n    \"Thursday\": [\n        {\n            \"course\": \"65fdf699a1ae1df79aee99a8\",\n            \"type\": \"Lecture\",\n            \"deliveryMethod\": \"Physical\",\n            \"timeSlot\": \"09:00 - 11:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfd4ca1ae1df79aee9a39\"\n        },\n        {\n            \"course\": \"65fdf699a1ae1df79aee99a8\",\n            \"type\": \"Lab\",\n            \"deliveryMethod\": \"Hybrid\",\n            \"timeSlot\": \"11:00 - 13:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfd4ca1ae1df79aee9a3a\"\n        }\n    ],\n    \"Friday\": [\n        {\n            \"course\": \"65fdf699a1ae1df79aee99a8\",\n            \"type\": \"Lecture\",\n            \"deliveryMethod\": \"Physical\",\n            \"timeSlot\": \"09:00 - 11:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfd4ca1ae1df79aee9a3b\"\n        },\n        {\n            \"course\": \"65fdf6aca1ae1df79aee99aa\",\n            \"type\": \"Lab\",\n            \"deliveryMethod\": \"Hybrid\",\n            \"timeSlot\": \"11:00 - 13:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfd4ca1ae1df79aee9a3c\"\n        },\n        {\n            \"course\": \"65fdf6aca1ae1df79aee99aa\",\n            \"type\": \"Lecture\",\n            \"deliveryMethod\": \"Online\",\n            \"timeSlot\": \"14:00 - 16:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfd4ca1ae1df79aee9a3d\"\n        }\n    ],\n    \"Saturday\": [\n        {\n            \"course\": \"65fdf58ba1ae1df79aee9998\",\n            \"type\": \"Lecture\",\n            \"deliveryMethod\": \"Physical\",\n            \"timeSlot\": \"09:00 - 11:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfd4ca1ae1df79aee9a3e\"\n        },\n        {\n            \"course\": \"65fdf58ba1ae1df79aee9998\",\n            \"type\": \"Lab\",\n            \"deliveryMethod\": \"Hybrid\",\n            \"timeSlot\": \"11:00 - 13:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfd4ca1ae1df79aee9a3f\"\n        },\n        {\n            \"course\": \"65fdf620a1ae1df79aee999e\",\n            \"type\": \"Lecture\",\n            \"deliveryMethod\": \"Online\",\n            \"timeSlot\": \"14:00 - 16:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfd4ca1ae1df79aee9a40\"\n        }\n    ],\n    \"Sunday\": [\n        {\n            \"course\": \"65fdf63fa1ae1df79aee99a0\",\n            \"type\": \"Lecture\",\n            \"deliveryMethod\": \"Physical\",\n            \"timeSlot\": \"09:00 - 11:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfd4ca1ae1df79aee9a41\"\n        },\n        {\n            \"course\": \"65fdf620a1ae1df79aee999e\",\n            \"type\": \"Lab\",\n            \"deliveryMethod\": \"Hybrid\",\n            \"timeSlot\": \"11:00 - 13:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfd4ca1ae1df79aee9a42\"\n        },\n        {\n            \"course\": \"65fdf63fa1ae1df79aee99a0\",\n            \"type\": \"Lab\",\n            \"deliveryMethod\": \"Online\",\n            \"timeSlot\": \"14:00 - 16:00\",\n            \"classroom\": \"65f9557b20708269b3830262\",\n            \"_id\": \"65fdfd4ca1ae1df79aee9a43\"\n        }\n    ],\n    \"__v\": 0\n}"}],"_postman_id":"31200271-7590-402a-8b2c-e257d935891f"},{"name":"Delete Timetable by ID","event":[{"listen":"test","script":{"id":"b8ec56ce-d543-47ad-a7dd-d4a45aae3d4e","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});\r","\r","pm.test(\"Response contains success message\", function () {\r","    pm.expect(pm.response.json().message).to.equal(\"Timetable entry deleted\");\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"094a2a49-01a9-4a53-a625-369bd83a6c87","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"http://localhost:8080/api/v1/timetables/65fb4a2fc5b9ac48785de4d1","urlObject":{"protocol":"http","port":"8080","path":["api","v1","timetables","65fb4a2fc5b9ac48785de4d1"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"91c4390a-7aaa-4c92-ba31-01e484158f70","name":"New Request","originalRequest":{"method":"DELETE","header":[],"url":"http://localhost:8080/api/v1/timetables/65fb4a2fc5b9ac48785de4d1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"37","enabled":true},{"key":"ETag","value":"W/\"25-sT712vZuaZuEF38FI93NhgiEkpE\"","enabled":true},{"key":"Date","value":"Fri, 22 Mar 2024 21:56:12 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Timetable entry deleted\"\n}"}],"_postman_id":"094a2a49-01a9-4a53-a625-369bd83a6c87"}],"id":"b20f7f64-84c5-4096-a743-e619999ddd39","_postman_id":"b20f7f64-84c5-4096-a743-e619999ddd39","description":""},{"name":"Room and Resource Booking","item":[{"name":"Classroom","item":[{"name":"Create Classroom","event":[{"listen":"test","script":{"id":"3aa81ed4-d59f-4783-a2b3-2a3cbb66dde1","exec":["// Status code test\r","pm.test(\"Status code is 201\", function () {\r","    pm.response.to.have.status(201);\r","});\r","\r","// Response content test\r","pm.test(\"Response contains newly created classroom object\", function () {\r","    pm.expect(pm.response.json()).to.be.an(\"object\").and.to.have.property(\"_id\");\r","    // Add more assertions based on the structure of the classroom object if needed\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"433fb7de-0347-4797-8334-72596249ec31","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"classID\": \"G1101\",\r\n    \"type\": \"LectureHall\",\r\n    \"capacity\": 50\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/classrooms","urlObject":{"protocol":"http","port":"8080","path":["api","v1","classrooms"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"bd912fd3-1be5-4bb2-bb82-d0d94074be95","name":"New Request","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"classID\": \"A101\",\r\n    \"type\": \"Lab\",\r\n    \"capacity\": 30\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/classrooms"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"86","enabled":true},{"key":"ETag","value":"W/\"56-bQw1lsULDDVzSBNaXJxTazVWs68\"","enabled":true},{"key":"Date","value":"Fri, 22 Mar 2024 22:04:51 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"classID\": \"A101\",\n    \"type\": \"Lab\",\n    \"capacity\": 30,\n    \"_id\": \"65fe00820c550110be23a2f0\",\n    \"__v\": 0\n}"}],"_postman_id":"433fb7de-0347-4797-8334-72596249ec31"},{"name":"Read Classrooms","event":[{"listen":"test","script":{"id":"c9a5769a-4caf-4c1b-b58d-b0c61c06e5c6","exec":["// Status code test\r","pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});\r","\r","// Response content test\r","pm.test(\"Response contains array of classrooms\", function () {\r","    pm.expect(pm.response.json()).to.be.an(\"array\").and.to.have.length.above(0);\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"705d1e1e-7405-466b-a75a-1d690d9b4049","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/classrooms/","urlObject":{"protocol":"http","port":"8080","path":["api","v1","classrooms",""],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"93294652-b551-4949-b10f-69a5878c6e7c","name":"New Request","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/classrooms/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"270","enabled":true},{"key":"ETag","value":"W/\"10e-ROQFyPK2o97hw25NpML+Xf3AmlE\"","enabled":true},{"key":"Date","value":"Fri, 22 Mar 2024 22:06:26 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"_id\": \"65f9557b20708269b3830262\",\n        \"classID\": \"B401\",\n        \"type\": \"LectureHall\",\n        \"capacity\": 50,\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"65f95f2254caf828ed80b4af\",\n        \"classID\": \"B501\",\n        \"type\": \"Lab\",\n        \"capacity\": 50,\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"65fe00820c550110be23a2f0\",\n        \"classID\": \"A101\",\n        \"type\": \"Lab\",\n        \"capacity\": 30,\n        \"__v\": 0\n    }\n]"}],"_postman_id":"705d1e1e-7405-466b-a75a-1d690d9b4049"},{"name":"Update Classroom by ID","event":[{"listen":"test","script":{"id":"5a23ace2-0251-446b-930c-687a5ba0b893","exec":["// Status code test for successful update\r","pm.test(\"Status code is 200 for successful update\", function () {\r","    pm.response.to.have.status(200);\r","});\r","\r","// Response content test for successful update\r","pm.test(\"Response contains updated classroom object\", function () {\r","    pm.expect(pm.response.json()).to.be.an(\"object\").and.to.have.property(\"_id\");\r","    // Add more assertions based on the structure of the classroom object if needed\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"ae7c8b98-9115-467e-a91f-bded421fcf8a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"classID\": \"A301\",\r\n    \"type\": \"Lab\",\r\n    \"capacity\": 50\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/classrooms/65fe00820c550110be23a2f0","urlObject":{"protocol":"http","port":"8080","path":["api","v1","classrooms","65fe00820c550110be23a2f0"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"2b3eb249-4b6b-49cf-a70c-8d662e836ee0","name":"Update Classroom by ID","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"classID\": \"A301\",\r\n    \"type\": \"Lab\",\r\n    \"capacity\": 50\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/classrooms/65fe00820c550110be23a2f0"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"86","enabled":true},{"key":"ETag","value":"W/\"56-qn3YFXUFLfjytRomakUVfU7IE2A\"","enabled":true},{"key":"Date","value":"Fri, 22 Mar 2024 22:14:04 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"_id\": \"65fe00820c550110be23a2f0\",\n    \"classID\": \"A301\",\n    \"type\": \"Lab\",\n    \"capacity\": 50,\n    \"__v\": 0\n}"}],"_postman_id":"ae7c8b98-9115-467e-a91f-bded421fcf8a"},{"name":"Delete classroom by ID","event":[{"listen":"test","script":{"id":"da384a21-4c63-4573-8ca4-bf175d2bb1dd","exec":["// Status code test for successful deletion\r","pm.test(\"Status code is 200 for successful deletion\", function () {\r","    pm.response.to.have.status(200);\r","});\r","\r","\r","// Response content test for successful deletion\r","pm.test(\"Response contains message confirming deletion\", function () {\r","    pm.expect(pm.response.json()).to.have.property(\"message\", \"Classroom deleted successfully\");\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"a0f8013f-6490-4674-b545-fdd0449029d4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"http://localhost:8080/api/v1/classrooms/65f9557b20708269b3830262","urlObject":{"protocol":"http","port":"8080","path":["api","v1","classrooms","65f9557b20708269b3830262"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"1b3c9fa8-e74c-4c52-a5a9-10dc7a00ed18","name":"New Request","originalRequest":{"method":"DELETE","header":[],"url":"http://localhost:8080/api/v1/classrooms/65f9557b20708269b3830262"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"44","enabled":true},{"key":"ETag","value":"W/\"2c-5vfu+lGtd6LwEr3shL5pYDCVzIQ\"","enabled":true},{"key":"Date","value":"Fri, 22 Mar 2024 22:15:43 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Classroom deleted successfully\"\n}"}],"_postman_id":"a0f8013f-6490-4674-b545-fdd0449029d4"}],"id":"cd1d7b11-10d5-4d42-b9bf-729e76e0f796","_postman_id":"cd1d7b11-10d5-4d42-b9bf-729e76e0f796","description":""},{"name":"Resources","item":[{"name":"Create New Resources","event":[{"listen":"test","script":{"id":"9450a7fd-c7b6-406d-b6f1-32566540c9f7","exec":["// Status code test for successful creation\r","pm.test(\"Status code is 201 for successful creation\", function () {\r","    pm.response.to.have.status(201);\r","});\r","\r","\r","// Response content test for successful creation\r","pm.test(\"Response contains newly created resource object\", function () {\r","    pm.expect(pm.response.json()).to.be.an(\"object\").and.to.have.property(\"_id\");\r","    // Add more assertions based on the structure of the resource object if needed\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"4b55d4ce-147c-406e-8822-15f71da0041e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"Desktop\",\r\n    \"quantity\": 25\r\n  }","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/resources","urlObject":{"protocol":"http","port":"8080","path":["api","v1","resources"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"b35b0a48-59ab-4352-b34e-28a2f62a9dac","name":"New Request","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"Laptop\",\r\n    \"quantity\": 10\r\n  }","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/resources"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"72","enabled":true},{"key":"ETag","value":"W/\"48-QRToue9SpIUp+nrWmRaGnOqkNzk\"","enabled":true},{"key":"Date","value":"Fri, 22 Mar 2024 22:19:48 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"name\": \"Laptop\",\n    \"quantity\": 10,\n    \"_id\": \"65fe0404605bc533cee82ce5\",\n    \"__v\": 0\n}"}],"_postman_id":"4b55d4ce-147c-406e-8822-15f71da0041e"},{"name":"Get Resources by ID","event":[{"listen":"test","script":{"id":"cf5e3792-f989-4607-bba1-936fe89d98cc","exec":["// Status code test for successful retrieval\r","pm.test(\"Status code is 200 for successful retrieval\", function () {\r","    pm.response.to.have.status(200);\r","});\r","\r","\r","// Response content test for successful retrieval\r","pm.test(\"Response contains retrieved resource object\", function () {\r","    pm.expect(pm.response.json()).to.be.an(\"object\").and.to.have.property(\"_id\");\r","    // Add more assertions based on the structure of the resource object if needed\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"bd17df44-e39c-46e5-aafa-f47b06262b06","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/resources/65fe0404605bc533cee82ce5","urlObject":{"protocol":"http","port":"8080","path":["api","v1","resources","65fe0404605bc533cee82ce5"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"7733a9ad-a4d6-4797-ab02-9512e9b61516","name":"New Request","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/resources/65fe0404605bc533cee82ce5"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"72","enabled":true},{"key":"ETag","value":"W/\"48-ru6vP8wBkgwPyUSurJ6/B3F5QX8\"","enabled":true},{"key":"Date","value":"Fri, 22 Mar 2024 22:22:15 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"_id\": \"65fe0404605bc533cee82ce5\",\n    \"name\": \"Laptop\",\n    \"quantity\": 10,\n    \"__v\": 0\n}"}],"_postman_id":"bd17df44-e39c-46e5-aafa-f47b06262b06"},{"name":"Update Resource by ID","event":[{"listen":"test","script":{"id":"d8ea34f5-df0b-4e95-9f6c-37d458c550c3","exec":["// Status code test for successful update\r","pm.test(\"Status code is 200 for successful update\", function () {\r","    pm.response.to.have.status(200);\r","});\r","\r","// Response content test for successful update\r","pm.test(\"Response contains updated resource object\", function () {\r","    pm.expect(pm.response.json()).to.be.an(\"object\").and.to.have.property(\"_id\");\r","    // Add more assertions based on the structure of the resource object if needed\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"4861151d-aa0b-4fcf-b61c-29ed1e10d653","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"Laptop\",\r\n    \"quantity\": 20\r\n  }","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/resources/65fe0404605bc533cee82ce5","urlObject":{"protocol":"http","port":"8080","path":["api","v1","resources","65fe0404605bc533cee82ce5"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"41c55c38-c034-4208-a7e5-9bf68d5b077e","name":"Update Resource by ID","originalRequest":{"method":"PATCH","header":[],"url":""},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"72","enabled":true},{"key":"ETag","value":"W/\"48-rmMYV5EIX39CkV/49oxgkt3y0+M\"","enabled":true},{"key":"Date","value":"Fri, 22 Mar 2024 22:24:22 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"_id\": \"65fe0404605bc533cee82ce5\",\n    \"name\": \"Laptop\",\n    \"quantity\": 20,\n    \"__v\": 0\n}"}],"_postman_id":"4861151d-aa0b-4fcf-b61c-29ed1e10d653"},{"name":"Delete Resource by ID","event":[{"listen":"test","script":{"id":"7fdd3178-d895-4e50-98c0-6b158d7d00fb","exec":["// Status code test for successful deletion\r","pm.test(\"Status code is 200 for successful deletion\", function () {\r","    pm.response.to.have.status(200);\r","});\r","\r","// Response content test for successful deletion\r","pm.test(\"Response contains message confirming deletion\", function () {\r","    pm.expect(pm.response.json()).to.have.property(\"message\", \"Resource deleted successfully\");\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"3c0ac403-f28f-4b7b-be5d-686c9330b7f0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"http://localhost:8080/api/v1/resources/65fdd75659498d040286f85d","urlObject":{"protocol":"http","port":"8080","path":["api","v1","resources","65fdd75659498d040286f85d"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"68f42043-5cca-4b18-ba76-4518c7c07363","name":"New Request","originalRequest":{"method":"DELETE","header":[],"url":"http://localhost:8080/api/v1/resources/65fdd75659498d040286f85d"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"43","enabled":true},{"key":"ETag","value":"W/\"2b-atsWuEgn1vrf8cvhphNHNXAyzHA\"","enabled":true},{"key":"Date","value":"Fri, 22 Mar 2024 22:26:09 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Resource deleted successfully\"\n}"}],"_postman_id":"3c0ac403-f28f-4b7b-be5d-686c9330b7f0"}],"id":"ec1bc1b1-ebda-4ac3-afe1-7d472f533452","_postman_id":"ec1bc1b1-ebda-4ac3-afe1-7d472f533452","description":""},{"name":"Bookings","item":[{"name":"Create A booking","event":[{"listen":"test","script":{"id":"6b5e72b8-9921-4d87-b61a-4a21c75f864e","exec":["// Status code test for successful booking creation\r","pm.test(\"Status code is 200 for successful booking creation\", function () {\r","    pm.response.to.have.status(200);\r","});\r","\r","// Status code test for classroom not found\r","pm.test(\"Status code is 404 when classroom is not found\", function () {\r","    pm.response.to.have.status(404);\r","});\r","\r","// Status code test for resource not found\r","pm.test(\"Status code is 404 when resource is not found\", function () {\r","    pm.response.to.have.status(404);\r","});\r","\r","// Status code test for resources exceeding classroom capacity\r","pm.test(\"Status code is 400 when resources exceed classroom capacity\", function () {\r","    pm.response.to.have.status(400);\r","});\r","\r","// Status code test for scheduling conflict with existing booking\r","pm.test(\"Status code is 400 when there is a scheduling conflict with existing booking\", function () {\r","    pm.response.to.have.status(400);\r","});\r","\r","// Response content test for successful booking creation\r","pm.test(\"Response contains message confirming booking creation and booking details\", function () {\r","    pm.expect(pm.response.json()).to.have.property(\"message\", \"Booking created successfully\");\r","    pm.expect(pm.response.json()).to.have.property(\"booking\");\r","    pm.expect(pm.response.json().booking).to.be.an(\"object\").and.to.have.property(\"_id\");\r","    // Add more assertions based on the structure of the booking object if needed\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"417661d7-6dec-45fb-b817-4bcac1907538","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"classroomID\": \"65fe07ae3965e8cef983a622\", // Replace with a valid Classroom ObjectId\r\n    \"resources\": [\"65fe07d93965e8cef983a626\", \"65fe07c63965e8cef983a624\"], // Replace with valid Resource ObjectIds\r\n    \"date\": \"2024-04-01\",\r\n    \"startTime\": \"09:00 AM\",\r\n    \"endTime\": \"12:00 PM\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/bookings","description":"<ul>\n<li><strong>Validations</strong></li>\n</ul>\n<p><strong>Check if classroom exists.</strong></p>\n<p>Calculate total capacity of selected resources.</p>\n<p>Check if total resource capacity exceeds classroom capacity.</p>\n<p>Check if classroom is already booked for the specified date and time.</p>\n<p>Check if any of the resources are already booked for the specified date and time.</p>\n","urlObject":{"protocol":"http","port":"8080","path":["api","v1","bookings"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"168c899b-4a09-4b3f-8ee4-f393cf56a741","name":"New Request","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"classroomID\": \"65fe07ae3965e8cef983a622\", // Replace with a valid Classroom ObjectId\r\n    \"resources\": [\"65fe07d93965e8cef983a626\", \"65fe07c63965e8cef983a624\"], // Replace with valid Resource ObjectIds\r\n    \"date\": \"2024-04-01\",\r\n    \"startTime\": \"09:00 AM\",\r\n    \"endTime\": \"12:00 PM\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/bookings"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"280","enabled":true},{"key":"ETag","value":"W/\"118-Y4N3gnHP7wqgu/7WV9SqqqIGaDA\"","enabled":true},{"key":"Date","value":"Fri, 22 Mar 2024 22:45:19 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Booking created successfully\",\n    \"booking\": {\n        \"classroom\": \"65fe07ae3965e8cef983a622\",\n        \"resources\": [\n            \"65fe07d93965e8cef983a626\",\n            \"65fe07c63965e8cef983a624\"\n        ],\n        \"date\": \"2024-04-01T00:00:00.000Z\",\n        \"startTime\": \"09:00 AM\",\n        \"endTime\": \"12:00 PM\",\n        \"_id\": \"65fe09ff3965e8cef983a638\",\n        \"__v\": 0\n    }\n}"}],"_postman_id":"417661d7-6dec-45fb-b817-4bcac1907538"},{"name":"Read booking by ID","event":[{"listen":"test","script":{"id":"c2a9363d-b36d-4fac-8507-bf9ae7802cdb","exec":["// Status code test for successful retrieval\r","pm.test(\"Status code is 200 for successful retrieval\", function () {\r","    pm.response.to.have.status(200);\r","});\r","\r","\r","\r","// Response content test for successful retrieval\r","pm.test(\"Response contains retrieved booking object\", function () {\r","    pm.expect(pm.response.json()).to.be.an(\"object\").and.to.have.property(\"_id\");\r","    // Add more assertions based on the structure of the booking object if needed\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"32ffb247-a633-4d68-a825-60a45973377d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/bookings/65fe09ff3965e8cef983a638","urlObject":{"protocol":"http","port":"8080","path":["api","v1","bookings","65fe09ff3965e8cef983a638"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"0772e5bc-ed3d-4a1c-a43d-0237b929e762","name":"New Request","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/bookings/65fe09ff3965e8cef983a638"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"227","enabled":true},{"key":"ETag","value":"W/\"e3-b7pGb7GhgmYdm8I4oikh9CaILKI\"","enabled":true},{"key":"Date","value":"Fri, 22 Mar 2024 22:52:03 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"_id\": \"65fe09ff3965e8cef983a638\",\n    \"classroom\": \"65fe07ae3965e8cef983a622\",\n    \"resources\": [\n        \"65fe07d93965e8cef983a626\",\n        \"65fe07c63965e8cef983a624\"\n    ],\n    \"date\": \"2024-04-01T00:00:00.000Z\",\n    \"startTime\": \"09:00 AM\",\n    \"endTime\": \"12:00 PM\",\n    \"__v\": 0\n}"}],"_postman_id":"32ffb247-a633-4d68-a825-60a45973377d"},{"name":"Update Booking by ID","event":[{"listen":"test","script":{"id":"f9436c6b-3142-47dd-8513-84dce1751739","exec":["// Status code test for successful update\r","pm.test(\"Status code is 200 for successful update\", function () {\r","    pm.response.to.have.status(200);\r","});\r","\r","// Status code test when booking is not found\r","pm.test(\"Status code is 404 when booking is not found\", function () {\r","    pm.response.to.have.status(404);\r","});\r","\r","// Status code test for classroom not found\r","pm.test(\"Status code is 404 when classroom is not found\", function () {\r","    pm.response.to.have.status(404);\r","});\r","\r","// Status code test for resource not found\r","pm.test(\"Status code is 404 when resource is not found\", function () {\r","    pm.response.to.have.status(404);\r","});\r","\r","// Status code test for resources exceeding classroom capacity\r","pm.test(\"Status code is 400 when resources exceed classroom capacity\", function () {\r","    pm.response.to.have.status(400);\r","});\r","\r","// Status code test for scheduling conflict with existing booking\r","pm.test(\"Status code is 400 when there is a scheduling conflict with existing booking\", function () {\r","    pm.response.to.have.status(400);\r","});\r","\r","// Response content test for successful update\r","pm.test(\"Response contains updated booking object\", function () {\r","    pm.expect(pm.response.json()).to.be.an(\"object\").and.to.have.property(\"_id\");\r","    // Add more assertions based on the structure of the updated booking object if needed\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"90735d96-7651-4100-b766-3bcefb6418de","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"classroomID\": \"65fe07ae3965e8cef983a622\", // Replace with a valid Classroom ObjectId\r\n    \"resources\": [\"65fe07d93965e8cef983a626\", \"65fe07c63965e8cef983a624\"], // Replace with valid Resource ObjectIds\r\n    \"date\": \"2024-04-01\",\r\n    \"startTime\": \"08:30 AM\",\r\n    \"endTime\": \"12:00 PM\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/bookings/65fe09ff3965e8cef983a638","urlObject":{"protocol":"http","port":"8080","path":["api","v1","bookings","65fe09ff3965e8cef983a638"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"ad2e6692-69cc-48ee-bb1d-3d5371b32074","name":"New Request","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"classroomID\": \"65fe07ae3965e8cef983a622\", // Replace with a valid Classroom ObjectId\r\n    \"resources\": [\"65fe07d93965e8cef983a626\", \"65fe07c63965e8cef983a624\"], // Replace with valid Resource ObjectIds\r\n    \"date\": \"2024-04-01\",\r\n    \"startTime\": \"08:30 AM\",\r\n    \"endTime\": \"12:00 PM\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/bookings/65fe09ff3965e8cef983a638"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"227","enabled":true},{"key":"ETag","value":"W/\"e3-FC52BbDfYDGqWSa9v9PG2QKaAdg\"","enabled":true},{"key":"Date","value":"Fri, 22 Mar 2024 22:54:24 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"_id\": \"65fe09ff3965e8cef983a638\",\n    \"classroom\": \"65fe07ae3965e8cef983a622\",\n    \"resources\": [\n        \"65fe07d93965e8cef983a626\",\n        \"65fe07c63965e8cef983a624\"\n    ],\n    \"date\": \"2024-04-01T00:00:00.000Z\",\n    \"startTime\": \"08:30 AM\",\n    \"endTime\": \"12:00 PM\",\n    \"__v\": 0\n}"}],"_postman_id":"90735d96-7651-4100-b766-3bcefb6418de"},{"name":"Delete Booking by ID","id":"e5dade3e-bf07-4b7f-8668-f85d27e67eb6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"http://localhost:8080/api/v1/bookings/65f9582012d539e4f8faf8d0","urlObject":{"protocol":"http","port":"8080","path":["api","v1","bookings","65f9582012d539e4f8faf8d0"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"c13e124d-fee8-4ff9-9783-2b5524621b6e","name":"New Request","originalRequest":{"method":"DELETE","header":[],"url":"http://localhost:8080/api/v1/bookings/65f9582012d539e4f8faf8d0"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"42","enabled":true},{"key":"ETag","value":"W/\"2a-gVcEEnK8+lEWo3IHFtPL/zRKQgM\"","enabled":true},{"key":"Date","value":"Fri, 22 Mar 2024 22:56:01 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Booking deleted successfully\"\n}"}],"_postman_id":"e5dade3e-bf07-4b7f-8668-f85d27e67eb6"}],"id":"bb414785-ec8a-4cd7-921e-3b01f741b9a8","_postman_id":"bb414785-ec8a-4cd7-921e-3b01f741b9a8","description":""}],"id":"2e6fcafe-c180-44d5-8f8b-f92e3e0ce480","description":"<ul>\n<li><p><strong>Validations</strong></p>\n</li>\n<li><p>Check if total resource capacity exceeds classroom capacity.</p>\n</li>\n<li><p>Check if classroom is already booked for the specified date and time.</p>\n</li>\n<li><p>Check if any of the resources are already booked for the specified date and time.</p>\n</li>\n</ul>\n","_postman_id":"2e6fcafe-c180-44d5-8f8b-f92e3e0ce480"},{"name":"Student Enrollment","item":[{"name":"Create Enrollments","event":[{"listen":"test","script":{"id":"b78d0d0c-d61b-499b-b79c-d1691ca58de0","exec":["// Status code test for successful enrollment\r","pm.test(\"Status code is 201 for successful enrollment\", function () {\r","    pm.response.to.have.status(201);\r","});\r","\r","// Status code test for missing authentication\r","pm.test(\"Status code is 401 when not authenticated\", function () {\r","    pm.response.to.have.status(401);\r","});\r","\r","// Status code test for invalid request body\r","pm.test(\"Status code is 400 for invalid request body\", function () {\r","    pm.response.to.have.status(400);\r","});\r","\r","// Response content test for successful enrollment\r","pm.test(\"Response contains enrollment object\", function () {\r","    pm.expect(pm.response.json()).to.be.an(\"object\").and.to.have.property(\"_id\");\r","    // Add more assertions based on the structure of the enrollment object if needed\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"48da93d7-1e77-446e-bccb-84b6b6f5c544","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{vault:json-web-token}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"studentId\": \"65fde9eea1ae1df79aee9978\", // Replace with a valid User ObjectId representing the student\r\n    \"courseId\": \"65fdf699a1ae1df79aee99a8\" // Replace with a valid Course ObjectId\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/enrollments","urlObject":{"protocol":"http","port":"8080","path":["api","v1","enrollments"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"1880d5f3-2fd9-4154-b15c-f2d808439ce4","name":"Enrollment","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{vault:json-web-token}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"studentId\": \"65fde9eea1ae1df79aee9978\", // Replace with a valid User ObjectId representing the student\r\n    \"courseId\": \"65fdf58ba1ae1df79aee9998\" // Replace with a valid Course ObjectId\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/enrollments"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"164","enabled":true},{"key":"ETag","value":"W/\"a4-4Ig/LhZw7YRXq528+MdF9TtGjfw\"","enabled":true},{"key":"Date","value":"Fri, 22 Mar 2024 23:04:50 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Enrollment successful\",\n    \"enrollment\": {\n        \"student\": \"65fde9eea1ae1df79aee9978\",\n        \"course\": \"65fdf58ba1ae1df79aee9998\",\n        \"_id\": \"65fe0e927d8c22c89ccf457e\",\n        \"__v\": 0\n    }\n}"}],"_postman_id":"48da93d7-1e77-446e-bccb-84b6b6f5c544"},{"name":"Delete Student Enrollment Access for Faculty and Admin","event":[{"listen":"test","script":{"id":"1e41149e-4801-4852-961d-49ff7b13361d","exec":["pm.test(\"Status code is 200 OK\", function () {\r","    pm.response.to.have.status(200);\r","});\r","\r","pm.test(\"Response should contain valid JSON\", function () {\r","    pm.response.to.have.jsonBody();\r","});\r","\r","pm.test(\"Enrollment removed successfully\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData).to.have.property('message', 'Enrollment removed successfully');\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"57bb1a82-72a7-426e-8cef-413fa5b59d30","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Authorization","value":"","type":"text"}],"url":"http://localhost:8080/api/v1/enrollments/65fe0fb47d8c22c89ccf458c","urlObject":{"protocol":"http","port":"8080","path":["api","v1","enrollments","65fe0fb47d8c22c89ccf458c"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"57bb1a82-72a7-426e-8cef-413fa5b59d30"},{"name":"Get Enrollments Access only for Faculty and Admin","event":[{"listen":"test","script":{"id":"80dcfbae-4dbe-49f7-a918-810b51c154e5","exec":["pm.test(\"Status code is 200 OK\", function () {\r","    pm.response.to.have.status(200);\r","});\r","\r","pm.test(\"Response should contain valid JSON\", function () {\r","    pm.response.to.have.jsonBody();\r","});\r","\r","pm.test(\"Enrollments array is not empty\", function () {\r","    var jsonData = pm.response.json();\r","    pm.expect(jsonData).to.be.an('array').that.is.not.empty;\r","});\r","\r","pm.test(\"Get all student enrollments for admins and faculty\", function () {\r","    // Assert response status is 200 OK\r","    pm.response.to.have.status(200);\r","\r","    // Parse response body\r","    const responseBody = pm.response.json();\r","\r","    // Assert response body is not empty\r","    pm.expect(responseBody).to.not.be.empty;\r","\r","    // Assert response body is an array\r","    pm.expect(responseBody).to.be.an('array');\r","\r","    // Assert each enrollment object has 'student' and 'course' properties\r","    responseBody.forEach(enrollment => {\r","        pm.expect(enrollment).to.have.property('student');\r","        pm.expect(enrollment).to.have.property('course');\r","    });\r","});\r","\r",""],"type":"text/javascript","packages":{}}}],"id":"204ee7db-d032-42ce-b12e-831a9a710845","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{vault:json-web-token}}","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/enrollments/","urlObject":{"protocol":"http","port":"8080","path":["api","v1","enrollments",""],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"112c038d-ce1a-47aa-bc66-212417f46233","name":"Get Enrollments Access only for Faculty and Admin","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{vault:json-web-token}}","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/enrollments/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"3237","enabled":true},{"key":"ETag","value":"W/\"ca5-/eVYSpf0x599VBpYk20lHsHLev8\"","enabled":true},{"key":"Date","value":"Sun, 24 Mar 2024 08:33:15 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"_id\": \"65fe0e927d8c22c89ccf457e\",\n        \"student\": {\n            \"_id\": \"65fde9eea1ae1df79aee9978\",\n            \"firstName\": \"vishwa\",\n            \"lastName\": \"udayantha\",\n            \"email\": \"vishwa.u@example.com\",\n            \"password\": \"$2b$10$zreP1rX0WomXLrI7F8CMAu6gjesoMBnqxVGAXWKoegkAVbQb8k0uG\",\n            \"role\": \"Student\",\n            \"__v\": 0\n        },\n        \"course\": {\n            \"_id\": \"65fdf58ba1ae1df79aee9998\",\n            \"name\": \"Web Development\",\n            \"code\": \"WD123\",\n            \"description\": \"Web Development\",\n            \"credits\": 4,\n            \"__v\": 0\n        },\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"65fe0ec17d8c22c89ccf4580\",\n        \"student\": {\n            \"_id\": \"65fde9eea1ae1df79aee9978\",\n            \"firstName\": \"vishwa\",\n            \"lastName\": \"udayantha\",\n            \"email\": \"vishwa.u@example.com\",\n            \"password\": \"$2b$10$zreP1rX0WomXLrI7F8CMAu6gjesoMBnqxVGAXWKoegkAVbQb8k0uG\",\n            \"role\": \"Student\",\n            \"__v\": 0\n        },\n        \"course\": {\n            \"_id\": \"65fdf620a1ae1df79aee999e\",\n            \"name\": \"Operating Systems\",\n            \"code\": \"OS123\",\n            \"description\": \"Operating Systems\",\n            \"credits\": 4,\n            \"__v\": 0\n        },\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"65fe0ece7d8c22c89ccf4582\",\n        \"student\": {\n            \"_id\": \"65fde9eea1ae1df79aee9978\",\n            \"firstName\": \"vishwa\",\n            \"lastName\": \"udayantha\",\n            \"email\": \"vishwa.u@example.com\",\n            \"password\": \"$2b$10$zreP1rX0WomXLrI7F8CMAu6gjesoMBnqxVGAXWKoegkAVbQb8k0uG\",\n            \"role\": \"Student\",\n            \"__v\": 0\n        },\n        \"course\": {\n            \"_id\": \"65fdf63fa1ae1df79aee99a0\",\n            \"name\": \"Artificial Intelligence\",\n            \"code\": \"AI123\",\n            \"description\": \"Artificial Intelligence\",\n            \"credits\": 4,\n            \"__v\": 0\n        },\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"65fe0ed87d8c22c89ccf4584\",\n        \"student\": {\n            \"_id\": \"65fde9eea1ae1df79aee9978\",\n            \"firstName\": \"vishwa\",\n            \"lastName\": \"udayantha\",\n            \"email\": \"vishwa.u@example.com\",\n            \"password\": \"$2b$10$zreP1rX0WomXLrI7F8CMAu6gjesoMBnqxVGAXWKoegkAVbQb8k0uG\",\n            \"role\": \"Student\",\n            \"__v\": 0\n        },\n        \"course\": {\n            \"_id\": \"65fdf655a1ae1df79aee99a2\",\n            \"name\": \"Cloud Computing\",\n            \"code\": \"CC123\",\n            \"description\": \"Cloud Computing\",\n            \"credits\": 4,\n            \"__v\": 0\n        },\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"65fe0f227d8c22c89ccf4586\",\n        \"student\": {\n            \"_id\": \"65fde9eea1ae1df79aee9978\",\n            \"firstName\": \"vishwa\",\n            \"lastName\": \"udayantha\",\n            \"email\": \"vishwa.u@example.com\",\n            \"password\": \"$2b$10$zreP1rX0WomXLrI7F8CMAu6gjesoMBnqxVGAXWKoegkAVbQb8k0uG\",\n            \"role\": \"Student\",\n            \"__v\": 0\n        },\n        \"course\": {\n            \"_id\": \"65fdf81ea1ae1df79aee99b2\",\n            \"name\": \"Computer Basics\",\n            \"code\": \"CB123\",\n            \"description\": \"Computer Basics\",\n            \"credits\": 4,\n            \"__v\": 0\n        },\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"65fe0f787d8c22c89ccf4588\",\n        \"student\": {\n            \"_id\": \"65fde9eea1ae1df79aee9978\",\n            \"firstName\": \"vishwa\",\n            \"lastName\": \"udayantha\",\n            \"email\": \"vishwa.u@example.com\",\n            \"password\": \"$2b$10$zreP1rX0WomXLrI7F8CMAu6gjesoMBnqxVGAXWKoegkAVbQb8k0uG\",\n            \"role\": \"Student\",\n            \"__v\": 0\n        },\n        \"course\": {\n            \"_id\": \"65fdf699a1ae1df79aee99a8\",\n            \"name\": \"Information Security\",\n            \"code\": \"IS123\",\n            \"description\": \"Information Security\",\n            \"credits\": 4,\n            \"__v\": 0\n        },\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"65fe0f9f7d8c22c89ccf458a\",\n        \"student\": {\n            \"_id\": \"65fde9eea1ae1df79aee9978\",\n            \"firstName\": \"vishwa\",\n            \"lastName\": \"udayantha\",\n            \"email\": \"vishwa.u@example.com\",\n            \"password\": \"$2b$10$zreP1rX0WomXLrI7F8CMAu6gjesoMBnqxVGAXWKoegkAVbQb8k0uG\",\n            \"role\": \"Student\",\n            \"__v\": 0\n        },\n        \"course\": {\n            \"_id\": \"65fdeec5a1ae1df79aee997c\",\n            \"name\": \"ITP\",\n            \"code\": \"ITP2023\",\n            \"description\": \"IT Project MERN\",\n            \"credits\": 4,\n            \"__v\": 0,\n            \"faculty\": \"Computing\"\n        },\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"65fe0fb47d8c22c89ccf458c\",\n        \"student\": {\n            \"_id\": \"65fde9eea1ae1df79aee9978\",\n            \"firstName\": \"vishwa\",\n            \"lastName\": \"udayantha\",\n            \"email\": \"vishwa.u@example.com\",\n            \"password\": \"$2b$10$zreP1rX0WomXLrI7F8CMAu6gjesoMBnqxVGAXWKoegkAVbQb8k0uG\",\n            \"role\": \"Student\",\n            \"__v\": 0\n        },\n        \"course\": {\n            \"_id\": \"65fdf699a1ae1df79aee99a8\",\n            \"name\": \"Information Security\",\n            \"code\": \"IS123\",\n            \"description\": \"Information Security\",\n            \"credits\": 4,\n            \"__v\": 0\n        },\n        \"__v\": 0\n    }\n]"}],"_postman_id":"204ee7db-d032-42ce-b12e-831a9a710845"},{"name":"Enrolled Student Can See Timetable","event":[{"listen":"test","script":{"id":"693c8e18-4510-455e-b189-b0dbf060c6fa","exec":["// Status code test for successful timetable retrieval\r","pm.test(\"Status code is 200 for successful timetable retrieval\", function () {\r","    pm.response.to.have.status(200);\r","});\r","\r","\r","\r","// Response content test for successful timetable retrieval\r","pm.test(\"Response contains timetable data\", function () {\r","    pm.expect(pm.response.json()).to.be.an(\"array\").and.to.have.lengthOf.above(0);\r","    // Add more assertions based on the structure of the timetable data if needed\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"89e94f0d-1f7a-4845-b1f1-c58733911b79","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{vault:json-web-token}}","type":"text"}],"url":"http://localhost:8080/api/v1/enrollments/timetable","urlObject":{"protocol":"http","port":"8080","path":["api","v1","enrollments","timetable"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"1c5bd108-56ce-41cc-96b2-7324098e1d86","name":"Enrolled Student Can See Timetable","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{vault:json-web-token}}","type":"text"}],"url":"http://localhost:8080/api/v1/enrollments/timetable"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"3212","enabled":true},{"key":"ETag","value":"W/\"c8c-JEo3dy1jCcI84m9IBz/p0dV6a88\"","enabled":true},{"key":"Date","value":"Fri, 22 Mar 2024 23:19:45 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"_id\": \"65fdfc39a1ae1df79aee99ea\",\n        \"year\": 2024,\n        \"semester\": \"Y3 Semester 1\",\n        \"Monday\": [\n            {\n                \"course\": \"65fdeec5a1ae1df79aee997c\",\n                \"type\": \"Lecture\",\n                \"deliveryMethod\": \"Hybrid\",\n                \"timeSlot\": \"08:30 - 11:00\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fdfd4ca1ae1df79aee9a33\"\n            }\n        ],\n        \"Tuesday\": [\n            {\n                \"course\": \"65fdf620a1ae1df79aee999e\",\n                \"type\": \"Lecture\",\n                \"deliveryMethod\": \"Physical\",\n                \"timeSlot\": \"09:00 - 11:00\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fdfd4ca1ae1df79aee9a34\"\n            },\n            {\n                \"course\": \"65fdf63fa1ae1df79aee99a0\",\n                \"type\": \"Lab\",\n                \"deliveryMethod\": \"Hybrid\",\n                \"timeSlot\": \"11:00 - 13:00\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fdfd4ca1ae1df79aee9a35\"\n            }\n        ],\n        \"Wednesday\": [\n            {\n                \"course\": \"65fdf655a1ae1df79aee99a2\",\n                \"type\": \"Lecture\",\n                \"deliveryMethod\": \"Physical\",\n                \"timeSlot\": \"09:00 - 11:00\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fdfd4ca1ae1df79aee9a36\"\n            },\n            {\n                \"course\": \"65fdf655a1ae1df79aee99a2\",\n                \"type\": \"Lab\",\n                \"deliveryMethod\": \"Hybrid\",\n                \"timeSlot\": \"11:00 - 13:00\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fdfd4ca1ae1df79aee9a37\"\n            },\n            {\n                \"course\": \"65fdf66fa1ae1df79aee99a4\",\n                \"type\": \"Lecture\",\n                \"deliveryMethod\": \"Online\",\n                \"timeSlot\": \"14:00 - 16:00\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fdfd4ca1ae1df79aee9a38\"\n            }\n        ],\n        \"Thursday\": [\n            {\n                \"course\": \"65fdf699a1ae1df79aee99a8\",\n                \"type\": \"Lecture\",\n                \"deliveryMethod\": \"Physical\",\n                \"timeSlot\": \"09:00 - 11:00\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fdfd4ca1ae1df79aee9a39\"\n            },\n            {\n                \"course\": \"65fdf699a1ae1df79aee99a8\",\n                \"type\": \"Lab\",\n                \"deliveryMethod\": \"Hybrid\",\n                \"timeSlot\": \"11:00 - 13:00\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fdfd4ca1ae1df79aee9a3a\"\n            }\n        ],\n        \"Friday\": [\n            {\n                \"course\": \"65fdf699a1ae1df79aee99a8\",\n                \"type\": \"Lecture\",\n                \"deliveryMethod\": \"Physical\",\n                \"timeSlot\": \"09:00 - 11:00\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fdfd4ca1ae1df79aee9a3b\"\n            },\n            {\n                \"course\": \"65fdf6aca1ae1df79aee99aa\",\n                \"type\": \"Lab\",\n                \"deliveryMethod\": \"Hybrid\",\n                \"timeSlot\": \"11:00 - 13:00\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fdfd4ca1ae1df79aee9a3c\"\n            },\n            {\n                \"course\": \"65fdf6aca1ae1df79aee99aa\",\n                \"type\": \"Lecture\",\n                \"deliveryMethod\": \"Online\",\n                \"timeSlot\": \"14:00 - 16:00\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fdfd4ca1ae1df79aee9a3d\"\n            }\n        ],\n        \"Saturday\": [\n            {\n                \"course\": \"65fdf58ba1ae1df79aee9998\",\n                \"type\": \"Lecture\",\n                \"deliveryMethod\": \"Physical\",\n                \"timeSlot\": \"09:00 - 11:00\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fdfd4ca1ae1df79aee9a3e\"\n            },\n            {\n                \"course\": \"65fdf58ba1ae1df79aee9998\",\n                \"type\": \"Lab\",\n                \"deliveryMethod\": \"Hybrid\",\n                \"timeSlot\": \"11:00 - 13:00\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fdfd4ca1ae1df79aee9a3f\"\n            },\n            {\n                \"course\": \"65fdf620a1ae1df79aee999e\",\n                \"type\": \"Lecture\",\n                \"deliveryMethod\": \"Online\",\n                \"timeSlot\": \"14:00 - 16:00\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fdfd4ca1ae1df79aee9a40\"\n            }\n        ],\n        \"Sunday\": [\n            {\n                \"course\": \"65fdf63fa1ae1df79aee99a0\",\n                \"type\": \"Lecture\",\n                \"deliveryMethod\": \"Physical\",\n                \"timeSlot\": \"09:00 - 11:00\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fdfd4ca1ae1df79aee9a41\"\n            },\n            {\n                \"course\": \"65fdf620a1ae1df79aee999e\",\n                \"type\": \"Lab\",\n                \"deliveryMethod\": \"Hybrid\",\n                \"timeSlot\": \"11:00 - 13:00\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fdfd4ca1ae1df79aee9a42\"\n            },\n            {\n                \"course\": \"65fdf63fa1ae1df79aee99a0\",\n                \"type\": \"Lab\",\n                \"deliveryMethod\": \"Online\",\n                \"timeSlot\": \"14:00 - 16:00\",\n                \"classroom\": \"65f9557b20708269b3830262\",\n                \"_id\": \"65fdfd4ca1ae1df79aee9a43\"\n            }\n        ],\n        \"__v\": 0\n    }\n]"}],"_postman_id":"89e94f0d-1f7a-4845-b1f1-c58733911b79"}],"id":"b2b852de-45f3-44b7-8eb0-c9cae2a5727d","description":"<ul>\n<li><p><strong>To delete and view all student enrollments (for admins and faculty) Need To Login as Admin or Faculty.</strong></p>\n</li>\n<li><p><strong>Enrolled Student Can get timetable for enrolled Courses.</strong></p>\n</li>\n<li><p>Enable students to enroll in courses and view their timetables.</p>\n</li>\n</ul>\n","_postman_id":"b2b852de-45f3-44b7-8eb0-c9cae2a5727d"},{"name":"Notifications and Alerts","item":[{"name":"Create a new Notification Access only for Admin and Faculty","event":[{"listen":"test","script":{"id":"2aef26bb-3e14-4f20-a549-89b516be19b3","exec":["// Status code test for successful notification creation\r","pm.test(\"Status code is 201 for successful notification creation\", function () {\r","    pm.response.to.have.status(201);\r","});\r","\r","// Status code test for unauthorized access\r","pm.test(\"Status code is 403 when user is not authorized\", function () {\r","    pm.response.to.have.status(403);\r","});\r","\r","// Response content test for successful notification creation\r","pm.test(\"Response contains notification data\", function () {\r","    pm.expect(pm.response.json()).to.have.property(\"message\", \"Notification Created Successfully\");\r","    pm.expect(pm.response.json()).to.have.property(\"notifications\").that.is.an(\"array\").and.to.have.lengthOf.above(0);\r","    // Add more assertions based on the structure of the notification data if needed\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"e70bb07d-09bc-4c0b-8497-d6bc98e40e16","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{vault:json-web-token}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"title\": \"Mid Term Examinations\",\r\n    \"message\": \"For All Students MID Examinations Staring From April 1st\",\r\n    \"type\": \"announcement\",\r\n    \"recipients\": [\"65fde9eea1ae1df79aee9978\", \"65fc72947ce407df48edc9b3\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/notifications","urlObject":{"protocol":"http","port":"8080","path":["api","v1","notifications"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"cf5bfd5c-78c0-413a-af20-6a0088df0be3","name":"Create a new Notification Access only for Admin and Faculty","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{vault:json-web-token}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"title\": \"Mid Term Examinations\",\r\n    \"message\": \"For All Students MID Examinations Staring From April 1st\",\r\n    \"type\": \"announcement\",\r\n    \"recipients\": [\"65fde9eea1ae1df79aee9978\", \"65fc72947ce407df48edc9b3\"]\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/v1/notifications"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"553","enabled":true},{"key":"ETag","value":"W/\"229-WYq0+ZJrZCsjuTKw1YC3+hF99Eo\"","enabled":true},{"key":"Date","value":"Fri, 22 Mar 2024 23:32:21 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Notification Created Successfully\",\n    \"notifications\": [\n        {\n            \"title\": \"Mid Term Examinations\",\n            \"message\": \"For All Students MID Examinations Staring From April 1st\",\n            \"type\": \"announcement\",\n            \"recipient\": \"65fde9eea1ae1df79aee9978\",\n            \"_id\": \"65fe15047d8c22c89ccf45a2\",\n            \"timestamp\": \"2024-03-22T23:32:20.601Z\",\n            \"__v\": 0\n        },\n        {\n            \"title\": \"Mid Term Examinations\",\n            \"message\": \"For All Students MID Examinations Staring From April 1st\",\n            \"type\": \"announcement\",\n            \"recipient\": \"65fc72947ce407df48edc9b3\",\n            \"_id\": \"65fe15047d8c22c89ccf45a4\",\n            \"timestamp\": \"2024-03-22T23:32:20.823Z\",\n            \"__v\": 0\n        }\n    ]\n}"}],"_postman_id":"e70bb07d-09bc-4c0b-8497-d6bc98e40e16"},{"name":"Get Notification by user ID","event":[{"listen":"test","script":{"id":"8354a087-0a0e-4ac4-89c7-84b0e6f3c949","exec":["pm.test(\"Get notifications for a specific user\", function () {\r","    // Assert response status is 200 OK\r","    pm.response.to.have.status(200);\r","\r","    // Parse response body\r","    const responseBody = pm.response.json();\r","\r","    // Assert response body is not empty\r","    pm.expect(responseBody).to.not.be.empty;\r","\r","    // Assert response body is an array\r","    pm.expect(responseBody).to.be.an('array');\r","\r","    // Assert each notification object has required properties\r","    responseBody.forEach(notification => {\r","        pm.expect(notification).to.have.property('recipient').that.is.a('string');\r","        pm.expect(notification).to.have.property('message').that.is.a('string');\r","        pm.expect(notification).to.have.property('timestamp').that.is.a('string');\r","    });\r","});\r","\r","pm.test(\"Notifications are sorted by timestamp in descending order\", function () {\r","    const responseBody = pm.response.json();\r","\r","    // Assert notifications are sorted by timestamp in descending order\r","    for (let i = 0; i < responseBody.length - 1; i++) {\r","        const currentTimestamp = new Date(responseBody[i].timestamp);\r","        const nextTimestamp = new Date(responseBody[i + 1].timestamp);\r","        pm.expect(currentTimestamp).to.be.at.least(nextTimestamp);\r","    }\r","});\r","\r","pm.test(\"Notifications belong to the specified user\", function () {\r","    // Extract user ID from the request URL\r","    const userId = pm.request.url.path[pm.request.url.path.length - 1];\r","\r","    const responseBody = pm.response.json();\r","\r","    // Assert all notifications belong to the specified user\r","    responseBody.forEach(notification => {\r","        pm.expect(notification.recipient).to.equal(userId);\r","    });\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"11ff13de-b1b0-4441-bbfe-228e9dc01bd4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/notifications/65fde9eea1ae1df79aee9978","urlObject":{"protocol":"http","port":"8080","path":["api","v1","notifications","65fde9eea1ae1df79aee9978"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"e4c52226-17e6-42dd-9b0c-94677166ff3b","name":"Get Notification by user ID","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/api/v1/notifications/65fde9eea1ae1df79aee9978"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Content-Type","value":"application/json; charset=utf-8","enabled":true},{"key":"Content-Length","value":"245","enabled":true},{"key":"ETag","value":"W/\"f5-OVMnDu/U5nQN5a6hmf67Ddu2Hsc\"","enabled":true},{"key":"Date","value":"Sun, 24 Mar 2024 08:49:58 GMT","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Keep-Alive","value":"timeout=5","enabled":true}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"_id\": \"65fe15047d8c22c89ccf45a2\",\n        \"title\": \"Mid Term Examinations\",\n        \"message\": \"For All Students MID Examinations Staring From April 1st\",\n        \"type\": \"announcement\",\n        \"recipient\": \"65fde9eea1ae1df79aee9978\",\n        \"timestamp\": \"2024-03-22T23:32:20.601Z\",\n        \"__v\": 0\n    }\n]"}],"_postman_id":"11ff13de-b1b0-4441-bbfe-228e9dc01bd4"},{"name":"update Notification Access only for Admin and Faculty","id":"b5b8e504-2206-42e8-8be1-45bef4407b25","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Authorization","value":"Bearer {{vault:json-web-token}}","type":"text"}],"url":"http://localhost:8080/api/v1/notifications65f9d3492e0349a46ebbdc1d","urlObject":{"protocol":"http","port":"8080","path":["api","v1","notifications65f9d3492e0349a46ebbdc1d"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"b5b8e504-2206-42e8-8be1-45bef4407b25"},{"name":"Delete enrollment","id":"96ec525e-b3cb-4b36-af33-3a15e82dc3fb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{vault:json-web-token}}","type":"text"}],"url":"http://localhost:8080/api/v1/notifications/65f9d3492e0349a46ebbdc1d","urlObject":{"protocol":"http","port":"8080","path":["api","v1","notifications","65f9d3492e0349a46ebbdc1d"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"96ec525e-b3cb-4b36-af33-3a15e82dc3fb"}],"id":"ea5058d0-5fe2-4f2a-a512-7156fb865da6","description":"<ul>\n<li><p>create a notification (accessible only by Admin and Faculty)</p>\n</li>\n<li><p>get notifications for a specific user Get notification by UserID</p>\n</li>\n<li><p>update a notification by ID (accessible only by Admin and Faculty)</p>\n</li>\n<li><p>delete a notification by ID (accessible only by Admin and Faculty)</p>\n</li>\n</ul>\n","_postman_id":"ea5058d0-5fe2-4f2a-a512-7156fb865da6"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":[""]}},{"listen":"test","script":{"type":"text/javascript","exec":[""]}}],"variable":[{"key":"token","value":""},{"key":"baseUrl","value":"https://postman-integration-testing.glitch.me/"}]}