{"info":{"_postman_id":"a625509a-d0cd-4677-a89c-a93ea7901424","name":"Bug-Board API - Deployed","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"description":"<html><head></head><body></body></html>","owner":"21197590","collectionId":"a625509a-d0cd-4677-a89c-a93ea7901424","publishedId":"2sBXwsMq59","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-06-12T21:31:23.000Z"},"item":[{"name":"auth","item":[{"name":"POST signup user","id":"32159850-2ad8-46bc-a31d-d2455c98dd98","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"\",\n    \"email\": \"\",\n    \"password\": \"\",\n\t\"passwordConfirm\": \"\"\n}","options":{"raw":{"language":"json"}}},"url":"/auth/signup","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a625509a-d0cd-4677-a89c-a93ea7901424","id":"a625509a-d0cd-4677-a89c-a93ea7901424","name":"Bug-Board API - Deployed","type":"collection"}},"urlObject":{"path":["auth","signup"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"625502bf-596b-4852-971d-5e084053a93f","name":"POST signup user","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"Mason Dubelbeis\",\n    \"email\": \"Mason.Dubelbeis@gmail.com\",\n    \"password\": \"password123\",\n\t\"passwordConfirm\": \"password123\"\n}","options":{"raw":{"language":"json"}}},"url":"/auth/signup"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":":status","value":201},{"key":"date","value":"Fri, 12 Jun 2026 21:22:52 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"258"},{"key":"access-control-allow-origin","value":"http://localhost:5173"},{"key":"content-encoding","value":"br"},{"key":"etag","value":"W/\"139-eMddy8HualjUKOTFwsHr8vhDCSc\""},{"key":"rndr-id","value":"830bda3d-5ce6-4723"},{"key":"server","value":"cloudflare"},{"key":"vary","value":"Origin, Accept-Encoding"},{"key":"x-powered-by","value":"Express"},{"key":"x-render-origin-server","value":"Render"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"cf-ray","value":"a0abe9c99b6bd230-DFW"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjZhMmM3OGFhMzc3Yzc3MDA2M2FiNTRjNCIsImlhdCI6MTc4MTI5OTM3MiwiZXhwIjoxNzgxMzg1NzcyfQ.ifICa7_zBnf7s33rdXIgSflcb2K_C-PoIGm__SqTynI\",\n    \"data\": {\n        \"user\": {\n            \"id\": \"6a2c78aa377c770063ab54c4\",\n            \"name\": \"Mason Dubelbeis\",\n            \"email\": \"mason.dubelbeis@gmail.com\"\n        }\n    }\n}"}],"_postman_id":"32159850-2ad8-46bc-a31d-d2455c98dd98"},{"name":"POST login user","id":"5e7b9490-f967-4f83-b795-e858e915c3e4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"email\": \"demo@bugboard.dev\",\n    \"password\": \"password123\"\n}","options":{"raw":{"language":"json"}}},"url":"/auth/login","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a625509a-d0cd-4677-a89c-a93ea7901424","id":"a625509a-d0cd-4677-a89c-a93ea7901424","name":"Bug-Board API - Deployed","type":"collection"}},"urlObject":{"path":["auth","login"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"e2287e32-93e1-41d8-9a71-3696f92b77e1","name":"POST login user","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"email\": \"demo@bugboard.dev\",\n    \"password\": \"password123\"\n}","options":{"raw":{"language":"json"}}},"url":"/auth/login"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":":status","value":200},{"key":"date","value":"Fri, 12 Jun 2026 21:04:28 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"248"},{"key":"access-control-allow-origin","value":"http://localhost:5173"},{"key":"content-encoding","value":"br"},{"key":"etag","value":"W/\"12b-5F/lprt+gCYeA7r65KPWbQsJCrE\""},{"key":"rndr-id","value":"96475615-519f-453e"},{"key":"server","value":"cloudflare"},{"key":"vary","value":"Origin, Accept-Encoding"},{"key":"x-powered-by","value":"Express"},{"key":"x-render-origin-server","value":"Render"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"cf-ray","value":"a0abced80d3369c6-DFW"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjZhMmM3MWQzNGQ4YzViMzczY2QwZGI3NiIsImlhdCI6MTc4MTI5ODI2OCwiZXhwIjoxNzgxMzg0NjY4fQ.AwAgbwOBHKf8jdMZFaXKKdgSVmSOuMvHwBSfW8zBYnU\",\n    \"data\": {\n        \"user\": {\n            \"id\": \"6a2c71d34d8c5b373cd0db76\",\n            \"name\": \"Demo User\",\n            \"email\": \"demo@bugboard.dev\"\n        }\n    }\n}"}],"_postman_id":"5e7b9490-f967-4f83-b795-e858e915c3e4"}],"id":"08fc36eb-e370-4a33-b991-3a34ec221fe0","_postman_id":"08fc36eb-e370-4a33-b991-3a34ec221fe0","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a625509a-d0cd-4677-a89c-a93ea7901424","id":"a625509a-d0cd-4677-a89c-a93ea7901424","name":"Bug-Board API - Deployed","type":"collection"}}},{"name":"projects","item":[{"name":"GET all projects","id":"8d488359-d210-4d51-8d92-ff45a512dca4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"/projects","urlObject":{"path":["projects"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"f15f6171-b1fe-4268-b02a-dc0566f7de85","name":"GET all projects","originalRequest":{"method":"GET","header":[],"url":"/projects"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":":status","value":200},{"key":"date","value":"Fri, 12 Jun 2026 21:23:06 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"339"},{"key":"access-control-allow-origin","value":"http://localhost:5173"},{"key":"content-encoding","value":"br"},{"key":"etag","value":"W/\"367-XoSQ7DqQ+q/iIy8fYFi2YxhP150\""},{"key":"rndr-id","value":"92c3b746-b710-4e61"},{"key":"server","value":"cloudflare"},{"key":"vary","value":"Origin, Accept-Encoding"},{"key":"x-powered-by","value":"Express"},{"key":"x-render-origin-server","value":"Render"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"cf-ray","value":"a0abea2e2f25d230-DFW"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"count\": 3,\n    \"data\": {\n        \"projects\": [\n            {\n                \"_id\": \"6a2c71d34d8c5b373cd0db78\",\n                \"title\": \"Bug-Board API\",\n                \"description\": \"Express and MongoDB backend for authentication, projects, bugs, and comments.\",\n                \"owner\": \"6a2c71d34d8c5b373cd0db76\",\n                \"createdAt\": \"2026-06-12T20:53:39.969Z\",\n                \"updatedAt\": \"2026-06-12T20:53:39.969Z\",\n                \"__v\": 0\n            },\n            {\n                \"_id\": \"6a2c71d44d8c5b373cd0db79\",\n                \"title\": \"Bug-Board Client\",\n                \"description\": \"Frontend dashboard for managing projects, bugs, comments, and account workflows.\",\n                \"owner\": \"6a2c71d34d8c5b373cd0db76\",\n                \"createdAt\": \"2026-06-12T20:53:40.020Z\",\n                \"updatedAt\": \"2026-06-12T20:53:40.020Z\",\n                \"__v\": 0\n            },\n            {\n                \"_id\": \"6a2c71d44d8c5b373cd0db7a\",\n                \"title\": \"Deployment\",\n                \"description\": \"Production deployment setup for the API, database, and frontend client.\",\n                \"owner\": \"6a2c71d34d8c5b373cd0db76\",\n                \"createdAt\": \"2026-06-12T20:53:40.072Z\",\n                \"updatedAt\": \"2026-06-12T20:53:40.072Z\",\n                \"__v\": 0\n            }\n        ]\n    }\n}"}],"_postman_id":"8d488359-d210-4d51-8d92-ff45a512dca4"},{"name":"GET project","id":"5e1a4fc9-4647-4c67-864e-6c7af0399a12","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"/projects/6a2c71d34d8c5b373cd0db78","urlObject":{"path":["projects","6a2c71d34d8c5b373cd0db78"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"ca718c19-5d72-4334-9fbe-87405e0919fc","name":"GET project","originalRequest":{"method":"GET","header":[],"url":"/projects/6a2c71d34d8c5b373cd0db78"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":":status","value":200},{"key":"date","value":"Fri, 12 Jun 2026 21:23:18 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"208"},{"key":"access-control-allow-origin","value":"http://localhost:5173"},{"key":"content-encoding","value":"br"},{"key":"etag","value":"W/\"139-uIaQ7jzHekMvw7I3vfYVcVBwQsY\""},{"key":"rndr-id","value":"f7fcd87a-ab6c-4d0d"},{"key":"server","value":"cloudflare"},{"key":"vary","value":"Origin, Accept-Encoding"},{"key":"x-powered-by","value":"Express"},{"key":"x-render-origin-server","value":"Render"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"cf-ray","value":"a0abea7518a8d230-DFW"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"data\": {\n        \"project\": {\n            \"_id\": \"6a2c71d34d8c5b373cd0db78\",\n            \"title\": \"Bug-Board API\",\n            \"description\": \"Express and MongoDB backend for authentication, projects, bugs, and comments.\",\n            \"owner\": \"6a2c71d34d8c5b373cd0db76\",\n            \"createdAt\": \"2026-06-12T20:53:39.969Z\",\n            \"updatedAt\": \"2026-06-12T20:53:39.969Z\",\n            \"__v\": 0\n        }\n    }\n}"}],"_postman_id":"5e1a4fc9-4647-4c67-864e-6c7af0399a12"},{"name":"PATCH project","id":"c3f1052a-78fc-4a30-a1b3-7a0c65dc60e0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"title\": \"Testing Patching Title\"\n}","options":{"raw":{"language":"json"}}},"url":"/projects/6a2c71d34d8c5b373cd0db78","urlObject":{"path":["projects","6a2c71d34d8c5b373cd0db78"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"d7062a28-527d-44ca-9bb8-476ae59be812","name":"PATCH project","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"title\": \"Testing Patching Title\"\n}","options":{"raw":{"language":"json"}}},"url":"/projects/6a2c78da377c770063ab54c5"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":":status","value":200},{"key":"date","value":"Fri, 12 Jun 2026 21:23:52 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"181"},{"key":"access-control-allow-origin","value":"http://localhost:5173"},{"key":"content-encoding","value":"br"},{"key":"etag","value":"W/\"108-Ykjb1KLO1kzPI/XMqWG9W3q89sQ\""},{"key":"rndr-id","value":"dbfe0e45-6aab-454b"},{"key":"server","value":"cloudflare"},{"key":"vary","value":"Origin, Accept-Encoding"},{"key":"x-powered-by","value":"Express"},{"key":"x-render-origin-server","value":"Render"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"cf-ray","value":"a0abeb4e5d4cd230-DFW"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"data\": {\n        \"project\": {\n            \"_id\": \"6a2c78da377c770063ab54c5\",\n            \"title\": \"Testing Patching Title\",\n            \"description\": \"Testing Description\",\n            \"owner\": \"6a2c71d34d8c5b373cd0db76\",\n            \"createdAt\": \"2026-06-12T21:23:38.410Z\",\n            \"updatedAt\": \"2026-06-12T21:23:52.793Z\",\n            \"__v\": 0\n        }\n    }\n}"}],"_postman_id":"c3f1052a-78fc-4a30-a1b3-7a0c65dc60e0"},{"name":"DELETE project","id":"0a838e67-b816-41e2-8c66-8eefe34c1c5e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"DELETE","header":[],"url":"/projects/6a2c7538377c770063ab54c1","urlObject":{"path":["projects","6a2c7538377c770063ab54c1"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"d26f3ca8-0324-4666-80f6-086aef13505a","name":"DELETE project","originalRequest":{"method":"DELETE","header":[],"url":"/projects/6a2c78da377c770063ab54c5"},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":[{"key":":status","value":204},{"key":"date","value":"Fri, 12 Jun 2026 21:24:11 GMT"},{"key":"access-control-allow-origin","value":"http://localhost:5173"},{"key":"rndr-id","value":"ae4602d0-2ffb-4f6b"},{"key":"server","value":"cloudflare"},{"key":"vary","value":"Origin"},{"key":"x-powered-by","value":"Express"},{"key":"x-render-origin-server","value":"Render"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"cf-ray","value":"a0abebbfe985d230-DFW"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"0a838e67-b816-41e2-8c66-8eefe34c1c5e"},{"name":"POST project","id":"48a9e010-7758-4dbd-a5ea-9addd2f12d17","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"title\": \"Test Project 1\",\n    \"description\": \"Testing Description\",\n    \"owner\": \"6a2c71d34d8c5b373cd0db76\"\n}","options":{"raw":{"language":"json"}}},"url":"/projects","urlObject":{"path":["projects"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"072d825a-a2b4-478a-84f7-78910bc41621","name":"POST project","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"title\": \"Test Project 1\",\n    \"description\": \"Testing Description\",\n    \"owner\": \"6a2c71d34d8c5b373cd0db76\"\n}","options":{"raw":{"language":"json"}}},"url":"/projects"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":":status","value":201},{"key":"date","value":"Fri, 12 Jun 2026 21:23:38 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"166"},{"key":"access-control-allow-origin","value":"http://localhost:5173"},{"key":"content-encoding","value":"br"},{"key":"etag","value":"W/\"100-/2QNRGVx87CXGpoTaI9UsK0+LdM\""},{"key":"rndr-id","value":"c2e490af-33be-4c2f"},{"key":"server","value":"cloudflare"},{"key":"vary","value":"Origin, Accept-Encoding"},{"key":"x-powered-by","value":"Express"},{"key":"x-render-origin-server","value":"Render"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"cf-ray","value":"a0abeaf47939d230-DFW"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"data\": {\n        \"project\": {\n            \"title\": \"Test Project 1\",\n            \"description\": \"Testing Description\",\n            \"owner\": \"6a2c71d34d8c5b373cd0db76\",\n            \"_id\": \"6a2c78da377c770063ab54c5\",\n            \"createdAt\": \"2026-06-12T21:23:38.410Z\",\n            \"updatedAt\": \"2026-06-12T21:23:38.410Z\",\n            \"__v\": 0\n        }\n    }\n}"}],"_postman_id":"48a9e010-7758-4dbd-a5ea-9addd2f12d17"}],"id":"4c1d8e81-730f-46a1-a033-5427c379fd1c","_postman_id":"4c1d8e81-730f-46a1-a033-5427c379fd1c","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a625509a-d0cd-4677-a89c-a93ea7901424","id":"a625509a-d0cd-4677-a89c-a93ea7901424","name":"Bug-Board API - Deployed","type":"collection"}}},{"name":"bugs","item":[{"name":"GET all bugs","id":"5053720b-4bd3-4dea-9b32-1191c0bada99","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"/bugs","urlObject":{"path":["bugs"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"c9acfff6-1bf6-4b8d-be1d-cb4e20b164c4","name":"GET all bugs","originalRequest":{"method":"GET","header":[],"url":"/bugs"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":":status","value":200},{"key":"date","value":"Fri, 12 Jun 2026 21:24:18 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"928"},{"key":"access-control-allow-origin","value":"http://localhost:5173"},{"key":"content-encoding","value":"br"},{"key":"etag","value":"W/\"e72-FwWF6XygAEI9AhQpOKgIqONk6Mg\""},{"key":"rndr-id","value":"77919dba-df57-4cc5"},{"key":"server","value":"cloudflare"},{"key":"vary","value":"Origin, Accept-Encoding"},{"key":"x-powered-by","value":"Express"},{"key":"x-render-origin-server","value":"Render"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"cf-ray","value":"a0abebee5dc2d230-DFW"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"count\": 9,\n    \"data\": {\n        \"bugs\": [\n            {\n                \"_id\": \"6a2c71d44d8c5b373cd0db7c\",\n                \"title\": \"JWT token expires but frontend does not redirect\",\n                \"description\": \"When the token expires, the client should clear auth state and redirect to login.\",\n                \"status\": \"OPEN\",\n                \"priority\": \"HIGH\",\n                \"severity\": \"MAJOR\",\n                \"project\": \"6a2c71d34d8c5b373cd0db78\",\n                \"createdBy\": \"6a2c71d34d8c5b373cd0db76\",\n                \"createdAt\": \"2026-06-12T20:53:40.176Z\",\n                \"updatedAt\": \"2026-06-12T20:53:40.176Z\",\n                \"__v\": 0\n            },\n            {\n                \"_id\": \"6a2c71d44d8c5b373cd0db7e\",\n                \"title\": \"Error response missing field-level details\",\n                \"description\": \"Validation errors should return a consistent errors array for form display.\",\n                \"status\": \"IN_PROGRESS\",\n                \"priority\": \"MEDIUM\",\n                \"severity\": \"MINOR\",\n                \"project\": \"6a2c71d34d8c5b373cd0db78\",\n                \"createdBy\": \"6a2c71d34d8c5b373cd0db76\",\n                \"createdAt\": \"2026-06-12T20:53:40.177Z\",\n                \"updatedAt\": \"2026-06-12T20:53:40.177Z\",\n                \"__v\": 0\n            },\n            {\n                \"_id\": \"6a2c71d44d8c5b373cd0db7d\",\n                \"title\": \"User can create bug without project ownership\",\n                \"description\": \"The API should reject bug creation when the project does not belong to the authenticated user.\",\n                \"status\": \"RESOLVED\",\n                \"priority\": \"CRITICAL\",\n                \"severity\": \"BLOCKING\",\n                \"project\": \"6a2c71d34d8c5b373cd0db78\",\n                \"createdBy\": \"6a2c71d34d8c5b373cd0db76\",\n                \"createdAt\": \"2026-06-12T20:53:40.176Z\",\n                \"updatedAt\": \"2026-06-12T20:53:40.176Z\",\n                \"__v\": 0\n            },\n            {\n                \"_id\": \"6a2c71d44d8c5b373cd0db81\",\n                \"title\": \"Mobile sidebar overlaps content\",\n                \"description\": \"On small screens, the app navigation overlaps the main dashboard content.\",\n                \"status\": \"IN_PROGRESS\",\n                \"priority\": \"LOW\",\n                \"severity\": \"MINOR\",\n                \"project\": \"6a2c71d44d8c5b373cd0db79\",\n                \"createdBy\": \"6a2c71d34d8c5b373cd0db76\",\n                \"createdAt\": \"2026-06-12T20:53:40.177Z\",\n                \"updatedAt\": \"2026-06-12T20:53:40.177Z\",\n                \"__v\": 0\n            },\n            {\n                \"_id\": \"6a2c71d44d8c5b373cd0db83\",\n                \"title\": \"Missing production environment variable\",\n                \"description\": \"The API fails during deployment when JWT_SECRET or DATABASE_URL is not configured.\",\n                \"status\": \"RESOLVED\",\n                \"priority\": \"CRITICAL\",\n                \"severity\": \"BLOCKING\",\n                \"project\": \"6a2c71d44d8c5b373cd0db7a\",\n                \"createdBy\": \"6a2c71d34d8c5b373cd0db76\",\n                \"createdAt\": \"2026-06-12T20:53:40.177Z\",\n                \"updatedAt\": \"2026-06-12T20:53:40.177Z\",\n                \"__v\": 0\n            },\n            {\n                \"_id\": \"6a2c71d44d8c5b373cd0db82\",\n                \"title\": \"CORS blocks deployed frontend\",\n                \"description\": \"The deployed frontend cannot reach the deployed API because the production origin is not allowed.\",\n                \"status\": \"OPEN\",\n                \"priority\": \"HIGH\",\n                \"severity\": \"MAJOR\",\n                \"project\": \"6a2c71d44d8c5b373cd0db7a\",\n                \"createdBy\": \"6a2c71d34d8c5b373cd0db76\",\n                \"createdAt\": \"2026-06-12T20:53:40.177Z\",\n                \"updatedAt\": \"2026-06-12T20:53:40.177Z\",\n                \"__v\": 0\n            },\n            {\n                \"_id\": \"6a2c71d44d8c5b373cd0db84\",\n                \"title\": \"Health check endpoint fails on Render\",\n                \"description\": \"The deployment platform needs a reliable health endpoint to confirm the API is running.\",\n                \"status\": \"CLOSED\",\n                \"priority\": \"MEDIUM\",\n                \"severity\": \"MINOR\",\n                \"project\": \"6a2c71d44d8c5b373cd0db7a\",\n                \"createdBy\": \"6a2c71d34d8c5b373cd0db76\",\n                \"createdAt\": \"2026-06-12T20:53:40.177Z\",\n                \"updatedAt\": \"2026-06-12T20:53:40.177Z\",\n                \"__v\": 0\n            },\n            {\n                \"_id\": \"6a2c71d44d8c5b373cd0db7f\",\n                \"title\": \"Signup form does not show password mismatch\",\n                \"description\": \"The signup page should clearly display a validation message when password confirmation fails.\",\n                \"status\": \"OPEN\",\n                \"priority\": \"HIGH\",\n                \"severity\": \"MAJOR\",\n                \"project\": \"6a2c71d44d8c5b373cd0db79\",\n                \"createdBy\": \"6a2c71d34d8c5b373cd0db76\",\n                \"createdAt\": \"2026-06-12T20:53:40.177Z\",\n                \"updatedAt\": \"2026-06-12T20:53:40.177Z\",\n                \"__v\": 0\n            },\n            {\n                \"_id\": \"6a2c71d44d8c5b373cd0db80\",\n                \"title\": \"Dashboard project count is incorrect\",\n                \"description\": \"The dashboard summary is showing the wrong number of user-owned projects.\",\n                \"status\": \"OPEN\",\n                \"priority\": \"MEDIUM\",\n                \"severity\": \"MINOR\",\n                \"project\": \"6a2c71d44d8c5b373cd0db79\",\n                \"createdBy\": \"6a2c71d34d8c5b373cd0db76\",\n                \"createdAt\": \"2026-06-12T20:53:40.177Z\",\n                \"updatedAt\": \"2026-06-12T20:53:40.177Z\",\n                \"__v\": 0\n            }\n        ]\n    }\n}"}],"_postman_id":"5053720b-4bd3-4dea-9b32-1191c0bada99"},{"name":"GET bug","id":"a7ecbd8d-3a4e-4ecb-a6b4-6e33c01c08e4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"/bugs/6a2c71d44d8c5b373cd0db7c","urlObject":{"path":["bugs","6a2c71d44d8c5b373cd0db7c"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"852383e3-35fb-40cd-a10f-f5187fc4e764","name":"GET bug","originalRequest":{"method":"GET","header":[],"url":"/bugs/6a2c71d44d8c5b373cd0db7c"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":":status","value":200},{"key":"date","value":"Fri, 12 Jun 2026 21:24:34 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"269"},{"key":"access-control-allow-origin","value":"http://localhost:5173"},{"key":"content-encoding","value":"br"},{"key":"etag","value":"W/\"1ba-k0ICdM/V83sSbkEvzNOVpiaqpwE\""},{"key":"rndr-id","value":"8c66765b-37ba-4d53"},{"key":"server","value":"cloudflare"},{"key":"vary","value":"Origin, Accept-Encoding"},{"key":"x-powered-by","value":"Express"},{"key":"x-render-origin-server","value":"Render"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"cf-ray","value":"a0abec4f7cd0d230-DFW"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"data\": {\n        \"bug\": {\n            \"_id\": \"6a2c71d44d8c5b373cd0db7c\",\n            \"title\": \"JWT token expires but frontend does not redirect\",\n            \"description\": \"When the token expires, the client should clear auth state and redirect to login.\",\n            \"status\": \"OPEN\",\n            \"priority\": \"HIGH\",\n            \"severity\": \"MAJOR\",\n            \"project\": \"6a2c71d34d8c5b373cd0db78\",\n            \"createdBy\": \"6a2c71d34d8c5b373cd0db76\",\n            \"createdAt\": \"2026-06-12T20:53:40.176Z\",\n            \"updatedAt\": \"2026-06-12T20:53:40.176Z\",\n            \"__v\": 0\n        }\n    }\n}"}],"_postman_id":"a7ecbd8d-3a4e-4ecb-a6b4-6e33c01c08e4"},{"name":"PATCH bug","id":"b79d543a-4167-4eb3-9ad7-5716b717aefe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"title\": \"Testing Patching Title\"\n}","options":{"raw":{"language":"json"}}},"url":"/bugs/6a2c7663377c770063ab54c2","urlObject":{"path":["bugs","6a2c7663377c770063ab54c2"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"48bf9dbb-403a-4405-a492-cd88dd0b8a71","name":"PATCH bug","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"title\": \"Testing Patching Title\"\n}","options":{"raw":{"language":"json"}}},"url":"/bugs/6a2c791d377c770063ab54c6"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":":status","value":200},{"key":"date","value":"Fri, 12 Jun 2026 21:25:07 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"281"},{"key":"access-control-allow-origin","value":"http://localhost:5173"},{"key":"content-encoding","value":"br"},{"key":"etag","value":"W/\"1b1-Fs0zyjUFuZgEN+UFfb3KjY8Jfys\""},{"key":"rndr-id","value":"0850fff5-3cc8-48f5"},{"key":"server","value":"cloudflare"},{"key":"vary","value":"Origin, Accept-Encoding"},{"key":"x-powered-by","value":"Express"},{"key":"x-render-origin-server","value":"Render"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"cf-ray","value":"a0abed226c02d230-DFW"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"data\": {\n        \"bug\": {\n            \"_id\": \"6a2c791d377c770063ab54c6\",\n            \"title\": \"Testing Patching Title\",\n            \"description\": \"When a user clicks the login button, the form does not submit and no validation error is displayed\",\n            \"status\": \"OPEN\",\n            \"priority\": \"HIGH\",\n            \"severity\": \"MAJOR\",\n            \"project\": \"6a2c71d34d8c5b373cd0db78\",\n            \"createdBy\": \"6a2c71d34d8c5b373cd0db76\",\n            \"createdAt\": \"2026-06-12T21:24:45.284Z\",\n            \"updatedAt\": \"2026-06-12T21:25:07.683Z\",\n            \"__v\": 0\n        }\n    }\n}"}],"_postman_id":"b79d543a-4167-4eb3-9ad7-5716b717aefe"},{"name":"DELETE bug","id":"d25bf241-9f50-47b9-9c4b-9dfc690c980f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"DELETE","header":[],"url":"/bugs/6a2c7663377c770063ab54c2","urlObject":{"path":["bugs","6a2c7663377c770063ab54c2"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"60b7a575-0d63-411e-baab-fbfd618febe5","name":"DELETE bug","originalRequest":{"method":"DELETE","header":[],"url":"/bugs/6a2c791d377c770063ab54c6"},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":[{"key":":status","value":204},{"key":"date","value":"Fri, 12 Jun 2026 21:25:18 GMT"},{"key":"access-control-allow-origin","value":"http://localhost:5173"},{"key":"rndr-id","value":"091b6709-00d3-4178"},{"key":"server","value":"cloudflare"},{"key":"vary","value":"Origin"},{"key":"x-powered-by","value":"Express"},{"key":"x-render-origin-server","value":"Render"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"cf-ray","value":"a0abed631ec4d230-DFW"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"d25bf241-9f50-47b9-9c4b-9dfc690c980f"},{"name":"POST bug","id":"d0512250-9671-47cc-b87d-5ed20f9e00bf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"title\": \"Login button does not submit form\",\n  \"description\": \"When a user clicks the login button, the form does not submit and no validation error is displayed\",\n  \"priority\": \"HIGH\",\n  \"severity\": \"MAJOR\",\n  \"project\": \"6a2c71d34d8c5b373cd0db78\",\n  \"createdBy\": \"6a2c71d34d8c5b373cd0db76\"\n}","options":{"raw":{"language":"json"}}},"url":"/bugs","urlObject":{"path":["bugs"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"305b203d-435d-44ce-8c3b-6fc1f81565c0","name":"POST bug","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"title\": \"Login button does not submit form\",\n  \"description\": \"When a user clicks the login button, the form does not submit and no validation error is displayed\",\n  \"priority\": \"HIGH\",\n  \"severity\": \"MAJOR\",\n  \"project\": \"6a2c71d34d8c5b373cd0db78\",\n  \"createdBy\": \"6a2c71d34d8c5b373cd0db76\"\n}","options":{"raw":{"language":"json"}}},"url":"/bugs"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":":status","value":201},{"key":"date","value":"Fri, 12 Jun 2026 21:24:45 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"266"},{"key":"access-control-allow-origin","value":"http://localhost:5173"},{"key":"content-encoding","value":"br"},{"key":"etag","value":"W/\"1bc-NebRKV2RMpIJwgZgpq9l/UNSDEE\""},{"key":"rndr-id","value":"2a8f2ca6-0a1d-4d17"},{"key":"server","value":"cloudflare"},{"key":"vary","value":"Origin, Accept-Encoding"},{"key":"x-powered-by","value":"Express"},{"key":"x-render-origin-server","value":"Render"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"cf-ray","value":"a0abec95fe49d230-DFW"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"data\": {\n        \"bug\": {\n            \"title\": \"Login button does not submit form\",\n            \"description\": \"When a user clicks the login button, the form does not submit and no validation error is displayed\",\n            \"status\": \"OPEN\",\n            \"priority\": \"HIGH\",\n            \"severity\": \"MAJOR\",\n            \"project\": \"6a2c71d34d8c5b373cd0db78\",\n            \"createdBy\": \"6a2c71d34d8c5b373cd0db76\",\n            \"_id\": \"6a2c791d377c770063ab54c6\",\n            \"createdAt\": \"2026-06-12T21:24:45.284Z\",\n            \"updatedAt\": \"2026-06-12T21:24:45.284Z\",\n            \"__v\": 0\n        }\n    }\n}"}],"_postman_id":"d0512250-9671-47cc-b87d-5ed20f9e00bf"}],"id":"7f0a07ff-ae23-4280-9899-81f2875b3fd9","_postman_id":"7f0a07ff-ae23-4280-9899-81f2875b3fd9","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a625509a-d0cd-4677-a89c-a93ea7901424","id":"a625509a-d0cd-4677-a89c-a93ea7901424","name":"Bug-Board API - Deployed","type":"collection"}}},{"name":"comments","item":[{"name":"GET all comments","id":"cc56e7e0-a711-482d-bce2-49935686bf42","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"/comments","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a625509a-d0cd-4677-a89c-a93ea7901424","id":"a625509a-d0cd-4677-a89c-a93ea7901424","name":"Bug-Board API - Deployed","type":"collection"}},"urlObject":{"path":["comments"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"7323a1bb-5373-4d20-b58e-457c13e35615","name":"GET all comments","originalRequest":{"method":"GET","header":[],"url":"/comments"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":":status","value":200},{"key":"date","value":"Fri, 12 Jun 2026 21:25:31 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"479"},{"key":"access-control-allow-origin","value":"http://localhost:5173"},{"key":"content-encoding","value":"br"},{"key":"etag","value":"W/\"86c-AleXBwVgjDsUqKOTkpDxzBzTit0\""},{"key":"rndr-id","value":"b1f6770e-390d-4e14"},{"key":"server","value":"cloudflare"},{"key":"vary","value":"Origin, Accept-Encoding"},{"key":"x-powered-by","value":"Express"},{"key":"x-render-origin-server","value":"Render"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"cf-ray","value":"a0abedb57ba4d230-DFW"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"count\": 8,\n    \"data\": {\n        \"comments\": [\n            {\n                \"_id\": \"6a2c71d44d8c5b373cd0db88\",\n                \"body\": \"Ownership check has been added to the create bug route.\",\n                \"bug\": \"6a2c71d44d8c5b373cd0db7d\",\n                \"author\": \"6a2c71d34d8c5b373cd0db76\",\n                \"createdAt\": \"2026-06-12T20:53:40.536Z\",\n                \"updatedAt\": \"2026-06-12T20:53:40.536Z\",\n                \"__v\": 0\n            },\n            {\n                \"_id\": \"6a2c71d44d8c5b373cd0db87\",\n                \"body\": \"Backend should return 401 so the client can redirect cleanly.\",\n                \"bug\": \"6a2c71d44d8c5b373cd0db7c\",\n                \"author\": \"6a2c71d34d8c5b373cd0db76\",\n                \"createdAt\": \"2026-06-12T20:53:40.536Z\",\n                \"updatedAt\": \"2026-06-12T20:53:40.536Z\",\n                \"__v\": 0\n            },\n            {\n                \"_id\": \"6a2c71d44d8c5b373cd0db86\",\n                \"body\": \"Need to add client-side handling for expired tokens.\",\n                \"bug\": \"6a2c71d44d8c5b373cd0db7c\",\n                \"author\": \"6a2c71d34d8c5b373cd0db76\",\n                \"createdAt\": \"2026-06-12T20:53:40.536Z\",\n                \"updatedAt\": \"2026-06-12T20:53:40.536Z\",\n                \"__v\": 0\n            },\n            {\n                \"_id\": \"6a2c71d44d8c5b373cd0db8a\",\n                \"body\": \"Map Mongoose validation errors into field-level messages.\",\n                \"bug\": \"6a2c71d44d8c5b373cd0db7e\",\n                \"author\": \"6a2c71d34d8c5b373cd0db76\",\n                \"createdAt\": \"2026-06-12T20:53:40.536Z\",\n                \"updatedAt\": \"2026-06-12T20:53:40.536Z\",\n                \"__v\": 0\n            },\n            {\n                \"_id\": \"6a2c71d44d8c5b373cd0db89\",\n                \"body\": \"Need to confirm User B cannot create bugs under User A projects.\",\n                \"bug\": \"6a2c71d44d8c5b373cd0db7d\",\n                \"author\": \"6a2c71d34d8c5b373cd0db76\",\n                \"createdAt\": \"2026-06-12T20:53:40.536Z\",\n                \"updatedAt\": \"2026-06-12T20:53:40.536Z\",\n                \"__v\": 0\n            },\n            {\n                \"_id\": \"6a2c71d44d8c5b373cd0db8d\",\n                \"body\": \"Add production client URL to the CORS allowlist before frontend deploy.\",\n                \"bug\": \"6a2c71d44d8c5b373cd0db82\",\n                \"author\": \"6a2c71d34d8c5b373cd0db76\",\n                \"createdAt\": \"2026-06-12T20:53:40.536Z\",\n                \"updatedAt\": \"2026-06-12T20:53:40.536Z\",\n                \"__v\": 0\n            },\n            {\n                \"_id\": \"6a2c71d44d8c5b373cd0db8b\",\n                \"body\": \"Signup page should display server validation errors near the form.\",\n                \"bug\": \"6a2c71d44d8c5b373cd0db7f\",\n                \"author\": \"6a2c71d34d8c5b373cd0db76\",\n                \"createdAt\": \"2026-06-12T20:53:40.536Z\",\n                \"updatedAt\": \"2026-06-12T20:53:40.536Z\",\n                \"__v\": 0\n            },\n            {\n                \"_id\": \"6a2c71d44d8c5b373cd0db8c\",\n                \"body\": \"Check whether dashboard count is based on all projects or user-owned projects.\",\n                \"bug\": \"6a2c71d44d8c5b373cd0db80\",\n                \"author\": \"6a2c71d34d8c5b373cd0db76\",\n                \"createdAt\": \"2026-06-12T20:53:40.536Z\",\n                \"updatedAt\": \"2026-06-12T20:53:40.536Z\",\n                \"__v\": 0\n            }\n        ]\n    }\n}"}],"_postman_id":"cc56e7e0-a711-482d-bce2-49935686bf42"},{"name":"GET comment","id":"84a889b1-5518-4131-a2ed-237f38187b9c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"/comments/6a2c71d44d8c5b373cd0db88","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a625509a-d0cd-4677-a89c-a93ea7901424","id":"a625509a-d0cd-4677-a89c-a93ea7901424","name":"Bug-Board API - Deployed","type":"collection"}},"urlObject":{"path":["comments","6a2c71d44d8c5b373cd0db88"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"87f73e7c-6bd7-4a20-b6cf-c8532c95ba5e","name":"GET comment","originalRequest":{"method":"GET","header":[],"url":"/comments/6a2c71d44d8c5b373cd0db88"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":":status","value":200},{"key":"date","value":"Fri, 12 Jun 2026 21:25:49 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"179"},{"key":"access-control-allow-origin","value":"http://localhost:5173"},{"key":"content-encoding","value":"br"},{"key":"etag","value":"W/\"126-mHP1bjxhvrPdUImNCeCBoTUdePo\""},{"key":"rndr-id","value":"3cfdfd35-055b-437f"},{"key":"server","value":"cloudflare"},{"key":"vary","value":"Origin, Accept-Encoding"},{"key":"x-powered-by","value":"Express"},{"key":"x-render-origin-server","value":"Render"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"cf-ray","value":"a0abee25af1ad230-DFW"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"data\": {\n        \"comment\": {\n            \"_id\": \"6a2c71d44d8c5b373cd0db88\",\n            \"body\": \"Ownership check has been added to the create bug route.\",\n            \"bug\": \"6a2c71d44d8c5b373cd0db7d\",\n            \"author\": \"6a2c71d34d8c5b373cd0db76\",\n            \"createdAt\": \"2026-06-12T20:53:40.536Z\",\n            \"updatedAt\": \"2026-06-12T20:53:40.536Z\",\n            \"__v\": 0\n        }\n    }\n}"}],"_postman_id":"84a889b1-5518-4131-a2ed-237f38187b9c"},{"name":"PATCH comment","id":"6b14b888-fd4f-42dc-a21e-c8b6a64ff11d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"title\": \"Testing Patching Title\"\n}","options":{"raw":{"language":"json"}}},"url":"/comments/6a2c796e377c770063ab54c7","urlObject":{"path":["comments","6a2c796e377c770063ab54c7"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"06341f42-3e30-42ff-8aab-1581bcdb194b","name":"PATCH comment","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"body\": \"Testing Patching Body\"\n}","options":{"raw":{"language":"json"}}},"url":"/comments/6a2c796e377c770063ab54c7"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":":status","value":200},{"key":"date","value":"Fri, 12 Jun 2026 21:26:53 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"175"},{"key":"access-control-allow-origin","value":"http://localhost:5173"},{"key":"content-encoding","value":"br"},{"key":"etag","value":"W/\"104-spI4GlEZMgoVNQpBbcpUQBTNUfU\""},{"key":"rndr-id","value":"77214f9e-9265-48e3"},{"key":"server","value":"cloudflare"},{"key":"vary","value":"Origin, Accept-Encoding"},{"key":"x-powered-by","value":"Express"},{"key":"x-render-origin-server","value":"Render"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"cf-ray","value":"a0abefb9ecb8d230-DFW"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"data\": {\n        \"comment\": {\n            \"_id\": \"6a2c796e377c770063ab54c7\",\n            \"body\": \"Testing Patching Body\",\n            \"bug\": \"6a2c71d44d8c5b373cd0db80\",\n            \"author\": \"6a2c71d34d8c5b373cd0db76\",\n            \"createdAt\": \"2026-06-12T21:26:06.604Z\",\n            \"updatedAt\": \"2026-06-12T21:26:53.849Z\",\n            \"__v\": 0\n        }\n    }\n}"}],"_postman_id":"6b14b888-fd4f-42dc-a21e-c8b6a64ff11d"},{"name":"DELETE comment","id":"926d9ca0-a7bd-4a8d-b2af-c0757fc804e2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"DELETE","header":[],"url":"/comments/6a2c796e377c770063ab54c7","urlObject":{"path":["comments","6a2c796e377c770063ab54c7"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"1d1a8a37-5acc-40a5-b084-658aa4b4e473","name":"DELETE comment","originalRequest":{"method":"DELETE","header":[],"url":"/comments/6a2c796e377c770063ab54c7"},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":[{"key":":status","value":204},{"key":"date","value":"Fri, 12 Jun 2026 21:27:10 GMT"},{"key":"access-control-allow-origin","value":"http://localhost:5173"},{"key":"rndr-id","value":"23796e3d-6831-4436"},{"key":"server","value":"cloudflare"},{"key":"vary","value":"Origin"},{"key":"x-powered-by","value":"Express"},{"key":"x-render-origin-server","value":"Render"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"cf-ray","value":"a0abf0227ce0d230-DFW"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"926d9ca0-a7bd-4a8d-b2af-c0757fc804e2"},{"name":"POST comment","id":"651a2f95-8b31-42f3-bdc1-69f1aa500eef","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"body\": \"I tested the login form again and confirmed the issue happens when the email field is left empty. The submit button does not trigger validation feedback.\",\n  \"bug\": \"6a2c71d44d8c5b373cd0db80\",\n  \"author\": \"6a2c71d34d8c5b373cd0db76\"\n}","options":{"raw":{"language":"json"}}},"url":"/comments","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a625509a-d0cd-4677-a89c-a93ea7901424","id":"a625509a-d0cd-4677-a89c-a93ea7901424","name":"Bug-Board API - Deployed","type":"collection"}},"urlObject":{"path":["comments"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"86e8b066-4c5d-4550-bc3b-5f3ca4e01850","name":"POST comment","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"body\": \"I tested the login form again and confirmed the issue happens when the email field is left empty. The submit button does not trigger validation feedback.\",\n  \"bug\": \"6a2c71d44d8c5b373cd0db80\",\n  \"author\": \"6a2c71d34d8c5b373cd0db76\"\n}","options":{"raw":{"language":"json"}}},"url":"/comments"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":":status","value":201},{"key":"date","value":"Fri, 12 Jun 2026 21:26:06 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"247"},{"key":"access-control-allow-origin","value":"http://localhost:5173"},{"key":"content-encoding","value":"br"},{"key":"etag","value":"W/\"188-3DrDSLBy+hS+G/+C5LVCCjdHO3w\""},{"key":"rndr-id","value":"593fc7fa-47f5-424a"},{"key":"server","value":"cloudflare"},{"key":"vary","value":"Origin, Accept-Encoding"},{"key":"x-powered-by","value":"Express"},{"key":"x-render-origin-server","value":"Render"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"cf-ray","value":"a0abee91db15d230-DFW"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"data\": {\n        \"comment\": {\n            \"body\": \"I tested the login form again and confirmed the issue happens when the email field is left empty. The submit button does not trigger validation feedback.\",\n            \"bug\": \"6a2c71d44d8c5b373cd0db80\",\n            \"author\": \"6a2c71d34d8c5b373cd0db76\",\n            \"_id\": \"6a2c796e377c770063ab54c7\",\n            \"createdAt\": \"2026-06-12T21:26:06.604Z\",\n            \"updatedAt\": \"2026-06-12T21:26:06.604Z\",\n            \"__v\": 0\n        }\n    }\n}"}],"_postman_id":"651a2f95-8b31-42f3-bdc1-69f1aa500eef"}],"id":"f4301ea7-4057-44ad-a39e-3736cd77ed92","_postman_id":"f4301ea7-4057-44ad-a39e-3736cd77ed92","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a625509a-d0cd-4677-a89c-a93ea7901424","id":"a625509a-d0cd-4677-a89c-a93ea7901424","name":"Bug-Board API - Deployed","type":"collection"}}},{"name":"error handling","item":[{"name":"Global Error Handling","id":"0e79db06-c9e4-45f5-a79b-be34e104abc3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"/test-error/","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a625509a-d0cd-4677-a89c-a93ea7901424","id":"a625509a-d0cd-4677-a89c-a93ea7901424","name":"Bug-Board API - Deployed","type":"collection"}},"urlObject":{"path":["test-error",""],"host":[""],"query":[],"variable":[]}},"response":[{"id":"ccc7ad9f-0a2c-45f7-bd15-a537236deeaf","name":"Global Error Handling","originalRequest":{"method":"GET","header":[],"url":"/test-error/"},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":":status","value":404},{"key":"date","value":"Fri, 12 Jun 2026 21:28:09 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"81"},{"key":"access-control-allow-origin","value":"http://localhost:5173"},{"key":"content-encoding","value":"br"},{"key":"etag","value":"W/\"58-z/os4AzZV/8t8mfyLj6IvK9J9Aw\""},{"key":"rndr-id","value":"dbdceb94-c95f-4750"},{"key":"server","value":"cloudflare"},{"key":"vary","value":"Origin, Accept-Encoding"},{"key":"x-powered-by","value":"Express"},{"key":"x-render-origin-server","value":"Render"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"cf-ray","value":"a0abf195fe1ad230-DFW"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"fail\",\n    \"message\": \"Cannot find /api/v1/test-error/ on this server\",\n    \"errors\": []\n}"},{"id":"e6c4f246-1f45-4d56-a54e-72d1ce5f17bd","name":"Global Error Handling","originalRequest":{"method":"GET","header":[],"url":"/projects/6a2c78da377c770063ab54c"},"status":"Bad Request","code":400,"_postman_previewlanguage":null,"header":[{"key":":status","value":400},{"key":"date","value":"Fri, 12 Jun 2026 21:30:14 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"113"},{"key":"access-control-allow-origin","value":"http://localhost:5173"},{"key":"content-encoding","value":"br"},{"key":"etag","value":"W/\"8f-APZ3wrIf37mNCTpAB98c7cOLGzk\""},{"key":"rndr-id","value":"d161d365-9cf4-41b8"},{"key":"server","value":"cloudflare"},{"key":"vary","value":"Origin, Accept-Encoding"},{"key":"x-powered-by","value":"Express"},{"key":"x-render-origin-server","value":"Render"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"cf-ray","value":"a0abf49e6ecfd230-DFW"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"fail\",\n    \"message\": \"Invalid ID format\",\n    \"errors\": [\n        {\n            \"field\": \"id\",\n            \"value\": \"6a2c78da377c770063ab54c\",\n            \"message\": \"Invalid ObjectId for id\"\n        }\n    ]\n}"}],"_postman_id":"0e79db06-c9e4-45f5-a79b-be34e104abc3"},{"name":"404 Error Handling","id":"5c29b192-857d-49fe-acf7-c3180c307bc9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a625509a-d0cd-4677-a89c-a93ea7901424","id":"a625509a-d0cd-4677-a89c-a93ea7901424","name":"Bug-Board API - Deployed","type":"collection"}},"urlObject":{"query":[],"variable":[]},"url":""},"response":[{"id":"3bf7235a-46f9-4d9c-a6bd-c04627285812","name":"404 Error Handling","originalRequest":{"method":"GET","header":[],"url":"/invalid-route"},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":":status","value":404},{"key":"date","value":"Fri, 12 Jun 2026 21:29:29 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"84"},{"key":"access-control-allow-origin","value":"http://localhost:5173"},{"key":"content-encoding","value":"br"},{"key":"etag","value":"W/\"5a-ZYAP9J+H60BC4amwUbi7cM2cQ0w\""},{"key":"rndr-id","value":"fef70725-faf7-41a9"},{"key":"server","value":"cloudflare"},{"key":"vary","value":"Origin, Accept-Encoding"},{"key":"x-powered-by","value":"Express"},{"key":"x-render-origin-server","value":"Render"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"cf-ray","value":"a0abf3882ca3d230-DFW"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"fail\",\n    \"message\": \"Cannot find /api/v1/invalid-route on this server\",\n    \"errors\": []\n}"}],"_postman_id":"5c29b192-857d-49fe-acf7-c3180c307bc9"}],"id":"b99643c8-f4f6-4575-b627-d71c5e2f2b4c","_postman_id":"b99643c8-f4f6-4575-b627-d71c5e2f2b4c","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a625509a-d0cd-4677-a89c-a93ea7901424","id":"a625509a-d0cd-4677-a89c-a93ea7901424","name":"Bug-Board API - Deployed","type":"collection"}}},{"name":"API Health Check","id":"a8cbc38e-e4d7-441a-b5cc-6a831b03066d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"/health","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a625509a-d0cd-4677-a89c-a93ea7901424","id":"a625509a-d0cd-4677-a89c-a93ea7901424","name":"Bug-Board API - Deployed","type":"collection"}},"urlObject":{"path":["health"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"a257e668-6130-49fd-b36d-7f72553ad91a","name":"API Health Check","originalRequest":{"method":"GET","header":[],"url":"bug-board.onrender.com/api/v1/health"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":":status","value":200},{"key":"date","value":"Fri, 12 Jun 2026 21:30:30 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"55"},{"key":"access-control-allow-origin","value":"http://localhost:5173"},{"key":"content-encoding","value":"br"},{"key":"etag","value":"W/\"39-uennJW1ynDvs6u7VC7RBvDjjdCk\""},{"key":"rndr-id","value":"4f85e179-ceb2-4333"},{"key":"server","value":"cloudflare"},{"key":"vary","value":"Origin, Accept-Encoding"},{"key":"x-powered-by","value":"Express"},{"key":"x-render-origin-server","value":"Render"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"cf-ray","value":"a0abf5068ac2d230-DFW"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"Bug-Board API is running\"\n}"}],"_postman_id":"a8cbc38e-e4d7-441a-b5cc-6a831b03066d"}],"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]}},"event":[{"listen":"prerequest","script":{"id":"414ce9a1-2e82-493b-8b84-7ff1a6a0261c","type":"text/javascript","packages":{},"requests":{},"exec":[""]}},{"listen":"test","script":{"id":"2051146e-e827-4bb5-a9a1-0dabdce90d61","type":"text/javascript","packages":{},"requests":{},"exec":[""]}}],"variable":[{"key":"deployed_url","value":""}]}