{"info":{"_postman_id":"c7b59f99-7770-4aa4-89c3-0b4a63ca24ad","name":"LearnFlow","description":"<html><head></head><body><p>Welcome to the <strong>LearnFlow API</strong>, a Node.js/Express backend written in TypeScript and powered by Prisma ORM with MySQL. This API provides secure JWT-based authentication, AI/NLP-driven resource recommendations, and progress tracking features. Use these endpoints to manage user accounts, learning goals, recommended resources, and analytics within the LearnFlow platform.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"36681432","collectionId":"c7b59f99-7770-4aa4-89c3-0b4a63ca24ad","publishedId":"2sAYXFhxL8","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"589AAF"},"publishDate":"2025-02-17T18:50:44.000Z"},"item":[{"name":"auth","item":[{"name":"register","id":"ece92f02-1e0d-4cb5-aae5-bee1d9e3e5f2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\": \"grbulegoda@gmail.com\",\r\n    \"password\": \"Grba1234\",\r\n    \"name\": \"Gayanuka\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/v1/auth/register","description":"<p>Registers a user with a unique email, username, and password.</p>\n","urlObject":{"path":["auth","register"],"host":["http://localhost:5000/api/v1"],"query":[],"variable":[]}},"response":[{"id":"7c7568b6-f4f7-44dc-867d-0ac08d689e89","name":"example response","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\": \"grbulegoda@gmail.com\",\r\n    \"password\": \"Grba1234\",\r\n    \"name\": \"Gayanuka\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/v1/auth/register"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"http://localhost:5173"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Set-Cookie","value":"accessToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6NiwiaWF0IjoxNzM5ODgyOTA4LCJleHAiOjE3Mzk4ODM4MDh9.RNrXLkYN4TnEGly7Q8YhM3dKWNPKE6p0TYSshpjJ36s; Max-Age=604800; Path=/; Expires=Tue, 25 Feb 2025 12:48:28 GMT; HttpOnly; Secure; SameSite=Strict"},{"key":"Set-Cookie","value":"refreshToken=98ec9b9f-98e0-4a77-9597-77c4b3d653f4; Max-Age=2592000; Path=/; Expires=Thu, 20 Mar 2025 12:48:28 GMT; HttpOnly; Secure; SameSite=Strict"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"77"},{"key":"ETag","value":"W/\"4d-9GAI1Z9PQwCMSTHpiJMNxUsnn3Y\""},{"key":"Date","value":"Tue, 18 Feb 2025 12:48:28 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": {\n        \"id\": 6,\n        \"email\": \"richard@gmail.com\",\n        \"name\": \"Richard\"\n    }\n}"}],"_postman_id":"ece92f02-1e0d-4cb5-aae5-bee1d9e3e5f2"},{"name":"login","id":"88059865-905e-4096-b4fb-e12dba5ab433","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\": \"grbulegoda@gmail.com\",\r\n    \"password\": \"Grba1234\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/v1/auth/login","description":"<p>Verifies user credentials and returns a JWT token for authorized requests.</p>\n","urlObject":{"path":["auth","login"],"host":["http://localhost:5000/api/v1"],"query":[],"variable":[]}},"response":[{"id":"9f8cf006-7bb1-4600-8f7a-0d488984f11f","name":"example response","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\": \"grbulegoda@gmail.com\",\r\n    \"password\": \"Grba1234\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/v1/auth/login"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"http://localhost:5173"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Set-Cookie","value":"accessToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwiaWF0IjoxNzM5ODgzODgzLCJleHAiOjE3Mzk4ODQ3ODN9.Zhj87wqVEFue1uZSmgwEmvaehQzuClzDkw5uSAz40vA; Max-Age=604800; Path=/; Expires=Tue, 25 Feb 2025 13:04:43 GMT; HttpOnly; Secure; SameSite=Strict"},{"key":"Set-Cookie","value":"refreshToken=1660306d-208d-4961-9f66-93aad3fe0966; Max-Age=2592000; Path=/; Expires=Thu, 20 Mar 2025 13:04:43 GMT; HttpOnly; Secure; SameSite=Strict"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"81"},{"key":"ETag","value":"W/\"51-09XPCy0VpXLchFwA9HS/oFhcKvI\""},{"key":"Date","value":"Tue, 18 Feb 2025 13:04:43 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": {\n        \"id\": 1,\n        \"email\": \"grbulegoda@gmail.com\",\n        \"name\": \"Gayanuka\"\n    }\n}"}],"_postman_id":"88059865-905e-4096-b4fb-e12dba5ab433"},{"name":"getCurrentUser","id":"8854d4e3-9cc9-4609-b0ad-4bba77d6dac5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:5000/api/v1/auth/me","description":"<p>Requires a valid JWT token. Returns user-specific information, such as username.</p>\n","urlObject":{"path":["auth","me"],"host":["http://localhost:5000/api/v1"],"query":[],"variable":[]}},"response":[{"id":"01266c0d-7738-4197-a601-200ef77c9bca","name":"example response","originalRequest":{"method":"GET","header":[],"url":"http://localhost:5000/api/v1/auth/me"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"http://localhost:5173"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"81"},{"key":"ETag","value":"W/\"51-09XPCy0VpXLchFwA9HS/oFhcKvI\""},{"key":"Date","value":"Tue, 18 Feb 2025 13:04:58 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": {\n        \"id\": 1,\n        \"email\": \"grbulegoda@gmail.com\",\n        \"name\": \"Gayanuka\"\n    }\n}"}],"_postman_id":"8854d4e3-9cc9-4609-b0ad-4bba77d6dac5"},{"name":"logOutUser","id":"4adabd17-59a0-4ad8-aaa8-3a550303234a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"http://localhost:5000/api/v1/auth/logout","description":"<p>Clear refresh token, access token and logOut user.</p>\n","urlObject":{"path":["auth","logout"],"host":["http://localhost:5000/api/v1"],"query":[],"variable":[]}},"response":[{"id":"f8de7445-cd53-445d-ad6d-5ea26d1cf7ec","name":"example response","originalRequest":{"method":"POST","header":[],"url":"http://localhost:5000/api/v1/auth/logout"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"http://localhost:5173"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Set-Cookie","value":"accessToken=; Path=/; Expires=Thu, 01 Jan 1970 00:00:00 GMT"},{"key":"Set-Cookie","value":"refreshToken=; Path=/; Expires=Thu, 01 Jan 1970 00:00:00 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"16"},{"key":"ETag","value":"W/\"10-oV4hJxRVSENxc/wX8+mA4/Pe4tA\""},{"key":"Date","value":"Tue, 18 Feb 2025 13:05:08 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true\n}"}],"_postman_id":"4adabd17-59a0-4ad8-aaa8-3a550303234a"},{"name":"refreshAccessToken","id":"e4dc781c-1901-404e-85c8-26369c7e624c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"http://localhost:5000/api/v1/auth/refresh","description":"<p>Refreshes the access token via refresh token.</p>\n","urlObject":{"path":["auth","refresh"],"host":["http://localhost:5000/api/v1"],"query":[],"variable":[]}},"response":[{"id":"55a77c89-0055-40f6-b2a2-0996538355d5","name":"example response","originalRequest":{"method":"POST","header":[],"url":"http://localhost:5000/api/v1/auth/refresh"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"http://localhost:5173"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Set-Cookie","value":"accessToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwiaWF0IjoxNzM5ODgzOTI3LCJleHAiOjE3Mzk4ODQ4Mjd9.Neyezk8or366F5H_aGu8KgFGnlGs5cLakmBUG5Flw_g; Max-Age=604800; Path=/; Expires=Tue, 25 Feb 2025 13:05:27 GMT; HttpOnly; Secure; SameSite=Strict"},{"key":"Set-Cookie","value":"refreshToken=79974d48-f305-48c8-9a14-b6a4acc2b6dc; Max-Age=2592000; Path=/; Expires=Thu, 20 Mar 2025 13:05:27 GMT; HttpOnly; Secure; SameSite=Strict"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"179"},{"key":"ETag","value":"W/\"b3-zCHf2yaBnQZnlsoNnHdXE6BahPk\""},{"key":"Date","value":"Tue, 18 Feb 2025 13:05:27 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": {\n        \"accessToken\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwiaWF0IjoxNzM5ODgzOTI3LCJleHAiOjE3Mzk4ODQ4Mjd9.Neyezk8or366F5H_aGu8KgFGnlGs5cLakmBUG5Flw_g\"\n    }\n}"}],"_postman_id":"e4dc781c-1901-404e-85c8-26369c7e624c"}],"id":"d6aac4d4-af23-4f3e-a81f-bad05ae7864e","description":"<p>Endpoints related to user authentication and profile management. These include registration, login, and user profile handling. All requests are secured via JWT tokens, ensuring only authorized users can access protected resources.</p>\n","_postman_id":"d6aac4d4-af23-4f3e-a81f-bad05ae7864e"},{"name":"goals","item":[{"name":"createGoal","id":"a61b592a-d49a-456e-9cc1-8ae1a5491a5e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"title\": \"Learn Java\",\r\n    \"description\": \"Complete the Java course\",\r\n    \"targetDate\": \"2025-03-12T23:59:59Z\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/v1/goals/","description":"<p>Requires authentication. Allows the user to set a title, description, and optional target date.</p>\n","urlObject":{"path":["goals",""],"host":["http://localhost:5000/api/v1"],"query":[],"variable":[]}},"response":[{"id":"74f46eb2-652d-4e8e-ad7f-9b2b34d32d3c","name":"example response","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"title\": \"Learn Java\",\r\n    \"description\": \"Complete the Java course\",\r\n    \"targetDate\": \"2025-03-12T23:59:59Z\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/v1/goals/"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"http://localhost:5173"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"294"},{"key":"ETag","value":"W/\"126-DOAoswkxeQbPkAFyYfm79lC1p+g\""},{"key":"Date","value":"Tue, 18 Feb 2025 13:06:06 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": {\n        \"id\": 10,\n        \"title\": \"Learn Java\",\n        \"description\": \"Complete the Java course\",\n        \"status\": \"ACTIVE\",\n        \"startDate\": \"2025-02-18T13:06:06.040Z\",\n        \"targetDate\": \"2025-03-12T23:59:59.000Z\",\n        \"progress\": 0,\n        \"userId\": 1,\n        \"createdAt\": \"2025-02-18T13:06:06.041Z\",\n        \"updatedAt\": \"2025-02-18T13:06:06.041Z\"\n    }\n}"}],"_postman_id":"a61b592a-d49a-456e-9cc1-8ae1a5491a5e"},{"name":"getGoals","id":"32cd5193-2ec4-455d-8d95-265c932a62b6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:5000/api/v1/goals/","description":"<p>Returns a list of goals, including progress status and related metadata.</p>\n","urlObject":{"path":["goals",""],"host":["http://localhost:5000/api/v1"],"query":[],"variable":[]}},"response":[{"id":"4a69bafd-d544-40c7-91a8-59b618ca8b01","name":"example response","originalRequest":{"method":"GET","header":[],"url":"http://localhost:5000/api/v1/goals/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"http://localhost:5173"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"1513"},{"key":"ETag","value":"W/\"5e9-Mq8tjwYE59RqRWn+e9oxmJWY9jc\""},{"key":"Date","value":"Tue, 18 Feb 2025 13:06:20 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": [\n        {\n            \"id\": 10,\n            \"title\": \"Learn Java\",\n            \"description\": \"Complete the Java course\",\n            \"status\": \"ACTIVE\",\n            \"startDate\": \"2025-02-18T13:06:06.040Z\",\n            \"targetDate\": \"2025-03-12T23:59:59.000Z\",\n            \"progress\": 0,\n            \"userId\": 1,\n            \"createdAt\": \"2025-02-18T13:06:06.041Z\",\n            \"updatedAt\": \"2025-02-18T13:06:06.041Z\"\n        },\n        {\n            \"id\": 8,\n            \"title\": \"Study Go language\",\n            \"description\": \"i need to learn about go programming language\",\n            \"status\": \"ACTIVE\",\n            \"startDate\": \"2025-02-17T16:52:09.069Z\",\n            \"targetDate\": \"2025-03-08T00:00:00.000Z\",\n            \"progress\": 5,\n            \"userId\": 1,\n            \"createdAt\": \"2025-02-17T16:52:10.704Z\",\n            \"updatedAt\": \"2025-02-17T16:53:38.164Z\"\n        },\n        {\n            \"id\": 5,\n            \"title\": \"Learn MySQL and SQL\",\n            \"description\": \"i need to learn about MySQL and about SQL\",\n            \"status\": \"ACTIVE\",\n            \"startDate\": \"2025-02-11T08:46:12.619Z\",\n            \"targetDate\": \"2025-02-15T00:00:00.000Z\",\n            \"progress\": 5,\n            \"userId\": 1,\n            \"createdAt\": \"2025-02-11T08:46:12.625Z\",\n            \"updatedAt\": \"2025-02-16T15:51:19.870Z\"\n        },\n        {\n            \"id\": 4,\n            \"title\": \"I need to learn MongoDB\",\n            \"description\": \"i need to study about mongo DB. Give me a proper documentation\",\n            \"status\": \"ACTIVE\",\n            \"startDate\": \"2025-02-10T11:19:20.636Z\",\n            \"targetDate\": \"2025-02-10T11:18:36.191Z\",\n            \"progress\": 20,\n            \"userId\": 1,\n            \"createdAt\": \"2025-02-10T11:19:20.638Z\",\n            \"updatedAt\": \"2025-02-16T15:49:20.275Z\"\n        },\n        {\n            \"id\": 3,\n            \"title\": \"Learn TypeScript\",\n            \"description\": \"Complete the TypeScript course on Codecademy\",\n            \"status\": \"COMPLETED\",\n            \"startDate\": \"2025-02-09T18:33:03.706Z\",\n            \"targetDate\": \"2025-03-12T23:59:59.000Z\",\n            \"progress\": 100,\n            \"userId\": 1,\n            \"createdAt\": \"2025-02-09T18:33:03.707Z\",\n            \"updatedAt\": \"2025-02-18T13:06:20.556Z\"\n        }\n    ]\n}"}],"_postman_id":"32cd5193-2ec4-455d-8d95-265c932a62b6"},{"name":"updateGoal","id":"51fd52d1-dc0e-4827-ab31-eecdb03d4194","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"title\": \"Learn Spring Fundamentals\",\r\n    \"description\": \"Core concepts for web development\",\r\n    \"status\": \"ACTIVE\",\r\n    \"targetDate\": \"2025-03-20T23:59:59Z\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/v1/goals/1","description":"<p>Allows modification of title, description, target date, or progress status.</p>\n","urlObject":{"path":["goals","1"],"host":["http://localhost:5000/api/v1"],"query":[],"variable":[]}},"response":[{"id":"dce63539-2c61-4496-be77-ad93724331d7","name":"example response","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"title\": \"Learn Spring Fundamentals\",\r\n    \"description\": \"Core concepts for web development\",\r\n    \"status\": \"ACTIVE\",\r\n    \"targetDate\": \"2025-03-20T23:59:59Z\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/v1/goals/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"http://localhost:5173"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"318"},{"key":"ETag","value":"W/\"13e-bclYsfl22HHg0nVnCPfqSwpELnU\""},{"key":"Date","value":"Tue, 18 Feb 2025 13:06:51 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": {\n        \"id\": 1,\n        \"title\": \"Learn Spring Fundamentals\",\n        \"description\": \"Core concepts for web development\",\n        \"status\": \"ACTIVE\",\n        \"startDate\": \"2025-02-09T12:26:16.839Z\",\n        \"targetDate\": \"2025-03-20T23:59:59.000Z\",\n        \"progress\": 25,\n        \"userId\": 1,\n        \"createdAt\": \"2025-02-09T12:26:16.840Z\",\n        \"updatedAt\": \"2025-02-18T13:06:51.696Z\"\n    }\n}"}],"_postman_id":"51fd52d1-dc0e-4827-ab31-eecdb03d4194"},{"name":"deleteGoal","id":"a334a85b-97eb-4d45-ad90-0fd546db8c15","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"http://localhost:5000/api/v1/goals/1","description":"<p>Removes the specified goal from the user’s account.</p>\n","urlObject":{"path":["goals","1"],"host":["http://localhost:5000/api/v1"],"query":[],"variable":[]}},"response":[{"id":"73421df6-f35a-4d12-9ac6-775aa538b135","name":"example response","originalRequest":{"method":"DELETE","header":[],"url":"http://localhost:5000/api/v1/goals/10"},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"http://localhost:5173"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Date","value":"Tue, 18 Feb 2025 13:07:23 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"a334a85b-97eb-4d45-ad90-0fd546db8c15"},{"name":"logProgress","id":"c42d61ce-fd25-4404-a2ff-ebf01c917da6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"notes\": \"Completed JSX basics\",\r\n  \"duration\": 60\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/v1/goals/1/progress","description":"<p>Endpoint to create the progress of a goal.</p>\n","urlObject":{"path":["goals","1","progress"],"host":["http://localhost:5000/api/v1"],"query":[],"variable":[]}},"response":[{"id":"55acf672-f5d6-4451-9898-f47ae9f0b769","name":"example response","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"notes\": \"Completed JSX basics\",\r\n  \"duration\": 60\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/v1/goals/1/progress"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"http://localhost:5173"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"173"},{"key":"ETag","value":"W/\"ad-B3ynQSmAiyKPqpLILILSkedIroU\""},{"key":"Date","value":"Tue, 18 Feb 2025 13:07:52 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": {\n        \"id\": 15,\n        \"date\": \"2025-02-18T13:07:52.036Z\",\n        \"notes\": \"Completed JSX basics\",\n        \"duration\": 60,\n        \"userId\": 1,\n        \"goalId\": 1,\n        \"createdAt\": \"2025-02-18T13:07:52.038Z\"\n    }\n}"}],"_postman_id":"c42d61ce-fd25-4404-a2ff-ebf01c917da6"},{"name":"getGoalProgress","id":"4561553d-b924-4c17-a8eb-15c4b4c02356","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:5000/api/v1/goals/1/progress","description":"<p>Retrieves the progress of a related goal.</p>\n","urlObject":{"path":["goals","1","progress"],"host":["http://localhost:5000/api/v1"],"query":[],"variable":[]}},"response":[{"id":"d7798430-1f00-4cdd-99d6-d0eeb671668d","name":"example response","originalRequest":{"method":"GET","header":[],"url":"http://localhost:5000/api/v1/goals/1/progress"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"http://localhost:5173"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"473"},{"key":"ETag","value":"W/\"1d9-ouPFChn/2lK2eftwbiHB0TFkXJ8\""},{"key":"Date","value":"Tue, 18 Feb 2025 13:08:02 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": [\n        {\n            \"id\": 15,\n            \"date\": \"2025-02-18T13:07:52.036Z\",\n            \"notes\": \"Completed JSX basics\",\n            \"duration\": 60,\n            \"userId\": 1,\n            \"goalId\": 1,\n            \"createdAt\": \"2025-02-18T13:07:52.038Z\"\n        },\n        {\n            \"id\": 5,\n            \"date\": \"2025-02-09T18:36:11.728Z\",\n            \"notes\": \"Completed JSX basics\",\n            \"duration\": 60,\n            \"userId\": 1,\n            \"goalId\": 1,\n            \"createdAt\": \"2025-02-09T18:36:11.729Z\"\n        },\n        {\n            \"id\": 1,\n            \"date\": \"2025-02-09T13:01:06.454Z\",\n            \"notes\": \"Completed JSX basics\",\n            \"duration\": 60,\n            \"userId\": 1,\n            \"goalId\": 1,\n            \"createdAt\": \"2025-02-09T13:01:06.456Z\"\n        }\n    ]\n}"}],"_postman_id":"4561553d-b924-4c17-a8eb-15c4b4c02356"}],"id":"2d9aeafc-6c0c-44a1-8517-ccb4b62039bd","description":"<p>Endpoints to manage user-defined learning goals, including creation, retrieval, updates, and deletions. These endpoints help users set objectives, track progress, and visualize their achievements.</p>\n","_postman_id":"2d9aeafc-6c0c-44a1-8517-ccb4b62039bd"},{"name":"resources","item":[{"name":"getRecommendations","id":"a91e3c9d-cf3b-41f4-82fa-66754075c6b0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:5000/api/v1/resources/recommendations","description":"<p>Retrieves a list of resources based on user preferences, AI analysis, or general availability.</p>\n","urlObject":{"path":["resources","recommendations"],"host":["http://localhost:5000/api/v1"],"query":[],"variable":[]}},"response":[{"id":"275143b7-5172-4595-920b-a8bfa97279fe","name":"example response","originalRequest":{"method":"GET","header":[],"url":"http://localhost:5000/api/v1/resources/recommendations"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"http://localhost:5173"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"15887"},{"key":"ETag","value":"W/\"3e0f-RP/4ptMCR2ng3o0+ft3c0UJrdIs\""},{"key":"Date","value":"Tue, 18 Feb 2025 13:08:51 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": [\n        {\n            \"id\": 39512,\n            \"title\": \"Website security\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Learn_web_development/Extensions/Server-side/First_steps/Website_security\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: mysql and sql mysql\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 5,\n            \"tags\": \"mdn documentation,mysql and sql mysql website security\",\n            \"createdAt\": \"2025-02-18T13:08:51.044Z\"\n        },\n        {\n            \"id\": 39508,\n            \"title\": \"MVC\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Glossary/MVC\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: mysql and sql mysql\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 5,\n            \"tags\": \"mdn documentation,mysql and sql mysql mvc\",\n            \"createdAt\": \"2025-02-18T13:08:51.044Z\"\n        },\n        {\n            \"id\": 39510,\n            \"title\": \"About Learn web development\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Learn_web_development/About\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: mysql and sql mysql\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 5,\n            \"tags\": \"mdn documentation,mysql and sql mysql,learn web development\",\n            \"createdAt\": \"2025-02-18T13:08:51.044Z\"\n        },\n        {\n            \"id\": 39507,\n            \"title\": \"Django Tutorial Part 11: Deploying Django to production\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Learn_web_development/Extensions/Server-side/Django/Deployment\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: mysql and sql mysql\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 5,\n            \"tags\": \"mdn documentation,mysql and sql mysql django tutorial part 11:,django,production\",\n            \"createdAt\": \"2025-02-18T13:08:51.044Z\"\n        },\n        {\n            \"id\": 39504,\n            \"title\": \"Express/Node introduction\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Learn_web_development/Extensions/Server-side/Express_Nodejs/Introduction\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: mysql and sql mysql\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 5,\n            \"tags\": \"mdn documentation,mysql and sql mysql express/node introduction,express/node\",\n            \"createdAt\": \"2025-02-18T13:08:51.044Z\"\n        },\n        {\n            \"id\": 39506,\n            \"title\": \"Setting up a Django development environment\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Learn_web_development/Extensions/Server-side/Django/development_environment\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: mysql and sql mysql\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 5,\n            \"tags\": \"mdn documentation,mysql and sql mysql,a django development environment\",\n            \"createdAt\": \"2025-02-18T13:08:51.044Z\"\n        },\n        {\n            \"id\": 39509,\n            \"title\": \"Database\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Glossary/Database\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: mysql and sql mysql\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 5,\n            \"tags\": \"mdn documentation,mysql and sql mysql database\",\n            \"createdAt\": \"2025-02-18T13:08:51.044Z\"\n        },\n        {\n            \"id\": 39503,\n            \"title\": \"Express Tutorial Part 3: Using a Database (with Mongoose)\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Learn_web_development/Extensions/Server-side/Express_Nodejs/mongoose\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: mysql and sql mysql\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 5,\n            \"tags\": \"mdn documentation,mysql and sql mysql express tutorial part 3:,a database,mongoose),express\",\n            \"createdAt\": \"2025-02-18T13:08:51.044Z\"\n        },\n        {\n            \"id\": 39502,\n            \"title\": \"SQL\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Glossary/SQL\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: mysql and sql mysql\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 5,\n            \"tags\": \"mdn documentation,mysql and sql mysql sql\",\n            \"createdAt\": \"2025-02-18T13:08:51.044Z\"\n        },\n        {\n            \"id\": 39511,\n            \"title\": \"SQL Injection\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Glossary/SQL_Injection\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: mysql and sql mysql\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 5,\n            \"tags\": \"mdn documentation,mysql and sql mysql sql injection\",\n            \"createdAt\": \"2025-02-18T13:08:51.044Z\"\n        },\n        {\n            \"id\": 39498,\n            \"title\": \"Truncate (SQL)\",\n            \"url\": \"https://en.wikipedia.org/?curid=2554664\",\n            \"type\": \"ARTICLE\",\n            \"reason\": \"Wikipedia article related to \\\"mysql and sql mysql\\\"\",\n            \"aiScore\": 0.3,\n            \"userId\": 1,\n            \"goalId\": 5,\n            \"tags\": \"wikipedia article,\\\"mysql and sql mysql\\\",(sql)\",\n            \"createdAt\": \"2025-02-18T13:08:51.044Z\"\n        },\n        {\n            \"id\": 39505,\n            \"title\": \"Update (SQL)\",\n            \"url\": \"https://en.wikipedia.org/?curid=1220573\",\n            \"type\": \"ARTICLE\",\n            \"reason\": \"Wikipedia article related to \\\"mysql and sql mysql\\\"\",\n            \"aiScore\": 0.1,\n            \"userId\": 1,\n            \"goalId\": 5,\n            \"tags\": \"wikipedia article,\\\"mysql and sql mysql\\\" update (sql)\",\n            \"createdAt\": \"2025-02-18T13:08:51.044Z\"\n        },\n        {\n            \"id\": 39501,\n            \"title\": \"SQL/PSM\",\n            \"url\": \"https://en.wikipedia.org/?curid=11665200\",\n            \"type\": \"ARTICLE\",\n            \"reason\": \"Wikipedia article related to \\\"mysql and sql mysql\\\"\",\n            \"aiScore\": 0.1,\n            \"userId\": 1,\n            \"goalId\": 5,\n            \"tags\": \"wikipedia article,\\\"mysql and sql mysql\\\" sql/psm\",\n            \"createdAt\": \"2025-02-18T13:08:51.044Z\"\n        },\n        {\n            \"id\": 39499,\n            \"title\": \"MySQL Enterprise\",\n            \"url\": \"https://en.wikipedia.org/?curid=7482126\",\n            \"type\": \"ARTICLE\",\n            \"reason\": \"Wikipedia article related to \\\"mysql and sql mysql\\\"\",\n            \"aiScore\": 0.7000000000000001,\n            \"userId\": 1,\n            \"goalId\": 5,\n            \"tags\": \"wikipedia article,\\\"mysql and sql mysql\\\" mysql enterprise\",\n            \"createdAt\": \"2025-02-18T13:08:51.044Z\"\n        },\n        {\n            \"id\": 39500,\n            \"title\": \"LAMP (software bundle)\",\n            \"url\": \"https://en.wikipedia.org/?curid=2382172\",\n            \"type\": \"ARTICLE\",\n            \"reason\": \"Wikipedia article related to \\\"mysql and sql mysql\\\"\",\n            \"aiScore\": 0.2,\n            \"userId\": 1,\n            \"goalId\": 5,\n            \"tags\": \"wikipedia article,\\\"mysql and sql mysql\\\" lamp (software\",\n            \"createdAt\": \"2025-02-18T13:08:51.044Z\"\n        },\n        {\n            \"id\": 39497,\n            \"title\": \"SQL injection\",\n            \"url\": \"https://en.wikipedia.org/?curid=526999\",\n            \"type\": \"ARTICLE\",\n            \"reason\": \"Wikipedia article related to \\\"mysql and sql mysql\\\"\",\n            \"aiScore\": 0.1,\n            \"userId\": 1,\n            \"goalId\": 5,\n            \"tags\": \"wikipedia article,\\\"mysql and sql mysql\\\" sql injection\",\n            \"createdAt\": \"2025-02-18T13:08:51.044Z\"\n        },\n        {\n            \"id\": 39496,\n            \"title\": \"MySQL AB\",\n            \"url\": \"https://en.wikipedia.org/?curid=444527\",\n            \"type\": \"ARTICLE\",\n            \"reason\": \"Wikipedia article related to \\\"mysql and sql mysql\\\"\",\n            \"aiScore\": 0.4,\n            \"userId\": 1,\n            \"goalId\": 5,\n            \"tags\": \"wikipedia article,\\\"mysql and sql mysql\\\" mysql ab\",\n            \"createdAt\": \"2025-02-18T13:08:51.044Z\"\n        },\n        {\n            \"id\": 39495,\n            \"title\": \"MySQL Cluster\",\n            \"url\": \"https://en.wikipedia.org/?curid=1202462\",\n            \"type\": \"ARTICLE\",\n            \"reason\": \"Wikipedia article related to \\\"mysql and sql mysql\\\"\",\n            \"aiScore\": 0.2,\n            \"userId\": 1,\n            \"goalId\": 5,\n            \"tags\": \"wikipedia article,\\\"mysql and sql mysql\\\" mysql cluster\",\n            \"createdAt\": \"2025-02-18T13:08:51.044Z\"\n        },\n        {\n            \"id\": 39494,\n            \"title\": \"MySQL\",\n            \"url\": \"https://en.wikipedia.org/?curid=19545\",\n            \"type\": \"ARTICLE\",\n            \"reason\": \"Wikipedia article related to \\\"mysql and sql mysql\\\"\",\n            \"aiScore\": 0.2,\n            \"userId\": 1,\n            \"goalId\": 5,\n            \"tags\": \"wikipedia article,\\\"mysql and sql mysql\\\" mysql\",\n            \"createdAt\": \"2025-02-18T13:08:51.044Z\"\n        },\n        {\n            \"id\": 39493,\n            \"title\": \"MySQL Workbench\",\n            \"url\": \"https://en.wikipedia.org/?curid=5939149\",\n            \"type\": \"ARTICLE\",\n            \"reason\": \"Wikipedia article related to \\\"mysql and sql mysql\\\"\",\n            \"aiScore\": 0.2,\n            \"userId\": 1,\n            \"goalId\": 5,\n            \"tags\": \"wikipedia article,\\\"mysql and sql mysql\\\" mysql workbench\",\n            \"createdAt\": \"2025-02-18T13:08:51.044Z\"\n        },\n        {\n            \"id\": 39491,\n            \"title\": \"Express Tutorial Part 7: Deploying to production\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Learn_web_development/Extensions/Server-side/Express_Nodejs/deployment\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: mongodb mongo db a proper document\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 4,\n            \"tags\": \"mdn documentation,mongodb mongo db,a proper document express tutorial part 7:,production,proper\",\n            \"createdAt\": \"2025-02-18T13:08:50.994Z\"\n        },\n        {\n            \"id\": 39490,\n            \"title\": \"StorageAccessHandle: indexedDB property\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Web/API/StorageAccessHandle/indexedDB\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: mongodb mongo db a proper document\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 4,\n            \"tags\": \"mdn documentation,mongodb mongo db,a proper document storageaccesshandle:,indexeddb property,proper\",\n            \"createdAt\": \"2025-02-18T13:08:50.994Z\"\n        },\n        {\n            \"id\": 39492,\n            \"title\": \"Express/Node introduction\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Learn_web_development/Extensions/Server-side/Express_Nodejs/Introduction\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: mongodb mongo db a proper document\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 4,\n            \"tags\": \"mdn documentation,mongodb mongo db,a proper document express/node introduction,proper,express/node\",\n            \"createdAt\": \"2025-02-18T13:08:50.994Z\"\n        },\n        {\n            \"id\": 39489,\n            \"title\": \"IndexedDB key characteristics and basic terminology\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Basic_Terminology\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: mongodb mongo db a proper document\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 4,\n            \"tags\": \"mdn documentation,mongodb mongo db,a proper document indexeddb key characteristics,basic terminology,proper\",\n            \"createdAt\": \"2025-02-18T13:08:50.994Z\"\n        },\n        {\n            \"id\": 39485,\n            \"title\": \"Express Tutorial Part 3: Using a Database (with Mongoose)\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Learn_web_development/Extensions/Server-side/Express_Nodejs/mongoose\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: mongodb mongo db a proper document\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 4,\n            \"tags\": \"mdn documentation,mongodb mongo db,a proper document express tutorial part 3:,a database,mongoose)\",\n            \"createdAt\": \"2025-02-18T13:08:50.994Z\"\n        },\n        {\n            \"id\": 39487,\n            \"title\": \"Window: indexedDB property\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Web/API/Window/indexedDB\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: mongodb mongo db a proper document\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 4,\n            \"tags\": \"mdn documentation,mongodb mongo db,a proper document window:,indexeddb property,proper\",\n            \"createdAt\": \"2025-02-18T13:08:50.993Z\"\n        },\n        {\n            \"id\": 39481,\n            \"title\": \"IndexedDB API\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: mongodb mongo db a proper document\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 4,\n            \"tags\": \"mdn documentation,mongodb mongo db,a proper document indexeddb api,proper\",\n            \"createdAt\": \"2025-02-18T13:08:50.993Z\"\n        },\n        {\n            \"id\": 39488,\n            \"title\": \"IDBTransaction: db property\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Web/API/IDBTransaction/db\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: mongodb mongo db a proper document\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 4,\n            \"tags\": \"mdn documentation,mongodb mongo db,a proper document idbtransaction:,db property,proper\",\n            \"createdAt\": \"2025-02-18T13:08:50.993Z\"\n        },\n        {\n            \"id\": 39484,\n            \"title\": \"IndexedDB\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Glossary/IndexedDB\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: mongodb mongo db a proper document\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 4,\n            \"tags\": \"mdn documentation,mongodb mongo db,a proper document indexeddb,proper\",\n            \"createdAt\": \"2025-02-18T13:08:50.993Z\"\n        },\n        {\n            \"id\": 39486,\n            \"title\": \"Using IndexedDB\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: mongodb mongo db a proper document\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 4,\n            \"tags\": \"mdn documentation,mongodb mongo db,a proper document,indexeddb,proper\",\n            \"createdAt\": \"2025-02-18T13:08:50.993Z\"\n        },\n        {\n            \"id\": 39480,\n            \"title\": \"PostgreSQL\",\n            \"url\": \"https://en.wikipedia.org/?curid=23824\",\n            \"type\": \"ARTICLE\",\n            \"reason\": \"Wikipedia article related to \\\"mongodb mongo db a proper document\\\"\",\n            \"aiScore\": 0.1,\n            \"userId\": 1,\n            \"goalId\": 4,\n            \"tags\": \"wikipedia article,\\\"mongodb mongo db,a proper document\\\" postgresql,proper\",\n            \"createdAt\": \"2025-02-18T13:08:50.993Z\"\n        },\n        {\n            \"id\": 39482,\n            \"title\": \"BSON\",\n            \"url\": \"https://en.wikipedia.org/?curid=22983504\",\n            \"type\": \"ARTICLE\",\n            \"reason\": \"Wikipedia article related to \\\"mongodb mongo db a proper document\\\"\",\n            \"aiScore\": 0.3,\n            \"userId\": 1,\n            \"goalId\": 4,\n            \"tags\": \"wikipedia article,\\\"mongodb mongo db,a proper document\\\" bson,proper\",\n            \"createdAt\": \"2025-02-18T13:08:50.993Z\"\n        },\n        {\n            \"id\": 39483,\n            \"title\": \"NoSQL\",\n            \"url\": \"https://en.wikipedia.org/?curid=23968131\",\n            \"type\": \"ARTICLE\",\n            \"reason\": \"Wikipedia article related to \\\"mongodb mongo db a proper document\\\"\",\n            \"aiScore\": 0.1,\n            \"userId\": 1,\n            \"goalId\": 4,\n            \"tags\": \"wikipedia article,\\\"mongodb mongo db,a proper document\\\" nosql,proper\",\n            \"createdAt\": \"2025-02-18T13:08:50.993Z\"\n        },\n        {\n            \"id\": 39475,\n            \"title\": \"WebVR API\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Web/API/WebVR_API\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: spring fundament concept web develop\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 1,\n            \"tags\": \"mdn documentation,spring fundament concept web,webvr api\",\n            \"createdAt\": \"2025-02-18T13:08:50.947Z\"\n        },\n        {\n            \"id\": 39474,\n            \"title\": \"WebVR concepts\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Web/API/WebVR_API/Concepts\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: spring fundament concept web develop\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 1,\n            \"tags\": \"mdn documentation,spring fundament concept web,webvr concepts\",\n            \"createdAt\": \"2025-02-18T13:08:50.947Z\"\n        },\n        {\n            \"id\": 39472,\n            \"title\": \"Web mechanics\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Learn_web_development/Howto/Web_mechanics\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: spring fundament concept web develop\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 1,\n            \"tags\": \"mdn documentation,spring fundament concept web,web mechanics\",\n            \"createdAt\": \"2025-02-18T13:08:50.947Z\"\n        },\n        {\n            \"id\": 39473,\n            \"title\": \"Web performance\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Learn_web_development/Extensions/Performance\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: spring fundament concept web develop\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 1,\n            \"tags\": \"mdn documentation,spring fundament concept web,web performance\",\n            \"createdAt\": \"2025-02-18T13:08:50.947Z\"\n        },\n        {\n            \"id\": 39471,\n            \"title\": \"Learn web development\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Learn_web_development\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: spring fundament concept web develop\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 1,\n            \"tags\": \"mdn documentation,spring fundament concept web,web development\",\n            \"createdAt\": \"2025-02-18T13:08:50.947Z\"\n        },\n        {\n            \"id\": 39470,\n            \"title\": \"The WebSocket API (WebSockets)\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: spring fundament concept web develop\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 1,\n            \"tags\": \"mdn documentation,spring fundament concept web,the websocket api (websockets)\",\n            \"createdAt\": \"2025-02-18T13:08:50.947Z\"\n        },\n        {\n            \"id\": 39478,\n            \"title\": \"Handling media support issues in web content\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Web/Media/Guides/Formats/Support_issues\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: spring fundament concept web develop\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 1,\n            \"tags\": \"mdn documentation,spring fundament concept web,media,issues,web content\",\n            \"createdAt\": \"2025-02-18T13:08:50.947Z\"\n        },\n        {\n            \"id\": 39477,\n            \"title\": \"Fundamentals of WebXR\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API/Fundamentals\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: spring fundament concept web develop\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 1,\n            \"tags\": \"mdn documentation,spring fundament concept web,fundamentals of webxr\",\n            \"createdAt\": \"2025-02-18T13:08:50.947Z\"\n        },\n        {\n            \"id\": 39479,\n            \"title\": \"World Wide Web\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Glossary/World_Wide_Web\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: spring fundament concept web develop\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 1,\n            \"tags\": \"mdn documentation,spring fundament concept web,world wide web,wide\",\n            \"createdAt\": \"2025-02-18T13:08:50.947Z\"\n        },\n        {\n            \"id\": 39476,\n            \"title\": \"Server-side web frameworks\",\n            \"url\": \"https://developer.mozilla.org/en-US/docs/Learn_web_development/Extensions/Server-side/First_steps/Web_frameworks\",\n            \"type\": \"DOCUMENTATION\",\n            \"reason\": \"MDN documentation for: spring fundament concept web develop\",\n            \"aiScore\": 0.8,\n            \"userId\": 1,\n            \"goalId\": 1,\n            \"tags\": \"mdn documentation,spring fundament concept web,server-side web frameworks\",\n            \"createdAt\": \"2025-02-18T13:08:50.947Z\"\n        },\n        {\n            \"id\": 39469,\n            \"title\": \"Talcott Parsons\",\n            \"url\": \"https://en.wikipedia.org/?curid=54041\",\n            \"type\": \"ARTICLE\",\n            \"reason\": \"Wikipedia article related to \\\"spring fundament concept web develop\\\"\",\n            \"aiScore\": 0.1,\n            \"userId\": 1,\n            \"goalId\": 1,\n            \"tags\": \"wikipedia article,fundament concept web,talcott parsons\",\n            \"createdAt\": \"2025-02-18T13:08:50.947Z\"\n        }\n    ]\n}"}],"_postman_id":"a91e3c9d-cf3b-41f4-82fa-66754075c6b0"},{"name":"trackInteraction","id":"853eb13a-ba25-47f3-9687-6ad191568f89","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"recommendationId\": 1,\r\n  \"type\": \"VIEW\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/v1/resources/interact","description":"<p>Update the user interaction with the resource.</p>\n","urlObject":{"path":["resources","interact"],"host":["http://localhost:5000/api/v1"],"query":[],"variable":[]}},"response":[{"id":"e61d3754-8f8e-47c3-9b08-a9ef92daa4a3","name":"example response","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"recommendationId\": 1,\r\n  \"type\": \"VIEW\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/v1/resources/interact"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"http://localhost:5173"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"118"},{"key":"ETag","value":"W/\"76-rmCRV5vQR1En3TOGTmZR/WIshbU\""},{"key":"Date","value":"Tue, 18 Feb 2025 13:09:05 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": {\n        \"id\": 16,\n        \"type\": \"VIEW\",\n        \"recommendationId\": 1,\n        \"userId\": 1,\n        \"createdAt\": \"2025-02-18T13:09:05.962Z\"\n    }\n}"}],"_postman_id":"853eb13a-ba25-47f3-9687-6ad191568f89"}],"id":"810f7808-d6b3-41ff-9df8-bfdcdccd1955","description":"<p>Endpoints that manage AI/NLP-driven resource recommendations. These allow users to fetch and create resource entries.</p>\n","_postman_id":"810f7808-d6b3-41ff-9df8-bfdcdccd1955"},{"name":"Health Check","id":"fed86ba1-1e0f-4fd7-9ace-8d5a997195af","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:5000/api/health","description":"<p>Enpoint to check whether the API functioning properly</p>\n","urlObject":{"protocol":"http","port":"5000","path":["api","health"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"1bd9d4c6-7341-48db-b093-3ee505702db8","name":"example response","originalRequest":{"method":"GET","header":[],"url":"http://localhost:5000/api/health"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"http://localhost:5173"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"15"},{"key":"ETag","value":"W/\"f-VaSQ4oDUiZblZNAEkkN+sX+q3Sg\""},{"key":"Date","value":"Tue, 18 Feb 2025 13:09:16 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"ok\"\n}"}],"_postman_id":"fed86ba1-1e0f-4fd7-9ace-8d5a997195af"}],"event":[{"listen":"prerequest","script":{"id":"b5ab0af1-5f99-4a21-863c-8c97c12278c0","type":"text/javascript","packages":{},"exec":[""]}},{"listen":"test","script":{"id":"158ef7ba-6150-42be-8674-368c1c7a46ff","type":"text/javascript","packages":{},"exec":[""]}}],"variable":[{"key":"base_url","value":"http://localhost:5000/api/v1","type":"string"}]}