{"info":{"_postman_id":"9f32ae4b-a76f-470c-963a-0be06465d424","name":"ITProjectManagementApp","description":"<html><head></head><body><p><strong>ITProjectManagemnetApp</strong> is a web application developed in the <strong>Node.js</strong> environment using the <strong>Express.js framework</strong>. It is designed to manage tasks within projects for development teams. The application allows users to create tasks, assign them to specific developers, manage their status and track their execution time.</p>\n<p><strong>Key functionalities:</strong></p>\n<ul>\n<li>Registration and login</li>\n<li>Project creation</li>\n<li>Task management</li>\n<li>Roles and permissions</li>\n<li>Automatic assignment of tasks to developers</li>\n</ul>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"33994095","collectionId":"9f32ae4b-a76f-470c-963a-0be06465d424","publishedId":"2sA3Bj9u4L","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"2F4273"},"publishDate":"2024-04-15T20:05:38.000Z"},"item":[{"name":"Authorization","item":[{"name":"Register Developer","event":[{"listen":"test","script":{"id":"0ec2a4ea-a5e3-4503-a2e8-33b58ccf91e5","exec":[""],"type":"text/javascript","packages":{}}}],"id":"23d959a5-279d-401e-b442-57d78a5f72e0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"projectId\": [],\r\n    \"first_name\": \"Karol\",\r\n    \"last_name\": \"Błaszczyk\",\r\n    \"email\": \"karolgmail.com\",\r\n    \"password\": \"password\",\r\n    \"specialization\": \"BACKEND\",\r\n    \"role\": \"admin\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:3000/register","description":"<h3 id=\"register-user\">Register User</h3>\n<p>This endpoint allows the client to register a new user.</p>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><code>projectId</code> (array): An array of project IDs.</li>\n<li><code>first_name</code> (string): The first name of the user.</li>\n<li><code>last_name</code> (string): The last name of the user.</li>\n<li><code>email</code> (string): The email address of the user.</li>\n<li><code>password</code> (string): The password for the user account.</li>\n<li><code>specialization</code> (string): The specialization of the user.</li>\n<li><code>role</code> (string): The role of the user.</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<ul>\n<li><code>status</code> (string): The status of the response.</li>\n<li><code>data</code> (array): An array containing user details including <code>projectId</code>, <code>first_name</code>, <code>last_name</code>, <code>email</code>, <code>password</code>, <code>specialization</code>, <code>role</code>, <code>_id</code>, <code>estimationStats</code>, and <code>__v</code>.</li>\n<li><code>message</code> (string): A message related to the response.</li>\n</ul>\n<p>Example Response:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"\",\n    \"data\": [\n        {\n            \"projectId\": [],\n            \"first_name\": \"\",\n            \"last_name\": \"\",\n            \"email\": \"\",\n            \"password\": \"\",\n            \"specialization\": \"\",\n            \"role\": \"\",\n            \"_id\": \"\",\n            \"estimationStats\": [],\n            \"__v\": 0\n        }\n    ],\n    \"message\": \"\"\n}\n\n</code></pre>\n","urlObject":{"port":"3000","path":["register"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"524a8f23-48fe-48ea-a728-f80016b41495","name":"Register Developer","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n\t\"projectId\":[],\r\n    \"first_name\": \"Dawid\",\r\n    \"last_name\": \"Błaszczyk\",\r\n    \"email\": \"dawid@gmail.com\",\r\n    \"password\": \"password\",\r\n\t\"specialization\": \"BACKEND\",\r\n    \"role\": \"admin\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:3000/register"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"387"},{"key":"ETag","value":"W/\"183-U3XZu05jMsieAk+uN63Cdc/iprA\""},{"key":"Date","value":"Mon, 15 Apr 2024 18:22:08 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"data\": [\n        {\n            \"projectId\": [],\n            \"first_name\": \"Dawid\",\n            \"last_name\": \"Błaszczyk\",\n            \"email\": \"dawid@gmail.com\",\n            \"password\": \"$2b$10$yrnzoxxx4fIzZuLtEetycO4PRiWsK73jLtTZ6upw2QfEzEpaT23Vu\",\n            \"specialization\": \"BACKEND\",\n            \"role\": \"admin\",\n            \"_id\": \"661d7050438e77e6f2431d40\",\n            \"estimationStats\": [],\n            \"__v\": 0\n        }\n    ],\n    \"message\": \"Thank you for registering with us. Your account has been successfully created.\"\n}"}],"_postman_id":"23d959a5-279d-401e-b442-57d78a5f72e0"},{"name":"Login Developer","id":"25523acb-97c0-48f2-9a5f-3c9c4bb0d54d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\": \"dawid@gmail.com\",\r\n    \"password\": \"password\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:3000/login","description":"<p>This endpoint allows users to log in via a POST request to localhost:3000/login. The request should include a JSON payload in the raw request body type with the user's email and password. Upon successful execution, the endpoint returns a JSON response with a status and a message.</p>\n<h3 id=\"request-body\">Request Body</h3>\n<ul>\n<li>email (text, required): The user's email.</li>\n<li>password (text, required): The user's password.</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<ul>\n<li>status (string): Indicates the status of the login attempt.</li>\n<li>message (string): Provides additional information about the login attempt.</li>\n</ul>\n<h4 id=\"example-response\">Example Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"\",\n    \"message\": \"\"\n}\n\n</code></pre>\n","urlObject":{"port":"3000","path":["login"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"e4bd99d0-9ea3-4d86-8480-b54925a73673","name":"Login Developer","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\": \"dawid@gmail.com\",\r\n    \"password\": \"password\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:3000/login"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Set-Cookie","value":"SessionID=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY2MWQ3MDUwNDM4ZTc3ZTZmMjQzMWQ0MCIsImlhdCI6MTcxMzIwNTU0NywiZXhwIjoxNzEzMjA2NzQ3fQ.hrSJNywFPqt6Hdpuy2OX4BjfY4kGt_cZRLF5oW6d1B0; Max-Age=1200; Path=/; Expires=Mon, 15 Apr 2024 18:45:47 GMT; HttpOnly; Secure; SameSite=None"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"65"},{"key":"ETag","value":"W/\"41-4UsNvgsO/79psMtP0lGe+NF7mSo\""},{"key":"Date","value":"Mon, 15 Apr 2024 18:25:47 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"You have successfully logged in.\"\n}"}],"_postman_id":"25523acb-97c0-48f2-9a5f-3c9c4bb0d54d"},{"name":"Logout Developer","id":"1e8ef0cc-cab4-44b8-a0d7-f076ad529bd3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"localhost:3000/logout","description":"<p>This endpoint sends an HTTP GET request to localhost:3000/logout. It returns a status code of 200 and a JSON response with a message key. Below are some examples of responses for this request:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"message\":\"\"}\n\n</code></pre>\n","urlObject":{"port":"3000","path":["logout"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"b75a2e9d-2d9c-4452-bfdd-8d88f09e74f2","name":"Logout Developer","originalRequest":{"method":"GET","header":[],"url":"localhost:3000/logout"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Set-Cookie","value":"SessionID=; Path=/; Expires=Thu, 01 Jan 1970 00:00:00 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"33"},{"key":"ETag","value":"W/\"21-T+lWEu4mFDgVrkhCufWsfYdANMY\""},{"key":"Date","value":"Mon, 15 Apr 2024 18:26:39 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"You are logged out!\"\n}"}],"_postman_id":"1e8ef0cc-cab4-44b8-a0d7-f076ad529bd3"},{"name":"Is Developer","id":"f5069a8d-962c-4438-82cc-541ad6373871","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"localhost:3000/isDeveloper","description":"<p>This endpoint sends an HTTP GET request to localhost:3000/isDeveloper to check if the user is a developer. The last execution returned a 401 status with a content type of text/plain, and the message \"Unauthorized\". The response body may include a status and message field, both of which are empty in the provided example.</p>\n","urlObject":{"port":"3000","path":["isDeveloper"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"19a25cdc-d736-4575-a6ee-7757797b90f9","name":"Is Developer","originalRequest":{"method":"GET","header":[],"url":"localhost:3000/isDeveloper"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"63"},{"key":"ETag","value":"W/\"3f-waOLBwqPmu2OFgT8LIfBpA27Q9k\""},{"key":"Date","value":"Mon, 15 Apr 2024 18:27:31 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"Welcome to the your Dashboard!\"\n}"},{"id":"80ed3bc4-d14c-48ac-b56b-963b0dad77cb","name":"Is Developer","originalRequest":{"method":"GET","header":[],"url":"localhost:3000/isDeveloper"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"plain","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"text/plain; charset=utf-8"},{"key":"Content-Length","value":"12"},{"key":"ETag","value":"W/\"c-dAuDFQrdjS3hezqxDTNgW7AOlYk\""},{"key":"Date","value":"Mon, 15 Apr 2024 18:27:44 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"Unauthorized"}],"_postman_id":"f5069a8d-962c-4438-82cc-541ad6373871"},{"name":"Is Admin","id":"2c841e72-8d00-4595-a330-b42593de5ce6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"localhost:3000/isAdmin","description":"<p>This endpoint is used to check if the user is an admin.</p>\n<p>The response will have a status code of 200 and a JSON body with the following parameters:</p>\n<ul>\n<li>status (string): Indicates the status of the user, whether they are an admin or not.</li>\n<li>message (string): Provides any additional message related to the user's admin status.</li>\n</ul>\n","urlObject":{"port":"3000","path":["isAdmin"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"9ae7c741-c291-46c7-98ab-ef45b9380af4","name":"Is Admin","originalRequest":{"method":"GET","header":[],"url":"localhost:3000/isAdmin"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"61"},{"key":"ETag","value":"W/\"3d-OoRfp2rLGwecf1gGq7lazpUI+3s\""},{"key":"Date","value":"Mon, 15 Apr 2024 18:28:14 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"Welcome to the Admin portal!\"\n}"}],"_postman_id":"2c841e72-8d00-4595-a330-b42593de5ce6"}],"id":"d9547dbc-515a-44f6-ad09-7db8d3d67982","description":"<h1 id=\"i-use-jwt-json-web-tokens-based-authorization\">I use JWT (JSON Web Tokens) based authorization.</h1>\n<p>It mainly comes down to two functions:</p>\n<ul>\n<li><strong>Verify</strong>:<ul>\n<li>Expects JWT token in cookie header.EndFragment</li>\n<li>Uses the jsonwebtoken module to verify the token.</li>\n<li>Retrieves the user from the database based on the ID decoded from the token.</li>\n<li>If the token is invalid or does not exist, it returns a 401 error.</li>\n</ul>\n</li>\n<li><strong>VerifyRole</strong>:<ul>\n<li>Checks if req.developer.role equals 'admin'.</li>\n<li>Returns a 401 error if the user is not an admin.</li>\n</ul>\n</li>\n</ul>\n<p>To receive a response from <strong>get endpoints</strong>, you must be logged in at least as <strong>developer</strong> (get/users exception). For <strong>other endpoints</strong> you must be logged in as <strong>admin</strong>.</p>\n","_postman_id":"d9547dbc-515a-44f6-ad09-7db8d3d67982"},{"name":"Users","item":[{"name":"All Users","id":"9dbc6d5e-67e8-44c0-87bb-ce374d82a3f2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"localhost:3000/users","description":"<p>This endpoint makes an HTTP GET request to localhost:3000/users to retrieve a list of users. The response will be in JSON format with a status code of 200. An example of the response body is as follows:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"result\": [\n        {\n            \"_id\": \"\",\n            \"projectId\": [],\n            \"first_name\": \"\",\n            \"last_name\": \"\",\n            \"email\": \"\",\n            \"specialization\": \"\",\n            \"role\": \"\",\n            \"estimationStats\": [],\n            \"__v\": 0\n        }\n    ]\n}\n\n</code></pre>\n<p>The \"result\" array contains user objects with attributes such as _id, projectId, first_name, last_name, email, specialization, role, estimationStats, and __v.</p>\n","urlObject":{"port":"3000","path":["users"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"e4f07075-e578-4375-99cc-96e791c94322","name":"All Users","originalRequest":{"method":"GET","header":[],"url":"localhost:3000/users"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"593"},{"key":"ETag","value":"W/\"251-vrSUrpr5NsltE0xAOKo7fDCwkho\""},{"key":"Date","value":"Mon, 15 Apr 2024 18:44:58 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": [\n        {\n            \"_id\": \"661d7557438e77e6f2431d61\",\n            \"projectId\": [],\n            \"first_name\": \"Jan\",\n            \"last_name\": \"Kowalski\",\n            \"email\": \"jan@gmail.com\",\n            \"specialization\": \"BACKEND\",\n            \"role\": \"developer\",\n            \"estimationStats\": [],\n            \"__v\": 0\n        },\n        {\n            \"_id\": \"661d7564438e77e6f2431d66\",\n            \"projectId\": [],\n            \"first_name\": \"Bartek\",\n            \"last_name\": \"Kowalski\",\n            \"email\": \"bartek@gmail.com\",\n            \"specialization\": \"BACKEND\",\n            \"role\": \"developer\",\n            \"estimationStats\": [],\n            \"__v\": 0\n        },\n        {\n            \"_id\": \"661d75a7438e77e6f2431d75\",\n            \"projectId\": [],\n            \"first_name\": \"Dawid\",\n            \"last_name\": \"Błaszczyk\",\n            \"email\": \"dawid@gmail.com\",\n            \"specialization\": \"BACKEND\",\n            \"role\": \"admin\",\n            \"estimationStats\": [],\n            \"__v\": 0\n        }\n    ]\n}"}],"_postman_id":"9dbc6d5e-67e8-44c0-87bb-ce374d82a3f2"},{"name":"Single User","id":"b4e7d943-d6dc-4096-96a7-77c5177f0cf4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"localhost:3000/user/:userId","description":"<h1 id=\"get-user-details\">Get User Details</h1>\n<p>This endpoint retrieves the details of a specific user identified by the <code>userId</code>.</p>\n<h2 id=\"request\">Request</h2>\n<h3 id=\"endpoint\">Endpoint</h3>\n<p><code>GET localhost:3000/user/:userId</code></p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><code>userId</code> (string) - The unique identifier of the user.</li>\n</ul>\n<h2 id=\"response\">Response</h2>\n<ul>\n<li>Status: 200 OK</li>\n<li>Content-Type: application/json</li>\n</ul>\n<p>Example response body:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"result\": {\n        \"_id\": \"\",\n        \"projectId\": [],\n        \"first_name\": \"\",\n        \"last_name\": \"\",\n        \"email\": \"\",\n        \"specialization\": \"\",\n        \"role\": \"\",\n        \"estimationStats\": [],\n        \"__v\": 0\n    }\n}\n\n</code></pre>\n","urlObject":{"port":"3000","path":["user",":userId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"661afcd4ca8d46d488e16848","key":"userId"}]}},"response":[{"id":"90adbccb-6487-4251-b158-063bb5dc1ce3","name":"Single User","originalRequest":{"method":"GET","header":[],"url":{"raw":"localhost:3000/user/:userId","host":["localhost"],"port":"3000","path":["user",":userId"],"variable":[{"key":"userId","value":"661d7557438e77e6f2431d61"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"201"},{"key":"ETag","value":"W/\"c9-Pl/QPVsP+igTXbk4ORzHMJEU2WU\""},{"key":"Date","value":"Mon, 15 Apr 2024 18:47:24 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": {\n        \"_id\": \"661d7557438e77e6f2431d61\",\n        \"projectId\": [],\n        \"first_name\": \"Jan\",\n        \"last_name\": \"Kowalski\",\n        \"email\": \"jan@gmail.com\",\n        \"specialization\": \"BACKEND\",\n        \"role\": \"developer\",\n        \"estimationStats\": [],\n        \"__v\": 0\n    }\n}"}],"_postman_id":"b4e7d943-d6dc-4096-96a7-77c5177f0cf4"},{"name":"Users by Specialization","id":"2355fdef-4e1c-4002-ae6b-b7b9d9dafa29","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"localhost:3000/users/:specialization","description":"<p>This endpoint retrieves a list of users based on their specialization. </p>\n<p>The response will be a JSON object with a \"result\" array containing user information such as _id, projectId, first_name, last_name, email, specialization, role, and estimationStats.</p>\n<p>Example response:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"result\": [\n        {\n            \"_id\": \"\",\n            \"projectId\": [],\n            \"first_name\": \"\",\n            \"last_name\": \"\",\n            \"email\": \"\",\n            \"specialization\": \"\",\n            \"role\": \"\",\n            \"estimationStats\": [],\n            \"__v\": 0\n        }\n    ]\n}\n</code></pre>\n","urlObject":{"port":"3000","path":["users",":specialization"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"backend","key":"specialization"}]}},"response":[{"id":"0a6187fe-8991-4efc-a0a4-3fd12c863638","name":"Users by Specialization","originalRequest":{"method":"GET","header":[],"url":{"raw":"localhost:3000/users/:specialization","host":["localhost"],"port":"3000","path":["users",":specialization"],"variable":[{"key":"specialization","value":"backend"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"593"},{"key":"ETag","value":"W/\"251-vrSUrpr5NsltE0xAOKo7fDCwkho\""},{"key":"Date","value":"Mon, 15 Apr 2024 18:48:10 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": [\n        {\n            \"_id\": \"661d7557438e77e6f2431d61\",\n            \"projectId\": [],\n            \"first_name\": \"Jan\",\n            \"last_name\": \"Kowalski\",\n            \"email\": \"jan@gmail.com\",\n            \"specialization\": \"BACKEND\",\n            \"role\": \"developer\",\n            \"estimationStats\": [],\n            \"__v\": 0\n        },\n        {\n            \"_id\": \"661d7564438e77e6f2431d66\",\n            \"projectId\": [],\n            \"first_name\": \"Bartek\",\n            \"last_name\": \"Kowalski\",\n            \"email\": \"bartek@gmail.com\",\n            \"specialization\": \"BACKEND\",\n            \"role\": \"developer\",\n            \"estimationStats\": [],\n            \"__v\": 0\n        },\n        {\n            \"_id\": \"661d75a7438e77e6f2431d75\",\n            \"projectId\": [],\n            \"first_name\": \"Dawid\",\n            \"last_name\": \"Błaszczyk\",\n            \"email\": \"dawid@gmail.com\",\n            \"specialization\": \"BACKEND\",\n            \"role\": \"admin\",\n            \"estimationStats\": [],\n            \"__v\": 0\n        }\n    ]\n}"}],"_postman_id":"2355fdef-4e1c-4002-ae6b-b7b9d9dafa29"},{"name":"User's Project's Tasks","id":"3f7d8dba-1f5f-480a-88a2-bd512a5158da","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"localhost:3000/user/:userId/project/:projectId/tasks","description":"<p>This endpoint retrieves the tasks associated with a specific project and user. It makes an HTTP GET request to localhost:3000/user/:userId/project/:projectId/tasks.</p>\n<p>The response to this request will have a status code of 200 and a content type of application/json. The response body will contain an array of task objects, with each object containing various properties such as _id, projectId, credentials, state, createdBy, dateRange, executionTime, createdAt, and __v.</p>\n<p>Here is an example of the response body:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"result\": [\n        {\n            \"_id\": \"\",\n            \"projectId\": \"\",\n            \"credentials\": {\n                \"name\": \"\",\n                \"assignedTo\": \"\",\n                \"estimation\": 0,\n                \"specialization\": \"\",\n                \"_id\": \"\"\n            },\n            \"state\": \"\",\n            \"createdBy\": \"\",\n            \"dateRange\": {\n                \"startDate\": \"\",\n                \"endDate\": \"\",\n                \"_id\": \"\"\n            },\n            \"executionTime\": null,\n            \"createdAt\": \"\",\n            \"__v\": 0\n        }\n    ]\n}\n\n</code></pre>\n","urlObject":{"port":"3000","path":["user",":userId","project",":projectId","tasks"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"661515a22f9a5fd2fa896dab","key":"userId"},{"type":"any","value":"6618528c76451aa6cf750c32","key":"projectId"}]}},"response":[{"id":"d51efe42-129b-428b-b267-5466a6185d17","name":"User's Project's Tasks","originalRequest":{"method":"GET","header":[],"url":{"raw":"localhost:3000/user/:userId/project/:projectId/tasks","host":["localhost"],"port":"3000","path":["user",":userId","project",":projectId","tasks"],"variable":[{"key":"userId","value":"661d7557438e77e6f2431d61"},{"key":"projectId","value":"661d79c08884860578f5ba21"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"499"},{"key":"ETag","value":"W/\"1f3-NsqJYYe+9jLgPk+t21FLIxrQiZU\""},{"key":"Date","value":"Mon, 15 Apr 2024 19:53:39 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": [\n        {\n            \"_id\": \"661d7c6aaef84bd15bc6eeea\",\n            \"projectId\": \"661d79c08884860578f5ba21\",\n            \"credentials\": {\n                \"name\": \"Implement new API endpoint\",\n                \"assignedTo\": \"661d7557438e77e6f2431d61\",\n                \"estimation\": 13,\n                \"specialization\": \"BACKEND\",\n                \"_id\": \"661d7c6aaef84bd15bc6eeeb\"\n            },\n            \"state\": \"OPEN\",\n            \"createdBy\": \"661d7557438e77e6f2431d61\",\n            \"dateRange\": {\n                \"startDate\": \"2024-02-01T00:00:00.000Z\",\n                \"endDate\": \"2024-04-15T00:00:00.000Z\",\n                \"_id\": \"661d7c6aaef84bd15bc6eeec\"\n            },\n            \"executionTime\": null,\n            \"createdAt\": \"2024-04-15T19:13:46.231Z\",\n            \"__v\": 0\n        }\n    ]\n}"}],"_postman_id":"3f7d8dba-1f5f-480a-88a2-bd512a5158da"},{"name":"User's Projects","id":"5fb38e0f-7451-4145-a4c9-1b72f32ef289","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"localhost:3000/user/:userId/projects","description":"<h1 id=\"get-user-projects\">Get User Projects</h1>\n<p>This endpoint retrieves the projects associated with a specific user.</p>\n<h3 id=\"request\">Request</h3>\n<p><code>GET localhost:3000/user/:userId/projects</code></p>\n<h3 id=\"response\">Response</h3>\n<ul>\n<li>Status: 200</li>\n<li>Content-Type: application/json</li>\n</ul>\n<p>Example response body:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"_id\": \"\",\n        \"developerID\": \"\",\n        \"projectCredentials\": {\n            \"name\": \"\",\n            \"developers\": [\"\"],\n            \"_id\": \"\"\n        },\n        \"description\": \"\",\n        \"status\": \"\",\n        \"priority\": \"\",\n        \"__v\": 0\n    }\n]\n\n</code></pre>\n","urlObject":{"port":"3000","path":["user",":userId","projects"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"661515a22f9a5fd2fa896dab","key":"userId"}]}},"response":[{"id":"99649e23-643a-4e6d-8576-c40c2368581b","name":"User's Projects","originalRequest":{"method":"GET","header":[],"url":{"raw":"localhost:3000/user/:userId/projects","host":["localhost"],"port":"3000","path":["user",":userId","projects"],"variable":[{"key":"userId","value":"661d7564438e77e6f2431d66"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"383"},{"key":"ETag","value":"W/\"17f-FgndT8u4hTT4npSvCnzr3fhWptQ\""},{"key":"Date","value":"Mon, 15 Apr 2024 19:27:47 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"_id\": \"661d79c08884860578f5ba21\",\n        \"developerID\": \"661d7564438e77e6f2431d66\",\n        \"projectCredentials\": {\n            \"name\": \"Projekt Beta\",\n            \"developers\": [\n                \"661d75a7438e77e6f2431d75\",\n                \"661d7557438e77e6f2431d61\",\n                \"661d7564438e77e6f2431d66\"\n            ],\n            \"_id\": \"661d79c08884860578f5ba22\"\n        },\n        \"description\": \"To jest przykładowy projekt Beta, który służy jako demonstracja.\",\n        \"status\": \"Completed\",\n        \"priority\": \"High\",\n        \"__v\": 3\n    }\n]"}],"_postman_id":"5fb38e0f-7451-4145-a4c9-1b72f32ef289"},{"name":"User's Tasks","id":"a6b3a586-937f-4c57-806b-eb7b677499ca","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"localhost:3000/user/:userId/tasks","description":"<h1 id=\"get-user-tasks\">Get User Tasks</h1>\n<p>This endpoint retrieves the tasks associated with a specific user.</p>\n<h3 id=\"request\">Request</h3>\n<p><code>GET /user/:userId/tasks</code></p>\n<h3 id=\"response\">Response</h3>\n<ul>\n<li>Status: 200</li>\n<li>Content-Type: application/json</li>\n</ul>\n<p>Example response body:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"result\": [\n        {\n            \"_id\": \"\",\n            \"projectId\": \"\",\n            \"credentials\": {\n                \"name\": \"\",\n                \"assignedTo\": \"\",\n                \"estimation\": 0,\n                \"specialization\": \"\",\n                \"_id\": \"\"\n            },\n            \"state\": \"\",\n            \"createdBy\": \"\",\n            \"dateRange\": {\n                \"startDate\": \"\",\n                \"endDate\": \"\",\n                \"_id\": \"\"\n            },\n            \"executionTime\": null,\n            \"createdAt\": \"\",\n            \"__v\": 0\n        }\n    ]\n}\n\n</code></pre>\n","urlObject":{"port":"3000","path":["user",":userId","tasks"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"661515a22f9a5fd2fa896dab","key":"userId"}]}},"response":[{"id":"150753ea-5049-49b5-82e7-c24b869eb7d0","name":"User's Tasks","originalRequest":{"method":"GET","header":[],"url":{"raw":"localhost:3000/user/:userId/tasks","host":["localhost"],"port":"3000","path":["user",":userId","tasks"],"variable":[{"key":"userId","value":"661d7557438e77e6f2431d61"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"499"},{"key":"ETag","value":"W/\"1f3-NsqJYYe+9jLgPk+t21FLIxrQiZU\""},{"key":"Date","value":"Mon, 15 Apr 2024 19:52:57 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": [\n        {\n            \"_id\": \"661d7c6aaef84bd15bc6eeea\",\n            \"projectId\": \"661d79c08884860578f5ba21\",\n            \"credentials\": {\n                \"name\": \"Implement new API endpoint\",\n                \"assignedTo\": \"661d7557438e77e6f2431d61\",\n                \"estimation\": 13,\n                \"specialization\": \"BACKEND\",\n                \"_id\": \"661d7c6aaef84bd15bc6eeeb\"\n            },\n            \"state\": \"OPEN\",\n            \"createdBy\": \"661d7557438e77e6f2431d61\",\n            \"dateRange\": {\n                \"startDate\": \"2024-02-01T00:00:00.000Z\",\n                \"endDate\": \"2024-04-15T00:00:00.000Z\",\n                \"_id\": \"661d7c6aaef84bd15bc6eeec\"\n            },\n            \"executionTime\": null,\n            \"createdAt\": \"2024-04-15T19:13:46.231Z\",\n            \"__v\": 0\n        }\n    ]\n}"}],"_postman_id":"a6b3a586-937f-4c57-806b-eb7b677499ca"},{"name":"Update User","id":"49dc504c-0f81-4cf9-97e4-aca53ee56895","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"estimationStats\": [{}]\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:3000/user/:userId","description":"<h3 id=\"patch-useruserid\">PATCH /user/:userId</h3>\n<p>This endpoint is used to update the last name of a user with the specified userId.</p>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><code>last_name</code> (string, required): The updated last name of the user.</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<ul>\n<li>Status: 200 OK</li>\n<li>Content-Type: application/json</li>\n<li><code>msg</code> (string): A message indicating the success of the operation.</li>\n<li><code>developer</code> (object): An object containing the updated user details, including <code>_id</code>, <code>projectId</code>, <code>first_name</code>, <code>last_name</code>, <code>email</code>, <code>specialization</code>, <code>role</code>, and <code>estimationStats</code>.</li>\n</ul>\n<h4 id=\"example-response\">Example Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"msg\": \"\",\n    \"developer\": {\n        \"_id\": \"\",\n        \"projectId\": [],\n        \"first_name\": \"\",\n        \"last_name\": \"\",\n        \"email\": \"\",\n        \"specialization\": \"\",\n        \"role\": \"\",\n        \"estimationStats\": [],\n        \"__v\": 0\n    }\n}\n</code></pre>\n","urlObject":{"port":"3000","path":["user",":userId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"661afcd4ca8d46d488e16848","key":"userId"}]}},"response":[{"id":"58721465-5f2a-4597-bcd4-72410e226847","name":"Update User","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"last_name\":\"Nowak\"\r\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"localhost:3000/user/:userId","host":["localhost"],"port":"3000","path":["user",":userId"],"variable":[{"key":"userId","value":"661d7557438e77e6f2431d61"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"240"},{"key":"ETag","value":"W/\"f0-itJShXGaK7oO0QIGh6NC9OzWbZs\""},{"key":"Date","value":"Mon, 15 Apr 2024 19:09:43 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"msg\": \"Developer updated successfully\",\n    \"developer\": {\n        \"_id\": \"661d7557438e77e6f2431d61\",\n        \"projectId\": [],\n        \"first_name\": \"Jan\",\n        \"last_name\": \"Nowak\",\n        \"email\": \"jan@gmail.com\",\n        \"specialization\": \"BACKEND\",\n        \"role\": \"developer\",\n        \"estimationStats\": [],\n        \"__v\": 0\n    }\n}"}],"_postman_id":"49dc504c-0f81-4cf9-97e4-aca53ee56895"},{"name":"Add User to Project","id":"c7a92947-3601-4fb8-a6a5-639434096ff1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"url":"localhost:3000/user/:userId/project/:projectId","description":"<p>This HTTP PATCH request is used to update a specific project for a user identified by the userId and projectId. The request should be sent to localhost:3000/user/:userId/project/:projectId.</p>\n<p>The response to this request will have a status code of 200 and a content type of application/json. The response body will contain a message and the updatedDeveloper object, which includes details such as _id, projectId, first_name, last_name, email, specialization, role, and estimationStats.</p>\n<p>Here is an example of the response:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\":\"\",\n    \"updatedDeveloper\":{\n        \"_id\":\"\",\n        \"projectId\":[\"\"],\n        \"first_name\":\"\",\n        \"last_name\":\"\",\n        \"email\":\"\",\n        \"specialization\":\"\",\n        \"role\":\"\",\n        \"estimationStats\":[],\n        \"__v\":0\n    }\n}\n</code></pre>\n","urlObject":{"port":"3000","path":["user",":userId","project",":projectId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"661b166f4f3e9f78619bda11","key":"userId"},{"type":"any","value":"661afcb8ca8d46d488e16844","key":"projectId"}]}},"response":[{"id":"9210f0c3-e485-4d2f-b083-be88760facd4","name":"Add Project to User","originalRequest":{"method":"PATCH","header":[],"url":{"raw":"localhost:3000/user/:userId/project/:projectId","host":["localhost"],"port":"3000","path":["user",":userId","project",":projectId"],"variable":[{"key":"userId","value":"661d75a7438e77e6f2431d75"},{"key":"projectId","value":"661d79c08884860578f5ba21"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"291"},{"key":"ETag","value":"W/\"123-yp2IAL4uV4KAy4AUDQjSfr3++3o\""},{"key":"Date","value":"Mon, 15 Apr 2024 19:03:00 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Developer added to Project successfully\",\n    \"updatedDeveloper\": {\n        \"_id\": \"661d75a7438e77e6f2431d75\",\n        \"projectId\": [\n            \"661d79c08884860578f5ba21\"\n        ],\n        \"first_name\": \"Dawid\",\n        \"last_name\": \"Błaszczyk\",\n        \"email\": \"dawid@gmail.com\",\n        \"specialization\": \"BACKEND\",\n        \"role\": \"admin\",\n        \"estimationStats\": [],\n        \"__v\": 1\n    }\n}"}],"_postman_id":"c7a92947-3601-4fb8-a6a5-639434096ff1"},{"name":"Delete User","id":"b73445ff-56cf-42fd-a32f-ec30a105989a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"localhost:3000/user/:userId","description":"<h1 id=\"delete-user\">Delete User</h1>\n<p>This endpoint is used to delete a specific user identified by the <code>userId</code>.</p>\n<h2 id=\"response\">Response</h2>\n<ul>\n<li><code>200 OK</code> : The user has been successfully deleted. The response will contain a JSON object with a <code>msg</code> key.</li>\n</ul>\n<h3 id=\"example\">Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"msg\": \"\"\n}\n</code></pre>\n","urlObject":{"port":"3000","path":["user",":userId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"661afcd4ca8d46d488e16848","key":"userId"}]}},"response":[{"id":"2e2ab7a8-f2c5-49ba-b36c-ff1e6b1a8770","name":"Delete User","originalRequest":{"method":"DELETE","header":[],"url":{"raw":"localhost:3000/user/:userId","host":["localhost"],"port":"3000","path":["user",":userId"],"variable":[{"key":"userId","value":"661d7050438e77e6f2431d40"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"71"},{"key":"ETag","value":"W/\"47-CPS5rKJ/J/GxWETw7C5DzgKLs2c\""},{"key":"Date","value":"Mon, 15 Apr 2024 18:44:32 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"msg\": \"Developer and related projects and tasks deleted successfully\"\n}"}],"_postman_id":"b73445ff-56cf-42fd-a32f-ec30a105989a"},{"name":"Delete Users","id":"6e6d36d3-571e-4b54-b7f0-bacf3ad72a4e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"localhost:3000/users","description":"<p>This HTTP DELETE request is used to delete a user from the localhost server at port 3000. Upon successful execution, the server returns a 200 status with a JSON response containing a message. An example of the response would be:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"msg\": \"\"\n}\n</code></pre>\n","urlObject":{"port":"3000","path":["users"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"fcbe563a-2ffa-4e46-b930-4a8c28093bad","name":"Delete Users","originalRequest":{"method":"DELETE","header":[],"url":"localhost:3000/users"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"61"},{"key":"ETag","value":"W/\"3d-QGhxk49Cxc8QwFazLWrsh7s6yhk\""},{"key":"Date","value":"Mon, 15 Apr 2024 18:20:34 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"msg\": \"Developers, Projects and Tasks deleted successfully\"\n}"}],"_postman_id":"6e6d36d3-571e-4b54-b7f0-bacf3ad72a4e"}],"id":"35108ad7-69ee-48be-ada2-7d6fb7607767","_postman_id":"35108ad7-69ee-48be-ada2-7d6fb7607767","description":""},{"name":"Projects","item":[{"name":"All Projects","id":"cbfcad5e-cfae-4b9c-9da9-392470379b2d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"localhost:3000/projects","description":"<h1 id=\"get-projects\">GET /projects</h1>\n<p>This endpoint retrieves a list of projects.</p>\n<h3 id=\"response\">Response</h3>\n<ul>\n<li>Status: 200</li>\n<li>Content-Type: application/json</li>\n</ul>\n<p>Example response body:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"result\": [\n        {\n            \"_id\": \"\",\n            \"developerID\": \"\",\n            \"projectCredentials\": {\n                \"name\": \"\",\n                \"developers\": [],\n                \"_id\": \"\"\n            },\n            \"description\": \"\",\n            \"status\": \"\",\n            \"priority\": \"\",\n            \"__v\": 0\n        }\n    ]\n}\n\n</code></pre>\n","urlObject":{"port":"3000","path":["projects"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"c0175898-bf7b-47c5-ab52-19c0595f41ef","name":"All Projects","originalRequest":{"method":"GET","header":[],"url":"localhost:3000/projects"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"612"},{"key":"ETag","value":"W/\"264-ieIpj8g5AULEuJiMIU5i7PKvui4\""},{"key":"Date","value":"Mon, 15 Apr 2024 19:00:48 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": [\n        {\n            \"_id\": \"661d79028884860578f5ba0b\",\n            \"developerID\": \"661b223239e4ffdf83693bfb\",\n            \"projectCredentials\": {\n                \"name\": \"Projekt Alfa\",\n                \"developers\": [],\n                \"_id\": \"661d79028884860578f5ba0c\"\n            },\n            \"description\": \"To jest przykładowy projekt Alfa, który służy jako demonstracja.\",\n            \"status\": \"Planned\",\n            \"priority\": \"High\",\n            \"__v\": 0\n        },\n        {\n            \"_id\": \"661d79578884860578f5ba11\",\n            \"developerID\": \"661d7564438e77e6f2431d66\",\n            \"projectCredentials\": {\n                \"name\": \"Projekt Beta\",\n                \"developers\": [],\n                \"_id\": \"661d79578884860578f5ba12\"\n            },\n            \"description\": \"To jest przykładowy projekt Beta, który służy jako demonstracja.\",\n            \"status\": \"Planned\",\n            \"priority\": \"High\",\n            \"__v\": 0\n        }\n    ]\n}"}],"_postman_id":"cbfcad5e-cfae-4b9c-9da9-392470379b2d"},{"name":"Single Project","id":"3fee13ca-ae33-4ba1-91bc-2321c70cd5f1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[]},"url":"localhost:3000/project/:projectId","description":"<h1 id=\"project-details\">Project Details</h1>\n<p>This endpoint retrieves the details of a specific project identified by the projectId parameter.</p>\n<h2 id=\"request\">Request</h2>\n<h3 id=\"http-request\">HTTP Request</h3>\n<p><code>GET localhost:3000/project/:projectId</code></p>\n<h2 id=\"response\">Response</h2>\n<ul>\n<li>Status: 200 OK</li>\n<li>Content-Type: application/json</li>\n</ul>\n<p>Example response body:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"result\": {\n        \"_id\": \"\",\n        \"developerID\": \"\",\n        \"projectCredentials\": {\n            \"name\": \"\",\n            \"developers\": [],\n            \"_id\": \"\"\n        },\n        \"description\": \"\",\n        \"status\": \"\",\n        \"priority\": \"\",\n        \"__v\": 0\n    }\n}\n\n</code></pre>\n<p>The response contains the details of the project including its ID, developer ID, project credentials, description, status, priority, and version.</p>\n","urlObject":{"port":"3000","path":["project",":projectId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"661789ce09d30c2e16ca433e","key":"projectId"}]}},"response":[{"id":"150deaa6-4565-4bae-974d-21c64c00a52a","name":"Single Project","originalRequest":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"localhost:3000/project/:projectId","host":["localhost"],"port":"3000","path":["project",":projectId"],"variable":[{"key":"projectId","value":"661d79028884860578f5ba0b"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"310"},{"key":"ETag","value":"W/\"136-KFnhUcAvMY16y/dWS/7MzG5cRNk\""},{"key":"Date","value":"Mon, 15 Apr 2024 19:01:22 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": {\n        \"_id\": \"661d79028884860578f5ba0b\",\n        \"developerID\": \"661b223239e4ffdf83693bfb\",\n        \"projectCredentials\": {\n            \"name\": \"Projekt Alfa\",\n            \"developers\": [],\n            \"_id\": \"661d79028884860578f5ba0c\"\n        },\n        \"description\": \"To jest przykładowy projekt Alfa, który służy jako demonstracja.\",\n        \"status\": \"Planned\",\n        \"priority\": \"High\",\n        \"__v\": 0\n    }\n}"}],"_postman_id":"3fee13ca-ae33-4ba1-91bc-2321c70cd5f1"},{"name":"Project's Tasks","id":"cf85eb3a-be23-483d-a25b-0d9e30887f45","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"localhost:3000/project/:projectId/tasks","description":"<p>This endpoint retrieves the tasks associated with a specific project.</p>\n<p>The response will be a JSON object with a \"result\" array containing task objects. Each task object includes properties such as \"_id\", \"projectId\", \"credentials\", \"state\", \"createdBy\", \"dateRange\", \"executionTime\", \"createdAt\", and \"__v\". The \"credentials\" object within each task includes properties like \"name\", \"assignedTo\", \"estimation\", \"specialization\", and \"_id\".</p>\n<p>Here is an example of the response:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"result\": [\n        {\n            \"_id\": \"\",\n            \"projectId\": \"\",\n            \"credentials\": {\n                \"name\": \"\",\n                \"assignedTo\": null,\n                \"estimation\": 0,\n                \"specialization\": \"\",\n                \"_id\": \"\"\n            },\n            \"state\": \"\",\n            \"createdBy\": \"\",\n            \"dateRange\": {\n                \"startDate\": \"\",\n                \"endDate\": \"\",\n                \"_id\": \"\"\n            },\n            \"executionTime\": null,\n            \"createdAt\": \"\",\n            \"__v\": 0\n        }\n    ]\n}\n\n</code></pre>\n","urlObject":{"port":"3000","path":["project",":projectId","tasks"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"6618528c76451aa6cf750c32","key":"projectId"}]}},"response":[{"id":"983949a7-e86f-487e-9b00-e6e22acea812","name":"Project's Tasks","originalRequest":{"method":"GET","header":[],"url":{"raw":"localhost:3000/project/:projectId/tasks","host":["localhost"],"port":"3000","path":["project",":projectId","tasks"],"variable":[{"key":"projectId","value":"661d79c08884860578f5ba21"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"1391"},{"key":"ETag","value":"W/\"56f-t2Dm1ESy9xBJF/gQ2pkW0um/Ezw\""},{"key":"Date","value":"Mon, 15 Apr 2024 19:29:52 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": [\n        {\n            \"_id\": \"661d7c6aaef84bd15bc6eeea\",\n            \"projectId\": \"661d79c08884860578f5ba21\",\n            \"credentials\": {\n                \"name\": \"Implement new API endpoint\",\n                \"assignedTo\": null,\n                \"estimation\": 13,\n                \"specialization\": \"BACKEND\",\n                \"_id\": \"661d7c6aaef84bd15bc6eeeb\"\n            },\n            \"state\": \"OPEN\",\n            \"createdBy\": \"661d7557438e77e6f2431d61\",\n            \"dateRange\": {\n                \"startDate\": \"2024-02-01T00:00:00.000Z\",\n                \"endDate\": \"2024-04-15T00:00:00.000Z\",\n                \"_id\": \"661d7c6aaef84bd15bc6eeec\"\n            },\n            \"executionTime\": null,\n            \"createdAt\": \"2024-04-15T19:13:46.231Z\",\n            \"__v\": 0\n        },\n        {\n            \"_id\": \"661d7debc08968459302a02f\",\n            \"projectId\": \"661d79c08884860578f5ba21\",\n            \"credentials\": {\n                \"name\": \"Create new application\",\n                \"assignedTo\": null,\n                \"estimation\": 3,\n                \"specialization\": \"BACKEND\",\n                \"_id\": \"661d7debc08968459302a030\"\n            },\n            \"state\": \"OPEN\",\n            \"createdBy\": \"661d7557438e77e6f2431d61\",\n            \"dateRange\": {\n                \"startDate\": \"2024-05-21T00:00:00.000Z\",\n                \"endDate\": \"2024-08-12T00:00:00.000Z\",\n                \"_id\": \"661d7debc08968459302a031\"\n            },\n            \"executionTime\": null,\n            \"createdAt\": \"2024-04-15T19:20:11.227Z\",\n            \"__v\": 0\n        },\n        {\n            \"_id\": \"661d7e0ac08968459302a037\",\n            \"projectId\": \"661d79c08884860578f5ba21\",\n            \"credentials\": {\n                \"name\": \"Delete all tasks\",\n                \"assignedTo\": null,\n                \"estimation\": 3,\n                \"specialization\": \"BACKEND\",\n                \"_id\": \"661d7e0ac08968459302a038\"\n            },\n            \"state\": \"OPEN\",\n            \"createdBy\": \"661d7557438e77e6f2431d61\",\n            \"dateRange\": {\n                \"startDate\": \"2024-05-21T00:00:00.000Z\",\n                \"endDate\": \"2024-05-22T00:00:00.000Z\",\n                \"_id\": \"661d7e0ac08968459302a039\"\n            },\n            \"executionTime\": null,\n            \"createdAt\": \"2024-04-15T19:20:42.085Z\",\n            \"__v\": 0\n        }\n    ]\n}"}],"_postman_id":"cf85eb3a-be23-483d-a25b-0d9e30887f45"},{"name":"All Assignment Tasks","id":"73e8bb80-b9f7-4360-b578-2e6fea023d9e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"localhost:3000/project/:projectId/assignment","description":"<p>This API endpoint retrieves the assignments for a specific project identified by the projectId parameter. The response will contain an array of assignments, each with details such as _id, developerId, tasks, and version (**v). Each task within the assignments array includes projectId, credentials, state, createdAt, createdBy, dateRange, executionTime, and version (**v).</p>\n<p>Example response:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"result\": [\n        {\n            \"_id\": \"\",\n            \"developerId\": \"\",\n            \"tasks\": [\n                {\n                    \"projectId\": \"\",\n                    \"credentials\": {\n                        \"name\": \"\",\n                        \"assignedTo\": null,\n                        \"estimation\": 0,\n                        \"specialization\": \"\",\n                        \"_id\": \"\"\n                    },\n                    \"state\": \"\",\n                    \"createdAt\": \"\",\n                    \"createdBy\": \"\",\n                    \"dateRange\": {\n                        \"startDate\": \"\",\n                        \"endDate\": \"\",\n                        \"_id\": \"\"\n                    },\n                    \"executionTime\": null,\n                    \"_id\": \"\",\n                    \"__v\": 0\n                }\n            ],\n            \"__v\": 0\n        }\n    ]\n}\n\n</code></pre>\n","urlObject":{"port":"3000","path":["project",":projectId","assignment"],"host":["localhost"],"query":[],"variable":[{"id":"d06e9453-e787-490c-ac9c-7e0ef8da314f","type":"any","value":"661b166f4f3e9f78619bda11","key":"projectId"}]}},"response":[{"id":"39125666-c2ec-4f7a-a1b3-d0471cf10e2c","name":"All Assignment Tasks","originalRequest":{"method":"GET","header":[],"url":{"raw":"localhost:3000/project/:projectId/assignment","host":["localhost"],"port":"3000","path":["project",":projectId","assignment"],"variable":[{"key":"projectId","value":"661d79c08884860578f5ba21"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"1579"},{"key":"ETag","value":"W/\"62b-CX7yQa3YjaMyiYMlY8LMbWhmacU\""},{"key":"Date","value":"Mon, 15 Apr 2024 19:49:02 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": [\n        {\n            \"_id\": \"661d846094e60f8b8daa9e17\",\n            \"developerId\": \"661d7557438e77e6f2431d61\",\n            \"tasks\": [\n                {\n                    \"projectId\": \"661d79c08884860578f5ba21\",\n                    \"credentials\": {\n                        \"name\": \"Implement new API endpoint\",\n                        \"assignedTo\": null,\n                        \"estimation\": 13,\n                        \"specialization\": \"BACKEND\",\n                        \"_id\": \"661d7c6aaef84bd15bc6eeeb\"\n                    },\n                    \"state\": \"OPEN\",\n                    \"createdAt\": \"2024-04-15T19:13:46.231Z\",\n                    \"createdBy\": \"661d7557438e77e6f2431d61\",\n                    \"dateRange\": {\n                        \"startDate\": \"2024-02-01T00:00:00.000Z\",\n                        \"endDate\": \"2024-04-15T00:00:00.000Z\",\n                        \"_id\": \"661d7c6aaef84bd15bc6eeec\"\n                    },\n                    \"executionTime\": null,\n                    \"_id\": \"661d7c6aaef84bd15bc6eeea\",\n                    \"__v\": 0\n                }\n            ],\n            \"__v\": 0\n        },\n        {\n            \"_id\": \"661d846094e60f8b8daa9e1c\",\n            \"developerId\": \"661d7564438e77e6f2431d66\",\n            \"tasks\": [\n                {\n                    \"projectId\": \"661d79c08884860578f5ba21\",\n                    \"credentials\": {\n                        \"name\": \"Create new application\",\n                        \"assignedTo\": null,\n                        \"estimation\": 3,\n                        \"specialization\": \"BACKEND\",\n                        \"_id\": \"661d7debc08968459302a030\"\n                    },\n                    \"state\": \"OPEN\",\n                    \"createdAt\": \"2024-04-15T19:20:11.227Z\",\n                    \"createdBy\": \"661d7557438e77e6f2431d61\",\n                    \"dateRange\": {\n                        \"startDate\": \"2024-05-21T00:00:00.000Z\",\n                        \"endDate\": \"2024-08-12T00:00:00.000Z\",\n                        \"_id\": \"661d7debc08968459302a031\"\n                    },\n                    \"executionTime\": null,\n                    \"_id\": \"661d7debc08968459302a02f\",\n                    \"__v\": 0\n                },\n                {\n                    \"projectId\": \"661d79c08884860578f5ba21\",\n                    \"credentials\": {\n                        \"name\": \"Delete all tasks\",\n                        \"assignedTo\": null,\n                        \"estimation\": 3,\n                        \"specialization\": \"BACKEND\",\n                        \"_id\": \"661d7e0ac08968459302a038\"\n                    },\n                    \"state\": \"OPEN\",\n                    \"createdAt\": \"2024-04-15T19:20:42.085Z\",\n                    \"createdBy\": \"661d7557438e77e6f2431d61\",\n                    \"dateRange\": {\n                        \"startDate\": \"2024-05-21T00:00:00.000Z\",\n                        \"endDate\": \"2024-05-22T00:00:00.000Z\",\n                        \"_id\": \"661d7e0ac08968459302a039\"\n                    },\n                    \"executionTime\": null,\n                    \"_id\": \"661d7e0ac08968459302a037\",\n                    \"__v\": 0\n                }\n            ],\n            \"__v\": 0\n        }\n    ]\n}"}],"_postman_id":"73e8bb80-b9f7-4360-b578-2e6fea023d9e"},{"name":"Create Assignment Tasks","id":"82132806-11f6-4886-aabe-8195e5551d1e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"localhost:3000/project/:projectId/assignment","description":"<p>This HTTP POST request is used to add an assignment to a specific project identified by the projectId parameter in the URL. The request should contain the necessary data for the assignment. Upon successful execution, the server returns a 200 status with a JSON response containing the details of the added assignment.</p>\n<p><strong>Operation of the allocation algorithm:</strong></p>\n<ol>\n<li><p>Divide unassigned shuffles by specialties.</p>\n</li>\n<li><p>Dividing developers by specialties.</p>\n</li>\n<li><p>For each specialization, we choose a particular specialization.</p>\n</li>\n<li><p>Select tasks from a given specialization one by one.</p>\n</li>\n<li><p>Check the estimation of a given task.</p>\n</li>\n<li><p>Create an array sorted from the best developers (the best developer is selected on the basis of the average number of hours needed to complete tasks with the given estimation)</p>\n</li>\n<li><p>Assign a task to the best developer.</p>\n</li>\n</ol>\n<p>In addition, the selection of a given developer for task assignment is also affected by the number of new tasks assigned to him during this algorithm.</p>\n<p>An example of the response for this request is as follows:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"developerId\": \"\",\n    \"tasks\": [\n      {\n        \"projectId\": \"\",\n        \"credentials\": {\n          \"name\": \"\",\n          \"assignedTo\": null,\n          \"estimation\": 0,\n          \"specialization\": \"\",\n          \"_id\": \"\"\n        },\n        \"state\": \"\",\n        \"createdAt\": \"\",\n        \"createdBy\": \"\",\n        \"dateRange\": {\n          \"startDate\": \"\",\n          \"endDate\": \"\",\n          \"_id\": \"\"\n        },\n        \"executionTime\": null,\n        \"_id\": \"\",\n        \"__v\": 0\n      }\n    ],\n    \"_id\": \"\",\n    \"__v\": 0\n  }\n]\n\n</code></pre>\n<p>This response provides the details of the added assignment, including developerId, tasks with their respective details, and other relevant information.</p>\n","urlObject":{"port":"3000","path":["project",":projectId","assignment"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"661b166f4f3e9f78619bda11","key":"projectId"}]}},"response":[{"id":"01d0fe4e-19b7-45de-9752-acfbf316376b","name":"Assignment Tasks","originalRequest":{"method":"POST","header":[],"url":{"raw":"localhost:3000/project/:projectId/assignment","host":["localhost"],"port":"3000","path":["project",":projectId","assignment"],"variable":[{"key":"projectId","value":"661d79c08884860578f5ba21"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"1568"},{"key":"ETag","value":"W/\"620-nNehqA9ri+2OX9vVNYyE0WbT42U\""},{"key":"Date","value":"Mon, 15 Apr 2024 19:47:44 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"developerId\": \"661d7557438e77e6f2431d61\",\n        \"tasks\": [\n            {\n                \"projectId\": \"661d79c08884860578f5ba21\",\n                \"credentials\": {\n                    \"name\": \"Implement new API endpoint\",\n                    \"assignedTo\": null,\n                    \"estimation\": 13,\n                    \"specialization\": \"BACKEND\",\n                    \"_id\": \"661d7c6aaef84bd15bc6eeeb\"\n                },\n                \"state\": \"OPEN\",\n                \"createdAt\": \"2024-04-15T19:13:46.231Z\",\n                \"createdBy\": \"661d7557438e77e6f2431d61\",\n                \"dateRange\": {\n                    \"startDate\": \"2024-02-01T00:00:00.000Z\",\n                    \"endDate\": \"2024-04-15T00:00:00.000Z\",\n                    \"_id\": \"661d7c6aaef84bd15bc6eeec\"\n                },\n                \"executionTime\": null,\n                \"_id\": \"661d7c6aaef84bd15bc6eeea\",\n                \"__v\": 0\n            }\n        ],\n        \"_id\": \"661d846094e60f8b8daa9e17\",\n        \"__v\": 0\n    },\n    {\n        \"developerId\": \"661d7564438e77e6f2431d66\",\n        \"tasks\": [\n            {\n                \"projectId\": \"661d79c08884860578f5ba21\",\n                \"credentials\": {\n                    \"name\": \"Create new application\",\n                    \"assignedTo\": null,\n                    \"estimation\": 3,\n                    \"specialization\": \"BACKEND\",\n                    \"_id\": \"661d7debc08968459302a030\"\n                },\n                \"state\": \"OPEN\",\n                \"createdAt\": \"2024-04-15T19:20:11.227Z\",\n                \"createdBy\": \"661d7557438e77e6f2431d61\",\n                \"dateRange\": {\n                    \"startDate\": \"2024-05-21T00:00:00.000Z\",\n                    \"endDate\": \"2024-08-12T00:00:00.000Z\",\n                    \"_id\": \"661d7debc08968459302a031\"\n                },\n                \"executionTime\": null,\n                \"_id\": \"661d7debc08968459302a02f\",\n                \"__v\": 0\n            },\n            {\n                \"projectId\": \"661d79c08884860578f5ba21\",\n                \"credentials\": {\n                    \"name\": \"Delete all tasks\",\n                    \"assignedTo\": null,\n                    \"estimation\": 3,\n                    \"specialization\": \"BACKEND\",\n                    \"_id\": \"661d7e0ac08968459302a038\"\n                },\n                \"state\": \"OPEN\",\n                \"createdAt\": \"2024-04-15T19:20:42.085Z\",\n                \"createdBy\": \"661d7557438e77e6f2431d61\",\n                \"dateRange\": {\n                    \"startDate\": \"2024-05-21T00:00:00.000Z\",\n                    \"endDate\": \"2024-05-22T00:00:00.000Z\",\n                    \"_id\": \"661d7e0ac08968459302a039\"\n                },\n                \"executionTime\": null,\n                \"_id\": \"661d7e0ac08968459302a037\",\n                \"__v\": 0\n            }\n        ],\n        \"_id\": \"661d846094e60f8b8daa9e1c\",\n        \"__v\": 0\n    }\n]"}],"_postman_id":"82132806-11f6-4886-aabe-8195e5551d1e"},{"name":"Create Project","id":"bda09107-7943-4c43-b590-b2496fd16d20","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"developerID\": \"6619baaa4676ddbfb76a8129\",\r\n    \"projectCredentials\": {\r\n        \"name\": \"Projekt Alfa\",\r\n        \"developers\": []\r\n    },\r\n    \"description\": \"To jest przykładowy projekt Alfa, który służy jako demonstracja.\",\r\n    \"status\": \"Completed\",\r\n    \"priority\": \"High\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:3000/project","description":"<h2 id=\"add-project\">Add Project</h2>\n<p>This endpoint allows you to create a new project.</p>\n<h3 id=\"request-body\">Request Body</h3>\n<ul>\n<li><code>developerID</code> (string, optional): The ID of the developer creating the project.</li>\n<li><code>projectCredentials.name</code> (string, optional): The name of the project.</li>\n<li><code>projectCredentials.developers</code> (array, optional): An array of developers involved in the project.</li>\n<li><code>description</code> (string, optional): Description of the project.</li>\n<li><code>status</code> (string, optional): Status of the project.</li>\n<li><code>priority</code> (string, optional): Priority of the project.</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>Upon successful creation of the project, the server responds with a status code of 201 and a JSON object containing the following fields:</p>\n<ul>\n<li><code>developerID</code> (string): The ID of the developer.</li>\n<li><code>projectCredentials.name</code> (string): The name of the project.</li>\n<li><code>projectCredentials.developers</code> (array): An array of developers involved in the project.</li>\n<li><code>projectCredentials._id</code> (string): The ID of the project.</li>\n<li><code>description</code> (string): Description of the project.</li>\n<li><code>status</code> (string): Status of the project.</li>\n<li><code>priority</code> (string): Priority of the project.</li>\n<li><code>_id</code> (string): The ID of the project.</li>\n<li><code>__v</code> (number): Version of the project.</li>\n</ul>\n<h4 id=\"example-response\">Example Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"developerID\": \"\",\n    \"projectCredentials\": {\n        \"name\": \"\",\n        \"developers\": [],\n        \"_id\": \"\"\n    },\n    \"description\": \"\",\n    \"status\": \"\",\n    \"priority\": \"\",\n    \"_id\": \"\",\n    \"__v\": 0\n}\n\n</code></pre>\n","urlObject":{"port":"3000","path":["project"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"432b33d2-0c61-40be-9072-9698d6de5895","name":"Create Project","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"developerID\": \"661b223239e4ffdf83693bfb\",\r\n    \"projectCredentials\": {\r\n        \"name\": \"Projekt Alfa\",\r\n        \"developers\": []\r\n    },\r\n    \"description\": \"To jest przykładowy projekt Alfa, który służy jako demonstracja.\",\r\n    \"status\": \"Planned\",\r\n    \"priority\": \"High\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:3000/project"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"299"},{"key":"ETag","value":"W/\"12b-HorTVhulXDeL5qmLHJhrxXFpRqU\""},{"key":"Date","value":"Mon, 15 Apr 2024 18:59:14 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"developerID\": \"661b223239e4ffdf83693bfb\",\n    \"projectCredentials\": {\n        \"name\": \"Projekt Alfa\",\n        \"developers\": [],\n        \"_id\": \"661d79028884860578f5ba0c\"\n    },\n    \"description\": \"To jest przykładowy projekt Alfa, który służy jako demonstracja.\",\n    \"status\": \"Planned\",\n    \"priority\": \"High\",\n    \"_id\": \"661d79028884860578f5ba0b\",\n    \"__v\": 0\n}"}],"_postman_id":"bda09107-7943-4c43-b590-b2496fd16d20"},{"name":"Handle Assignment","id":"56ca520b-e853-43dc-acd0-a575e1d42f10","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"action\":\"accept\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:3000/project/:projectId/assignment","description":"<p>This endpoint allows you to update the assignment for a specific project by making an HTTP PUT request to localhost:3000/project/:projectId/assignment. The request should include a payload with the raw request body type. The payload should contain a key \"action\" with a corresponding value to specify the action to be performed.</p>\n<h3 id=\"request-body\">Request Body</h3>\n<ul>\n<li>action (string, required): Specifies the action to be performed.</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>The endpoint returns a status code of 422 and a JSON object with an \"error\" key. The \"error\" object contains a key \"action\" with a corresponding value to indicate the error related to the action.</p>\n<p>Example:\nRequest:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"action\": \"complete\"\n}\n</code></pre><p>Response:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Status: 422\nContent-Type: application/json\n{\n  \"error\": {\n    \"action\": \"Invalid action\"\n  }\n}\n</code></pre>","urlObject":{"port":"3000","path":["project",":projectId","assignment"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"661b166f4f3e9f78619bda11","key":"projectId"}]}},"response":[{"id":"26281145-0676-4719-bac1-40bdba9ab1ac","name":"Handle Assignment","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"action\":\"accept\"\r\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"localhost:3000/project/:projectId/assignment","host":["localhost"],"port":"3000","path":["project",":projectId","assignment"],"variable":[{"key":"projectId","value":"661d79c08884860578f5ba21"}]}},"status":"OK","code":200,"_postman_previewlanguage":"html","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"text/html; charset=utf-8"},{"key":"Content-Length","value":"32"},{"key":"ETag","value":"W/\"20-pPMcfoiXXs8GGn1aoMiGD+SAbZo\""},{"key":"Date","value":"Mon, 15 Apr 2024 19:50:37 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"Operation completed successfully"}],"_postman_id":"56ca520b-e853-43dc-acd0-a575e1d42f10"},{"name":"Update Project","id":"2be611ca-7358-438a-88ef-0997372256b4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"status\": \"Completed\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:3000/project/:projectId","description":"<h1 id=\"patch-projectprojectid\">PATCH /project/:projectId</h1>\n<p>This endpoint is used to update the status of a specific project.</p>\n<h2 id=\"request-body\">Request Body</h2>\n<ul>\n<li><code>status</code> (string, required): The new status of the project.</li>\n</ul>\n<h2 id=\"response\">Response</h2>\n<ul>\n<li>Status: 200</li>\n<li>Content-Type: application/json</li>\n<li><code>msg</code> (string): A message related to the update.</li>\n<li><code>project</code> (object): The updated project details.<ul>\n<li><code>_id</code> (string): The unique identifier of the project.</li>\n<li><code>developerID</code> (string): The ID of the developer associated with the project.</li>\n<li><code>projectCredentials</code> (object): The credentials of the project.<ul>\n<li><code>name</code> (string): The name of the project.</li>\n<li><code>developers</code> (array): An array of developers associated with the project.</li>\n<li><code>_id</code> (string): The unique identifier of the project credentials.</li>\n</ul>\n</li>\n<li><code>description</code> (string): The description of the project.</li>\n<li><code>status</code> (string): The updated status of the project.</li>\n<li><code>priority</code> (string): The priority of the project.</li>\n<li><code>__v</code> (number): Version control field.</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"msg\": \"\",\n    \"project\": {\n        \"_id\": \"\",\n        \"developerID\": \"\",\n        \"projectCredentials\": {\n            \"name\": \"\",\n            \"developers\": [\"\"],\n            \"_id\": \"\"\n        },\n        \"description\": \"\",\n        \"status\": \"\",\n        \"priority\": \"\",\n        \"__v\": 0\n    }\n}\n</code></pre>\n","urlObject":{"port":"3000","path":["project",":projectId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"661d79c08884860578f5ba21","key":"projectId"}]}},"response":[{"id":"3f02b9a0-6c86-4708-9a2c-b20ca479f033","name":"Update Project","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"status\": \"Completed\"\r\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"localhost:3000/project/:projectId","host":["localhost"],"port":"3000","path":["project",":projectId"],"variable":[{"key":"projectId","value":"661d79c08884860578f5ba21"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"376"},{"key":"ETag","value":"W/\"178-B/dXDcUVgminpNbiseULEY+YTgw\""},{"key":"Date","value":"Mon, 15 Apr 2024 19:11:24 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"msg\": \"Project updated successfully\",\n    \"project\": {\n        \"_id\": \"661d79c08884860578f5ba21\",\n        \"developerID\": \"661d7564438e77e6f2431d66\",\n        \"projectCredentials\": {\n            \"name\": \"Projekt Beta\",\n            \"developers\": [\n                \"661d75a7438e77e6f2431d75\"\n            ],\n            \"_id\": \"661d79c08884860578f5ba22\"\n        },\n        \"description\": \"To jest przykładowy projekt Beta, który służy jako demonstracja.\",\n        \"status\": \"Completed\",\n        \"priority\": \"High\",\n        \"__v\": 1\n    }\n}"}],"_postman_id":"2be611ca-7358-438a-88ef-0997372256b4"},{"name":"Delete Project","id":"facca4c4-7c07-46cb-bf23-7090a112e535","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"localhost:3000/project/:projectId","description":"<h1 id=\"delete-project\">Delete Project</h1>\n<p>This endpoint is used to delete a specific project identified by the project ID.</p>\n<h2 id=\"request\">Request</h2>\n<ul>\n<li>Method: DELETE</li>\n<li>URL: <code>localhost:3000/project/:projectId</code></li>\n</ul>\n<h2 id=\"response\">Response</h2>\n<ul>\n<li><p>Status: 200</p>\n</li>\n<li><p>Content-Type: application/json</p>\n</li>\n<li><p>Body:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"msg\": \"\"\n}\n\n</code></pre>\n<p>  Example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"msg\": \"\"\n}\n\n</code></pre>\n</li>\n</ul>\n","urlObject":{"port":"3000","path":["project",":projectId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"661ad7256eff3204baa9b35c","key":"projectId"}]}},"response":[{"id":"1ebdb3dd-3a0e-4c6a-a152-049e880cf26a","name":"Delete Project","originalRequest":{"method":"DELETE","header":[],"url":{"raw":"localhost:3000/project/:projectId","host":["localhost"],"port":"3000","path":["project",":projectId"],"variable":[{"key":"projectId","value":"661d79c08884860578f5ba21"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"80"},{"key":"ETag","value":"W/\"50-dqMpFRrbfVCa5DU4j2TCkJ9S+rM\""},{"key":"Date","value":"Mon, 15 Apr 2024 19:54:54 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"msg\": \"Project and 4 tasks deleted successfully, undefined developers updated\"\n}"}],"_postman_id":"facca4c4-7c07-46cb-bf23-7090a112e535"},{"name":"Delete Projects","id":"8cdfb5f8-a556-4c49-95ab-1633be0d30fd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"localhost:3000/projects","description":"<p>This endpoint is used to delete a project. Upon a successful deletion, it returns a 200 status with an empty JSON response body containing a \"msg\" key. </p>\n<h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"msg\": \"\"\n}\n</code></pre>\n","urlObject":{"port":"3000","path":["projects"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"5421916a-fe32-45af-b964-bcfac44dfcb9","name":"Delete Projects","originalRequest":{"method":"DELETE","header":[],"url":"localhost:3000/projects"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"49"},{"key":"ETag","value":"W/\"31-yZErwYBa6FkasuBqS/DHNHeLfI0\""},{"key":"Date","value":"Mon, 15 Apr 2024 18:20:27 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"msg\": \"Projects and Tasks deleted successfully\"\n}"}],"_postman_id":"8cdfb5f8-a556-4c49-95ab-1633be0d30fd"}],"id":"933a9664-a97d-41e7-95d0-25c0a5f4eda5","_postman_id":"933a9664-a97d-41e7-95d0-25c0a5f4eda5","description":""},{"name":"Tasks","item":[{"name":"All Tasks","id":"44cf5675-2b88-401e-b199-d05bca573a1e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"localhost:3000/tasks","description":"<p>This endpoint makes an HTTP GET request to localhost:3000/tasks to retrieve a list of tasks. The response will be in JSON format with a 200 status code. An example of the response body is as follows:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"result\": [\n        {\n            \"_id\": \"\",\n            \"projectId\": \"\",\n            \"credentials\": {\n                \"name\": \"\",\n                \"assignedTo\": null,\n                \"estimation\": 0,\n                \"specialization\": \"\",\n                \"_id\": \"\"\n            },\n            \"state\": \"\",\n            \"createdBy\": \"\",\n            \"dateRange\": {\n                \"startDate\": \"\",\n                \"endDate\": \"\",\n                \"_id\": \"\"\n            },\n            \"executionTime\": null,\n            \"createdAt\": \"\",\n            \"__v\": 0\n        }\n    ]\n}\n\n</code></pre>\n<p>This indicates that the response will contain an array of tasks with various properties such as _id, projectId, credentials, state, createdBy, dateRange, executionTime, createdAt, and __v.</p>\n","urlObject":{"port":"3000","path":["tasks"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"bffbf4d2-67d4-4cc5-92c2-29a9f08da18a","name":"All Tasks","originalRequest":{"method":"GET","header":[],"url":"localhost:3000/tasks"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"1391"},{"key":"ETag","value":"W/\"56f-CIoEEyblVudIUmeoQlOAdnc+u5s\""},{"key":"Date","value":"Mon, 15 Apr 2024 19:20:47 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": [\n        {\n            \"_id\": \"661d7c6aaef84bd15bc6eeea\",\n            \"projectId\": \"661b225c39e4ffdf83693c02\",\n            \"credentials\": {\n                \"name\": \"Implement new API endpoint\",\n                \"assignedTo\": null,\n                \"estimation\": 13,\n                \"specialization\": \"BACKEND\",\n                \"_id\": \"661d7c6aaef84bd15bc6eeeb\"\n            },\n            \"state\": \"OPEN\",\n            \"createdBy\": \"661d7557438e77e6f2431d61\",\n            \"dateRange\": {\n                \"startDate\": \"2024-02-01T00:00:00.000Z\",\n                \"endDate\": \"2024-04-15T00:00:00.000Z\",\n                \"_id\": \"661d7c6aaef84bd15bc6eeec\"\n            },\n            \"executionTime\": null,\n            \"createdAt\": \"2024-04-15T19:13:46.231Z\",\n            \"__v\": 0\n        },\n        {\n            \"_id\": \"661d7debc08968459302a02f\",\n            \"projectId\": \"661b225c39e4ffdf83693c02\",\n            \"credentials\": {\n                \"name\": \"Create new application\",\n                \"assignedTo\": null,\n                \"estimation\": 3,\n                \"specialization\": \"BACKEND\",\n                \"_id\": \"661d7debc08968459302a030\"\n            },\n            \"state\": \"OPEN\",\n            \"createdBy\": \"661d7557438e77e6f2431d61\",\n            \"dateRange\": {\n                \"startDate\": \"2024-05-21T00:00:00.000Z\",\n                \"endDate\": \"2024-08-12T00:00:00.000Z\",\n                \"_id\": \"661d7debc08968459302a031\"\n            },\n            \"executionTime\": null,\n            \"createdAt\": \"2024-04-15T19:20:11.227Z\",\n            \"__v\": 0\n        },\n        {\n            \"_id\": \"661d7e0ac08968459302a037\",\n            \"projectId\": \"661b225c39e4ffdf83693c02\",\n            \"credentials\": {\n                \"name\": \"Delete all tasks\",\n                \"assignedTo\": null,\n                \"estimation\": 1,\n                \"specialization\": \"BACKEND\",\n                \"_id\": \"661d7e0ac08968459302a038\"\n            },\n            \"state\": \"OPEN\",\n            \"createdBy\": \"661d7557438e77e6f2431d61\",\n            \"dateRange\": {\n                \"startDate\": \"2024-05-21T00:00:00.000Z\",\n                \"endDate\": \"2024-05-22T00:00:00.000Z\",\n                \"_id\": \"661d7e0ac08968459302a039\"\n            },\n            \"executionTime\": null,\n            \"createdAt\": \"2024-04-15T19:20:42.085Z\",\n            \"__v\": 0\n        }\n    ]\n}"}],"_postman_id":"44cf5675-2b88-401e-b199-d05bca573a1e"},{"name":"Single Task","id":"80eb0eb4-4fa2-4c72-a43f-85cbb302c399","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"localhost:3000/task/:taskId","description":"<h3 id=\"get-task-details\">Get Task Details</h3>\n<p>This endpoint retrieves the details of a specific task identified by the <code>taskId</code>.</p>\n<p><strong>Request:</strong></p>\n<ul>\n<li>Method: GET</li>\n<li>Endpoint: <code>localhost:3000/task/:taskId</code></li>\n</ul>\n<p><strong>Response:</strong></p>\n<ul>\n<li><p>Status: 200</p>\n</li>\n<li><p>Content-Type: application/json</p>\n</li>\n<li><p>Body:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"result\": {\n    \"_id\": \"\",\n    \"projectId\": \"\",\n    \"credentials\": {\n      \"name\": \"\",\n      \"assignedTo\": null,\n      \"estimation\": 0,\n      \"specialization\": \"\",\n      \"_id\": \"\"\n    },\n    \"state\": \"\",\n    \"createdBy\": \"\",\n    \"dateRange\": {\n      \"startDate\": \"\",\n      \"endDate\": \"\",\n      \"_id\": \"\"\n    },\n    \"executionTime\": null,\n    \"createdAt\": \"\",\n    \"__v\": 0\n  }\n}\n\n</code></pre>\n</li>\n</ul>\n<p><strong>Example Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"result\": {\n    \"_id\": \"\",\n    \"projectId\": \"\",\n    \"credentials\": {\n      \"name\": \"\",\n      \"assignedTo\": null,\n      \"estimation\": 0,\n      \"specialization\": \"\",\n      \"_id\": \"\"\n    },\n    \"state\": \"\",\n    \"createdBy\": \"\",\n    \"dateRange\": {\n      \"startDate\": \"\",\n      \"endDate\": \"\",\n      \"_id\": \"\"\n    },\n    \"executionTime\": null,\n    \"createdAt\": \"\",\n    \"__v\": 0\n  }\n}\n\n</code></pre>\n","urlObject":{"port":"3000","path":["task",":taskId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"661afce3ca8d46d488e1684c","key":"taskId"}]}},"response":[{"id":"735d114f-e390-4e9d-a591-58bd68ebab56","name":"Single Task","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":{"raw":"localhost:3000/task/:taskId","host":["localhost"],"port":"3000","path":["task",":taskId"],"variable":[{"key":"taskId","value":"661d7c6aaef84bd15bc6eeea"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"475"},{"key":"ETag","value":"W/\"1db-vf6pfzSBdHRoovQpLydnfzp3Rc4\""},{"key":"Date","value":"Mon, 15 Apr 2024 19:19:16 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"result\": {\n        \"_id\": \"661d7c6aaef84bd15bc6eeea\",\n        \"projectId\": \"661b225c39e4ffdf83693c02\",\n        \"credentials\": {\n            \"name\": \"Implement new API endpoint\",\n            \"assignedTo\": null,\n            \"estimation\": 13,\n            \"specialization\": \"BACKEND\",\n            \"_id\": \"661d7c6aaef84bd15bc6eeeb\"\n        },\n        \"state\": \"OPEN\",\n        \"createdBy\": \"661d7557438e77e6f2431d61\",\n        \"dateRange\": {\n            \"startDate\": \"2024-02-01T00:00:00.000Z\",\n            \"endDate\": \"2024-04-15T00:00:00.000Z\",\n            \"_id\": \"661d7c6aaef84bd15bc6eeec\"\n        },\n        \"executionTime\": null,\n        \"createdAt\": \"2024-04-15T19:13:46.231Z\",\n        \"__v\": 0\n    }\n}"}],"_postman_id":"80eb0eb4-4fa2-4c72-a43f-85cbb302c399"},{"name":"Create Task","id":"c0022fd6-5bbf-4015-80eb-5f0391908b19","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"projectId\": \"661b225c39e4ffdf83693c02\",\r\n    \"credentials\": {\r\n        \"name\": \"Implement new API endpoint\",\r\n        \"assignedTo\": \"661d7050438e77e6f2431d40\",\r\n        \"estimation\": 13,\r\n        \"specialization\": \"BACKEND\"\r\n    },\r\n    \"state\": \"OPEN\",\r\n    \"createdBy\": \"661d7050438e77e6f2431d40\",\r\n    \"dateRange\": {\r\n        \"startDate\": \"2023-10-01\",\r\n        \"endDate\": \"2023-10-15\"\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:3000/task","description":"<h2 id=\"add-task\">Add Task</h2>\n<p>This endpoint allows you to add a new task.</p>\n<h3 id=\"request-body\">Request Body</h3>\n<ul>\n<li><code>projectId</code> (string, required): The ID of the project.</li>\n<li><code>credentials</code> (object, required): The credentials for the task.<ul>\n<li><code>name</code> (string, required): The name of the task.</li>\n<li><code>estimation</code> (number, required): The estimation for the task.</li>\n<li><code>specialization</code> (string, required): The specialization for the task.</li>\n</ul>\n</li>\n<li><code>state</code> (string, required): The state of the task.</li>\n<li><code>createdBy</code> (string, required): The user who created the task.</li>\n<li><code>dateRange</code> (object, required): The date range for the task.<ul>\n<li><code>startDate</code> (string, required): The start date of the task.</li>\n<li><code>endDate</code> (string, required): The end date of the task.</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"response-201---created\">Response (201 - Created)</h3>\n<p>The task has been successfully created.</p>\n<ul>\n<li><code>projectId</code> (string): The ID of the project.</li>\n<li><code>credentials</code> (object): The credentials for the task.<ul>\n<li><code>name</code> (string): The name of the task.</li>\n<li><code>assignedTo</code> (string): The user assigned to the task.</li>\n<li><code>estimation</code> (number): The estimation for the task.</li>\n<li><code>specialization</code> (string): The specialization for the task.</li>\n<li><code>_id</code> (string): The ID of the task.</li>\n</ul>\n</li>\n<li><code>state</code> (string): The state of the task.</li>\n<li><code>createdBy</code> (string): The user who created the task.</li>\n<li><code>dateRange</code> (object): The date range for the task.<ul>\n<li><code>startDate</code> (string): The start date of the task.</li>\n<li><code>endDate</code> (string): The end date of the task.</li>\n</ul>\n</li>\n<li><code>executionTime</code> (null): The execution time of the task.</li>\n<li><code>_id</code> (string): The ID of the task.</li>\n<li><code>createdAt</code> (string): The creation date of the task.</li>\n<li><code>__v</code> (number): Version key.</li>\n</ul>\n<h4 id=\"example-response\">Example Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"projectId\": \"\",\n    \"credentials\": {\n        \"name\": \"\",\n        \"assignedTo\": null,\n        \"estimation\": 0,\n        \"specialization\": \"\",\n        \"_id\": \"\"\n    },\n    \"state\": \"\",\n    \"createdBy\": \"\",\n    \"dateRange\": {\n        \"startDate\": \"\",\n        \"endDate\": \"\",\n        \"_id\": \"\"\n    },\n    \"executionTime\": null,\n    \"_id\": \"\",\n    \"createdAt\": \"\",\n    \"__v\": 0\n}\n</code></pre>\n","urlObject":{"port":"3000","path":["task"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"cf929722-2a1f-445a-a784-d0d233909b37","name":"Create Task","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"projectId\": \"661b225c39e4ffdf83693c02\",\r\n    \"credentials\": {\r\n        \"name\": \"Implement new API endpoint\",\r\n        \"estimation\": 13,\r\n        \"specialization\": \"BACKEND\"\r\n    },\r\n    \"state\": \"OPEN\",\r\n    \"createdBy\": \"661d7557438e77e6f2431d61\",\r\n    \"dateRange\": {\r\n        \"startDate\": \"2024-02-01\",\r\n        \"endDate\": \"2024-04-15\"\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:3000/task"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"464"},{"key":"ETag","value":"W/\"1d0-2pTOrGzpRhreU6eZDMa9VCX84Is\""},{"key":"Date","value":"Mon, 15 Apr 2024 19:13:46 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"projectId\": \"661b225c39e4ffdf83693c02\",\n    \"credentials\": {\n        \"name\": \"Implement new API endpoint\",\n        \"assignedTo\": null,\n        \"estimation\": 13,\n        \"specialization\": \"BACKEND\",\n        \"_id\": \"661d7c6aaef84bd15bc6eeeb\"\n    },\n    \"state\": \"OPEN\",\n    \"createdBy\": \"661d7557438e77e6f2431d61\",\n    \"dateRange\": {\n        \"startDate\": \"2024-02-01T00:00:00.000Z\",\n        \"endDate\": \"2024-04-15T00:00:00.000Z\",\n        \"_id\": \"661d7c6aaef84bd15bc6eeec\"\n    },\n    \"executionTime\": null,\n    \"_id\": \"661d7c6aaef84bd15bc6eeea\",\n    \"createdAt\": \"2024-04-15T19:13:46.231Z\",\n    \"__v\": 0\n}"}],"_postman_id":"c0022fd6-5bbf-4015-80eb-5f0391908b19"},{"name":"Update Task","id":"7adf3dcd-f0ca-4d93-9303-5ff67b67e063","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"credentials.assignedTo\": \"661b089b77cbaf3e343dfb3f\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:3000/task/:taskId","description":"<p>This endpoint is used to update a specific task identified by the taskId. The HTTP PATCH request should be sent to localhost:3000/task/:taskId with the payload in the raw request body type.</p>\n<h3 id=\"request-body\">Request Body</h3>\n<ul>\n<li><code>credentials.estimation</code> (number): The estimation value to be updated for the task.</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<ul>\n<li>Status: 200</li>\n<li>Content-Type: application/json</li>\n<li><code>msg</code> (string): A message, if any.</li>\n<li><code>task</code> (object): The updated task object with various properties including _id, projectId, credentials, state, createdBy, dateRange, executionTime, createdAt, and __v.</li>\n</ul>\n<h4 id=\"example-response\">Example Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"msg\": \"\",\n    \"task\": {\n        \"_id\": \"\",\n        \"projectId\": \"\",\n        \"credentials\": {\n            \"name\": \"\",\n            \"assignedTo\": null,\n            \"estimation\": 0,\n            \"specialization\": \"\",\n            \"_id\": \"\"\n        },\n        \"state\": \"\",\n        \"createdBy\": \"\",\n        \"dateRange\": {\n            \"startDate\": \"\",\n            \"endDate\": \"\",\n            \"_id\": \"\"\n        },\n        \"executionTime\": null,\n        \"createdAt\": \"\",\n        \"__v\": 0\n    }\n}\n\n</code></pre>\n","urlObject":{"port":"3000","path":["task",":taskId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"661afce3ca8d46d488e1684c","key":"taskId"}]}},"response":[{"id":"61a6268f-fe34-4d73-b580-a8329278b3d1","name":"Update Task","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"credentials.estimation\": 3\r\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"localhost:3000/task/:taskId","host":["localhost"],"port":"3000","path":["task",":taskId"],"variable":[{"key":"taskId","value":"661d7e0ac08968459302a037"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"496"},{"key":"ETag","value":"W/\"1f0-DhclWLm+XdhRsxr++OwWJ2q73zo\""},{"key":"Date","value":"Mon, 15 Apr 2024 19:22:48 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"msg\": \"Task updated successfully\",\n    \"task\": {\n        \"_id\": \"661d7e0ac08968459302a037\",\n        \"projectId\": \"661b225c39e4ffdf83693c02\",\n        \"credentials\": {\n            \"name\": \"Delete all tasks\",\n            \"assignedTo\": null,\n            \"estimation\": 3,\n            \"specialization\": \"BACKEND\",\n            \"_id\": \"661d7e0ac08968459302a038\"\n        },\n        \"state\": \"OPEN\",\n        \"createdBy\": \"661d7557438e77e6f2431d61\",\n        \"dateRange\": {\n            \"startDate\": \"2024-05-21T00:00:00.000Z\",\n            \"endDate\": \"2024-05-22T00:00:00.000Z\",\n            \"_id\": \"661d7e0ac08968459302a039\"\n        },\n        \"executionTime\": null,\n        \"createdAt\": \"2024-04-15T19:20:42.085Z\",\n        \"__v\": 0\n    }\n}"}],"_postman_id":"7adf3dcd-f0ca-4d93-9303-5ff67b67e063"},{"name":"Close Task","id":"a5d6516e-8f08-4044-ba09-84dc5c60fc11","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"executionTime\": 10\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:3000/task/:taskId/close","description":"<p>This endpoint is used to close a specific task identified by its taskId. When a PATCH request is sent to localhost:3000/task/:taskId/close, with the \"executionTime\" parameter in the request body, the task is closed with the provided execution time.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<ul>\n<li><code>executionTime</code> (number): The time taken to execute the task.</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<ul>\n<li>Status: 200</li>\n<li>Content-Type: application/json</li>\n<li><code>message</code> (string): A message indicating the result of the task closure.</li>\n</ul>\n<h4 id=\"example-response\">Example Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"\"\n}\n\n</code></pre>\n","urlObject":{"port":"3000","path":["task",":taskId","close"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"661afce3ca8d46d488e1684c","key":"taskId"}]}},"response":[{"id":"be0e354d-bb3a-445c-b26e-6249d8d9303f","name":"Close Task","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"executionTime\": 10\r\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"localhost:3000/task/:taskId/close","host":["localhost"],"port":"3000","path":["task",":taskId","close"],"variable":[{"key":"taskId","value":"661d8137b75e526f246cf23c"}]}},"status":"Unprocessable Entity","code":422,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"48"},{"key":"ETag","value":"W/\"30-6jwJlcT8ylcYYrC66L7600mqbS8\""},{"key":"Date","value":"Mon, 15 Apr 2024 19:37:23 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": {\n        \"taskId\": \"Assign a user to the task\"\n    }\n}"},{"id":"6524cfab-8fcd-4946-8001-2c9679eb4127","name":"Close Task","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"executionTime\": 10\r\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"localhost:3000/task/:taskId/close","host":["localhost"],"port":"3000","path":["task",":taskId","close"],"variable":[{"key":"taskId","value":"661d7debc08968459302a02f"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"60"},{"key":"ETag","value":"W/\"3c-Qyl3J6qaqIeyHJcFugUmX11UamM\""},{"key":"Date","value":"Mon, 15 Apr 2024 19:52:02 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Task closed and developer updated successfully\"\n}"}],"_postman_id":"a5d6516e-8f08-4044-ba09-84dc5c60fc11"},{"name":"Delete Task","id":"eaf99955-41ec-4de2-909b-6cf26e0222a5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"localhost:3000/task/:taskId","description":"<p>This endpoint is used to delete a specific task identified by its taskId. Upon successful deletion, the server returns a 200 status with an empty JSON response containing a \"msg\" key.</p>\n<h3 id=\"http-request\">HTTP Request</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">DELETE localhost:3000/task/:taskId\n\n</code></pre>\n<h3 id=\"response\">Response</h3>\n<ul>\n<li>Status: 200</li>\n<li>Content-Type: application/json</li>\n</ul>\n<p>Example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"msg\": \"\"\n}\n\n</code></pre>\n","urlObject":{"port":"3000","path":["task",":taskId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"6619c8bc7ba96c4840b63563","key":"taskId"}]}},"response":[{"id":"93c06711-4cf4-4cc9-86ed-0ccfcda87189","name":"Delete Task","originalRequest":{"method":"DELETE","header":[],"url":{"raw":"localhost:3000/task/:taskId","host":["localhost"],"port":"3000","path":["task",":taskId"],"variable":[{"key":"taskId","value":"661d8087b75e526f246cf22b"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"35"},{"key":"ETag","value":"W/\"23-Z5o2DJo+SywrnwY+M/mhq+4hsTc\""},{"key":"Date","value":"Mon, 15 Apr 2024 19:31:43 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"msg\": \"Task deleted successfully\"\n}"}],"_postman_id":"eaf99955-41ec-4de2-909b-6cf26e0222a5"},{"name":"Delete Tasks","id":"a2806ed7-5e63-42b0-8607-7baecb4fb422","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"localhost:3000/tasks","description":"<p>This endpoint sends an HTTP DELETE request to localhost:3000/tasks to delete a task. The response will have a status code of 200 and a content type of application/json. The response body will contain a message indicating the result of the deletion.</p>\n<h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"msg\": \"\"\n}\n\n</code></pre>\n","urlObject":{"port":"3000","path":["tasks"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"fef5cc6d-3f37-4511-b34f-017c79eecca2","name":"Delete Tasks","originalRequest":{"method":"DELETE","header":[],"url":"localhost:3000/tasks"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"50"},{"key":"ETag","value":"W/\"32-N5lHRpg4aPdqw4N3gEw8HNR+4ek\""},{"key":"Date","value":"Mon, 15 Apr 2024 18:38:44 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"msg\": \"Tasks and Developer updated successfully\"\n}"}],"_postman_id":"a2806ed7-5e63-42b0-8607-7baecb4fb422"}],"id":"80154449-93ec-4b4a-8472-d9afdebf557f","_postman_id":"80154449-93ec-4b4a-8472-d9afdebf557f","description":""}],"variable":[{"key":":userId","value":":userId"}]}