{"info":{"_postman_id":"57eda9b6-065b-4060-8f11-3402c2d53631","name":"Knowledge Hub","description":"<html><head></head><body><p>A learning module that lets users take finance courses, chat with an AI financial advisor, and get curated YouTube video suggestions based on their conversations.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"43108804","collectionId":"57eda9b6-065b-4060-8f11-3402c2d53631","publishedId":"2sBXcHhJUQ","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-02-27T05:10:00.000Z"},"item":[{"name":"Course","item":[{"name":"Course (Admin)","item":[{"name":"create-course","id":"6ed9f5a2-28c9-4e73-83e8-2da35198cc9f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"title\": \"Budgeting Basics 02\",\n    \"description\": \"Learn how to manage your monthly budget effectively.\",\n    \"category\": \"budgeting\",\n    \"difficulty\": \"beginner\",\n    \"passingScore\": 70,\n    \"questions\": [\n        {\n            \"question\": \"What is the 50/30/20 rule?\",\n            \"options\": [\n                \"50% needs, 30% wants, 20% savings\",\n                \"50% savings, 30% needs, 20% wants\",\n                \"50% wants, 30% savings, 20% needs\"\n            ],\n            \"correctAnswerIndex\": 0,\n            \"explanation\": \"The 50/30/20 rule splits income into needs, wants, and savings.\",\n            \"points\": 10\n        },\n        {\n            \"question\": \"Which of these is a fixed expense?\",\n            \"options\": [\n                \"Groceries\",\n                \"Rent\",\n                \"Entertainment\"\n            ],\n            \"correctAnswerIndex\": 1,\n            \"explanation\": \"Rent stays the same every month, making it a fixed expense.\",\n            \"points\": 10\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5085/api/course/create","urlObject":{"protocol":"http","port":"5085","path":["api","course","create"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"3d68fcda-ca38-45a2-8803-9ae683d39117","name":"response","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"title\": \"Budgeting Basics\",\n    \"description\": \"Learn how to manage your monthly budget effectively.\",\n    \"category\": \"budgeting\",\n    \"difficulty\": \"beginner\",\n    \"passingScore\": 70,\n    \"questions\": [\n        {\n            \"question\": \"What is the 50/30/20 rule?\",\n            \"options\": [\n                \"50% needs, 30% wants, 20% savings\",\n                \"50% savings, 30% needs, 20% wants\",\n                \"50% wants, 30% savings, 20% needs\"\n            ],\n            \"correctAnswerIndex\": 0,\n            \"explanation\": \"The 50/30/20 rule splits income into needs, wants, and savings.\",\n            \"points\": 10\n        },\n        {\n            \"question\": \"Which of these is a fixed expense?\",\n            \"options\": [\n                \"Groceries\",\n                \"Rent\",\n                \"Entertainment\"\n            ],\n            \"correctAnswerIndex\": 1,\n            \"explanation\": \"Rent stays the same every month, making it a fixed expense.\",\n            \"points\": 10\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{MoneyMentor}}{{Course}}create"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"1020"},{"key":"ETag","value":"W/\"3fc-mdMESRxymixAkPIhHxnQJSBhTOs\""},{"key":"Date","value":"Thu, 19 Feb 2026 00:59:43 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Course created successfully\",\n    \"data\": {\n        \"title\": \"Budgeting Basics\",\n        \"description\": \"Learn how to manage your monthly budget effectively.\",\n        \"category\": \"budgeting\",\n        \"difficulty\": \"beginner\",\n        \"thumbnail\": null,\n        \"questions\": [\n            {\n                \"question\": \"What is the 50/30/20 rule?\",\n                \"options\": [\n                    \"50% needs, 30% wants, 20% savings\",\n                    \"50% savings, 30% needs, 20% wants\",\n                    \"50% wants, 30% savings, 20% needs\"\n                ],\n                \"correctAnswerIndex\": 0,\n                \"explanation\": \"The 50/30/20 rule splits income into needs, wants, and savings.\",\n                \"points\": 10,\n                \"_id\": \"6996607f1cf863278ef5109d\"\n            },\n            {\n                \"question\": \"Which of these is a fixed expense?\",\n                \"options\": [\n                    \"Groceries\",\n                    \"Rent\",\n                    \"Entertainment\"\n                ],\n                \"correctAnswerIndex\": 1,\n                \"explanation\": \"Rent stays the same every month, making it a fixed expense.\",\n                \"points\": 10,\n                \"_id\": \"6996607f1cf863278ef5109e\"\n            }\n        ],\n        \"totalPoints\": 20,\n        \"passingScore\": 70,\n        \"isPublished\": false,\n        \"createdBy\": \"69917010ff7bfb9c8926945c\",\n        \"_id\": \"6996607f1cf863278ef5109c\",\n        \"completions\": [],\n        \"createdAt\": \"2026-02-19T00:59:43.397Z\",\n        \"updatedAt\": \"2026-02-19T00:59:43.397Z\",\n        \"__v\": 0\n    }\n}"}],"_postman_id":"6ed9f5a2-28c9-4e73-83e8-2da35198cc9f"},{"name":"update-course","id":"6e8e36b5-87f0-49b7-a131-42f3a6eb569e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"title\": \"Budgeting Basics Updated\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5085/api/course/69ab915fad883d8385de035a","urlObject":{"protocol":"http","port":"5085","path":["api","course","69ab915fad883d8385de035a"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"6959d146-2c75-43fb-8db4-3d5fb699cb96","name":"publish-course","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"isPublished\": true\n}","options":{"raw":{"language":"json"}}},"url":"{{MoneyMentor}}{{Course}}6996607f1cf863278ef5109c"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"1019"},{"key":"ETag","value":"W/\"3fb-DUu4UEqYL6DBLL8O9Dae4/AXDWs\""},{"key":"Date","value":"Thu, 19 Feb 2026 03:48:21 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Course updated successfully\",\n    \"data\": {\n        \"_id\": \"6996607f1cf863278ef5109c\",\n        \"title\": \"Budgeting Basics\",\n        \"description\": \"Learn how to manage your monthly budget effectively.\",\n        \"category\": \"budgeting\",\n        \"difficulty\": \"beginner\",\n        \"thumbnail\": null,\n        \"questions\": [\n            {\n                \"question\": \"What is the 50/30/20 rule?\",\n                \"options\": [\n                    \"50% needs, 30% wants, 20% savings\",\n                    \"50% savings, 30% needs, 20% wants\",\n                    \"50% wants, 30% savings, 20% needs\"\n                ],\n                \"correctAnswerIndex\": 0,\n                \"explanation\": \"The 50/30/20 rule splits income into needs, wants, and savings.\",\n                \"points\": 10,\n                \"_id\": \"6996607f1cf863278ef5109d\"\n            },\n            {\n                \"question\": \"Which of these is a fixed expense?\",\n                \"options\": [\n                    \"Groceries\",\n                    \"Rent\",\n                    \"Entertainment\"\n                ],\n                \"correctAnswerIndex\": 1,\n                \"explanation\": \"Rent stays the same every month, making it a fixed expense.\",\n                \"points\": 10,\n                \"_id\": \"6996607f1cf863278ef5109e\"\n            }\n        ],\n        \"totalPoints\": 20,\n        \"passingScore\": 70,\n        \"isPublished\": true,\n        \"createdBy\": \"69917010ff7bfb9c8926945c\",\n        \"completions\": [],\n        \"createdAt\": \"2026-02-19T00:59:43.397Z\",\n        \"updatedAt\": \"2026-02-19T03:48:21.500Z\",\n        \"__v\": 0\n    }\n}"}],"_postman_id":"6e8e36b5-87f0-49b7-a131-42f3a6eb569e"},{"name":"delete-course","id":"f2fd99d4-7489-4773-84f9-e3f5725f52cc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"DELETE","header":[],"url":"http://localhost:5085/api/course/6996607f1cf863278ef5109c","urlObject":{"protocol":"http","port":"5085","path":["api","course","6996607f1cf863278ef5109c"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"5f74f288-3e9e-41ad-800b-bcb6056b8582","name":"delete-course","originalRequest":{"method":"DELETE","header":[],"url":"http://localhost:5085/api/course/6996607f1cf863278ef5109c"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"56"},{"key":"ETag","value":"W/\"38-UCoI8bO6Ffo9xrnTZ3dFmpreaDE\""},{"key":"Date","value":"Fri, 27 Feb 2026 03:49:08 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Course deleted successfully\"\n}"}],"_postman_id":"f2fd99d4-7489-4773-84f9-e3f5725f52cc"}],"id":"e47867da-8690-48ac-875e-439a8e53d0df","description":"<p>Admin Endpoints for managing the course catalogue. Admins can create, update, publish, and delete courses. Courses stay in draft and hidden from users until explicitly published.</p>\n","_postman_id":"e47867da-8690-48ac-875e-439a8e53d0df"},{"name":"Course (User)","item":[{"name":"get-published-course-by-id","id":"cfa07e4d-ee50-4484-994c-18604deae0ed","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:5085/api/course/6996607f1cf863278ef5109c","urlObject":{"protocol":"http","port":"5085","path":["api","course","6996607f1cf863278ef5109c"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"ee158fdd-7958-407c-828b-3141a3141c18","name":"get-course-by-id","originalRequest":{"method":"GET","header":[],"url":"{{MoneyMentor}}{{Course}}6996607f1cf863278ef5109c"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"804"},{"key":"ETag","value":"W/\"324-MVgDomnA6E89twBO/6ag+GH4ljg\""},{"key":"Date","value":"Thu, 19 Feb 2026 03:50:15 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": {\n        \"_id\": \"6996607f1cf863278ef5109c\",\n        \"title\": \"Budgeting Basics\",\n        \"description\": \"Learn how to manage your monthly budget effectively.\",\n        \"category\": \"budgeting\",\n        \"difficulty\": \"beginner\",\n        \"thumbnail\": null,\n        \"questions\": [\n            {\n                \"question\": \"What is the 50/30/20 rule?\",\n                \"options\": [\n                    \"50% needs, 30% wants, 20% savings\",\n                    \"50% savings, 30% needs, 20% wants\",\n                    \"50% wants, 30% savings, 20% needs\"\n                ],\n                \"points\": 10,\n                \"_id\": \"6996607f1cf863278ef5109d\"\n            },\n            {\n                \"question\": \"Which of these is a fixed expense?\",\n                \"options\": [\n                    \"Groceries\",\n                    \"Rent\",\n                    \"Entertainment\"\n                ],\n                \"points\": 10,\n                \"_id\": \"6996607f1cf863278ef5109e\"\n            }\n        ],\n        \"totalPoints\": 20,\n        \"passingScore\": 70,\n        \"isPublished\": true,\n        \"createdBy\": {\n            \"_id\": \"69917010ff7bfb9c8926945c\",\n            \"username\": \"admin\"\n        },\n        \"completions\": [],\n        \"createdAt\": \"2026-02-19T00:59:43.397Z\",\n        \"updatedAt\": \"2026-02-19T03:48:21.500Z\",\n        \"__v\": 0\n    }\n}"}],"_postman_id":"cfa07e4d-ee50-4484-994c-18604deae0ed"},{"name":"get-all-courses","id":"cfdb7c89-2b3b-4a14-b68b-146c0046a92d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:5085/api/course","urlObject":{"protocol":"http","port":"5085","path":["api","course"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"468dc25e-c09a-46f8-9d04-f492b99d70f7","name":"New Request","originalRequest":{"method":"GET","header":[],"url":"{{MoneyMentor}}{{Course}}"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"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-cCJROVPxHMSe9kDg30j/bEBa43o\""},{"key":"Date","value":"Thu, 19 Feb 2026 03:28:23 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": [],\n    \"pagination\": {\n        \"total\": 0,\n        \"page\": 1,\n        \"pages\": 0,\n        \"limit\": 10\n    }\n}"}],"_postman_id":"cfdb7c89-2b3b-4a14-b68b-146c0046a92d"},{"name":"submit-course","id":"3bec5fd1-6ad7-4b89-9a6f-2f0cabd8af50","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"answers\": [0, 1]\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5085/api/course/6996607f1cf863278ef5109c/submit","urlObject":{"protocol":"http","port":"5085","path":["api","course","6996607f1cf863278ef5109c","submit"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"a45ad86b-06e6-460b-85e7-c63af88196ab","name":"New Request","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"answers\": [0, 1]\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5085/api/course/6996607f1cf863278ef5109c/submit"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"537"},{"key":"ETag","value":"W/\"219-ADFsKLpMmR/mNUoGSbx6N+qTLcs\""},{"key":"Date","value":"Mon, 23 Feb 2026 03:58:13 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Congratulations! You passed and earned 20 points!\",\n    \"data\": {\n        \"score\": 100,\n        \"passed\": true,\n        \"pointsEarned\": 20,\n        \"passingScore\": 70,\n        \"results\": [\n            {\n                \"question\": \"What is the 50/30/20 rule?\",\n                \"selectedIndex\": 0,\n                \"correctIndex\": 0,\n                \"isCorrect\": true,\n                \"explanation\": \"The 50/30/20 rule splits income into needs, wants, and savings.\",\n                \"points\": 10\n            },\n            {\n                \"question\": \"Which of these is a fixed expense?\",\n                \"selectedIndex\": 1,\n                \"correctIndex\": 1,\n                \"isCorrect\": true,\n                \"explanation\": \"Rent stays the same every month, making it a fixed expense.\",\n                \"points\": 10\n            }\n        ]\n    }\n}"}],"_postman_id":"3bec5fd1-6ad7-4b89-9a6f-2f0cabd8af50"},{"name":"get-user-points","id":"4dc7248d-6a65-4cb6-b696-48addb6ab90b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:5085/api/course/my-points","urlObject":{"protocol":"http","port":"5085","path":["api","course","my-points"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"4dc7248d-6a65-4cb6-b696-48addb6ab90b"}],"id":"2fc0335c-ac72-4625-a4be-a49c1a68635c","description":"<p>User Endpoints for users to browse and complete courses. Published courses can be filtered by category, difficulty, or searched by keyword. Submitting answers triggers automatic grading pass at 70% or above to earn points. A course can only be submitted once per user.</p>\n","_postman_id":"2fc0335c-ac72-4625-a4be-a49c1a68635c"}],"id":"e369a211-4083-4a99-befb-67d365d4fac3","_postman_id":"e369a211-4083-4a99-befb-67d365d4fac3","description":""},{"name":"Chat Bot","item":[{"name":"initiate-chat","id":"8ee3d8b3-8f44-4c1b-b97e-06d39a860e33","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"message\": \"Explain budgeting simply\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5085/api/chat","urlObject":{"protocol":"http","port":"5085","path":["api","chat"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"e5b1e07f-1df2-4c56-bb75-0739ecdfeda9","name":"response","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"message\": \"How do I start budgeting?\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5085/api/chat"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2556"},{"key":"ETag","value":"W/\"9fc-OBgAdu6WNpw9i2bY44sTOe6Fn84\""},{"key":"Date","value":"Sat, 21 Feb 2026 14:56:12 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Conversation started\",\n    \"data\": {\n        \"chatId\": \"6999c78b3d5ff1a303c97ebb\",\n        \"title\": \"How do I start budgeting?\",\n        \"aiResponse\": \"That's a fantastic question and a great first step towards taking control of your finances! Starting a budget can feel a little daunting, but it's really about understanding where your money goes so you can make it work for you.\\n\\nHere's a simple, practical way to begin:\\n\\n1.  **Know Your Income:** The very first thing is to figure out exactly how much money you have coming in each month after taxes and deductions. This is your net income.\\n\\n2.  **Track Your Spending:** For at least a month, simply observe where your money is going. You can use an app, a spreadsheet, or even just a notebook. Write down every single expense, no matter how small. This step is about awareness, not judgment.\\n\\n3.  **Categorize Your Expenses:** Once you have your spending tracked, group similar items together. Common categories include housing, utilities, groceries, transportation, dining out, entertainment, debt payments, and savings. You'll notice some expenses are fixed (like rent) and others are variable (like groceries or entertainment).\\n\\n4.  **Set Financial Goals:** Think about what you want your money to achieve. Do you want to save for a down payment, pay off debt, or build an emergency fund? Having clear goals will motivate you and help you decide how to allocate your funds.\\n\\n5.  **Create Your Budget Plan:** Now, based on your income and your spending habits, start assigning dollar amounts to each category. Try to make sure your total planned spending and savings do not exceed your net income. This is where you might make conscious decisions, like reducing dining out if you want to save more for a specific goal. A good rule of thumb many people use is the 50/30/20 rule: 50% for needs, 30% for wants, and 20% for savings and debt repayment.\\n\\n6.  **Review and Adjust Regularly:** A budget isn't a one-and-done task. Life changes, and so will your spending. Check in with your budget weekly or monthly to see how you're doing. Are you sticking to your limits? Do you need to adjust any categories? The more you review it, the more effective it becomes.\\n\\nStarting a budget is a powerful habit that gives you control and peace of mind. Be patient with yourself, celebrate small victories, and remember that consistency is key!\",\n        \"youtubeKeywords\": [\n            \"budgeting for beginners\",\n            \"how to track expenses\",\n            \"50/30/20 rule explained\",\n            \"setting financial goals\"\n        ],\n        \"createdAt\": \"2026-02-21T14:56:11.829Z\"\n    }\n}"}],"_postman_id":"8ee3d8b3-8f44-4c1b-b97e-06d39a860e33"},{"name":"chat-id (continue chat)","id":"0ec4a667-84fd-403d-8139-510a2ba50435","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"message\": \"explain d) more\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5085/api/chat/69abbc27b8a7ee3fca3f8e9f/message","urlObject":{"protocol":"http","port":"5085","path":["api","chat","69abbc27b8a7ee3fca3f8e9f","message"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"e19846f9-e4dd-452b-961d-3bfe5f242ee8","name":"response","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"message\": \"Can you explain the 50/30/20 rule in more detail?\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5085/api/chat/6999c78b3d5ff1a303c97ebb/message"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"3453"},{"key":"ETag","value":"W/\"d7d-E/HSiJUBKRarkmeDik31r+BUlvc\""},{"key":"Date","value":"Sat, 21 Feb 2026 18:33:56 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": {\n        \"chatId\": \"6999c78b3d5ff1a303c97ebb\",\n        \"aiResponse\": \"Certainly! The 50/30/20 rule is a very popular and straightforward budgeting guideline that helps you allocate your after-tax income into three main categories. It's designed to be simple to follow and effective for balancing your present needs with your future financial goals.\\n\\nHere's a detailed breakdown of each component:\\n\\n1.  **50% for Needs:**\\n    This portion of your income covers all the essential expenses you absolutely cannot live without. These are the things that keep a roof over your head, food on your table, and ensure your basic survival and well-being.\\n    Examples include:\\n    Housing costs (rent or mortgage payments)\\n    Utility bills (electricity, water, gas, internet)\\n    Groceries\\n    Transportation (gas, public transit fares, car payments, car insurance)\\n    Minimum debt payments (credit cards, student loans, personal loans)\\n    Health insurance premiums\\n    Basic personal care items\\n\\n    The key here is \\\"essential.\\\" If you lost your job tomorrow, what expenses would you absolutely have to pay to get by? Those are your needs.\\n\\n2.  **30% for Wants:**\\n    This segment of your income is dedicated to non-essential expenses that improve your quality of life and bring you enjoyment, but you could technically live without them. Wants are things you choose to spend money on because they are nice to have.\\n    Examples include:\\n    Dining out and takeout\\n    Entertainment (movies, concerts, streaming subscriptions)\\n    Hobbies and leisure activities\\n    Shopping for non-essential clothing or gadgets\\n    Vacations and travel\\n    Gym memberships (if not medically necessary)\\n    Expensive coffee shop drinks\\n    Upgraded cell phone plans or cable packages\\n\\n    Distinguishing between needs and wants can sometimes be tricky. For instance, basic transportation is a need, but owning a luxury car might be considered a want. Your primary goal here is to be honest with yourself about what is truly essential versus what brings you comfort or pleasure.\\n\\n3.  **20% for Savings and Debt Repayment:**\\n    This crucial portion of your income is dedicated to securing your financial future and improving your financial health. It's where you build wealth and reduce financial stress.\\n    Examples include:\\n    Building an emergency fund (aim for 3-6 months of living expenses)\\n    Saving for retirement (401(k), IRA)\\n    Saving for a down payment (house, car)\\n    Paying off high-interest debt beyond the minimum payments (credit cards, student loans, personal loans)\\n    Investing in a brokerage account\\n    Saving for other long-term goals\\n\\n    The emphasis here is on proactive financial growth and debt reduction. While minimum debt payments are categorized under \\\"needs,\\\" using this 20% to accelerate debt payoff is highly encouraged because it frees up more money for savings and investments in the long run.\\n\\nThe beauty of the 50/30/20 rule is its flexibility and simplicity. It provides a clear framework, but you can adjust the percentages slightly to fit your unique circumstances, as long as you're prioritizing saving and debt repayment. It's a great starting point for anyone looking to bring structure to their budgeting efforts and encourage healthy financial habits.\",\n        \"youtubeKeywords\": [\n            \"how to start budgeting\",\n            \"50 30 20 rule explained\",\n            \"beginner budgeting tips\",\n            \"emergency fund guide\"\n        ]\n    }\n}"}],"_postman_id":"0ec4a667-84fd-403d-8139-510a2ba50435"},{"name":"get-all-chats","id":"5bd10c2e-2a67-45cd-80f7-5cf3a0be78bd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:5085/api/chat","urlObject":{"protocol":"http","port":"5085","path":["api","chat"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"ad189bb3-cc22-40a7-a10d-c1b9f39cc7ff","name":"response","originalRequest":{"method":"GET","header":[],"url":"http://localhost:5085/api/chat"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"336"},{"key":"ETag","value":"W/\"150-KKvD8mjcg+vPPVDnEJSf9gd7BVY\""},{"key":"Date","value":"Sat, 21 Feb 2026 18:37:09 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": [\n        {\n            \"_id\": \"6999c78b3d5ff1a303c97ebb\",\n            \"user\": \"699682465ff65c65c0b7c9e3\",\n            \"title\": \"How do I start budgeting?\",\n            \"youtubeKeywords\": [\n                \"how to start budgeting\",\n                \"50 30 20 rule explained\",\n                \"beginner budgeting tips\",\n                \"emergency fund guide\"\n            ],\n            \"createdAt\": \"2026-02-21T14:56:11.829Z\",\n            \"updatedAt\": \"2026-02-21T18:33:56.145Z\",\n            \"__v\": 1\n        }\n    ]\n}"}],"_postman_id":"5bd10c2e-2a67-45cd-80f7-5cf3a0be78bd"},{"name":"get-chat-history","id":"d1346daa-8ad9-4db0-94d2-b9e8e3ee4ef4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:5085/api/chat/6999c78b3d5ff1a303c97ebb","urlObject":{"protocol":"http","port":"5085","path":["api","chat","6999c78b3d5ff1a303c97ebb"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"55d7bb2c-d3d1-4139-b3f3-ecd14543965c","name":"response","originalRequest":{"method":"GET","header":[],"url":"http://localhost:5085/api/chat/6999c78b3d5ff1a303c97ebb"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"6488"},{"key":"ETag","value":"W/\"1958-R5ITN/yz/dnwnEPEf9xnqEIbqb4\""},{"key":"Date","value":"Sat, 21 Feb 2026 18:39:37 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": {\n        \"_id\": \"6999c78b3d5ff1a303c97ebb\",\n        \"user\": \"699682465ff65c65c0b7c9e3\",\n        \"title\": \"How do I start budgeting?\",\n        \"messages\": [\n            {\n                \"role\": \"user\",\n                \"content\": \"How do I start budgeting?\",\n                \"_id\": \"6999c78b3d5ff1a303c97ebc\",\n                \"createdAt\": \"2026-02-21T14:56:11.827Z\",\n                \"updatedAt\": \"2026-02-21T14:56:11.827Z\"\n            },\n            {\n                \"role\": \"model\",\n                \"content\": \"That's a fantastic question and a great first step towards taking control of your finances! Starting a budget can feel a little daunting, but it's really about understanding where your money goes so you can make it work for you.\\n\\nHere's a simple, practical way to begin:\\n\\n1.  **Know Your Income:** The very first thing is to figure out exactly how much money you have coming in each month after taxes and deductions. This is your net income.\\n\\n2.  **Track Your Spending:** For at least a month, simply observe where your money is going. You can use an app, a spreadsheet, or even just a notebook. Write down every single expense, no matter how small. This step is about awareness, not judgment.\\n\\n3.  **Categorize Your Expenses:** Once you have your spending tracked, group similar items together. Common categories include housing, utilities, groceries, transportation, dining out, entertainment, debt payments, and savings. You'll notice some expenses are fixed (like rent) and others are variable (like groceries or entertainment).\\n\\n4.  **Set Financial Goals:** Think about what you want your money to achieve. Do you want to save for a down payment, pay off debt, or build an emergency fund? Having clear goals will motivate you and help you decide how to allocate your funds.\\n\\n5.  **Create Your Budget Plan:** Now, based on your income and your spending habits, start assigning dollar amounts to each category. Try to make sure your total planned spending and savings do not exceed your net income. This is where you might make conscious decisions, like reducing dining out if you want to save more for a specific goal. A good rule of thumb many people use is the 50/30/20 rule: 50% for needs, 30% for wants, and 20% for savings and debt repayment.\\n\\n6.  **Review and Adjust Regularly:** A budget isn't a one-and-done task. Life changes, and so will your spending. Check in with your budget weekly or monthly to see how you're doing. Are you sticking to your limits? Do you need to adjust any categories? The more you review it, the more effective it becomes.\\n\\nStarting a budget is a powerful habit that gives you control and peace of mind. Be patient with yourself, celebrate small victories, and remember that consistency is key!\",\n                \"_id\": \"6999c78b3d5ff1a303c97ebd\",\n                \"createdAt\": \"2026-02-21T14:56:11.828Z\",\n                \"updatedAt\": \"2026-02-21T14:56:11.828Z\"\n            },\n            {\n                \"role\": \"user\",\n                \"content\": \"Can you explain the 50/30/20 rule in more detail?\",\n                \"_id\": \"6999fa90045f9d79f25916d2\",\n                \"createdAt\": \"2026-02-21T18:33:56.144Z\",\n                \"updatedAt\": \"2026-02-21T18:33:56.144Z\"\n            },\n            {\n                \"role\": \"model\",\n                \"content\": \"Certainly! The 50/30/20 rule is a very popular and straightforward budgeting guideline that helps you allocate your after-tax income into three main categories. It's designed to be simple to follow and effective for balancing your present needs with your future financial goals.\\n\\nHere's a detailed breakdown of each component:\\n\\n1.  **50% for Needs:**\\n    This portion of your income covers all the essential expenses you absolutely cannot live without. These are the things that keep a roof over your head, food on your table, and ensure your basic survival and well-being.\\n    Examples include:\\n    Housing costs (rent or mortgage payments)\\n    Utility bills (electricity, water, gas, internet)\\n    Groceries\\n    Transportation (gas, public transit fares, car payments, car insurance)\\n    Minimum debt payments (credit cards, student loans, personal loans)\\n    Health insurance premiums\\n    Basic personal care items\\n\\n    The key here is \\\"essential.\\\" If you lost your job tomorrow, what expenses would you absolutely have to pay to get by? Those are your needs.\\n\\n2.  **30% for Wants:**\\n    This segment of your income is dedicated to non-essential expenses that improve your quality of life and bring you enjoyment, but you could technically live without them. Wants are things you choose to spend money on because they are nice to have.\\n    Examples include:\\n    Dining out and takeout\\n    Entertainment (movies, concerts, streaming subscriptions)\\n    Hobbies and leisure activities\\n    Shopping for non-essential clothing or gadgets\\n    Vacations and travel\\n    Gym memberships (if not medically necessary)\\n    Expensive coffee shop drinks\\n    Upgraded cell phone plans or cable packages\\n\\n    Distinguishing between needs and wants can sometimes be tricky. For instance, basic transportation is a need, but owning a luxury car might be considered a want. Your primary goal here is to be honest with yourself about what is truly essential versus what brings you comfort or pleasure.\\n\\n3.  **20% for Savings and Debt Repayment:**\\n    This crucial portion of your income is dedicated to securing your financial future and improving your financial health. It's where you build wealth and reduce financial stress.\\n    Examples include:\\n    Building an emergency fund (aim for 3-6 months of living expenses)\\n    Saving for retirement (401(k), IRA)\\n    Saving for a down payment (house, car)\\n    Paying off high-interest debt beyond the minimum payments (credit cards, student loans, personal loans)\\n    Investing in a brokerage account\\n    Saving for other long-term goals\\n\\n    The emphasis here is on proactive financial growth and debt reduction. While minimum debt payments are categorized under \\\"needs,\\\" using this 20% to accelerate debt payoff is highly encouraged because it frees up more money for savings and investments in the long run.\\n\\nThe beauty of the 50/30/20 rule is its flexibility and simplicity. It provides a clear framework, but you can adjust the percentages slightly to fit your unique circumstances, as long as you're prioritizing saving and debt repayment. It's a great starting point for anyone looking to bring structure to their budgeting efforts and encourage healthy financial habits.\",\n                \"_id\": \"6999fa90045f9d79f25916d3\",\n                \"createdAt\": \"2026-02-21T18:33:56.145Z\",\n                \"updatedAt\": \"2026-02-21T18:33:56.145Z\"\n            }\n        ],\n        \"youtubeKeywords\": [\n            \"how to start budgeting\",\n            \"50 30 20 rule explained\",\n            \"beginner budgeting tips\",\n            \"emergency fund guide\"\n        ],\n        \"createdAt\": \"2026-02-21T14:56:11.829Z\",\n        \"updatedAt\": \"2026-02-21T18:33:56.145Z\",\n        \"__v\": 1\n    }\n}"}],"_postman_id":"d1346daa-8ad9-4db0-94d2-b9e8e3ee4ef4"},{"name":"delete-chat","id":"6f3f6126-8286-40c6-a695-c8d1c6f27b21","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"DELETE","header":[],"url":"http://localhost:5085/api/chat/6999c78b3d5ff1a303c97ebb","urlObject":{"protocol":"http","port":"5085","path":["api","chat","6999c78b3d5ff1a303c97ebb"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"9a4f92e1-40e4-46f0-ab80-e1fb4cdb1e08","name":"response","originalRequest":{"method":"DELETE","header":[],"url":"http://localhost:5085/api/chat/6999c78b3d5ff1a303c97ebb"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"62"},{"key":"ETag","value":"W/\"3e-h5IZ41JRjQt9uL4a7/5nxlpIC6Y\""},{"key":"Date","value":"Sat, 21 Feb 2026 18:41:12 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Conversation deleted successfully\"\n}"}],"_postman_id":"6f3f6126-8286-40c6-a695-c8d1c6f27b21"}],"id":"231d01e3-63ba-4819-b919-941fdff2ec34","description":"<p>Endpoints for interacting with MoneyMentor, an AI financial advisor powered by Google Gemini. Each conversation maintains full message history so the AI has context across the session. Every conversation also generates YouTube search keywords based on the topics discussed, used by the YouTube route to surface relevant videos.</p>\n","_postman_id":"231d01e3-63ba-4819-b919-941fdff2ec34"},{"name":"Youtube Suggestion","item":[{"name":"get-youtube-videos (keywords based)","id":"ade0461c-22d5-425c-94c4-339a13ec96df","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"urlObject":{"query":[],"variable":[]},"url":""},"response":[{"id":"e70d16d3-ff46-4a81-a0cd-a838091dbf91","name":"New Request","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":{"raw":"http://localhost:5085/api/youtube/search?chatId=6999fd339c72db193ecde0fd","protocol":"http","host":["localhost"],"port":"5085","path":["api","youtube","search"],"query":[{"key":"chatId","value":"6999fd339c72db193ecde0fd"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"3954"},{"key":"ETag","value":"W/\"f72-0xdpHAZNR7YJ7yoQDB6389wGRQk\""},{"key":"Date","value":"Sat, 21 Feb 2026 18:58:51 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": {\n        \"keywords\": [\n            \"how to start budgeting\",\n            \"50/30/20 rule explained\",\n            \"budgeting for beginners\",\n            \"tracking expenses\",\n            \"fixed vs variable expenses\"\n        ],\n        \"videos\": [\n            {\n                \"videoId\": \"DobwUfmL-74\",\n                \"title\": \"How to create a monthly budget quickly\",\n                \"description\": \"shorts check out more of our guides! https://beacons.ai/amoochlife.\",\n                \"thumbnail\": \"https://i.ytimg.com/vi/DobwUfmL-74/mqdefault.jpg\",\n                \"channelName\": \"Kevin Jiang\",\n                \"publishedAt\": \"2022-11-09T15:00:09Z\",\n                \"url\": \"https://www.youtube.com/watch?v=DobwUfmL-74\"\n            },\n            {\n                \"videoId\": \"4Eh8QLcB1UQ\",\n                \"title\": \"How Do I Make A Budget And Stick To It?\",\n                \"description\": \"Start eliminating debt for free with EveryDollar - https://ter.li/3w6nto Have a question for the show? Call 888-825-5225 ...\",\n                \"thumbnail\": \"https://i.ytimg.com/vi/4Eh8QLcB1UQ/mqdefault.jpg\",\n                \"channelName\": \"The Ramsey Show Highlights\",\n                \"publishedAt\": \"2020-02-14T14:00:00Z\",\n                \"url\": \"https://www.youtube.com/watch?v=4Eh8QLcB1UQ\"\n            },\n            {\n                \"videoId\": \"jNUbhmB8zw8\",\n                \"title\": \"How To Start Following The 50/30/20 Rule To Eliminate Budgeting Stress\",\n                \"description\": \"In this episode, one woman explains how following the 50/30/20 budget helped eliminate stress and streamline her financial life.\",\n                \"thumbnail\": \"https://i.ytimg.com/vi/jNUbhmB8zw8/mqdefault.jpg\",\n                \"channelName\": \"The Financial Diet\",\n                \"publishedAt\": \"2021-06-10T14:54:05Z\",\n                \"url\": \"https://www.youtube.com/watch?v=jNUbhmB8zw8\"\n            },\n            {\n                \"videoId\": \"HQzoZfc3GwQ\",\n                \"title\": \"How To Manage Your Money (50/30/20 Rule)\",\n                \"description\": \"In this video I present a high level overview on how to manage your money using the 50/30/20 Rule. Money management is 90% ...\",\n                \"thumbnail\": \"https://i.ytimg.com/vi/HQzoZfc3GwQ/mqdefault.jpg\",\n                \"channelName\": \"Marko - WhiteBoard Finance\",\n                \"publishedAt\": \"2019-05-13T23:30:02Z\",\n                \"url\": \"https://www.youtube.com/watch?v=HQzoZfc3GwQ\"\n            },\n            {\n                \"videoId\": \"-vVp185Sq24\",\n                \"title\": \"Budgeting For Beginners | How To Create A Budget From Scratch (2025)\",\n                \"description\": \"A step by step guide on how to create a budget from scratch with free Excel spreadsheet!! FREE SPREADSHEET TEMPLATE: ...\",\n                \"thumbnail\": \"https://i.ytimg.com/vi/-vVp185Sq24/mqdefault.jpg\",\n                \"channelName\": \"Austin Williams\",\n                \"publishedAt\": \"2023-09-11T13:00:00Z\",\n                \"url\": \"https://www.youtube.com/watch?v=-vVp185Sq24\"\n            },\n            {\n                \"videoId\": \"ZmthxqxuFQI\",\n                \"title\": \"3 Easy Ways to Track Expenses for Beginners  |  Frugal Living\",\n                \"description\": \"If you're looking to improve your financial situation before you start budgeting, then this video is for you! By learning how to track ...\",\n                \"thumbnail\": \"https://i.ytimg.com/vi/ZmthxqxuFQI/mqdefault.jpg\",\n                \"channelName\": \"Frugal Creative Living\",\n                \"publishedAt\": \"2023-03-08T17:00:31Z\",\n                \"url\": \"https://www.youtube.com/watch?v=ZmthxqxuFQI\"\n            },\n            {\n                \"videoId\": \"Qspex9Vn9Cc\",\n                \"title\": \"The Best Expense Tracking App in Sri Lanka – Budget Master Sri Lanka\",\n                \"description\": \"Take control of your finances with Budget Master Sri Lanka, the ultimate expense tracking app designed for Sri Lankan users.\",\n                \"thumbnail\": \"https://i.ytimg.com/vi/Qspex9Vn9Cc/mqdefault.jpg\",\n                \"channelName\": \"Money Master Sri Lanka\",\n                \"publishedAt\": \"2025-07-17T07:11:10Z\",\n                \"url\": \"https://www.youtube.com/watch?v=Qspex9Vn9Cc\"\n            },\n            {\n                \"videoId\": \"vaKCZ5sbpp4\",\n                \"title\": \"Fixed and Variable Expenses\",\n                \"description\": \"I created this video to teach my fourth grade classroom about fixed expenses and variable expenses for my unit on Personal ...\",\n                \"thumbnail\": \"https://i.ytimg.com/vi/vaKCZ5sbpp4/mqdefault.jpg\",\n                \"channelName\": \"monique moore\",\n                \"publishedAt\": \"2017-03-27T05:44:59Z\",\n                \"url\": \"https://www.youtube.com/watch?v=vaKCZ5sbpp4\"\n            },\n            {\n                \"videoId\": \"7lUrzmzBLrs\",\n                \"title\": \"Difference Between Fixed Costs and Variable Costs - 60 Second Breakdown\",\n                \"description\": \"In this breakdown we're explaining the difference between fixed costs and variable costs in just 60 seconds. Fixed costs (also ...\",\n                \"thumbnail\": \"https://i.ytimg.com/vi/7lUrzmzBLrs/mqdefault.jpg\",\n                \"channelName\": \"Pareto Labs\",\n                \"publishedAt\": \"2022-07-19T22:00:04Z\",\n                \"url\": \"https://www.youtube.com/watch?v=7lUrzmzBLrs\"\n            }\n        ],\n        \"cacheStats\": {\n            \"fromCache\": 0,\n            \"fromApi\": 5\n        }\n    }\n}"}],"_postman_id":"ade0461c-22d5-425c-94c4-339a13ec96df"}],"id":"c15c4467-02d2-41ab-b8e9-e006d9d47ed0","description":"<p>Returns curated YouTube videos relevant to a user's chat conversation. Videos are fetched using keywords extracted from the chat and cached in the database for 7 days to avoid hitting the YouTube API quota on repeated requests. Fresh results are served from cache, stale ones trigger a new API fetch automatically.</p>\n","_postman_id":"c15c4467-02d2-41ab-b8e9-e006d9d47ed0"},{"name":"Articles","item":[{"name":"Articles (Admin)","item":[{"name":"create-article","id":"71783f6b-0c72-477a-abdd-83288f40b347","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"title\": \"Mastering Your First Budget\",\n  \"summary\": \"A beginner-friendly guide to tracking expenses and saving more.\",\n  \"category\": \"budgeting\",\n  \"difficulty\": \"beginner\",\n  \"pointsPerRead\": 25,\n  \"isPublished\": true,\n  \"content\": [\n    {\n      \"type\": \"paragraph\",\n      \"content\": [\n        {\n          \"type\": \"text\",\n          \"text\": \"Budgeting is the foundation of financial freedom. By tracking where every cent goes, you gain control over your future.\"\n        }\n      ]\n    },\n    {\n      \"type\": \"paragraph\",\n      \"content\": [\n        {\n          \"type\": \"text\",\n          \"text\": \"Start by listing your fixed expenses like rent and utilities.\"\n        }\n      ]\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5085/api/articles/create","urlObject":{"protocol":"http","port":"5085","path":["api","articles","create"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"0a4cc19d-b1c2-49de-beb0-39a881e91041","name":"create-article","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"title\": \"Mastering Your First Budget\",\n  \"summary\": \"A beginner-friendly guide to tracking expenses and saving more.\",\n  \"category\": \"budgeting\",\n  \"difficulty\": \"beginner\",\n  \"pointsPerRead\": 25,\n  \"isPublished\": true,\n  \"content\": [\n    {\n      \"type\": \"paragraph\",\n      \"content\": [\n        {\n          \"type\": \"text\",\n          \"text\": \"Budgeting is the foundation of financial freedom. By tracking where every cent goes, you gain control over your future.\"\n        }\n      ]\n    },\n    {\n      \"type\": \"paragraph\",\n      \"content\": [\n        {\n          \"type\": \"text\",\n          \"text\": \"Start by listing your fixed expenses like rent and utilities.\"\n        }\n      ]\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5085/api/articles/create"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"796"},{"key":"ETag","value":"W/\"31c-kH4jP6t+gPrcRmKOz0Fk8svD4C8\""},{"key":"Date","value":"Tue, 31 Mar 2026 05:07:16 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Article created successfully\",\n    \"data\": {\n        \"title\": \"Mastering Your First Budget\",\n        \"summary\": \"A beginner-friendly guide to tracking expenses and saving more.\",\n        \"content\": [\n            {\n                \"type\": \"paragraph\",\n                \"content\": [\n                    {\n                        \"type\": \"text\",\n                        \"text\": \"Budgeting is the foundation of financial freedom. By tracking where every cent goes, you gain control over your future.\"\n                    }\n                ]\n            },\n            {\n                \"type\": \"paragraph\",\n                \"content\": [\n                    {\n                        \"type\": \"text\",\n                        \"text\": \"Start by listing your fixed expenses like rent and utilities.\"\n                    }\n                ]\n            }\n        ],\n        \"wordCount\": 29,\n        \"readTime\": 1,\n        \"category\": \"budgeting\",\n        \"difficulty\": \"beginner\",\n        \"thumbnail\": null,\n        \"pointsPerRead\": 25,\n        \"isPublished\": false,\n        \"createdBy\": \"69917010ff7bfb9c8926945c\",\n        \"_id\": \"69cb5684d8f036a232ae3906\",\n        \"completions\": [],\n        \"createdAt\": \"2026-03-31T05:07:16.305Z\",\n        \"updatedAt\": \"2026-03-31T05:07:16.305Z\",\n        \"__v\": 0\n    }\n}"}],"_postman_id":"71783f6b-0c72-477a-abdd-83288f40b347"},{"name":"edit-article","id":"5f688977-b548-41cb-b9c3-0d1250fa3476","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n  \"title\": \"Mastering Your First Budget (Updated)\",\n  \"difficulty\": \"intermediate\",\n  \"pointsPerRead\": 30\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5085/api/articles/69cb5684d8f036a232ae3906","urlObject":{"protocol":"http","port":"5085","path":["api","articles","69cb5684d8f036a232ae3906"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"ce0f91e4-dd83-4b93-973f-ca395b1017e2","name":"edit-article","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n  \"title\": \"Mastering Your First Budget (Updated)\",\n  \"difficulty\": \"intermediate\",\n  \"pointsPerRead\": 30\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5085/api/articles/69cb5684d8f036a232ae3906"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"810"},{"key":"ETag","value":"W/\"32a-SAtyNqt9HhBTHAJWytjx3SG9qSg\""},{"key":"Date","value":"Tue, 31 Mar 2026 05:08:43 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Article updated successfully\",\n    \"data\": {\n        \"_id\": \"69cb5684d8f036a232ae3906\",\n        \"title\": \"Mastering Your First Budget (Updated)\",\n        \"summary\": \"A beginner-friendly guide to tracking expenses and saving more.\",\n        \"content\": [\n            {\n                \"type\": \"paragraph\",\n                \"content\": [\n                    {\n                        \"type\": \"text\",\n                        \"text\": \"Budgeting is the foundation of financial freedom. By tracking where every cent goes, you gain control over your future.\"\n                    }\n                ]\n            },\n            {\n                \"type\": \"paragraph\",\n                \"content\": [\n                    {\n                        \"type\": \"text\",\n                        \"text\": \"Start by listing your fixed expenses like rent and utilities.\"\n                    }\n                ]\n            }\n        ],\n        \"wordCount\": 29,\n        \"readTime\": 1,\n        \"category\": \"budgeting\",\n        \"difficulty\": \"intermediate\",\n        \"thumbnail\": null,\n        \"pointsPerRead\": 30,\n        \"isPublished\": false,\n        \"createdBy\": \"69917010ff7bfb9c8926945c\",\n        \"completions\": [],\n        \"createdAt\": \"2026-03-31T05:07:16.305Z\",\n        \"updatedAt\": \"2026-03-31T05:08:42.994Z\",\n        \"__v\": 0\n    }\n}"}],"_postman_id":"5f688977-b548-41cb-b9c3-0d1250fa3476"},{"name":"delete-article","id":"86db490d-1ce3-4b49-a405-91866f824adb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:5085/api/articles/69cb5684d8f036a232ae3906","urlObject":{"protocol":"http","port":"5085","path":["api","articles","69cb5684d8f036a232ae3906"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"8c4a37ea-38e0-4cea-94cf-b390bbcb2934","name":"delete-article","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:5085/api/articles/69cb5684d8f036a232ae3906"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"57"},{"key":"ETag","value":"W/\"39-9c15UHtQLoQtZmU4P2aY5/fgEz4\""},{"key":"Date","value":"Tue, 31 Mar 2026 05:19:55 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Article deleted successfully\"\n}"}],"_postman_id":"86db490d-1ce3-4b49-a405-91866f824adb"}],"id":"da36d5ac-3be7-4d11-9a68-1a3eea6681e9","_postman_id":"da36d5ac-3be7-4d11-9a68-1a3eea6681e9","description":""},{"name":"Articles (User)","item":[{"name":"get-user-points","id":"62502d57-2aca-4db0-b61e-f4647f10214c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:5085/api/articles/my-points","urlObject":{"protocol":"http","port":"5085","path":["api","articles","my-points"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"6815b904-2117-41c9-a60c-04ef0aa69eec","name":"get-user-points","originalRequest":{"method":"GET","header":[],"url":"http://localhost:5085/api/articles/my-points"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"93"},{"key":"ETag","value":"W/\"5d-ekn6aTcq5MsigKCchVo974DwPTQ\""},{"key":"Date","value":"Tue, 31 Mar 2026 05:11:14 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": {\n        \"totalPoints\": 30,\n        \"completedArticleIds\": [\n            \"69cac7b241f475629ef45012\"\n        ]\n    }\n}"}],"_postman_id":"62502d57-2aca-4db0-b61e-f4647f10214c"},{"name":"get-all-articles (published)","id":"b7daa21c-ccf6-4dda-8df3-e9e76fa0d34d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:5085/api/articles/","urlObject":{"protocol":"http","port":"5085","path":["api","articles",""],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"205abe91-e98e-4c50-973b-8e961dbcafe8","name":"get-all-articles (published)","originalRequest":{"method":"GET","header":[],"url":"http://localhost:5085/api/articles/"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"6449"},{"key":"ETag","value":"W/\"1931-1NY6EatBl42CGvqBJGzev5Zpd/E\""},{"key":"Date","value":"Tue, 31 Mar 2026 05:10:31 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": [\n        {\n            \"_id\": \"69cac7b241f475629ef45012\",\n            \"title\": \"The \\\"First-of-the-Month\\\" Myth.\",\n            \"summary\": \"Why Your Budget is Failing (and How to Fix It)\",\n            \"content\": [\n                {\n                    \"id\": \"346b51ae-671f-4f5e-8107-1b5231b76d59\",\n                    \"type\": \"heading\",\n                    \"props\": {\n                        \"backgroundColor\": \"default\",\n                        \"textColor\": \"brown\",\n                        \"textAlignment\": \"left\",\n                        \"level\": 3,\n                        \"isToggleable\": false\n                    },\n                    \"content\": [\n                        {\n                            \"type\": \"text\",\n                            \"text\": \"The Trap: Waiting for \\\"Enough\\\" Money\",\n                            \"styles\": {\n                                \"bold\": true\n                            }\n                        }\n                    ],\n                    \"children\": []\n                },\n                {\n                    \"id\": \"54cdaa52-0e90-416f-8c66-674cfe6ad947\",\n                    \"type\": \"paragraph\",\n                    \"props\": {\n                        \"backgroundColor\": \"default\",\n                        \"textColor\": \"default\",\n                        \"textAlignment\": \"left\"\n                    },\n                    \"content\": [\n                        {\n                            \"type\": \"text\",\n                            \"text\": \"Most people think budgeting is something you do once you’re \\\"rich\\\" or have a \\\"stable career.\\\" We tell ourselves: \"\n                        },\n                        {\n                            \"type\": \"text\",\n                            \"text\": \"“I’ll start tracking my spending once I have a real salary.”\",\n                            \"styles\": {\n                                \"italic\": true\n                            }\n                        },\n                        {\n                            \"type\": \"text\",\n                            \"text\": \" But here’s the truth: \"\n                        },\n                        {\n                            \"type\": \"text\",\n                            \"text\": \"Budgeting isn’t about restricted living; it’s about directed spending.\",\n                            \"styles\": {\n                                \"bold\": true\n                            }\n                        },\n                        {\n                            \"type\": \"text\",\n                            \"text\": \" If you don't tell your money where to go, it will find its own way out of your pocket—usually through small, invisible leaks like that extra snack or a subscription you forgot to cancel.\"\n                        }\n                    ],\n                    \"children\": []\n                },\n                {\n                    \"id\": \"16a0e9f7-ae5e-4854-b547-2de7a5969870\",\n                    \"type\": \"paragraph\",\n                    \"props\": {\n                        \"backgroundColor\": \"default\",\n                        \"textColor\": \"default\",\n                        \"textAlignment\": \"left\"\n                    },\n                    \"content\": [],\n                    \"children\": []\n                },\n                {\n                    \"id\": \"8121040e-7cf1-4c13-88e2-e6bb42a2749a\",\n                    \"type\": \"image\",\n                    \"props\": {\n                        \"textAlignment\": \"left\",\n                        \"backgroundColor\": \"default\",\n                        \"name\": \"64f5a4e46e20f190be9cb902_64c5f96154d6bc13eb1af3cf_62d93f008603936ff8cf0132_61fc150466a642a3cebfd620_img-blog-5fdb7804091d3.webp\",\n                        \"url\": \"https://cdn.prod.website-files.com/645ac51b7f9213c3dea947d4/64f5a4e46e20f190be9cb902_64c5f96154d6bc13eb1af3cf_62d93f008603936ff8cf0132_61fc150466a642a3cebfd620_img-blog-5fdb7804091d3.webp\",\n                        \"caption\": \"\",\n                        \"showPreview\": true\n                    },\n                    \"children\": []\n                },\n                {\n                    \"id\": \"255e9842-4541-448f-b1a5-6d536a501412\",\n                    \"type\": \"paragraph\",\n                    \"props\": {\n                        \"backgroundColor\": \"default\",\n                        \"textColor\": \"default\",\n                        \"textAlignment\": \"left\"\n                    },\n                    \"content\": [],\n                    \"children\": []\n                },\n                {\n                    \"id\": \"7b4c49a2-f1e3-49ad-8de9-c96643cd1e98\",\n                    \"type\": \"heading\",\n                    \"props\": {\n                        \"backgroundColor\": \"default\",\n                        \"textColor\": \"default\",\n                        \"textAlignment\": \"left\",\n                        \"level\": 3,\n                        \"isToggleable\": false\n                    },\n                    \"content\": [\n                        {\n                            \"type\": \"text\",\n                            \"text\": \"The Strategy: The 50/30/20 Rule (Simplified)\",\n                            \"styles\": {\n                                \"bold\": true\n                            }\n                        }\n                    ],\n                    \"children\": []\n                },\n                {\n                    \"id\": \"e491d61b-9358-4ab4-8d87-bea58eaa2478\",\n                    \"type\": \"paragraph\",\n                    \"props\": {\n                        \"backgroundColor\": \"default\",\n                        \"textColor\": \"default\",\n                        \"textAlignment\": \"left\"\n                    },\n                    \"content\": [\n                        {\n                            \"type\": \"text\",\n                            \"text\": \"You don’t need a complex spreadsheet. For a student or someone just starting out, follow this simple breakdown:\"\n                        }\n                    ],\n                    \"children\": []\n                },\n                {\n                    \"id\": \"a4706211-20d0-4189-a99d-6a234148bd1e\",\n                    \"type\": \"numberedListItem\",\n                    \"props\": {\n                        \"backgroundColor\": \"default\",\n                        \"textColor\": \"default\",\n                        \"textAlignment\": \"left\"\n                    },\n                    \"content\": [\n                        {\n                            \"type\": \"text\",\n                            \"text\": \"50% for Needs:\",\n                            \"styles\": {\n                                \"bold\": true\n                            }\n                        },\n                        {\n                            \"type\": \"text\",\n                            \"text\": \" Rent, groceries, transport, and data. The \\\"must-haves.\\\"\"\n                        }\n                    ],\n                    \"children\": []\n                },\n                {\n                    \"id\": \"4e96d9c7-c3b8-4fed-9400-e5bcb034715e\",\n                    \"type\": \"numberedListItem\",\n                    \"props\": {\n                        \"backgroundColor\": \"default\",\n                        \"textColor\": \"default\",\n                        \"textAlignment\": \"left\"\n                    },\n                    \"content\": [\n                        {\n                            \"type\": \"text\",\n                            \"text\": \"30% for Wants:\",\n                            \"styles\": {\n                                \"bold\": true\n                            }\n                        },\n                        {\n                            \"type\": \"text\",\n                            \"text\": \" That movie ticket, a new shirt, or hanging out with friends. The \\\"nice-to-haves.\\\"\"\n                        }\n                    ],\n                    \"children\": []\n                },\n                {\n                    \"id\": \"3fff800e-be2f-478a-bb93-232accd9dda7\",\n                    \"type\": \"numberedListItem\",\n                    \"props\": {\n                        \"backgroundColor\": \"default\",\n                        \"textColor\": \"default\",\n                        \"textAlignment\": \"left\"\n                    },\n                    \"content\": [\n                        {\n                            \"type\": \"text\",\n                            \"text\": \"20% for Future You:\",\n                            \"styles\": {\n                                \"bold\": true\n                            }\n                        },\n                        {\n                            \"type\": \"text\",\n                            \"text\": \" This is your \"\n                        },\n                        {\n                            \"type\": \"text\",\n                            \"text\": \"Savings & Debt\",\n                            \"styles\": {\n                                \"bold\": true\n                            }\n                        },\n                        {\n                            \"type\": \"text\",\n                            \"text\": \" bucket. Even if it’s just 500 LKR a month, the habit of saving is more important than the amount.\"\n                        }\n                    ],\n                    \"children\": []\n                },\n                {\n                    \"id\": \"715d22c9-8168-4905-a271-2650fc5054aa\",\n                    \"type\": \"heading\",\n                    \"props\": {\n                        \"backgroundColor\": \"default\",\n                        \"textColor\": \"default\",\n                        \"textAlignment\": \"left\",\n                        \"level\": 3,\n                        \"isToggleable\": false\n                    },\n                    \"content\": [\n                        {\n                            \"type\": \"text\",\n                            \"text\": \"The \\\"Gamified\\\" Hack: The 24-Hour Rule\",\n                            \"styles\": {\n                                \"bold\": true\n                            }\n                        }\n                    ],\n                    \"children\": []\n                },\n                {\n                    \"id\": \"dfbe8795-9a8f-4657-b800-d06958a1bc3e\",\n                    \"type\": \"paragraph\",\n                    \"props\": {\n                        \"backgroundColor\": \"default\",\n                        \"textColor\": \"default\",\n                        \"textAlignment\": \"left\"\n                    },\n                    \"content\": [\n                        {\n                            \"type\": \"text\",\n                            \"text\": \"Whenever you feel the urge to buy something that isn't a \\\"Need\\\" (especially online), wait exactly \"\n                        },\n                        {\n                            \"type\": \"text\",\n                            \"text\": \"24 hours\",\n                            \"styles\": {\n                                \"bold\": true\n                            }\n                        },\n                        {\n                            \"type\": \"text\",\n                            \"text\": \".\"\n                        }\n                    ],\n                    \"children\": []\n                },\n                {\n                    \"id\": \"fd9de836-baf3-477b-bcac-061c19c5bbe0\",\n                    \"type\": \"bulletListItem\",\n                    \"props\": {\n                        \"backgroundColor\": \"default\",\n                        \"textColor\": \"default\",\n                        \"textAlignment\": \"left\"\n                    },\n                    \"content\": [\n                        {\n                            \"type\": \"text\",\n                            \"text\": \"If you still want it tomorrow:\",\n                            \"styles\": {\n                                \"bold\": true\n                            }\n                        },\n                        {\n                            \"type\": \"text\",\n                            \"text\": \" It’s a considered purchase.\"\n                        }\n                    ],\n                    \"children\": []\n                },\n                {\n                    \"id\": \"6de619d9-a638-4cf3-a4c2-69ea9ba420a7\",\n                    \"type\": \"bulletListItem\",\n                    \"props\": {\n                        \"backgroundColor\": \"gray\",\n                        \"textColor\": \"default\",\n                        \"textAlignment\": \"left\"\n                    },\n                    \"content\": [\n                        {\n                            \"type\": \"text\",\n                            \"text\": \"If you forgot about it:\",\n                            \"styles\": {\n                                \"bold\": true\n                            }\n                        },\n                        {\n                            \"type\": \"text\",\n                            \"text\": \" You just saved yourself from an impulse buy.\"\n                        }\n                    ],\n                    \"children\": []\n                },\n                {\n                    \"id\": \"1ddd3c61-7ec1-4219-a7ce-85f676ea95b3\",\n                    \"type\": \"heading\",\n                    \"props\": {\n                        \"backgroundColor\": \"default\",\n                        \"textColor\": \"default\",\n                        \"textAlignment\": \"left\",\n                        \"level\": 3,\n                        \"isToggleable\": false\n                    },\n                    \"content\": [\n                        {\n                            \"type\": \"text\",\n                            \"text\": \"The Bottom Line\",\n                            \"styles\": {\n                                \"bold\": true\n                            }\n                        }\n                    ],\n                    \"children\": []\n                },\n                {\n                    \"id\": \"38abeea1-249f-4880-80cd-5e8c13190386\",\n                    \"type\": \"quote\",\n                    \"props\": {\n                        \"backgroundColor\": \"default\",\n                        \"textColor\": \"default\"\n                    },\n                    \"content\": [\n                        {\n                            \"type\": \"text\",\n                            \"text\": \"Budgeting isn't a math problem; it's a habit. Start today with whatever is in your wallet. Your future self will thank you for the head start.\"\n                        }\n                    ],\n                    \"children\": []\n                },\n                {\n                    \"id\": \"e2105e10-19bc-4e4b-8de1-16af0f42ce15\",\n                    \"type\": \"paragraph\",\n                    \"props\": {\n                        \"backgroundColor\": \"default\",\n                        \"textColor\": \"default\",\n                        \"textAlignment\": \"left\"\n                    },\n                    \"content\": [],\n                    \"children\": []\n                }\n            ],\n            \"wordCount\": 239,\n            \"readTime\": 2,\n            \"category\": \"saving\",\n            \"difficulty\": \"beginner\",\n            \"thumbnail\": \"https://blog.blackbaud.com/wp-content/uploads/2014/04/478571029.jpg\",\n            \"pointsPerRead\": 30,\n            \"isPublished\": true,\n            \"createdBy\": {\n                \"_id\": \"69917010ff7bfb9c8926945c\",\n                \"username\": \"admin\"\n            },\n            \"createdAt\": \"2026-03-30T18:57:54.089Z\",\n            \"updatedAt\": \"2026-03-30T19:00:10.468Z\",\n            \"__v\": 2,\n            \"isRead\": true,\n            \"userPointsEarned\": 30,\n            \"completedAt\": \"2026-03-30T19:00:10.467Z\"\n        }\n    ],\n    \"pagination\": {\n        \"total\": 1,\n        \"page\": 1,\n        \"pages\": 1,\n        \"limit\": 10\n    }\n}"}],"_postman_id":"b7daa21c-ccf6-4dda-8df3-e9e76fa0d34d"},{"name":"get-single-article (published)","id":"b3b622b4-40d5-412e-98ee-36fe41c38286","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:5085/api/articles/69cb5684d8f036a232ae3906","urlObject":{"protocol":"http","port":"5085","path":["api","articles","69cb5684d8f036a232ae3906"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"1996b579-caf2-4928-b9e3-ee71389743c4","name":"get-single-article (published)","originalRequest":{"method":"GET","header":[],"url":"http://localhost:5085/api/articles/69cb5684d8f036a232ae3906"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"817"},{"key":"ETag","value":"W/\"331-I7egRlxWqY4fIdsbBqT8FAdNKPg\""},{"key":"Date","value":"Tue, 31 Mar 2026 05:14:46 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": {\n        \"_id\": \"69cb5684d8f036a232ae3906\",\n        \"title\": \"Mastering Your First Budget (Updated)\",\n        \"summary\": \"A beginner-friendly guide to tracking expenses and saving more.\",\n        \"content\": [\n            {\n                \"type\": \"paragraph\",\n                \"content\": [\n                    {\n                        \"type\": \"text\",\n                        \"text\": \"Budgeting is the foundation of financial freedom. By tracking where every cent goes, you gain control over your future.\"\n                    }\n                ]\n            },\n            {\n                \"type\": \"paragraph\",\n                \"content\": [\n                    {\n                        \"type\": \"text\",\n                        \"text\": \"Start by listing your fixed expenses like rent and utilities.\"\n                    }\n                ]\n            }\n        ],\n        \"wordCount\": 29,\n        \"readTime\": 1,\n        \"category\": \"budgeting\",\n        \"difficulty\": \"intermediate\",\n        \"thumbnail\": null,\n        \"pointsPerRead\": 30,\n        \"isPublished\": true,\n        \"createdBy\": {\n            \"_id\": \"69917010ff7bfb9c8926945c\",\n            \"username\": \"admin\"\n        },\n        \"createdAt\": \"2026-03-31T05:07:16.305Z\",\n        \"updatedAt\": \"2026-03-31T05:08:42.994Z\",\n        \"__v\": 0,\n        \"isRead\": false,\n        \"userPointsEarned\": null\n    }\n}"}],"_postman_id":"b3b622b4-40d5-412e-98ee-36fe41c38286"},{"name":"complete-article","id":"4705abf6-af9f-4f6e-abd4-3c3496839d88","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"articleId\": \"69d0e4df51bdc76b7a3f23f5\",\n  \"timeSpentSeconds\": 4000\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5085/api/articles/complete","urlObject":{"protocol":"http","port":"5085","path":["api","articles","complete"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"12fc700d-d9c1-4c94-89c8-ff09049faf7a","name":"complete-article","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"articleId\": \"69cb5684d8f036a232ae3906\",\n  \"timeSpentSeconds\": 125\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5085/api/articles/complete"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"137"},{"key":"ETag","value":"W/\"89-uKpZz2qbMnN/41s6ycUrV8ADchQ\""},{"key":"Date","value":"Tue, 31 Mar 2026 05:17:07 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Great job! You earned 30 points for reading this article.\",\n    \"data\": {\n        \"pointsEarned\": 30,\n        \"totalArticlePoints\": 60\n    }\n}"}],"_postman_id":"4705abf6-af9f-4f6e-abd4-3c3496839d88"}],"id":"059362ec-2035-4993-a4f1-facd915a61ff","_postman_id":"059362ec-2035-4993-a4f1-facd915a61ff","description":""}],"id":"e6663255-cd80-4235-86be-6eeabd5aea0c","_postman_id":"e6663255-cd80-4235-86be-6eeabd5aea0c","description":""}]}