{"info":{"_postman_id":"2896f841-77c1-4187-9a87-cef1a16a7741","name":"The Ultimate Quiz API","description":"<html><head></head><body><h1 id=\"welcome-to-the-quiz-api-documentation\">Welcome to the Quiz API Documentation! 🎉</h1>\n<h2 id=\"what-is-quiz-api\">What is Quiz API?</h2>\n<p>Quiz API is a powerful, developer-friendly solution designed to seamlessly integrate quiz functionality into any application, regardless of its domain. Whether you're building an educational platform, a gaming app, or a corporate training tool, Quiz API simplifies the process of managing quizzes and questions, so you can focus on delivering value to your users.</p>\n<hr>\n<h2 id=\"why-choose-quiz-api\">Why Choose Quiz API?</h2>\n<ul>\n<li><p>🚀 <strong>Flexible Integration</strong>: Designed to adapt to any application or workflow.</p>\n</li>\n<li><p>🛠️ <strong>Comprehensive Features</strong>: Manage users, questions, and quizzes effortlessly.</p>\n</li>\n<li><p>🔒 <strong>Secure</strong>: Built with robust authentication and token-based access.</p>\n</li>\n<li><p>🎯 <strong>Customizable</strong>: Add questions with categories, difficulties, and types to suit your specific needs.</p>\n</li>\n</ul>\n<hr>\n<h2 id=\"key-features\">Key Features:</h2>\n<ol>\n<li><p><strong>Secure Authentication</strong></p>\n<ol>\n<li>Token-based authentication to restrict access to authorized users only.</li>\n</ol>\n</li>\n<li><p><strong>Quiz Management</strong></p>\n<ol>\n<li>Create, update, and delete quizzes with various question types.</li>\n</ol>\n</li>\n<li><p><strong>Question Types</strong></p>\n<ol>\n<li>Support for multiple-choice, true/false, matching pairs, and ordering questions.</li>\n</ol>\n</li>\n<li><p><strong>Quiz Attempts and Scoring</strong></p>\n<ol>\n<li>Users can attempt quizzes, get scored, and view results.</li>\n</ol>\n</li>\n<li><p><strong>Filtering and Customization</strong></p>\n<ol>\n<li>Filter quizzes and questions by category, difficulty, and more.</li>\n</ol>\n</li>\n<li><p><strong>Detailed Analytics</strong></p>\n<ol>\n<li>Track user attempts and retrieve quiz performance data.</li>\n</ol>\n</li>\n<li><p><strong>Error Handling</strong></p>\n<ol>\n<li>Meaningful error messages and robust validation for requests.</li>\n</ol>\n</li>\n</ol>\n<hr>\n<h2 id=\"getting-started-🚀\">Getting Started 🚀</h2>\n<ol>\n<li><p><strong>Base URL</strong>: <code>https://quizapi.up.railway.app/v1</code></p>\n</li>\n<li><p><strong>Authentication</strong>:</p>\n<ul>\n<li><p>Not All endpoints require a token (Each endpoint have it documented).</p>\n</li>\n<li><p>Include it in the <code>Authorization</code> header as:<br>  <code>token: YOUR_API_TOKEN</code></p>\n</li>\n</ul>\n</li>\n<li><p>GET /questions/: <a href=\"https://quizapi.up.railway.app/v1\">https://quizapi.up.railway.app/v1</a></p>\n</li>\n</ol>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"Welcome to the Quiz API Documentation! 🎉","slug":"welcome-to-the-quiz-api-documentation"}],"owner":"40691710","collectionId":"2896f841-77c1-4187-9a87-cef1a16a7741","publishedId":"2sAYJAexhn","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2025-01-08T09:40:28.000Z"},"item":[{"name":"Users","item":[{"name":"Register","event":[{"listen":"test","script":{"id":"4db83cf5-9ed0-42be-a585-0628f99546d6","exec":["var template = `\r","<style type=\"text/css\">\r","    .tftable {font-size:14px;color:#333333;width:100%;border-width: 1px;border-color: #87ceeb;border-collapse: collapse;}\r","    .tftable th {font-size:18px;background-color:#87ceeb;border-width: 1px;padding: 8px;border-style: solid;border-color: #87ceeb;text-align:left;}\r","    .tftable tr {background-color:#ffffff;}\r","    .tftable td {font-size:14px;border-width: 1px;padding: 8px;border-style: solid;border-color: #87ceeb;}\r","    .tftable tr:hover {background-color:#e0ffff;}\r","</style>\r","\r","<table class=\"tftable\" border=\"1\">\r","    <tr>\r","        <th>ID</th>\r","        <th>Title</th>\r","        <th>Description</th>\r","        <th>Created At</th>\r","        <th>Updated At</th>\r","    </tr>\r","    \r","    {{#each response}}\r","        <tr>\r","            <td>{{id}}</td>\r","            <td>{{title}}</td>\r","            <td>{{description}}</td>\r","            <td>{{created_at}}</td>\r","            <td>{{updated_at}}</td>\r","        </tr>\r","    {{/each}}\r","</table>\r","`;\r","\r","function constructVisualizerPayload() {\r","    return {response: pm.response.json()}\r","}\r","\r","pm.visualizer.set(template, constructVisualizerPayload());"],"type":"text/javascript","packages":{}}}],"id":"4ae04ff4-4cd9-47a7-8549-f9cf7b392a6c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"email","value":"testuser@example.com","type":"text"},{"key":"password","value":"TestPassword123","type":"text"},{"key":"password_confirm","value":"TestPassword123","type":"text"},{"key":"is_creator","value":"true","type":"text"},{"key":"is_admin","value":"false","type":"text"}]},"url":"https://quizapi.up.railway.app/v1/users/register/","description":"<h3 id=\"post-usersregister\">POST /users/register</h3>\n<p>This endpoint is used to register a new user.</p>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><p>email (text, required): The email of the user.</p>\n</li>\n<li><p>password (text, required): The password for the user account.</p>\n</li>\n<li><p>password_confirm (text, required): The confirmation of the password.</p>\n</li>\n<li><p>is_creator (text, required): Indicates if the user is a creator.</p>\n</li>\n<li><p>is_admin (text, required): Indicates if the user is an admin.</p>\n</li>\n</ul>\n<h4 id=\"response-201---created\">Response (201 - Created)</h4>\n<p>The response will be in JSON format with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"type\": \"object\",\n    \"properties\": {\n        \"message\": {\"type\": \"string\"},\n        \"token\": {\"type\": \"string\"},\n        \"user\": {\n            \"type\": \"object\",\n            \"properties\": {\n                \"id\": {\"type\": \"integer\"},\n                \"email\": {\"type\": \"string\"},\n                \"is_creator\": {\"type\": \"boolean\"},\n                \"number_of_created_quizzes\": {\"type\": \"integer\"},\n                \"number_of_created_questions\": {\"type\": \"integer\"}\n            }\n        }\n    }\n}\n\n</code></pre>\n<p>The response will include a message, a token that will be used in future requests, and user details such as user ID, email, creator status, and the number of quizzes and questions created by the user.</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"5512a32a-c1f2-4559-981d-415c7f627f4d","id":"5512a32a-c1f2-4559-981d-415c7f627f4d","name":"Users","type":"folder"}},"urlObject":{"path":["users","register",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"095a866b-c5b2-4941-9d0d-bf184458e991","name":"Succesful Registration","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"email","value":"testuser@example.com","type":"text"},{"key":"password","value":"TestPassword123","type":"text"},{"key":"password_confirm","value":"TestPassword123","type":"text"},{"key":"is_creator","value":"true","type":"text"},{"key":"is_admin","value":"false","type":"text"}]},"url":"https://quizapi.up.railway.app/v1/users/register/"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 08 Jan 2025 02:30:26 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"220"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"User registered successfully\",\n    \"token\": \"082866114f3e1ea6cf30f75c435ceeb377e1da40\",\n    \"user\": {\n        \"id\": 1,\n        \"email\": \"testuser@example.com\",\n        \"is_creator\": true,\n        \"number_of_created_quizzes\": 0,\n        \"number_of_created_questions\": 0\n    }\n}"},{"id":"5a8f69ce-7707-4e40-a024-36e5108a2723","name":"Bad request","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"email","value":"testuser@example.com","type":"text"},{"key":"password","value":"TestPassword123","type":"text"},{"key":"password_confirm","value":"TestPassword123","type":"text","disabled":true},{"key":"is_creator","value":"true","type":"text"},{"key":"is_admin","value":"false","type":"text"}]},"url":"https://quizapi.up.railway.app/v1/users/register/"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 08 Jan 2025 23:03:19 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"97"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"email\": [\n        \"user with this email already exists.\"\n    ],\n    \"password_confirm\": [\n        \"This field is required.\"\n    ]\n}"}],"_postman_id":"4ae04ff4-4cd9-47a7-8549-f9cf7b392a6c"},{"name":"Login","id":"d4967fb2-1dcb-4941-a914-4422ab082a00","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"email","value":"testuser@example.com","type":"text"},{"key":"password","value":"TestPassword123","type":"text"}]},"url":"https://quizapi.up.railway.app/v1/users/login/","description":"<h3 id=\"post-userslogin\">POST /users/login</h3>\n<p>This endpoint is used primiraly to get the token for a user.</p>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><p>email (text, required): The email of the user.</p>\n</li>\n<li><p>password (text, required): The password of the user.</p>\n</li>\n<li><p>refresh_token (boolean, optional): when provided and the value is true, the token will be updated. This is used if you suspect your token was stolen and someone else is using it.</p>\n</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<p>The response is in JSON format with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"user\": {\n        \"id\": 0,\n        \"email\": \"\",\n        \"is_creator\": true\n    },\n    \"token\": \"\"\n}\n\n</code></pre>\n<ul>\n<li><p>user (object):</p>\n<ul>\n<li><p>id (number): The user ID.</p>\n</li>\n<li><p>email (string): The email of the user.</p>\n</li>\n<li><p>is_creator (boolean): Indicates if the user is a creator.</p>\n</li>\n</ul>\n</li>\n<li><p>token (string): The authentication token.</p>\n</li>\n</ul>\n","urlObject":{"path":["users","login",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"8c9abbf8-93d8-43cd-81b1-c191c532afc8","name":"Succesful login","originalRequest":{"method":"POST","header":[{"key":"email","value":"testuser@example.com","type":"text","disabled":true},{"key":"password","value":"TestPassword123","type":"text","disabled":true}],"body":{"mode":"formdata","formdata":[{"key":"email","value":"testuser@example.com","type":"text"},{"key":"password","value":"TestPassword123","type":"text"}]},"url":"https://quizapi.up.railway.app/v1/users/login/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 07 Jan 2025 20:43:23 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"117"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"user\": {\n        \"id\": 1,\n        \"email\": \"testuser@example.com\",\n        \"is_creator\": true\n    },\n    \"token\": \"4c6cb19eb72d96bbaf2ad602264e164c75c88024\"\n}"},{"id":"1e695e41-1dd3-44f1-a539-4d99478fbf32","name":"Wrong Password","originalRequest":{"method":"POST","header":[{"key":"email","value":"testuser@example.com","type":"text","disabled":true},{"key":"password","value":"TestPassword123","type":"text","disabled":true}],"body":{"mode":"formdata","formdata":[{"key":"email","value":"testuser@example.com","type":"text"},{"key":"password","value":"WrongPassword","type":"text"}]},"url":"https://quizapi.up.railway.app/v1/users/login/"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 08 Jan 2025 23:10:02 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"37"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Invalid email or password\"\n}"}],"_postman_id":"d4967fb2-1dcb-4941-a914-4422ab082a00"},{"name":"Profile","id":"be1bc005-289a-4459-942e-9014db2c4373","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://quizapi.up.railway.app/v1/users/profile/","description":"<h3 id=\"get-usersprofile\">GET /users/profile/</h3>\n<p>This endpoint retrieves the information of the user.</p>\n<h4 id=\"request\">Request</h4>\n<p>There are no request parameters for this endpoint.</p>\n<h4 id=\"response\">Response</h4>\n<p>The response will be in JSON format and will have the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"object\",\n  \"properties\": {\n    \"id\": {\n      \"type\": \"integer\"\n    },\n    \"email\": {\n      \"type\": \"string\"\n    },\n    \"is_creator\": {\n      \"type\": \"boolean\"\n    },\n    \"number_of_created_quizzes\": {\n      \"type\": \"integer\"\n    },\n    \"number_of_created_questions\": {\n      \"type\": \"integer\"\n    }\n  }\n}\n\n</code></pre>\n","urlObject":{"path":["users","profile",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"d6ceae99-0905-4db5-99ae-45c8e8f3dfd8","name":"Valid Token","originalRequest":{"method":"GET","header":[],"url":"https://quizapi.up.railway.app/v1/users/profile/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 08 Jan 2025 06:20:38 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"121"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 1,\n    \"email\": \"testuser@example.com\",\n    \"is_creator\": true,\n    \"number_of_created_quizzes\": 0,\n    \"number_of_created_questions\": 283\n}"},{"id":"4a4d85a8-5a71-4d87-9ddf-96f65770ae38","name":"Invalid Token","originalRequest":{"method":"GET","header":[],"url":"https://quizapi.up.railway.app/v1/users/profile/"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 08 Jan 2025 23:25:44 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"WWW-Authenticate","value":"Token"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"27"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"detail\": \"Invalid token.\"\n}"}],"_postman_id":"be1bc005-289a-4459-942e-9014db2c4373"},{"name":"Change password","id":"6441308c-ceb4-455e-a0e0-510a8af2a80c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"email","value":"testuser@example.com","type":"text"},{"key":"old_password","value":"TestPassword123","type":"text"},{"key":"new_password","value":"TestPassword456","type":"text"}]},"url":"https://quizapi.up.railway.app/v1/users/change_password/","description":"<h3 id=\"userschange_password\">/users/change_password/</h3>\n<p>This endpoint allows users to change their password.</p>\n<h4 id=\"request-body-parameters\">Request Body Parameters</h4>\n<ul>\n<li><p><code>email</code> (text): The email address of the user.</p>\n</li>\n<li><p><code>old_password</code> (text): The user's current password.</p>\n</li>\n<li><p><code>new_password</code> (text): The new password to be set.</p>\n</li>\n<li><p>The user also has to send the token in the header.</p>\n</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<p>The response is in JSON format with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"\"\n}\n\n</code></pre>\n<ul>\n<li><code>message</code> (string): A message indicating the result of the password change operation.</li>\n</ul>\n","urlObject":{"path":["users","change_password",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"4f50da47-c70d-4af1-8858-92da0e1aa3eb","name":"Succesful Change","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"email","value":"testuser@example.com","type":"text"},{"key":"old_password","value":"TestPassword123","type":"text"},{"key":"new_password","value":"TestPassword456","type":"text"}]},"url":"https://quizapi.up.railway.app/v1/users/change_password/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 08 Jan 2025 07:16:31 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"43"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Password changed successfully\"\n}"},{"id":"cfec16d5-2fa6-4be1-881a-39a9458bde6a","name":"Invalid Change","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"email","value":"testuser@example.com","type":"text"},{"key":"old_password","value":"TestPassword123","type":"text","disabled":true},{"key":"new_password","value":"TestPassword456","type":"text"}]},"url":"https://quizapi.up.railway.app/v1/users/change_password/"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 08 Jan 2025 23:38:10 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"32"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Invalid old password\"\n}"}],"_postman_id":"6441308c-ceb4-455e-a0e0-510a8af2a80c"},{"name":"Creations","id":"252b10fb-2e70-4d04-8dfb-a59f68242f0b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://quizapi.up.railway.app/v1/users/creations/","description":"<h3 id=\"get-userscreated_quizzes\">GET /users/created_quizzes/</h3>\n<p>This endpoint retrieves the created quizzes for the user that is associated with the token.</p>\n<h4 id=\"request\">Request</h4>\n<p>No request body for this endpoint.</p>\n<h4 id=\"response\">Response</h4>\n<p>The response will be a JSON array containing the details of the created quizzes. Each quiz object will have the following properties:</p>\n<ul>\n<li><p><code>id</code> (number): The unique identifier of the quiz.</p>\n</li>\n<li><p><code>title</code> (string): The title of the quiz.</p>\n</li>\n<li><p><code>description</code> (string): The description of the quiz.</p>\n</li>\n<li><p><code>category</code> (object): The category of the quiz with properties <code>id</code> (number), <code>name</code> (string), and <code>slug</code> (string).</p>\n</li>\n<li><p><code>number_of_questions</code> (number): The total number of questions in the quiz.</p>\n</li>\n<li><p><code>questions</code> (array): An array of question objects, each with properties:</p>\n<ul>\n<li><p><code>id</code> (number): The unique identifier of the question.</p>\n</li>\n<li><p><code>text</code> (string): The text of the question.</p>\n</li>\n<li><p><code>question_type</code> (string): The type of the question.</p>\n</li>\n<li><p><code>choices</code> (array): An array of choices for the question.</p>\n</li>\n<li><p><code>matching_pairs</code> (array): An array of matching pairs for the question.</p>\n</li>\n<li><p><code>ordering_items</code> (array): An array of ordering items for the question.</p>\n</li>\n<li><p><code>tf_correct_answer</code> (boolean): The correct answer for True/False type questions.</p>\n</li>\n<li><p><code>category</code> (object): The category of the question with properties <code>id</code> (number), <code>name</code> (string), and <code>slug</code> (string).</p>\n</li>\n<li><p><code>explanation</code> (string): The explanation for the question.</p>\n</li>\n<li><p><code>difficulty</code> (string): The difficulty level of the question.</p>\n</li>\n</ul>\n</li>\n</ul>\n<p>Example response:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"id\": 0,\n    \"title\": \"\",\n    \"description\": \"\",\n    \"category\": {\n      \"id\": 0,\n      \"name\": \"\",\n      \"slug\": \"\"\n    },\n    \"number_of_questions\": 0,\n    \"questions\": [\n      {\n        \"id\": 0,\n        \"text\": \"\",\n        \"question_type\": \"\",\n        \"choices\": [],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": true,\n        \"category\": {\n          \"id\": 0,\n          \"name\": \"\",\n          \"slug\": \"\"\n        },\n        \"explanation\": \"\",\n        \"difficulty\": \"\"\n      }\n    ]\n  }\n]\n\n</code></pre>\n","urlObject":{"path":["users","creations",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"937102f0-3c45-4d7e-9312-79a77e6a74a4","name":"Success","originalRequest":{"method":"GET","header":[],"url":"https://quizapi.up.railway.app/v1/users/creations/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 24 Jan 2025 21:03:32 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"46841"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"questions\": [\n        {\n            \"id\": 283,\n            \"text\": \"PostgreSQL is an open-source relational database management system.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": true,\n            \"category\": {\n                \"id\": 7,\n                \"name\": \"Postgres\",\n                \"slug\": \"postgres\"\n            },\n            \"explanation\": \"PostgreSQL is an open-source object-relational database management system.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 255,\n            \"text\": \"Arrange the steps to connect to a PostgreSQL database from a Python script.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Install the psycopg2 library using pip\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Import the psycopg2 library in the Python script\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Use 'psycopg2.connect()' to establish the connection\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Use the connection to execute SQL queries\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 7,\n                \"name\": \"Postgres\",\n                \"slug\": \"postgres\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 256,\n            \"text\": \"Arrange the steps to create a table in PostgreSQL.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Log in to PostgreSQL\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Write the 'CREATE TABLE' statement with columns and data types\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Execute the query\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Verify the table creation using '\\\\dt'\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 7,\n                \"name\": \"Postgres\",\n                \"slug\": \"postgres\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 257,\n            \"text\": \"Arrange the steps to insert data into a PostgreSQL table.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Write the 'INSERT INTO' statement with values\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Execute the query\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Verify the data insertion using 'SELECT * FROM table_name;'\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Commit the transaction if necessary\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 7,\n                \"name\": \"Postgres\",\n                \"slug\": \"postgres\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 258,\n            \"text\": \"Arrange the steps to add an index to a PostgreSQL table.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Write the 'CREATE INDEX' statement with the target columns\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Execute the query\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Verify the index creation using '\\\\di'\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Use the index to optimize query performance\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 7,\n                \"name\": \"Postgres\",\n                \"slug\": \"postgres\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 259,\n            \"text\": \"Arrange the steps to use joins in PostgreSQL.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Identify the tables to join\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Write the SELECT statement with the JOIN clause\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Specify the ON condition for the join\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Execute the query and retrieve the results\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 7,\n                \"name\": \"Postgres\",\n                \"slug\": \"postgres\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 260,\n            \"text\": \"Arrange the steps to create a Node.js project.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Install Node.js\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Initialize the project using npm\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Create the server file\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Run the server\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 8,\n                \"name\": \"NodeJs\",\n                \"slug\": \"nodejs\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 261,\n            \"text\": \"Arrange the steps to handle a request in a Node.js application.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"User sends a request\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Route matches the request\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Controller processes the request\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Response is sent back to the user\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 8,\n                \"name\": \"NodeJs\",\n                \"slug\": \"nodejs\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 262,\n            \"text\": \"Arrange the steps to install Node.js on a system.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Download the Node.js installer from the official website\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Run the installer and follow the instructions\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Verify the installation using 'node --version' and 'npm --version'\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Install additional tools if necessary (e.g., npm packages)\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 8,\n                \"name\": \"NodeJs\",\n                \"slug\": \"nodejs\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 264,\n            \"text\": \"Arrange the steps to create a simple HTTP server using Node.js.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Require the 'http' module in your script\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Create a server using 'http.createServer()'\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Define a callback function to handle requests and responses\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Call 'server.listen()' to start the server on a port\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 8,\n                \"name\": \"NodeJs\",\n                \"slug\": \"nodejs\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 266,\n            \"text\": \"Arrange the steps to install and use Express.js in a Node.js project.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Run 'npm install express' to install the Express module\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Require the 'express' module in your script\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Create an Express app using 'express()'\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Set up routes using 'app.get()', 'app.post()', etc.\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 8,\n                \"name\": \"NodeJs\",\n                \"slug\": \"nodejs\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 268,\n            \"text\": \"Arrange the steps to read a file in Node.js.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Require the 'fs' module in your script\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Use 'fs.readFile()' or 'fs.readFileSync()' to read the file\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Provide a callback function to handle the file content\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Process the file data as needed\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 8,\n                \"name\": \"NodeJs\",\n                \"slug\": \"nodejs\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 269,\n            \"text\": \"Arrange the steps to create a middleware in Express.js.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Create a function that takes 'req', 'res', and 'next' as parameters\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Use 'app.use()' to define the middleware\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Include the middleware in the application\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Implement the desired functionality (e.g., logging, authentication)\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 8,\n                \"name\": \"NodeJs\",\n                \"slug\": \"nodejs\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 274,\n            \"text\": \"Arrange the steps to troubleshoot a server that is down.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Check the server's power and network connections\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Examine the server's error logs for clues\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Restart the server to rule out temporary issues\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Test the server's responsiveness and check for known issues\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 6,\n                \"name\": \"Uncategorized\",\n                \"slug\": \"uncategorized\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 276,\n            \"text\": \"Arrange the steps to apply for a job online.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Create or update your resume and cover letter\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Search for job opportunities on various platforms\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Submit your application with the necessary documents\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Prepare for an interview if selected\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 6,\n                \"name\": \"Uncategorized\",\n                \"slug\": \"uncategorized\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 278,\n            \"text\": \"Arrange the steps to set up a new computer.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Unbox and connect the monitor, keyboard, and mouse\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Turn on the computer and set up the operating system\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Install necessary software and updates\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Set up accounts and personalize the system settings\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 6,\n                \"name\": \"Uncategorized\",\n                \"slug\": \"uncategorized\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 106,\n            \"text\": \"The 'var' keyword is used to declare variables in Python.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 3,\n                \"name\": \"Code\",\n                \"slug\": \"code\"\n            },\n            \"explanation\": \"'var' is used in JavaScript, not Python.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 107,\n            \"text\": \"In Python, indentation is not important for defining blocks of code.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 3,\n                \"name\": \"Code\",\n                \"slug\": \"code\"\n            },\n            \"explanation\": \"Indentation is crucial in Python to define blocks of code.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 115,\n            \"text\": \"The SQL 'SELECT' statement is used to retrieve data from a database.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": true,\n            \"category\": {\n                \"id\": 4,\n                \"name\": \"SQL\",\n                \"slug\": \"sql\"\n            },\n            \"explanation\": \"'SELECT' is used to query and retrieve data from one or more tables.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 116,\n            \"text\": \"SQL stands for Structured Query Language.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": true,\n            \"category\": {\n                \"id\": 4,\n                \"name\": \"SQL\",\n                \"slug\": \"sql\"\n            },\n            \"explanation\": \"SQL stands for Structured Query Language, a standard language for managing relational databases.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 117,\n            \"text\": \"The SQL 'INSERT' statement is used to delete records from a database table.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 4,\n                \"name\": \"SQL\",\n                \"slug\": \"sql\"\n            },\n            \"explanation\": \"'INSERT' is used to add records, while 'DELETE' is used to remove records.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 119,\n            \"text\": \"The 'WHERE' clause in SQL is used to filter records based on specified conditions.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": true,\n            \"category\": {\n                \"id\": 4,\n                \"name\": \"SQL\",\n                \"slug\": \"sql\"\n            },\n            \"explanation\": \"'WHERE' is used to filter the results of a query based on conditions.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 123,\n            \"text\": \"In SQL, the 'UPDATE' statement is used to modify existing records in a database table.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": true,\n            \"category\": {\n                \"id\": 4,\n                \"name\": \"SQL\",\n                \"slug\": \"sql\"\n            },\n            \"explanation\": \"'UPDATE' allows modification of existing records based on conditions in the 'WHERE' clause.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 124,\n            \"text\": \"SQL joins can only be used with two tables.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 4,\n                \"name\": \"SQL\",\n                \"slug\": \"sql\"\n            },\n            \"explanation\": \"SQL joins can be used with multiple tables, not just two.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 127,\n            \"text\": \"In Django, the 'urls.py' file is used to define URL routing patterns.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": true,\n            \"category\": {\n                \"id\": 5,\n                \"name\": \"Django\",\n                \"slug\": \"django\"\n            },\n            \"explanation\": \"The 'urls.py' file in Django maps URLs to views and their associated logic.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 128,\n            \"text\": \"Django's ORM (Object-Relational Mapping) allows you to query the database using Python code.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": true,\n            \"category\": {\n                \"id\": 5,\n                \"name\": \"Django\",\n                \"slug\": \"django\"\n            },\n            \"explanation\": \"Django ORM allows developers to interact with the database through Python classes instead of SQL queries.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 129,\n            \"text\": \"In Django, a 'view' is responsible for rendering templates to display content to the user.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": true,\n            \"category\": {\n                \"id\": 5,\n                \"name\": \"Django\",\n                \"slug\": \"django\"\n            },\n            \"explanation\": \"Views in Django handle the business logic and return the response, often rendering templates.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 132,\n            \"text\": \"The 'settings.py' file in Django contains the configuration of the project, such as database settings, installed apps, and middleware.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": true,\n            \"category\": {\n                \"id\": 5,\n                \"name\": \"Django\",\n                \"slug\": \"django\"\n            },\n            \"explanation\": \"The 'settings.py' file holds the configuration details of a Django project, including databases, installed apps, and other settings.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 133,\n            \"text\": \"Django provides built-in support for user authentication and authorization.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": true,\n            \"category\": {\n                \"id\": 5,\n                \"name\": \"Django\",\n                \"slug\": \"django\"\n            },\n            \"explanation\": \"Django comes with a built-in user authentication system that supports login, registration, and permissions.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 135,\n            \"text\": \"PostgreSQL is an open-source relational database management system.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": true,\n            \"category\": {\n                \"id\": 7,\n                \"name\": \"Postgres\",\n                \"slug\": \"postgres\"\n            },\n            \"explanation\": \"PostgreSQL is an open-source object-relational database management system.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 136,\n            \"text\": \"PostgreSQL uses the SQL standard and also supports JSON for document storage.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": true,\n            \"category\": {\n                \"id\": 7,\n                \"name\": \"Postgres\",\n                \"slug\": \"postgres\"\n            },\n            \"explanation\": \"PostgreSQL supports SQL for relational data and JSON for document-based data.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 138,\n            \"text\": \"PostgreSQL does not support transactions.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 7,\n                \"name\": \"Postgres\",\n                \"slug\": \"postgres\"\n            },\n            \"explanation\": \"PostgreSQL fully supports transactions, ensuring ACID properties.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 141,\n            \"text\": \"In PostgreSQL, indexes improve the performance of SELECT queries but can slow down INSERT, UPDATE, and DELETE operations.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": true,\n            \"category\": {\n                \"id\": 7,\n                \"name\": \"Postgres\",\n                \"slug\": \"postgres\"\n            },\n            \"explanation\": \"Indexes speed up retrieval of data but may slow down write operations due to additional overhead.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 143,\n            \"text\": \"PostgreSQL is a NoSQL database.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 7,\n                \"name\": \"Postgres\",\n                \"slug\": \"postgres\"\n            },\n            \"explanation\": \"PostgreSQL is a relational database, though it has support for JSON and other non-relational features.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 144,\n            \"text\": \"In PostgreSQL, a 'VIEW' is a virtual table that is stored in the database.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 7,\n                \"name\": \"Postgres\",\n                \"slug\": \"postgres\"\n            },\n            \"explanation\": \"A 'VIEW' is a virtual table created from a SELECT query but is not physically stored in the database.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 145,\n            \"text\": \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": true,\n            \"category\": {\n                \"id\": 8,\n                \"name\": \"NodeJs\",\n                \"slug\": \"nodejs\"\n            },\n            \"explanation\": \"Node.js is built on the V8 JavaScript engine used in Google Chrome to execute JavaScript code outside the browser.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 146,\n            \"text\": \"Node.js is a framework for building web applications.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 8,\n                \"name\": \"NodeJs\",\n                \"slug\": \"nodejs\"\n            },\n            \"explanation\": \"Node.js is a runtime environment, not a framework. It allows you to run JavaScript server-side.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 147,\n            \"text\": \"Node.js is single-threaded but uses non-blocking, event-driven I/O to handle multiple concurrent requests.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": true,\n            \"category\": {\n                \"id\": 8,\n                \"name\": \"NodeJs\",\n                \"slug\": \"nodejs\"\n            },\n            \"explanation\": \"Node.js uses asynchronous, non-blocking I/O, which allows it to handle many requests concurrently.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 148,\n            \"text\": \"Node.js is ideal for CPU-heavy applications.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 8,\n                \"name\": \"NodeJs\",\n                \"slug\": \"nodejs\"\n            },\n            \"explanation\": \"Node.js is better suited for I/O-heavy applications. CPU-heavy tasks can block the event loop and degrade performance.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 149,\n            \"text\": \"In Node.js, the 'require' function is used to import modules and libraries.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": true,\n            \"category\": {\n                \"id\": 8,\n                \"name\": \"NodeJs\",\n                \"slug\": \"nodejs\"\n            },\n            \"explanation\": \"The 'require' function is used in Node.js to import built-in or external modules, as well as user-defined modules.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 154,\n            \"text\": \"In Node.js, the 'process' object is used to manage application lifecycle events.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": true,\n            \"category\": {\n                \"id\": 8,\n                \"name\": \"NodeJs\",\n                \"slug\": \"nodejs\"\n            },\n            \"explanation\": \"The 'process' object in Node.js allows you to interact with and manage the application's lifecycle, such as handling environment variables and exit events.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 155,\n            \"text\": \"Match the Node.js module with its function.\",\n            \"question_type\": \"MT\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 8,\n                \"name\": \"NodeJs\",\n                \"slug\": \"nodejs\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 165,\n            \"text\": \"Match the Node.js concept with its explanation.\",\n            \"question_type\": \"MT\",\n            \"choices\": [],\n            \"matching_pairs\": [\n                {\n                    \"item\": \"Asynchronous programming\",\n                    \"match\": \"Operations that are executed independently of the main thread\"\n                },\n                {\n                    \"item\": \"Event-driven programming\",\n                    \"match\": \"Code execution is based on event handling\"\n                },\n                {\n                    \"item\": \"Single-threaded model\",\n                    \"match\": \"The main thread handles I/O operations\"\n                },\n                {\n                    \"item\": \"Streams\",\n                    \"match\": \"Used for processing large volumes of data in chunks\"\n                }\n            ],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 8,\n                \"name\": \"NodeJs\",\n                \"slug\": \"nodejs\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 166,\n            \"text\": \"Match the Postgres data type with its description.\",\n            \"question_type\": \"MT\",\n            \"choices\": [],\n            \"matching_pairs\": [\n                {\n                    \"item\": \"INTEGER\",\n                    \"match\": \"Whole numbers\"\n                },\n                {\n                    \"item\": \"VARCHAR\",\n                    \"match\": \"Variable-length character strings\"\n                },\n                {\n                    \"item\": \"BOOLEAN\",\n                    \"match\": \"True or false values\"\n                },\n                {\n                    \"item\": \"DATE\",\n                    \"match\": \"Calendar date (year, month, day)\"\n                }\n            ],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 7,\n                \"name\": \"Postgres\",\n                \"slug\": \"postgres\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 169,\n            \"text\": \"Match the Postgres JOIN type with its functionality.\",\n            \"question_type\": \"MT\",\n            \"choices\": [],\n            \"matching_pairs\": [\n                {\n                    \"item\": \"INNER JOIN\",\n                    \"match\": \"Returns rows with matching values in both tables\"\n                },\n                {\n                    \"item\": \"LEFT JOIN\",\n                    \"match\": \"Returns all rows from the left table and matching rows from the right table\"\n                },\n                {\n                    \"item\": \"RIGHT JOIN\",\n                    \"match\": \"Returns all rows from the right table and matching rows from the left table\"\n                },\n                {\n                    \"item\": \"FULL JOIN\",\n                    \"match\": \"Returns rows when there is a match in either left or right table\"\n                }\n            ],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 7,\n                \"name\": \"Postgres\",\n                \"slug\": \"postgres\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 170,\n            \"text\": \"Match the Postgres transaction property with its description.\",\n            \"question_type\": \"MT\",\n            \"choices\": [],\n            \"matching_pairs\": [\n                {\n                    \"item\": \"Atomicity\",\n                    \"match\": \"Ensures that all operations in a transaction are completed successfully or none at all\"\n                },\n                {\n                    \"item\": \"Consistency\",\n                    \"match\": \"Ensures that the database transitions from one valid state to another\"\n                },\n                {\n                    \"item\": \"Isolation\",\n                    \"match\": \"Ensures that transactions are executed independently\"\n                },\n                {\n                    \"item\": \"Durability\",\n                    \"match\": \"Ensures that changes from a committed transaction are permanent\"\n                }\n            ],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 7,\n                \"name\": \"Postgres\",\n                \"slug\": \"postgres\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 171,\n            \"text\": \"Match the Postgres constraint type with its description.\",\n            \"question_type\": \"MT\",\n            \"choices\": [],\n            \"matching_pairs\": [\n                {\n                    \"item\": \"PRIMARY KEY\",\n                    \"match\": \"Uniquely identifies each record in a table\"\n                },\n                {\n                    \"item\": \"FOREIGN KEY\",\n                    \"match\": \"Ensures the integrity of the relationship between two tables\"\n                },\n                {\n                    \"item\": \"CHECK\",\n                    \"match\": \"Ensures that all values in a column satisfy a specified condition\"\n                },\n                {\n                    \"item\": \"UNIQUE\",\n                    \"match\": \"Ensures that all values in a column are distinct\"\n                }\n            ],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 7,\n                \"name\": \"Postgres\",\n                \"slug\": \"postgres\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 176,\n            \"text\": \"Match the Django model field type with its purpose.\",\n            \"question_type\": \"MT\",\n            \"choices\": [],\n            \"matching_pairs\": [\n                {\n                    \"item\": \"CharField\",\n                    \"match\": \"Stores short text strings\"\n                },\n                {\n                    \"item\": \"IntegerField\",\n                    \"match\": \"Stores integer values\"\n                },\n                {\n                    \"item\": \"DateField\",\n                    \"match\": \"Stores dates without time\"\n                },\n                {\n                    \"item\": \"ForeignKey\",\n                    \"match\": \"Creates a many-to-one relationship\"\n                }\n            ],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 5,\n                \"name\": \"Django\",\n                \"slug\": \"django\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 177,\n            \"text\": \"Match the Django ORM operation with its SQL equivalent.\",\n            \"question_type\": \"MT\",\n            \"choices\": [],\n            \"matching_pairs\": [\n                {\n                    \"item\": \"Model.objects.create()\",\n                    \"match\": \"INSERT INTO\"\n                },\n                {\n                    \"item\": \"Model.objects.filter()\",\n                    \"match\": \"SELECT ... WHERE\"\n                },\n                {\n                    \"item\": \"Model.objects.update()\",\n                    \"match\": \"UPDATE ... SET\"\n                },\n                {\n                    \"item\": \"Model.objects.delete()\",\n                    \"match\": \"DELETE FROM\"\n                }\n            ],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 5,\n                \"name\": \"Django\",\n                \"slug\": \"django\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 186,\n            \"text\": \"Match the SQL keyword with its purpose.\",\n            \"question_type\": \"MT\",\n            \"choices\": [],\n            \"matching_pairs\": [\n                {\n                    \"item\": \"SELECT\",\n                    \"match\": \"Retrieves data from a database\"\n                },\n                {\n                    \"item\": \"INSERT\",\n                    \"match\": \"Adds new records to a table\"\n                },\n                {\n                    \"item\": \"UPDATE\",\n                    \"match\": \"Modifies existing records\"\n                },\n                {\n                    \"item\": \"DELETE\",\n                    \"match\": \"Removes records from a table\"\n                }\n            ],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 4,\n                \"name\": \"SQL\",\n                \"slug\": \"sql\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 191,\n            \"text\": \"Match the SQL data type with its description.\",\n            \"question_type\": \"MT\",\n            \"choices\": [],\n            \"matching_pairs\": [\n                {\n                    \"item\": \"VARCHAR\",\n                    \"match\": \"Variable-length string\"\n                },\n                {\n                    \"item\": \"INT\",\n                    \"match\": \"Integer number\"\n                },\n                {\n                    \"item\": \"DATE\",\n                    \"match\": \"Stores date values\"\n                },\n                {\n                    \"item\": \"BOOLEAN\",\n                    \"match\": \"Stores true/false values\"\n                }\n            ],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 4,\n                \"name\": \"SQL\",\n                \"slug\": \"sql\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 195,\n            \"text\": \"Match the SQL transaction statement with its function.\",\n            \"question_type\": \"MT\",\n            \"choices\": [],\n            \"matching_pairs\": [\n                {\n                    \"item\": \"BEGIN\",\n                    \"match\": \"Starts a transaction\"\n                },\n                {\n                    \"item\": \"COMMIT\",\n                    \"match\": \"Saves changes made during a transaction\"\n                },\n                {\n                    \"item\": \"ROLLBACK\",\n                    \"match\": \"Undoes changes made during a transaction\"\n                },\n                {\n                    \"item\": \"SAVEPOINT\",\n                    \"match\": \"Sets a point to which a transaction can be rolled back\"\n                }\n            ],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 4,\n                \"name\": \"SQL\",\n                \"slug\": \"sql\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 197,\n            \"text\": \"Match the programming paradigm with its characteristic.\",\n            \"question_type\": \"MT\",\n            \"choices\": [],\n            \"matching_pairs\": [\n                {\n                    \"item\": \"Object-Oriented Programming\",\n                    \"match\": \"Uses objects and classes\"\n                },\n                {\n                    \"item\": \"Functional Programming\",\n                    \"match\": \"Relies on functions as first-class citizens\"\n                },\n                {\n                    \"item\": \"Procedural Programming\",\n                    \"match\": \"Follows a step-by-step approach\"\n                },\n                {\n                    \"item\": \"Declarative Programming\",\n                    \"match\": \"Describes what to do, not how to do it\"\n                }\n            ],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 3,\n                \"name\": \"Code\",\n                \"slug\": \"code\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 205,\n            \"text\": \"Match the coding principle with its definition.\",\n            \"question_type\": \"MT\",\n            \"choices\": [],\n            \"matching_pairs\": [\n                {\n                    \"item\": \"DRY\",\n                    \"match\": \"Don't Repeat Yourself\"\n                },\n                {\n                    \"item\": \"KISS\",\n                    \"match\": \"Keep It Simple, Stupid\"\n                },\n                {\n                    \"item\": \"YAGNI\",\n                    \"match\": \"You Aren't Gonna Need It\"\n                },\n                {\n                    \"item\": \"SOLID\",\n                    \"match\": \"Set of principles for object-oriented design\"\n                }\n            ],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 3,\n                \"name\": \"Code\",\n                \"slug\": \"code\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 206,\n            \"text\": \"Match the computer-related term with its description.\",\n            \"question_type\": \"MT\",\n            \"choices\": [],\n            \"matching_pairs\": [\n                {\n                    \"item\": \"CPU\",\n                    \"match\": \"Central Processing Unit\"\n                },\n                {\n                    \"item\": \"RAM\",\n                    \"match\": \"Random Access Memory\"\n                },\n                {\n                    \"item\": \"SSD\",\n                    \"match\": \"Solid State Drive\"\n                },\n                {\n                    \"item\": \"GPU\",\n                    \"match\": \"Graphics Processing Unit\"\n                }\n            ],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 6,\n                \"name\": \"Uncategorized\",\n                \"slug\": \"uncategorized\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 211,\n            \"text\": \"Arrange the steps to write a Python program.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 3,\n                \"name\": \"Code\",\n                \"slug\": \"code\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 212,\n            \"text\": \"Arrange the steps to write a Python program.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Write the code\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Save the file\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Run the program\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Check the output\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 3,\n                \"name\": \"Code\",\n                \"slug\": \"code\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 213,\n            \"text\": \"Arrange the stages of software development lifecycle.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Requirement Analysis\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Design\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Implementation\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Testing\",\n                    \"order\": 4\n                },\n                {\n                    \"text\": \"Deployment\",\n                    \"order\": 5\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 3,\n                \"name\": \"Code\",\n                \"slug\": \"code\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 215,\n            \"text\": \"Arrange the steps to debug a program.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Identify the issue\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Reproduce the issue\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Use debugging tools or print statements\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Fix the issue\",\n                    \"order\": 4\n                },\n                {\n                    \"text\": \"Test the program after the fix\",\n                    \"order\": 5\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 3,\n                \"name\": \"Code\",\n                \"slug\": \"code\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 216,\n            \"text\": \"Arrange the steps to set up a Git repository.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Install Git on your system\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Navigate to the project directory\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Initialize a new Git repository\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Add files to the repository\",\n                    \"order\": 4\n                },\n                {\n                    \"text\": \"Commit the changes\",\n                    \"order\": 5\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 3,\n                \"name\": \"Code\",\n                \"slug\": \"code\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 217,\n            \"text\": \"Arrange the steps to write and execute a Python script.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Write the Python code\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Save the file with .py extension\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Open a terminal or command prompt\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Run the script using the python command\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 3,\n                \"name\": \"Code\",\n                \"slug\": \"code\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 221,\n            \"text\": \"Arrange the steps to create a REST API.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Define the endpoints\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Set up the server\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Implement the API logic\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Test the API\",\n                    \"order\": 4\n                },\n                {\n                    \"text\": \"Document the API\",\n                    \"order\": 5\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 3,\n                \"name\": \"Code\",\n                \"slug\": \"code\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 226,\n            \"text\": \"Arrange the steps to create a database in SQL.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Open the SQL client or database management tool\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Write the CREATE DATABASE statement\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Execute the statement\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Verify the creation of the database\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 4,\n                \"name\": \"SQL\",\n                \"slug\": \"sql\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 227,\n            \"text\": \"Arrange the steps to execute a SELECT query.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Connect to the database\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Write the SELECT query with conditions\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Execute the query\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Retrieve and analyze the results\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 4,\n                \"name\": \"SQL\",\n                \"slug\": \"sql\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 228,\n            \"text\": \"Arrange the steps to insert data into a table.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Identify the target table\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Write the INSERT INTO statement with values\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Execute the statement\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Verify the data in the table\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 4,\n                \"name\": \"SQL\",\n                \"slug\": \"sql\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 231,\n            \"text\": \"Arrange the steps to create a table in SQL.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Write the CREATE TABLE statement\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Define columns and their data types\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Execute the statement\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Verify the table creation\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 4,\n                \"name\": \"SQL\",\n                \"slug\": \"sql\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 232,\n            \"text\": \"Arrange the steps to create an index in SQL.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Identify the table and columns for the index\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Write the CREATE INDEX statement\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Execute the statement\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Verify the creation of the index\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 4,\n                \"name\": \"SQL\",\n                \"slug\": \"sql\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 233,\n            \"text\": \"Arrange the steps to perform a database backup.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Open the database management tool\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Select the database to back up\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Choose the backup options (e.g., full or incremental)\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Execute the backup process\",\n                    \"order\": 4\n                },\n                {\n                    \"text\": \"Save the backup file in a secure location\",\n                    \"order\": 5\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 4,\n                \"name\": \"SQL\",\n                \"slug\": \"sql\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 234,\n            \"text\": \"Arrange the steps to restore a database from a backup.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Locate the backup file\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Open the database management tool\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Write or select the RESTORE DATABASE statement\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Execute the restore process\",\n                    \"order\": 4\n                },\n                {\n                    \"text\": \"Verify the restored data\",\n                    \"order\": 5\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 4,\n                \"name\": \"SQL\",\n                \"slug\": \"sql\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 235,\n            \"text\": \"Arrange the steps to use a JOIN in SQL.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Identify the tables to join\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Write the JOIN clause in the query\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Specify the ON condition for the join\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Execute the query\",\n                    \"order\": 4\n                },\n                {\n                    \"text\": \"Analyze the joined results\",\n                    \"order\": 5\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 4,\n                \"name\": \"SQL\",\n                \"slug\": \"sql\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 241,\n            \"text\": \"Arrange the steps to use Django's admin interface.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Create a superuser using 'python manage.py createsuperuser'\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Register the models in admin.py\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Run the server using 'python manage.py runserver'\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Access the admin interface at /admin\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 5,\n                \"name\": \"Django\",\n                \"slug\": \"django\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 243,\n            \"text\": \"Arrange the steps to set up static files in Django.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Create a directory for static files\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Add 'django.contrib.staticfiles' to INSTALLED_APPS\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Set STATIC_URL and STATICFILES_DIRS in settings.py\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Use the {% static %} template tag to include static files\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 5,\n                \"name\": \"Django\",\n                \"slug\": \"django\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 244,\n            \"text\": \"Arrange the steps to write a Django view.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Import required modules in views.py\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Define a view function or class\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Process the request and return a response\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Map the view to a URL in urls.py\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 5,\n                \"name\": \"Django\",\n                \"slug\": \"django\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 246,\n            \"text\": \"Arrange the steps to add a custom middleware in Django.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Create a middleware class in middleware.py\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Define the process_request or process_response methods\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Add the middleware class to MIDDLEWARE in settings.py\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Test the middleware by running the server\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 5,\n                \"name\": \"Django\",\n                \"slug\": \"django\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 250,\n            \"text\": \"Arrange the steps to install PostgreSQL on a system.\",\n            \"question_type\": \"OR\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [\n                {\n                    \"text\": \"Download the installer from the official website\",\n                    \"order\": 1\n                },\n                {\n                    \"text\": \"Run the installer and follow the instructions\",\n                    \"order\": 2\n                },\n                {\n                    \"text\": \"Set up a PostgreSQL user and password\",\n                    \"order\": 3\n                },\n                {\n                    \"text\": \"Verify the installation by running 'psql --version'\",\n                    \"order\": 4\n                }\n            ],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 7,\n                \"name\": \"Postgres\",\n                \"slug\": \"postgres\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 281,\n            \"text\": \"Match the Django HTTP status code with its description.\",\n            \"question_type\": \"MT\",\n            \"choices\": [],\n            \"matching_pairs\": [\n                {\n                    \"item\": \"200\",\n                    \"match\": \"OK - Successful request\"\n                },\n                {\n                    \"item\": \"404\",\n                    \"match\": \"Not Found - Resource does not exist\"\n                },\n                {\n                    \"item\": \"403\",\n                    \"match\": \"Forbidden - Access denied\"\n                },\n                {\n                    \"item\": \"500\",\n                    \"match\": \"Internal Server Error\"\n                }\n            ],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 5,\n                \"name\": \"Django\",\n                \"slug\": \"django\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Easy\"\n        },\n        {\n            \"id\": 52,\n            \"text\": \"What SQL function returns the current date and time?\",\n            \"question_type\": \"MC\",\n            \"choices\": [\n                {\n                    \"text\": \"NOW()\",\n                    \"is_correct\": true\n                },\n                {\n                    \"text\": \"CURDATE()\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"TODAY()\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"TIME()\",\n                    \"is_correct\": false\n                }\n            ],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 4,\n                \"name\": \"SQL\",\n                \"slug\": \"sql\"\n            },\n            \"explanation\": \"NOW() returns the current date and time in SQL.\",\n            \"difficulty\": \"Medium\"\n        },\n        {\n            \"id\": 93,\n            \"text\": \"What is the purpose of the 'stdio' option in 'fork()'?\",\n            \"question_type\": \"MC\",\n            \"choices\": [\n                {\n                    \"text\": \"It configures the input/output streams between the parent and child processes\",\n                    \"is_correct\": true\n                },\n                {\n                    \"text\": \"It buffers the output of the child process\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"It determines the number of child processes that can be forked\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"It limits the memory usage of the child process\",\n                    \"is_correct\": false\n                }\n            ],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 8,\n                \"name\": \"NodeJs\",\n                \"slug\": \"nodejs\"\n            },\n            \"explanation\": \"The 'stdio' option in 'fork()' specifies how the input/output streams between the parent and child processes are configured.\",\n            \"difficulty\": \"Medium\"\n        },\n        {\n            \"id\": 97,\n            \"text\": \"How do you disable password-based SSH authentication in Ubuntu?\",\n            \"question_type\": \"MC\",\n            \"choices\": [\n                {\n                    \"text\": \"Edit '/etc/ssh/sshd_config' and set 'PasswordAuthentication no', then restart SSH\",\n                    \"is_correct\": true\n                },\n                {\n                    \"text\": \"Run 'ssh-config disable-password'\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"Type 'disable-password-auth ssh'\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"Use 'ssh set key-only'\",\n                    \"is_correct\": false\n                }\n            ],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 6,\n                \"name\": \"Uncategorized\",\n                \"slug\": \"uncategorized\"\n            },\n            \"explanation\": \"To disable password-based SSH authentication, edit '/etc/ssh/sshd_config' and set 'PasswordAuthentication no', then restart SSH.\",\n            \"difficulty\": \"Medium\"\n        },\n        {\n            \"id\": 28,\n            \"text\": \"Which signal would you use to perform an action after a model instance is deleted?\",\n            \"question_type\": \"MC\",\n            \"choices\": [\n                {\n                    \"text\": \"post_delete\",\n                    \"is_correct\": true\n                },\n                {\n                    \"text\": \"pre_save\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"post_save\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"pre_delete\",\n                    \"is_correct\": false\n                }\n            ],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 5,\n                \"name\": \"Django\",\n                \"slug\": \"django\"\n            },\n            \"explanation\": \"The post_delete signal is triggered after a model instance is deleted, allowing you to perform cleanup actions or notify other parts of your application.\",\n            \"difficulty\": \"Medium\"\n        },\n        {\n            \"id\": 35,\n            \"text\": \"How do you make a model field optional in Django?\",\n            \"question_type\": \"MC\",\n            \"choices\": [\n                {\n                    \"text\": \"blank=True\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"null=True\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"blank=True, null=True\",\n                    \"is_correct\": true\n                },\n                {\n                    \"text\": \"optional=True\",\n                    \"is_correct\": false\n                }\n            ],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 5,\n                \"name\": \"Django\",\n                \"slug\": \"django\"\n            },\n            \"explanation\": \"Setting 'blank=True' allows a field to be optional in forms, and 'null=True' allows the database to store a NULL value for that field.\",\n            \"difficulty\": \"Medium\"\n        },\n        {\n            \"id\": 43,\n            \"text\": \"What SQL keyword is used to return unique values in a query result?\",\n            \"question_type\": \"MC\",\n            \"choices\": [\n                {\n                    \"text\": \"UNIQUE\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"DISTINCT\",\n                    \"is_correct\": true\n                },\n                {\n                    \"text\": \"LIMIT\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"FILTER\",\n                    \"is_correct\": false\n                }\n            ],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 4,\n                \"name\": \"SQL\",\n                \"slug\": \"sql\"\n            },\n            \"explanation\": \"The DISTINCT keyword is used in SQL to return only unique values, eliminating any duplicate entries in the query result.\",\n            \"difficulty\": \"Medium\"\n        },\n        {\n            \"id\": 85,\n            \"text\": \"What property in a worker thread contains the file that the worker is executing?\",\n            \"question_type\": \"MC\",\n            \"choices\": [\n                {\n                    \"text\": \"worker.filename\",\n                    \"is_correct\": true\n                },\n                {\n                    \"text\": \"worker.filepath\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"worker.threadFile\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"worker.script\",\n                    \"is_correct\": false\n                }\n            ],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 8,\n                \"name\": \"NodeJs\",\n                \"slug\": \"nodejs\"\n            },\n            \"explanation\": \"The 'worker.filename' property provides the file path of the script being executed by the worker.\",\n            \"difficulty\": \"Medium\"\n        },\n        {\n            \"id\": 84,\n            \"text\": \"How can you convert a Buffer to JSON?\",\n            \"question_type\": \"MC\",\n            \"choices\": [\n                {\n                    \"text\": \"buffer.toJSON()\",\n                    \"is_correct\": true\n                },\n                {\n                    \"text\": \"JSON.stringify(buffer)\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"Buffer.toJson(buffer)\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"buffer.toString('json')\",\n                    \"is_correct\": false\n                }\n            ],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 8,\n                \"name\": \"NodeJs\",\n                \"slug\": \"nodejs\"\n            },\n            \"explanation\": \"The 'buffer.toJSON()' method converts a Buffer into a JSON object.\",\n            \"difficulty\": \"Medium\"\n        },\n        {\n            \"id\": 21,\n            \"text\": \"How do you implement role-based access control for different fields in Django Admin?\",\n            \"question_type\": \"MC\",\n            \"choices\": [\n                {\n                    \"text\": \"Override the get_fields() and get_readonly_fields() methods in ModelAdmin based on user role\",\n                    \"is_correct\": true\n                },\n                {\n                    \"text\": \"Set role_based_access=True in ModelAdmin\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"Use the @role_access decorator\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"Override the get_queryset() method\",\n                    \"is_correct\": false\n                }\n            ],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 5,\n                \"name\": \"Django\",\n                \"slug\": \"django\"\n            },\n            \"explanation\": \"To implement role-based access control, override the get_fields() and get_readonly_fields() methods in ModelAdmin to determine which fields are visible or editable based on the user's role.\",\n            \"difficulty\": \"Hard\"\n        },\n        {\n            \"id\": 45,\n            \"text\": \"Which SQL clause can be used to group results by multiple columns simultaneously?\",\n            \"question_type\": \"MC\",\n            \"choices\": [\n                {\n                    \"text\": \"GROUP BY with multiple columns\",\n                    \"is_correct\": true\n                },\n                {\n                    \"text\": \"HAVING with multiple columns\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"JOIN with GROUP BY\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"UNION with GROUP BY\",\n                    \"is_correct\": false\n                }\n            ],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 4,\n                \"name\": \"SQL\",\n                \"slug\": \"sql\"\n            },\n            \"explanation\": \"The GROUP BY clause can be used to group data by multiple columns, allowing for more complex aggregations.\",\n            \"difficulty\": \"Hard\"\n        },\n        {\n            \"id\": 48,\n            \"text\": \"How many distinct, different values can you hold in an Enum field?\",\n            \"question_type\": \"MC\",\n            \"choices\": [\n                {\n                    \"text\": \"255\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"2 (True And False)\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"65535\",\n                    \"is_correct\": true\n                },\n                {\n                    \"text\": \"7\",\n                    \"is_correct\": false\n                }\n            ],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 4,\n                \"name\": \"SQL\",\n                \"slug\": \"sql\"\n            },\n            \"explanation\": null,\n            \"difficulty\": \"Hard\"\n        },\n        {\n            \"id\": 57,\n            \"text\": \"Which approach best optimizes performance of recursive hierarchical queries with depth limits?\",\n            \"question_type\": \"MC\",\n            \"choices\": [\n                {\n                    \"text\": \"Multiple joins\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"WITH RECURSIVE with indexed path and depth tracking\",\n                    \"is_correct\": true\n                },\n                {\n                    \"text\": \"Stored procedure\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"Materialized path\",\n                    \"is_correct\": false\n                }\n            ],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 7,\n                \"name\": \"Postgres\",\n                \"slug\": \"postgres\"\n            },\n            \"explanation\": \"WITH RECURSIVE with indexed path and depth tracking provides efficient hierarchical queries by enabling early termination and utilizing indexes for path traversal.\",\n            \"difficulty\": \"Hard\"\n        },\n        {\n            \"id\": 61,\n            \"text\": \"What is the most effective way to handle high-throughput upserts with conflict resolution?\",\n            \"question_type\": \"MC\",\n            \"choices\": [\n                {\n                    \"text\": \"Individual upserts\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"Batch upserts with deferred constraints and conflict resolution functions\",\n                    \"is_correct\": true\n                },\n                {\n                    \"text\": \"Separate insert/update\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"Use triggers\",\n                    \"is_correct\": false\n                }\n            ],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 7,\n                \"name\": \"Postgres\",\n                \"slug\": \"postgres\"\n            },\n            \"explanation\": \"Batch upserts with deferred constraints and conflict resolution functions provide efficient high-throughput writes by reducing lock contention and handling conflicts systematically.\",\n            \"difficulty\": \"Hard\"\n        },\n        {\n            \"id\": 91,\n            \"text\": \"What is the role of the 'os.constants.signals' object in Node.js?\",\n            \"question_type\": \"MC\",\n            \"choices\": [\n                {\n                    \"text\": \"Provides constants for process signals\",\n                    \"is_correct\": true\n                },\n                {\n                    \"text\": \"Manages OS-level process priorities\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"Logs system signal usage\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"Schedules processes for execution\",\n                    \"is_correct\": false\n                }\n            ],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 8,\n                \"name\": \"NodeJs\",\n                \"slug\": \"nodejs\"\n            },\n            \"explanation\": \"'os.constants.signals' provides constants for handling operating system signals, such as 'SIGINT' and 'SIGTERM'.\",\n            \"difficulty\": \"Hard\"\n        }\n    ],\n    \"quizzes\": [\n        {\n            \"id\": 23,\n            \"title\": \"Math and Logic Puzzles\",\n            \"description\": \"Solve math and logic puzzles to sharpen your problem-solving skills.\",\n            \"category\": {\n                \"id\": 6,\n                \"name\": \"Uncategorized\",\n                \"slug\": \"uncategorized\"\n            },\n            \"number_of_questions\": 5,\n            \"questions\": [\n                {\n                    \"id\": 215,\n                    \"text\": \"Arrange the steps to debug a program.\",\n                    \"question_type\": \"OR\",\n                    \"choices\": [],\n                    \"matching_pairs\": [],\n                    \"ordering_items\": [\n                        {\n                            \"text\": \"Identify the issue\",\n                            \"order\": 1\n                        },\n                        {\n                            \"text\": \"Reproduce the issue\",\n                            \"order\": 2\n                        },\n                        {\n                            \"text\": \"Use debugging tools or print statements\",\n                            \"order\": 3\n                        },\n                        {\n                            \"text\": \"Fix the issue\",\n                            \"order\": 4\n                        },\n                        {\n                            \"text\": \"Test the program after the fix\",\n                            \"order\": 5\n                        }\n                    ],\n                    \"tf_correct_answer\": false,\n                    \"category\": {\n                        \"id\": 3,\n                        \"name\": \"Code\",\n                        \"slug\": \"code\"\n                    },\n                    \"explanation\": null,\n                    \"difficulty\": \"Not rated\"\n                },\n                {\n                    \"id\": 216,\n                    \"text\": \"Arrange the steps to set up a Git repository.\",\n                    \"question_type\": \"OR\",\n                    \"choices\": [],\n                    \"matching_pairs\": [],\n                    \"ordering_items\": [\n                        {\n                            \"text\": \"Install Git on your system\",\n                            \"order\": 1\n                        },\n                        {\n                            \"text\": \"Navigate to the project directory\",\n                            \"order\": 2\n                        },\n                        {\n                            \"text\": \"Initialize a new Git repository\",\n                            \"order\": 3\n                        },\n                        {\n                            \"text\": \"Add files to the repository\",\n                            \"order\": 4\n                        },\n                        {\n                            \"text\": \"Commit the changes\",\n                            \"order\": 5\n                        }\n                    ],\n                    \"tf_correct_answer\": false,\n                    \"category\": {\n                        \"id\": 3,\n                        \"name\": \"Code\",\n                        \"slug\": \"code\"\n                    },\n                    \"explanation\": null,\n                    \"difficulty\": \"Not rated\"\n                },\n                {\n                    \"id\": 243,\n                    \"text\": \"Arrange the steps to set up static files in Django.\",\n                    \"question_type\": \"OR\",\n                    \"choices\": [],\n                    \"matching_pairs\": [],\n                    \"ordering_items\": [\n                        {\n                            \"text\": \"Create a directory for static files\",\n                            \"order\": 1\n                        },\n                        {\n                            \"text\": \"Add 'django.contrib.staticfiles' to INSTALLED_APPS\",\n                            \"order\": 2\n                        },\n                        {\n                            \"text\": \"Set STATIC_URL and STATICFILES_DIRS in settings.py\",\n                            \"order\": 3\n                        },\n                        {\n                            \"text\": \"Use the {% static %} template tag to include static files\",\n                            \"order\": 4\n                        }\n                    ],\n                    \"tf_correct_answer\": false,\n                    \"category\": {\n                        \"id\": 5,\n                        \"name\": \"Django\",\n                        \"slug\": \"django\"\n                    },\n                    \"explanation\": null,\n                    \"difficulty\": \"Not rated\"\n                },\n                {\n                    \"id\": 250,\n                    \"text\": \"Arrange the steps to install PostgreSQL on a system.\",\n                    \"question_type\": \"OR\",\n                    \"choices\": [],\n                    \"matching_pairs\": [],\n                    \"ordering_items\": [\n                        {\n                            \"text\": \"Download the installer from the official website\",\n                            \"order\": 1\n                        },\n                        {\n                            \"text\": \"Run the installer and follow the instructions\",\n                            \"order\": 2\n                        },\n                        {\n                            \"text\": \"Set up a PostgreSQL user and password\",\n                            \"order\": 3\n                        },\n                        {\n                            \"text\": \"Verify the installation by running 'psql --version'\",\n                            \"order\": 4\n                        }\n                    ],\n                    \"tf_correct_answer\": false,\n                    \"category\": {\n                        \"id\": 7,\n                        \"name\": \"Postgres\",\n                        \"slug\": \"postgres\"\n                    },\n                    \"explanation\": null,\n                    \"difficulty\": \"Not rated\"\n                },\n                {\n                    \"id\": 21,\n                    \"text\": \"How do you implement role-based access control for different fields in Django Admin?\",\n                    \"question_type\": \"MC\",\n                    \"choices\": [\n                        {\n                            \"text\": \"Override the get_fields() and get_readonly_fields() methods in ModelAdmin based on user role\",\n                            \"is_correct\": true\n                        },\n                        {\n                            \"text\": \"Set role_based_access=True in ModelAdmin\",\n                            \"is_correct\": false\n                        },\n                        {\n                            \"text\": \"Use the @role_access decorator\",\n                            \"is_correct\": false\n                        },\n                        {\n                            \"text\": \"Override the get_queryset() method\",\n                            \"is_correct\": false\n                        }\n                    ],\n                    \"matching_pairs\": [],\n                    \"ordering_items\": [],\n                    \"tf_correct_answer\": false,\n                    \"category\": {\n                        \"id\": 5,\n                        \"name\": \"Django\",\n                        \"slug\": \"django\"\n                    },\n                    \"explanation\": \"To implement role-based access control, override the get_fields() and get_readonly_fields() methods in ModelAdmin to determine which fields are visible or editable based on the user's role.\",\n                    \"difficulty\": \"Hard\"\n                }\n            ]\n        }\n    ]\n}"}],"_postman_id":"252b10fb-2e70-4d04-8dfb-a59f68242f0b"},{"name":"Change Role","id":"37abd048-237e-496b-b358-ab3a16152972","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"role","value":"admin","type":"text","uuid":"bf643ab5-e4f1-450e-b1b0-b1da35dcffd4"}]},"url":"https://quizapi.up.railway.app/v1/users/change_role/","urlObject":{"path":["users","change_role",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"298a95f5-9b9a-4dc5-ac11-85a169306c17","name":"Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"role","value":"admin","type":"text","uuid":"bf643ab5-e4f1-450e-b1b0-b1da35dcffd4"}]},"url":"https://quizapi.up.railway.app/v1/users/change_role/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 24 Jan 2025 21:04:41 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"39"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Role changed successfully\"\n}"}],"_postman_id":"37abd048-237e-496b-b358-ab3a16152972"}],"id":"5512a32a-c1f2-4559-981d-415c7f627f4d","description":"<p>This folder contains endpoints related to user management and user-specific operations. These endpoints provide functionality for user authentication, profile management, and retrieving user-related data.</p>\n<h3 id=\"base-url\"><strong>Base URL</strong></h3>\n<p>All endpoints in this folder are prefixed with <code>/v1/users/</code>.</p>\n<hr />\n<h3 id=\"endpoints-overview\"><strong>Endpoints Overview</strong></h3>\n<ol>\n<li><p><strong><code>register/</code></strong> - Handles user registration.</p>\n</li>\n<li><p><strong><code>login/</code></strong> - Allows users to log in and obtain authentication tokens.</p>\n</li>\n<li><p><strong><code>change_password/</code></strong> - Enables users to update their passwords.</p>\n</li>\n<li><p><strong><code>change_role/</code></strong> - Enables users to change their role.</p>\n</li>\n<li><p><strong><code>profile/</code></strong> - Provides access to the user’s profile information.</p>\n</li>\n<li><p><strong><code>creations/</code></strong> - Returns quizzes and questions created by the user.</p>\n</li>\n</ol>\n<hr />\n<h3 id=\"general-information\"><strong>General Information</strong></h3>\n<ul>\n<li><p>makefileCopy code token:</p>\n</li>\n<li><p><strong>Response Format:</strong><br />  Responses are provided in JSON format. Each endpoint includes both success and error responses with detailed messages and relevant HTTP status codes.</p>\n</li>\n<li><p><strong>Error Handling:</strong><br />  Common errors include:</p>\n<ul>\n<li><p><strong>401 Unauthorized:</strong> When the token is invalid or missing.</p>\n</li>\n<li><p><strong>400 Bad Request:</strong> When required fields are missing or invalid.</p>\n</li>\n<li><p><strong>404 Not Found:</strong> When the requested resource does not exist.</p>\n</li>\n</ul>\n</li>\n</ul>\n<hr />\n<h3 id=\"endpoint-descriptions\"><strong>Endpoint Descriptions</strong></h3>\n<ul>\n<li><p><strong><code>register/</code></strong></p>\n<ul>\n<li><p>Registers a new user by accepting their details (e.g., username, email, password).</p>\n</li>\n<li><p><strong>Method:</strong> POST</p>\n</li>\n<li><p><strong>Authentication:</strong> Not required.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>login/</code></strong></p>\n<ul>\n<li><p>Authenticates the user and provides an API token.</p>\n</li>\n<li><p><strong>Method:</strong> POST</p>\n</li>\n<li><p><strong>Authentication:</strong> Not required.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>change_password/</code></strong></p>\n<ul>\n<li><p>Allows users to update their password.</p>\n</li>\n<li><p><strong>Method:</strong> POST</p>\n</li>\n<li><p><strong>Authentication:</strong> Required (via <code>token</code> header).</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>profile/</code></strong></p>\n<ul>\n<li><p>Retrieves the user’s profile information.</p>\n</li>\n<li><p><strong>Method:</strong> GET</p>\n</li>\n<li><p><strong>Authentication:</strong> Required (via <code>token</code> header).</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>created_quizzes/</code></strong></p>\n<ul>\n<li><p>Returns a list of quizzes created by the authenticated user.</p>\n</li>\n<li><p><strong>Method:</strong> GET</p>\n</li>\n<li><p><strong>Authentication:</strong> Required (via <code>token</code> header).</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>created_questions/</code></strong></p>\n<ul>\n<li><p>Returns a list of questions created by the authenticated user.</p>\n</li>\n<li><p><strong>Method:</strong> GET</p>\n</li>\n<li><p><strong>Authentication:</strong> Required (via <code>token</code> header).</p>\n</li>\n</ul>\n</li>\n</ul>\n<hr />\n<h3 id=\"usage-notes\"><strong>Usage Notes</strong></h3>\n<ul>\n<li><p><strong>Token Management:</strong><br />  Ensure the token is stored securely and included in every authenticated request.</p>\n</li>\n<li><p><strong>Data Validation:</strong><br />  Include all required fields in the request payload to avoid validation errors.</p>\n</li>\n<li><p><strong>API Limits:</strong><br />  Avoid sending large payloads or making excessive requests in a short period for optimal performance.</p>\n</li>\n<li><p><strong>Versioning:</strong><br />  This API follows versioning (e.g., <code>/v1/users/</code>), ensuring backward compatibility as updates are introduced.</p>\n</li>\n</ul>\n<hr />\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"id":"20972983-c846-4574-8321-7cde3d247958","type":"text/javascript","packages":{},"exec":[""]}},{"listen":"test","script":{"id":"0ab7b805-2edf-44b6-a708-0a50208d418b","type":"text/javascript","packages":{},"exec":[""]}}],"_postman_id":"5512a32a-c1f2-4559-981d-415c7f627f4d"},{"name":"Questions","item":[{"name":"Create an mcq question","event":[{"listen":"test","script":{"id":"5a2a7461-f7aa-4858-9701-24ed76d67e43","exec":[""],"type":"text/javascript","packages":{}}}],"id":"dfb7e78d-71b8-4616-8a32-ed7f33f58aae","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"text\": \"How can you optimize garbage collection performance in a Node.js application?\",\r\n    \"question_type\": \"MC\",\r\n    \"choices\": [\r\n        {\r\n            \"text\": \"Adjust the V8 heap size using `--max-old-space-size` and `--max-semi-space-size`\",\r\n            \"is_correct\": true\r\n        },\r\n        {\r\n            \"text\": \"Disable garbage collection and manage memory manually\",\r\n            \"is_correct\": false\r\n        },\r\n        {\r\n            \"text\": \"Enable the `--gc-optimizer` flag\",\r\n            \"is_correct\": false\r\n        },\r\n        {\r\n            \"text\": \"Use `global.optimizeGC()`\",\r\n            \"is_correct\": false\r\n        }\r\n    ],\r\n    \"category\": \"nodejs\",\r\n    \"explanation\": \"You can optimize garbage collection by adjusting V8 heap settings such as `--max-old-space-size` and `--max-semi-space-size`.\",\r\n    \"difficulty\": \"Hard\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/questions/create/","description":"<h3 id=\"create-new-question\">Create New Question</h3>\n<p>This endpoint allows you to create a new question with the specified details.</p>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><p>text (string, required): The text of the question.</p>\n</li>\n<li><p>question_type (string, required): The type of question (e.g., MC for multiple choice).</p>\n</li>\n<li><p>choices (array, required): An array of choices for the question, each containing text and is_correct fields.</p>\n</li>\n<li><p>category (string, required): The category of the question.</p>\n</li>\n<li><p>explanation (string, required): Explanation for the question.</p>\n</li>\n<li><p>difficulty (string, required): The difficulty level of the question.</p>\n</li>\n</ul>\n<p>Example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"text\": \"How can you optimize garbage collection in Node.js?\",\n  \"question_type\": \"MC\",\n  \"choices\": [\n    {\n      \"text\": \"Adjust the V8 heap size using flags\",\n      \"is_correct\": true\n    }\n  ],\n  \"category\": \"nodejs\",\n  \"explanation\": \"You can optimize garbage collection by adjusting the V8 heap size.\",\n  \"difficulty\": \"Hard\"\n}\n\n</code></pre>\n<h4 id=\"response-201---created\">Response (201 - Created)</h4>\n<ul>\n<li><p>id (integer): The ID of the created question.</p>\n</li>\n<li><p>text (string): The text of the question.</p>\n</li>\n<li><p>question_type (string): The type of question.</p>\n</li>\n<li><p>choices (array): An array of choices for the question, each containing text and is_correct fields.</p>\n</li>\n<li><p>matching_pairs (array): An array of matching pairs for the question.</p>\n</li>\n<li><p>ordering_items (array): An array of ordering items for the question.</p>\n</li>\n<li><p>tf_correct_answer (boolean): Indicates if the true/false question has a correct answer.</p>\n</li>\n<li><p>category (object): The category of the question, containing id, name, and slug fields.</p>\n</li>\n<li><p>explanation (string): Explanation for the question.</p>\n</li>\n<li><p>difficulty (string): The difficulty level of the question.</p>\n</li>\n</ul>\n<p>Example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": 0,\n  \"text\": \"\",\n  \"question_type\": \"\",\n  \"choices\": [\n    {\n      \"text\": \"\",\n      \"is_correct\": true\n    }\n  ],\n  \"matching_pairs\": [],\n  \"ordering_items\": [],\n  \"tf_correct_answer\": true,\n  \"category\": {\n    \"id\": 0,\n    \"name\": \"\",\n    \"slug\": \"\"\n  },\n  \"explanation\": \"\",\n  \"difficulty\": \"\"\n}\n\n</code></pre>\n<p>This endpoint allows you to create a new question. The request should be sent as an HTTP POST to https://quizapi.up.railway.app/v1/questions/create/.</p>\n<h4 id=\"request-body-1\">Request Body</h4>\n<ul>\n<li><p><code>text</code> (text): The text of the question.</p>\n</li>\n<li><p><code>question_type</code> (text): The type of the question (e.g., MC for multiple choice).</p>\n</li>\n<li><p><code>choices</code> (array): An array of choices for the question, each containing:</p>\n<ul>\n<li><p><code>text</code> (text): The text of the choice.</p>\n</li>\n<li><p><code>is_correct</code> (boolean): Indicates if the choice is correct.</p>\n</li>\n</ul>\n</li>\n<li><p><code>category</code> (text): The category of the question.</p>\n</li>\n<li><p><code>explanation</code> (text): An explanation for the question (optional).</p>\n</li>\n<li><p><code>difficulty</code> (text): The difficulty level of the question.</p>\n</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<p>The API responds with a status code of 201 and a JSON object with the information of the newly created question.</p>\n<p>In case of an error, The API responds with a status code of 400 and a JSON object with a <code>detail</code> key, which may contain additional information about the error.</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"f2bf63e9-2443-46c4-b04f-1dd5cc19e34b","id":"f2bf63e9-2443-46c4-b04f-1dd5cc19e34b","name":"Questions","type":"folder"}},"urlObject":{"path":["questions","create",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"48568d30-091c-4a97-91b1-2875f113a0b5","name":"Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"text\": \"How can you optimize garbage collection performance in a Node.js application?\",\r\n    \"question_type\": \"MC\",\r\n    \"choices\": [\r\n        {\r\n            \"text\": \"Adjust the V8 heap size using `--max-old-space-size` and `--max-semi-space-size`\",\r\n            \"is_correct\": true\r\n        },\r\n        {\r\n            \"text\": \"Disable garbage collection and manage memory manually\",\r\n            \"is_correct\": false\r\n        },\r\n        {\r\n            \"text\": \"Enable the `--gc-optimizer` flag\",\r\n            \"is_correct\": false\r\n        },\r\n        {\r\n            \"text\": \"Use `global.optimizeGC()`\",\r\n            \"is_correct\": false\r\n        }\r\n    ],\r\n    \"category\": \"nodejs\",\r\n    \"explanation\": \"You can optimize garbage collection by adjusting V8 heap settings such as `--max-old-space-size` and `--max-semi-space-size`.\",\r\n    \"difficulty\": \"Hard\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/questions/create/"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 08 Jan 2025 06:36:32 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, PUT, DELETE, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"723"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 286,\n    \"text\": \"How can you optimize garbage collection performance in a Node.js application?\",\n    \"question_type\": \"MC\",\n    \"choices\": [\n        {\n            \"text\": \"Adjust the V8 heap size using `--max-old-space-size` and `--max-semi-space-size`\",\n            \"is_correct\": true\n        },\n        {\n            \"text\": \"Disable garbage collection and manage memory manually\",\n            \"is_correct\": false\n        },\n        {\n            \"text\": \"Enable the `--gc-optimizer` flag\",\n            \"is_correct\": false\n        },\n        {\n            \"text\": \"Use `global.optimizeGC()`\",\n            \"is_correct\": false\n        }\n    ],\n    \"matching_pairs\": [],\n    \"ordering_items\": [],\n    \"tf_correct_answer\": false,\n    \"category\": {\n        \"id\": 8,\n        \"name\": \"NodeJs\",\n        \"slug\": \"nodejs\"\n    },\n    \"explanation\": \"You can optimize garbage collection by adjusting V8 heap settings such as `--max-old-space-size` and `--max-semi-space-size`.\",\n    \"difficulty\": \"Hard\"\n}"}],"_postman_id":"dfb7e78d-71b8-4616-8a32-ed7f33f58aae"},{"name":"create an ordering items question","id":"989a3374-362f-4729-913f-9106ba8ad71c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"text\": \"Arrange the steps to fetch data from a database.\",\r\n    \"question_type\": \"OR\",\r\n    \"ordering_items\": [\r\n        {\r\n            \"text\": \"Connect to the database\",\r\n            \"order\": 1\r\n        },\r\n        {\r\n            \"text\": \"Write the SELECT query\",\r\n            \"order\": 2\r\n        },\r\n        {\r\n            \"text\": \"Execute the query\",\r\n            \"order\": 3\r\n        },\r\n        {\r\n            \"text\": \"Retrieve the results\",\r\n            \"order\": 4\r\n        }\r\n    ],\r\n    \"category\": \"sql\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/questions/create/","description":"<h3 id=\"create-new-question\">Create New Question</h3>\n<p>This endpoint allows you to create a new question.</p>\n<p><code>POST /questions/create/</code></p>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><p><code>text</code> (string) : The text of the question.</p>\n</li>\n<li><p><code>question_type</code> (string) : The type of question.</p>\n</li>\n<li><p><code>ordering_items</code> (array) : An array of objects containing the steps to be ordered.</p>\n<ul>\n<li><p><code>text</code> (string) : The text of the step.</p>\n</li>\n<li><p><code>order</code> (integer) : The order of the step.</p>\n</li>\n</ul>\n</li>\n<li><p><code>category</code> (string) : The category of the question.</p>\n</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<p>The response will contain the details of the newly created question.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"object\",\n  \"properties\": {\n    \"id\": { \"type\": \"integer\" },\n    \"text\": { \"type\": \"string\" },\n    \"question_type\": { \"type\": \"string\" },\n    \"choices\": { \"type\": \"array\" },\n    \"matching_pairs\": { \"type\": \"array\" },\n    \"ordering_items\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"text\": { \"type\": \"string\" },\n          \"order\": { \"type\": \"integer\" }\n        }\n      }\n    },\n    \"tf_correct_answer\": { \"type\": \"boolean\" },\n    \"category\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": { \"type\": \"integer\" },\n        \"name\": { \"type\": \"string\" },\n        \"slug\": { \"type\": \"string\" }\n      }\n    },\n    \"explanation\": { \"type\": [\"string\", \"null\"] },\n    \"difficulty\": { \"type\": \"string\" }\n  }\n}\n\n</code></pre>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"f2bf63e9-2443-46c4-b04f-1dd5cc19e34b","id":"f2bf63e9-2443-46c4-b04f-1dd5cc19e34b","name":"Questions","type":"folder"}},"urlObject":{"path":["questions","create",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"fbcf5884-2201-4ae9-949e-aab4d19b17a4","name":"Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"text\": \"Arrange the steps to fetch data from a database.\",\r\n    \"question_type\": \"OR\",\r\n    \"ordering_items\": [\r\n        {\r\n            \"text\": \"Connect to the database\",\r\n            \"order\": 1\r\n        },\r\n        {\r\n            \"text\": \"Write the SELECT query\",\r\n            \"order\": 2\r\n        },\r\n        {\r\n            \"text\": \"Execute the query\",\r\n            \"order\": 3\r\n        },\r\n        {\r\n            \"text\": \"Retrieve the results\",\r\n            \"order\": 4\r\n        }\r\n    ],\r\n    \"category\": \"sql\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/questions/create/"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 08 Jan 2025 05:31:40 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, PUT, DELETE, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"427"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 280,\n    \"text\": \"Arrange the steps to fetch data from a database.\",\n    \"question_type\": \"OR\",\n    \"choices\": [],\n    \"matching_pairs\": [],\n    \"ordering_items\": [\n        {\n            \"text\": \"Connect to the database\",\n            \"order\": 1\n        },\n        {\n            \"text\": \"Write the SELECT query\",\n            \"order\": 2\n        },\n        {\n            \"text\": \"Execute the query\",\n            \"order\": 3\n        },\n        {\n            \"text\": \"Retrieve the results\",\n            \"order\": 4\n        }\n    ],\n    \"tf_correct_answer\": false,\n    \"category\": {\n        \"id\": 4,\n        \"name\": \"SQL\",\n        \"slug\": \"sql\"\n    },\n    \"explanation\": null,\n    \"difficulty\": \"Not rated\"\n}"}],"_postman_id":"989a3374-362f-4729-913f-9106ba8ad71c"},{"name":"create matching pairs question","id":"ed9c8324-1573-43a9-a6d1-964e303e5ba1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"text\": \"Match the Django HTTP status code with its description.\",\r\n    \"question_type\": \"MT\",\r\n    \"matching_pairs\": [\r\n        {\r\n            \"item\": \"200\",\r\n            \"match\": \"OK - Successful request\"\r\n        },\r\n        {\r\n            \"item\": \"404\",\r\n            \"match\": \"Not Found - Resource does not exist\"\r\n        },\r\n        {\r\n            \"item\": \"403\",\r\n            \"match\": \"Forbidden - Access denied\"\r\n        },\r\n        {\r\n            \"item\": \"500\",\r\n            \"match\": \"Internal Server Error\"\r\n        }\r\n    ],\r\n    \"category\": \"Django\",\r\n    \"difficulty\": \"Easy\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/questions/create/","description":"<h3 id=\"create-new-question\">Create New Question</h3>\n<p>This endpoint allows you to create a new question.</p>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><p>text (string, required): The text of the question.</p>\n</li>\n<li><p>question_type (string, required): The type of the question.</p>\n</li>\n<li><p>matching_pairs (array, required): An array of matching pairs for the question.</p>\n<ul>\n<li><p>item (string): The item in the matching pair.</p>\n</li>\n<li><p>match (string): The matching item in the pair.</p>\n</li>\n</ul>\n</li>\n<li><p>category (string, required): The category of the question.</p>\n</li>\n<li><p>difficulty (string, required): The difficulty level of the question.</p>\n</li>\n</ul>\n<h4 id=\"response-body-json-schema\">Response Body (JSON Schema)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"object\",\n  \"properties\": {\n    \"id\": {\"type\": \"integer\"},\n    \"text\": {\"type\": \"string\"},\n    \"question_type\": {\"type\": \"string\"},\n    \"choices\": {\"type\": \"array\"},\n    \"matching_pairs\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"item\": {\"type\": \"string\"},\n          \"match\": {\"type\": \"string\"}\n        }\n      }\n    },\n    \"ordering_items\": {\"type\": \"array\"},\n    \"tf_correct_answer\": {\"type\": \"boolean\"},\n    \"category\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\"type\": \"integer\"},\n        \"name\": {\"type\": \"string\"},\n        \"slug\": {\"type\": \"string\"}\n      }\n    },\n    \"explanation\": {\"type\": \"string\"},\n    \"difficulty\": {\"type\": \"string\"}\n  }\n}\n\n</code></pre>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"f2bf63e9-2443-46c4-b04f-1dd5cc19e34b","id":"f2bf63e9-2443-46c4-b04f-1dd5cc19e34b","name":"Questions","type":"folder"}},"urlObject":{"path":["questions","create",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"735cb5b2-1462-4d3d-9e97-fe5f356670dc","name":"Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"text\": \"Match the Django HTTP status code with its description.\",\r\n    \"question_type\": \"MT\",\r\n    \"matching_pairs\": [\r\n        {\r\n            \"item\": \"200\",\r\n            \"match\": \"OK - Successful request\"\r\n        },\r\n        {\r\n            \"item\": \"404\",\r\n            \"match\": \"Not Found - Resource does not exist\"\r\n        },\r\n        {\r\n            \"item\": \"403\",\r\n            \"match\": \"Forbidden - Access denied\"\r\n        },\r\n        {\r\n            \"item\": \"500\",\r\n            \"match\": \"Internal Server Error\"\r\n        }\r\n    ],\r\n    \"category\": \"Django\",\r\n    \"difficulty\": \"Easy\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/questions/create/"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 08 Jan 2025 05:31:49 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, PUT, DELETE, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"473"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 281,\n    \"text\": \"Match the Django HTTP status code with its description.\",\n    \"question_type\": \"MT\",\n    \"choices\": [],\n    \"matching_pairs\": [\n        {\n            \"item\": \"200\",\n            \"match\": \"OK - Successful request\"\n        },\n        {\n            \"item\": \"404\",\n            \"match\": \"Not Found - Resource does not exist\"\n        },\n        {\n            \"item\": \"403\",\n            \"match\": \"Forbidden - Access denied\"\n        },\n        {\n            \"item\": \"500\",\n            \"match\": \"Internal Server Error\"\n        }\n    ],\n    \"ordering_items\": [],\n    \"tf_correct_answer\": false,\n    \"category\": {\n        \"id\": 5,\n        \"name\": \"Django\",\n        \"slug\": \"django\"\n    },\n    \"explanation\": null,\n    \"difficulty\": \"Easy\"\n}"}],"_postman_id":"ed9c8324-1573-43a9-a6d1-964e303e5ba1"},{"name":"create True/False question","id":"706876b1-73e7-49bb-9972-c2271e96baac","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"text\": \"PostgreSQL is an open-source relational database management system.\",\r\n    \"question_type\": \"TF\",\r\n    \"tf_correct_answer\": true,\r\n    \"category\": 7,\r\n    \"explanation\": \"PostgreSQL is an open-source object-relational database management system.\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/questions/create/","description":"<h3 id=\"create-new-question\">Create New Question</h3>\n<p>This endpoint allows the user to create a new question with the specified details.</p>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><p><code>text</code> (string): The text of the question.</p>\n</li>\n<li><p><code>question_type</code> (string): The type of the question (e.g., TF for True/False).</p>\n</li>\n<li><p><code>tf_correct_answer</code> (boolean): The correct answer for True/False question.</p>\n</li>\n<li><p><code>category</code> (integer): The category ID for the question.</p>\n</li>\n<li><p><code>explanation</code> (string): Explanation for the question.</p>\n</li>\n</ul>\n<h4 id=\"response-201---created\">Response (201 - Created)</h4>\n<p>The response will be in JSON format and will include the following fields:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": 0,\n  \"text\": \"\",\n  \"question_type\": \"\",\n  \"choices\": [],\n  \"matching_pairs\": [],\n  \"ordering_items\": [],\n  \"tf_correct_answer\": true,\n  \"category\": {\n    \"id\": 0,\n    \"name\": \"\",\n    \"slug\": \"\"\n  },\n  \"explanation\": \"\",\n  \"difficulty\": \"\"\n}\n\n</code></pre>\n<h4 id=\"json-schema-for-response\">JSON Schema for Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"object\",\n  \"properties\": {\n    \"id\": {\"type\": \"integer\"},\n    \"text\": {\"type\": \"string\"},\n    \"question_type\": {\"type\": \"string\"},\n    \"choices\": {\"type\": \"array\"},\n    \"matching_pairs\": {\"type\": \"array\"},\n    \"ordering_items\": {\"type\": \"array\"},\n    \"tf_correct_answer\": {\"type\": \"boolean\"},\n    \"category\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\"type\": \"integer\"},\n        \"name\": {\"type\": \"string\"},\n        \"slug\": {\"type\": \"string\"}\n      }\n    },\n    \"explanation\": {\"type\": \"string\"},\n    \"difficulty\": {\"type\": \"string\"}\n  }\n}\n\n</code></pre>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"f2bf63e9-2443-46c4-b04f-1dd5cc19e34b","id":"f2bf63e9-2443-46c4-b04f-1dd5cc19e34b","name":"Questions","type":"folder"}},"urlObject":{"path":["questions","create",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"bd33adcc-e609-4c79-a9e2-ce2414d2da83","name":"Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"text\": \"PostgreSQL is an open-source relational database management system.\",\r\n    \"question_type\": \"TF\",\r\n    \"tf_correct_answer\": true,\r\n    \"category\": 7,\r\n    \"explanation\": \"PostgreSQL is an open-source object-relational database management system.\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/questions/create/"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 08 Jan 2025 05:35:28 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, PUT, DELETE, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"358"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 283,\n    \"text\": \"PostgreSQL is an open-source relational database management system.\",\n    \"question_type\": \"TF\",\n    \"choices\": [],\n    \"matching_pairs\": [],\n    \"ordering_items\": [],\n    \"tf_correct_answer\": true,\n    \"category\": {\n        \"id\": 7,\n        \"name\": \"Postgres\",\n        \"slug\": \"postgres\"\n    },\n    \"explanation\": \"PostgreSQL is an open-source object-relational database management system.\",\n    \"difficulty\": \"Not rated\"\n}"}],"_postman_id":"706876b1-73e7-49bb-9972-c2271e96baac"},{"name":"Create failure","id":"8f8db355-97c8-4b28-9c4e-07d459fda950","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"text\": \"Arrange the steps to fetch data from a database.\",\r\n    \"question_type\": \"OR\",\r\n    \"ordering_items\": [\r\n        {\r\n            \"text\": \"Connect to the database\",\r\n            \"order\": 1\r\n        },\r\n        {\r\n            \"text\": \"Write the SELECT query\",\r\n            \"order\": 2\r\n        },\r\n        {\r\n            \"text\": \"Execute the query\",\r\n            \"order\": 3\r\n        },\r\n        {\r\n            \"text\": \"Retrieve the results\",\r\n            \"order\": 4\r\n        }\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/questions/create/","description":"<h3 id=\"create-new-question\">Create New Question</h3>\n<p>Here, we're creating a question but the category is missing.</p>\n<p><strong>Request Body</strong></p>\n<ul>\n<li><p><code>text</code> (string, required): The text of the question.</p>\n</li>\n<li><p><code>question_type</code> (string, required): The type of question.</p>\n</li>\n<li><p><code>ordering_items</code> (array, required): An array of objects containing the text and order of the ordering items.</p>\n</li>\n</ul>\n<p><strong>Response</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"object\",\n  \"properties\": {\n    \"non_field_errors\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\"\n      }\n    }\n  }\n}\n\n</code></pre>\n<p>The response returns a JSON object with a property <code>non_field_errors</code> which is an array of strings. This property is used to indicate any non-field related errors that occurred during the request processing.</p>\n<h4 id=\"the-only-optional-values-when-creating-a-question-are\">The only optional values when creating a question are:</h4>\n<ul>\n<li><p>difficulty (will have a \"not rated\" value)</p>\n</li>\n<li><p>The answers for the types not in use.</p>\n<ul>\n<li><p>For example, when creating an mcq question, what will not be requried is:</p>\n<ul>\n<li><p>ordering_items</p>\n</li>\n<li><p>matching_pairs</p>\n</li>\n<li><p>tf_correct_answer</p>\n</li>\n</ul>\n</li>\n<li><p>Same for other cases.</p>\n</li>\n</ul>\n</li>\n</ul>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"f2bf63e9-2443-46c4-b04f-1dd5cc19e34b","id":"f2bf63e9-2443-46c4-b04f-1dd5cc19e34b","name":"Questions","type":"folder"}},"urlObject":{"path":["questions","create",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"da3f7a9f-219a-46a1-bab1-4ddb4fe616f2","name":"Bad Request","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"text\": \"Arrange the steps to fetch data from a database.\",\r\n    \"question_type\": \"OR\",\r\n    \"ordering_items\": [\r\n        {\r\n            \"text\": \"Connect to the database\",\r\n            \"order\": 1\r\n        },\r\n        {\r\n            \"text\": \"Write the SELECT query\",\r\n            \"order\": 2\r\n        },\r\n        {\r\n            \"text\": \"Execute the query\",\r\n            \"order\": 3\r\n        },\r\n        {\r\n            \"text\": \"Retrieve the results\",\r\n            \"order\": 4\r\n        }\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/questions/create/"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 08 Jan 2025 05:44:30 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, PUT, DELETE, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"46"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"non_field_errors\": [\n        \"Category is required.\"\n    ]\n}"}],"_postman_id":"8f8db355-97c8-4b28-9c4e-07d459fda950"},{"name":"View certain Question","id":"1a70cec7-c40c-492f-8b1d-4361ddb39b30","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://quizapi.up.railway.app/v1/questions/287/","description":"<h3 id=\"retrieve-question-details\">Retrieve Question Details</h3>\n<p>This endpoint retrieves details of a specific question based on the provided question ID.</p>\n<h4 id=\"request\">Request</h4>\n<ul>\n<li><p>Method: GET</p>\n</li>\n<li><p>URL: <code>https://quizapi.up.railway.app/v1/questions/question_id/</code></p>\n</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<p>The response for this request follows the JSON schema below:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"object\",\n  \"properties\": {\n    \"id\": { \"type\": \"integer\" },\n    \"text\": { \"type\": \"string\" },\n    \"question_type\": { \"type\": \"string\" },\n    \"choices\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"text\": { \"type\": \"string\" },\n          \"is_correct\": { \"type\": \"boolean\" }\n        }\n      }\n    },\n    \"matching_pairs\": {\n      \"type\": \"array\",\n      \"items\": { \"type\": \"object\" }\n    },\n    \"ordering_items\": {\n      \"type\": \"array\",\n      \"items\": { \"type\": \"object\" }\n    },\n    \"tf_correct_answer\": { \"type\": \"boolean\" },\n    \"category\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": { \"type\": \"integer\" },\n        \"name\": { \"type\": \"string\" },\n        \"slug\": { \"type\": \"string\" }\n      }\n    },\n    \"explanation\": { \"type\": \"string\" },\n    \"difficulty\": { \"type\": \"string\" }\n  }\n}\n\n</code></pre>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"f2bf63e9-2443-46c4-b04f-1dd5cc19e34b","id":"f2bf63e9-2443-46c4-b04f-1dd5cc19e34b","name":"Questions","type":"folder"}},"urlObject":{"path":["questions","287",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"d3ae9245-233b-421a-8267-c451cb91c221","name":"Success","originalRequest":{"method":"GET","header":[],"url":"https://quizapi.up.railway.app/v1/questions/287/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 09 Jan 2025 02:28:12 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, PUT, DELETE, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"723"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 287,\n    \"text\": \"How can you optimize garbage collection performance in a Node.js application?\",\n    \"question_type\": \"MC\",\n    \"choices\": [\n        {\n            \"text\": \"Adjust the V8 heap size using `--max-old-space-size` and `--max-semi-space-size`\",\n            \"is_correct\": true\n        },\n        {\n            \"text\": \"Disable garbage collection and manage memory manually\",\n            \"is_correct\": false\n        },\n        {\n            \"text\": \"Enable the `--gc-optimizer` flag\",\n            \"is_correct\": false\n        },\n        {\n            \"text\": \"Use `global.optimizeGC()`\",\n            \"is_correct\": false\n        }\n    ],\n    \"matching_pairs\": [],\n    \"ordering_items\": [],\n    \"tf_correct_answer\": false,\n    \"category\": {\n        \"id\": 8,\n        \"name\": \"NodeJs\",\n        \"slug\": \"nodejs\"\n    },\n    \"explanation\": \"You can optimize garbage collection by adjusting V8 heap settings such as `--max-old-space-size` and `--max-semi-space-size`.\",\n    \"difficulty\": \"Hard\"\n}"}],"_postman_id":"1a70cec7-c40c-492f-8b1d-4361ddb39b30"},{"name":"Update a Question","id":"71dbf125-1e65-4715-b06d-db09d11926e4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"text\": \"I Changed My mind and let's say i want to change the question text\",\r\n    \"question_type\": \"MC\",\r\n    \"choices\": [\r\n        {\r\n            \"text\": \"You can even change the choices (or the question type!!) \",\r\n            \"is_correct\": true\r\n        },\r\n        {\r\n            \"text\": \"Disable garbage collection and manage memory manually\",\r\n            \"is_correct\": false\r\n        },\r\n        {\r\n            \"text\": \"Enable the `--gc-optimizer` flag\",\r\n            \"is_correct\": false\r\n        },\r\n        {\r\n            \"text\": \"Use `global.optimizeGC()`\",\r\n            \"is_correct\": false\r\n        }\r\n    ],\r\n    \"category\": 8,\r\n    \"explanation\": \"or the category\",\r\n    \"difficulty\": \"Easy\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/questions/287/","description":"<h3 id=\"update-question\">Update Question</h3>\n<p>This endpoint is used to update a specific question.</p>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><p>text (string, required): The updated text for the question.</p>\n</li>\n<li><p>question_type (string, required): The type of question.</p>\n</li>\n<li><p>choices (array, required): An array of choices for the question, each containing:</p>\n<ul>\n<li><p>text (string, required): The text for the choice.</p>\n</li>\n<li><p>is_correct (boolean, required): Indicates if the choice is correct.</p>\n</li>\n</ul>\n</li>\n<li><p>category (integer, required): The updated category for the question.</p>\n</li>\n<li><p>explanation (string, required): The explanation for the question.</p>\n</li>\n<li><p>difficulty (string, required): The updated difficulty level for the question.</p>\n</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<p>The response will be a JSON object with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": integer,\n  \"text\": string,\n  \"question_type\": string,\n  \"choices\": [\n    {\n      \"text\": string,\n      \"is_correct\": boolean\n    }\n  ],\n  \"matching_pairs\": array,\n  \"ordering_items\": array,\n  \"tf_correct_answer\": boolean,\n  \"category\": {\n    \"id\": integer,\n    \"name\": string,\n    \"slug\": string\n  },\n  \"explanation\": string,\n  \"difficulty\": string\n}\n\n</code></pre>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"f2bf63e9-2443-46c4-b04f-1dd5cc19e34b","id":"f2bf63e9-2443-46c4-b04f-1dd5cc19e34b","name":"Questions","type":"folder"}},"urlObject":{"path":["questions","287",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"204c73db-7d85-4d75-983a-3b7ced58f693","name":"Success","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"text\": \"I Changed My mind and let's say i want to change the question text\",\r\n    \"question_type\": \"MC\",\r\n    \"choices\": [\r\n        {\r\n            \"text\": \"You can even change the choices (or the question type!!) \",\r\n            \"is_correct\": true\r\n        },\r\n        {\r\n            \"text\": \"Disable garbage collection and manage memory manually\",\r\n            \"is_correct\": false\r\n        },\r\n        {\r\n            \"text\": \"Enable the `--gc-optimizer` flag\",\r\n            \"is_correct\": false\r\n        },\r\n        {\r\n            \"text\": \"Use `global.optimizeGC()`\",\r\n            \"is_correct\": false\r\n        }\r\n    ],\r\n    \"category\": 8,\r\n    \"explanation\": \"or the category\",\r\n    \"difficulty\": \"Easy\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/questions/287/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 09 Jan 2025 02:33:05 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, PUT, DELETE, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"578"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 287,\n    \"text\": \"I Changed My mind and let's say i want to change the question text\",\n    \"question_type\": \"MC\",\n    \"choices\": [\n        {\n            \"text\": \"You can even change the choices (or the question type!!)\",\n            \"is_correct\": true\n        },\n        {\n            \"text\": \"Disable garbage collection and manage memory manually\",\n            \"is_correct\": false\n        },\n        {\n            \"text\": \"Enable the `--gc-optimizer` flag\",\n            \"is_correct\": false\n        },\n        {\n            \"text\": \"Use `global.optimizeGC()`\",\n            \"is_correct\": false\n        }\n    ],\n    \"matching_pairs\": [],\n    \"ordering_items\": [],\n    \"tf_correct_answer\": false,\n    \"category\": {\n        \"id\": 8,\n        \"name\": \"NodeJs\",\n        \"slug\": \"nodejs\"\n    },\n    \"explanation\": \"or the category\",\n    \"difficulty\": \"Easy\"\n}"}],"_postman_id":"71dbf125-1e65-4715-b06d-db09d11926e4"},{"name":"Delete a Question","id":"560a1b63-a21e-4ee1-8fb5-3b8123266eca","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"https://quizapi.up.railway.app/v1/questions/287/","description":"<h3 id=\"delete-question\">Delete Question</h3>\n<p>This endpoint is used to delete a specific question.</p>\n<h4 id=\"request-body\">Request Body</h4>\n<p>This request does not require a request body.</p>\n<h4 id=\"response\">Response</h4>\n<ul>\n<li><p>Status: 204</p>\n</li>\n<li><p>Content-Type: application/json</p>\n</li>\n<li><p>{ \"detail\": \"\"}<br />  The response will include a JSON object with a \"detail\" key, which may contain a message confirming the successful deletion.</p>\n</li>\n</ul>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"f2bf63e9-2443-46c4-b04f-1dd5cc19e34b","id":"f2bf63e9-2443-46c4-b04f-1dd5cc19e34b","name":"Questions","type":"folder"}},"urlObject":{"path":["questions","287",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"26863680-0b5e-4422-bbe5-2af63fe3dc7e","name":"Success","originalRequest":{"method":"DELETE","header":[],"url":"https://quizapi.up.railway.app/v1/questions/287/"},"status":"No Content","code":204,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 09 Jan 2025 02:50:51 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, PUT, DELETE, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"43"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"detail\": \"Question deleted successfully.\"\n}"}],"_postman_id":"560a1b63-a21e-4ee1-8fb5-3b8123266eca"},{"name":"Filtering questions from query params","id":"f34ad069-8bd5-4650-8c1c-7ef2eb2efefe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://quizapi.up.railway.app/v1/questions/?limit=5&type=MC&ordering=-difficulty","description":"<h3 id=\"get-questions\">GET /questions</h3>\n<p>This endpoint retrieves a list of questions based on the specified parameters.</p>\n<h4 id=\"request\">Request</h4>\n<ul>\n<li><p>Method: GET</p>\n</li>\n<li><p>URL: https://quizapi.up.railway.app/v1/questions/</p>\n</li>\n<li><p>Query Parameters:</p>\n<ul>\n<li><p>limit (integer, optional): The maximum number of questions to retrieve. Must be between 1 and 100. Default is 25.</p>\n</li>\n<li><p>type (string, optional): The type of question (e.g., MC for multiple choice).</p>\n</li>\n<li><p>ordering (string, optional): The ordering of questions.</p>\n</li>\n<li><p>difficulty (string, optional): Specify the difficulty wanted (e.g., Medium)</p>\n</li>\n<li><p>category (integer or string, optional): Specify the category wanted (e.g., Django for Django related questions.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<p>The response is a JSON array containing question objects with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"id\": \"integer\",\n    \"text\": \"string\",\n    \"question_type\": \"string\",\n    \"choices\": [\n      {\n        \"text\": \"string\",\n        \"is_correct\": \"boolean\"\n      }\n    ],\n    \"matching_pairs\": \"array\",\n    \"ordering_items\": \"array\",\n    \"tf_correct_answer\": \"boolean\",\n    \"category\": {\n      \"id\": \"integer\",\n      \"name\": \"string\",\n      \"slug\": \"string\"\n    },\n    \"explanation\": \"string\",\n    \"difficulty\": \"string\"\n  }\n]\n\n</code></pre>\n<ul>\n<li><p>id (integer): The unique identifier of the question.</p>\n</li>\n<li><p>text (string): The text of the question.</p>\n</li>\n<li><p>question_type (string): The type of the question.</p>\n</li>\n<li><p>choices (array): An array of objects representing the choices for the question, where each object contains the text of the choice and a boolean indicating if it is correct.</p>\n</li>\n<li><p>matching_pairs (array): An array of matching pairs for the question.</p>\n</li>\n<li><p>ordering_items (array): An array of ordering items for the question.</p>\n</li>\n<li><p>tf_correct_answer (boolean): A boolean indicating the correctness of the true/false question.</p>\n</li>\n<li><p>category (object): An object containing the category details of the question, including id, name, and slug.</p>\n</li>\n<li><p>explanation (string): The explanation or solution for the question.</p>\n</li>\n<li><p>difficulty (string): The difficulty level of the question.</p>\n</li>\n</ul>\n<h4 id=\"example\">Example</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"id\": 0,\n    \"text\": \"\",\n    \"question_type\": \"\",\n    \"choices\": [\n      {\n        \"text\": \"\",\n        \"is_correct\": true\n      }\n    ],\n    \"matching_pairs\": [],\n    \"ordering_items\": [],\n    \"tf_correct_answer\": true,\n    \"category\": {\n      \"id\": 0,\n      \"name\": \"\",\n      \"slug\": \"\"\n    },\n    \"explanation\": \"\",\n    \"difficulty\": \"\"\n  }\n]\n\n</code></pre>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"f2bf63e9-2443-46c4-b04f-1dd5cc19e34b","id":"f2bf63e9-2443-46c4-b04f-1dd5cc19e34b","name":"Questions","type":"folder"}},"urlObject":{"path":["questions",""],"host":["https://quizapi.up.railway.app/v1"],"query":[{"disabled":true,"key":"category","value":"Django"},{"disabled":true,"key":"difficulty","value":"Easy"},{"key":"limit","value":"5"},{"key":"type","value":"MC"},{"key":"ordering","value":"-difficulty"}],"variable":[]}},"response":[{"id":"b2e25aca-b815-43b6-b3bc-f51313ead09e","name":"Success","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://quizapi.up.railway.app/v1/questions/?limit=5&type=MC&ordering=-difficulty","host":["https://quizapi.up.railway.app/v1"],"path":["questions",""],"query":[{"key":"category","value":"Django","type":"text","disabled":true},{"key":"difficulty","value":"Easy","type":"text","disabled":true},{"key":"limit","value":"5"},{"key":"type","value":"MC"},{"key":"ordering","value":"-difficulty"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 08 Jan 2025 05:58:52 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"3748"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"id\": 15,\n        \"text\": \"How can metaclasses be used to enforce singleton behavior in a class?\",\n        \"question_type\": \"MC\",\n        \"choices\": [\n            {\n                \"text\": \"By overriding the '__new__' method to return the same instance\",\n                \"is_correct\": true\n            },\n            {\n                \"text\": \"By modifying the '__init__' method to prevent new instances\",\n                \"is_correct\": false\n            },\n            {\n                \"text\": \"By using a decorator\",\n                \"is_correct\": false\n            },\n            {\n                \"text\": \"By setting a global variable\",\n                \"is_correct\": false\n            }\n        ],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": false,\n        \"category\": {\n            \"id\": 3,\n            \"name\": \"Code\",\n            \"slug\": \"code\"\n        },\n        \"explanation\": \"A metaclass can enforce singleton behavior by overriding the '__new__' method to return the same instance whenever a new instance is requested.\",\n        \"difficulty\": \"Hard\"\n    },\n    {\n        \"id\": 1,\n        \"text\": \"How can a metaclass ensure that all methods in a class have specific argument names?\",\n        \"question_type\": \"MC\",\n        \"choices\": [\n            {\n                \"text\": \"By using decorators on each method\",\n                \"is_correct\": false\n            },\n            {\n                \"text\": \"By inspecting the function signatures in '__new__' and raising an error if mismatched\",\n                \"is_correct\": true\n            },\n            {\n                \"text\": \"By modifying the '__call__' method\",\n                \"is_correct\": false\n            },\n            {\n                \"text\": \"By overriding '__init__'\",\n                \"is_correct\": false\n            }\n        ],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": false,\n        \"category\": {\n            \"id\": 3,\n            \"name\": \"Code\",\n            \"slug\": \"code\"\n        },\n        \"explanation\": \"The '__new__' method in a metaclass can be used to inspect the function signatures of methods in the class and raise an error if they do not meet the required specifications.\",\n        \"difficulty\": \"Hard\"\n    },\n    {\n        \"id\": 2,\n        \"text\": \"What is the main advantage of using closures over simple functions in Python?\",\n        \"question_type\": \"MC\",\n        \"choices\": [\n            {\n                \"text\": \"They improve the function's performance\",\n                \"is_correct\": false\n            },\n            {\n                \"text\": \"They allow retaining state between function calls\",\n                \"is_correct\": true\n            },\n            {\n                \"text\": \"They make the function asynchronous\",\n                \"is_correct\": false\n            },\n            {\n                \"text\": \"They are faster than normal functions\",\n                \"is_correct\": false\n            }\n        ],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": false,\n        \"category\": {\n            \"id\": 3,\n            \"name\": \"Code\",\n            \"slug\": \"code\"\n        },\n        \"explanation\": \"Closures retain the state from their enclosing environment, making them useful for maintaining state information.\",\n        \"difficulty\": \"Hard\"\n    },\n    {\n        \"id\": 12,\n        \"text\": \"How does the 'futures.as_completed()' function benefit multithreading or multiprocessing in Python?\",\n        \"question_type\": \"MC\",\n        \"choices\": [\n            {\n                \"text\": \"It schedules new threads to run\",\n                \"is_correct\": false\n            },\n            {\n                \"text\": \"It returns an iterator that yields futures as they complete, regardless of their order\",\n                \"is_correct\": true\n            },\n            {\n                \"text\": \"It terminates completed threads\",\n                \"is_correct\": false\n            },\n            {\n                \"text\": \"It forces all threads to execute concurrently\",\n                \"is_correct\": false\n            }\n        ],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": false,\n        \"category\": {\n            \"id\": 3,\n            \"name\": \"Code\",\n            \"slug\": \"code\"\n        },\n        \"explanation\": \"The 'futures.as_completed()' function returns an iterator that yields futures as they complete, which helps to handle the results of concurrent tasks as soon as they are ready.\",\n        \"difficulty\": \"Hard\"\n    },\n    {\n        \"id\": 18,\n        \"text\": \"How do you implement a custom notification system for actions performed in Django Admin?\",\n        \"question_type\": \"MC\",\n        \"choices\": [\n            {\n                \"text\": \"Override the save_model() and delete_model() methods to send notifications using Django signals\",\n                \"is_correct\": true\n            },\n            {\n                \"text\": \"Set notifications=True in ModelAdmin\",\n                \"is_correct\": false\n            },\n            {\n                \"text\": \"Use the @notify_action decorator\",\n                \"is_correct\": false\n            },\n            {\n                \"text\": \"Override the get_queryset() method\",\n                \"is_correct\": false\n            }\n        ],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": false,\n        \"category\": {\n            \"id\": 5,\n            \"name\": \"Django\",\n            \"slug\": \"django\"\n        },\n        \"explanation\": \"To implement a custom notification system, override the save_model() and delete_model() methods to send notifications using Django signals when specific actions are performed in Django Admin.\",\n        \"difficulty\": \"Hard\"\n    }\n]"},{"id":"174a8236-311c-4585-82fb-6d851a69df92","name":"Without params","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://quizapi.up.railway.app/v1/questions/","host":["https://quizapi.up.railway.app/v1"],"path":["questions",""],"query":[{"key":"category","value":"Django","type":"text","disabled":true},{"key":"difficulty","value":"Easy","type":"text","disabled":true},{"key":"limit","value":"\"5\"","disabled":true},{"key":"type","value":"MC","disabled":true},{"key":"ordering","value":"-difficulty","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 09 Jan 2025 02:45:04 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"9240"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"id\": 120,\n        \"text\": \"A 'FOREIGN KEY' constraint is used to uniquely identify each row in a database table.\",\n        \"question_type\": \"TF\",\n        \"choices\": [],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": false,\n        \"category\": {\n            \"id\": 4,\n            \"name\": \"SQL\",\n            \"slug\": \"sql\"\n        },\n        \"explanation\": \"'PRIMARY KEY' uniquely identifies rows; 'FOREIGN KEY' links to another table's primary key.\",\n        \"difficulty\": \"Not rated\"\n    },\n    {\n        \"id\": 126,\n        \"text\": \"Django uses the Model-View-Controller (MVC) design pattern.\",\n        \"question_type\": \"TF\",\n        \"choices\": [],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": false,\n        \"category\": {\n            \"id\": 5,\n            \"name\": \"Django\",\n            \"slug\": \"django\"\n        },\n        \"explanation\": \"Django follows the Model-View-Template (MVT) design pattern, not MVC.\",\n        \"difficulty\": \"Not rated\"\n    },\n    {\n        \"id\": 114,\n        \"text\": \"In Java, you cannot create an instance of an abstract class.\",\n        \"question_type\": \"TF\",\n        \"choices\": [],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": true,\n        \"category\": {\n            \"id\": 3,\n            \"name\": \"Code\",\n            \"slug\": \"code\"\n        },\n        \"explanation\": \"In Java, abstract classes cannot be instantiated directly, but they can be subclassed.\",\n        \"difficulty\": \"Not rated\"\n    },\n    {\n        \"id\": 119,\n        \"text\": \"The 'WHERE' clause in SQL is used to filter records based on specified conditions.\",\n        \"question_type\": \"TF\",\n        \"choices\": [],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": true,\n        \"category\": {\n            \"id\": 4,\n            \"name\": \"SQL\",\n            \"slug\": \"sql\"\n        },\n        \"explanation\": \"'WHERE' is used to filter the results of a query based on conditions.\",\n        \"difficulty\": \"Not rated\"\n    },\n    {\n        \"id\": 122,\n        \"text\": \"The 'GROUP BY' clause in SQL is used to group rows that have the same values into summary rows.\",\n        \"question_type\": \"TF\",\n        \"choices\": [],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": true,\n        \"category\": {\n            \"id\": 4,\n            \"name\": \"SQL\",\n            \"slug\": \"sql\"\n        },\n        \"explanation\": \"'GROUP BY' groups records based on a specified column and can be used with aggregate functions.\",\n        \"difficulty\": \"Not rated\"\n    },\n    {\n        \"id\": 125,\n        \"text\": \"Django is a Python-based web framework.\",\n        \"question_type\": \"TF\",\n        \"choices\": [],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": true,\n        \"category\": {\n            \"id\": 5,\n            \"name\": \"Django\",\n            \"slug\": \"django\"\n        },\n        \"explanation\": \"Django is a high-level Python web framework that encourages rapid development.\",\n        \"difficulty\": \"Not rated\"\n    },\n    {\n        \"id\": 110,\n        \"text\": \"In C++, memory management is automatic, so no need to manually allocate or free memory.\",\n        \"question_type\": \"TF\",\n        \"choices\": [],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": false,\n        \"category\": {\n            \"id\": 3,\n            \"name\": \"Code\",\n            \"slug\": \"code\"\n        },\n        \"explanation\": \"In C++, memory management is manual. You need to allocate and free memory explicitly.\",\n        \"difficulty\": \"Not rated\"\n    },\n    {\n        \"id\": 113,\n        \"text\": \"In SQL, the 'SELECT' statement is used to modify data in a table.\",\n        \"question_type\": \"TF\",\n        \"choices\": [],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": false,\n        \"category\": {\n            \"id\": 3,\n            \"name\": \"Code\",\n            \"slug\": \"code\"\n        },\n        \"explanation\": \"'SELECT' is used to query data, not modify it. 'INSERT', 'UPDATE', and 'DELETE' are used to modify data.\",\n        \"difficulty\": \"Not rated\"\n    },\n    {\n        \"id\": 117,\n        \"text\": \"The SQL 'INSERT' statement is used to delete records from a database table.\",\n        \"question_type\": \"TF\",\n        \"choices\": [],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": false,\n        \"category\": {\n            \"id\": 4,\n            \"name\": \"SQL\",\n            \"slug\": \"sql\"\n        },\n        \"explanation\": \"'INSERT' is used to add records, while 'DELETE' is used to remove records.\",\n        \"difficulty\": \"Not rated\"\n    },\n    {\n        \"id\": 118,\n        \"text\": \"In SQL, a 'PRIMARY KEY' can be null.\",\n        \"question_type\": \"TF\",\n        \"choices\": [],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": false,\n        \"category\": {\n            \"id\": 4,\n            \"name\": \"SQL\",\n            \"slug\": \"sql\"\n        },\n        \"explanation\": \"A 'PRIMARY KEY' must be unique and cannot be null.\",\n        \"difficulty\": \"Not rated\"\n    },\n    {\n        \"id\": 107,\n        \"text\": \"In Python, indentation is not important for defining blocks of code.\",\n        \"question_type\": \"TF\",\n        \"choices\": [],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": false,\n        \"category\": {\n            \"id\": 3,\n            \"name\": \"Code\",\n            \"slug\": \"code\"\n        },\n        \"explanation\": \"Indentation is crucial in Python to define blocks of code.\",\n        \"difficulty\": \"Not rated\"\n    },\n    {\n        \"id\": 121,\n        \"text\": \"SQL supports both relational and non-relational databases.\",\n        \"question_type\": \"TF\",\n        \"choices\": [],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": false,\n        \"category\": {\n            \"id\": 4,\n            \"name\": \"SQL\",\n            \"slug\": \"sql\"\n        },\n        \"explanation\": \"SQL is used with relational databases, while non-relational databases like NoSQL use different languages.\",\n        \"difficulty\": \"Not rated\"\n    },\n    {\n        \"id\": 123,\n        \"text\": \"In SQL, the 'UPDATE' statement is used to modify existing records in a database table.\",\n        \"question_type\": \"TF\",\n        \"choices\": [],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": true,\n        \"category\": {\n            \"id\": 4,\n            \"name\": \"SQL\",\n            \"slug\": \"sql\"\n        },\n        \"explanation\": \"'UPDATE' allows modification of existing records based on conditions in the 'WHERE' clause.\",\n        \"difficulty\": \"Not rated\"\n    },\n    {\n        \"id\": 124,\n        \"text\": \"SQL joins can only be used with two tables.\",\n        \"question_type\": \"TF\",\n        \"choices\": [],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": false,\n        \"category\": {\n            \"id\": 4,\n            \"name\": \"SQL\",\n            \"slug\": \"sql\"\n        },\n        \"explanation\": \"SQL joins can be used with multiple tables, not just two.\",\n        \"difficulty\": \"Not rated\"\n    },\n    {\n        \"id\": 108,\n        \"text\": \"In JavaScript, '==' checks for equality of values without type conversion.\",\n        \"question_type\": \"TF\",\n        \"choices\": [],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": false,\n        \"category\": {\n            \"id\": 3,\n            \"name\": \"Code\",\n            \"slug\": \"code\"\n        },\n        \"explanation\": \"'==' in JavaScript performs type coercion. For strict equality, '===' is used.\",\n        \"difficulty\": \"Not rated\"\n    },\n    {\n        \"id\": 109,\n        \"text\": \"The 'break' statement in a loop terminates the loop and passes control to the next statement.\",\n        \"question_type\": \"TF\",\n        \"choices\": [],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": true,\n        \"category\": {\n            \"id\": 3,\n            \"name\": \"Code\",\n            \"slug\": \"code\"\n        },\n        \"explanation\": \"The 'break' statement terminates the loop, and the program continues with the next statement outside the loop.\",\n        \"difficulty\": \"Not rated\"\n    },\n    {\n        \"id\": 111,\n        \"text\": \"The 'else' block in an if statement is executed only when the condition is true.\",\n        \"question_type\": \"TF\",\n        \"choices\": [],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": false,\n        \"category\": {\n            \"id\": 3,\n            \"name\": \"Code\",\n            \"slug\": \"code\"\n        },\n        \"explanation\": \"The 'else' block is executed when the condition is false.\",\n        \"difficulty\": \"Not rated\"\n    },\n    {\n        \"id\": 112,\n        \"text\": \"A for loop in Python can only iterate over sequences such as lists, tuples, and strings.\",\n        \"question_type\": \"TF\",\n        \"choices\": [],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": true,\n        \"category\": {\n            \"id\": 3,\n            \"name\": \"Code\",\n            \"slug\": \"code\"\n        },\n        \"explanation\": \"In Python, a 'for' loop iterates over any iterable object, including sequences like lists, tuples, and strings.\",\n        \"difficulty\": \"Not rated\"\n    },\n    {\n        \"id\": 115,\n        \"text\": \"The SQL 'SELECT' statement is used to retrieve data from a database.\",\n        \"question_type\": \"TF\",\n        \"choices\": [],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": true,\n        \"category\": {\n            \"id\": 4,\n            \"name\": \"SQL\",\n            \"slug\": \"sql\"\n        },\n        \"explanation\": \"'SELECT' is used to query and retrieve data from one or more tables.\",\n        \"difficulty\": \"Not rated\"\n    },\n    {\n        \"id\": 116,\n        \"text\": \"SQL stands for Structured Query Language.\",\n        \"question_type\": \"TF\",\n        \"choices\": [],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": true,\n        \"category\": {\n            \"id\": 4,\n            \"name\": \"SQL\",\n            \"slug\": \"sql\"\n        },\n        \"explanation\": \"SQL stands for Structured Query Language, a standard language for managing relational databases.\",\n        \"difficulty\": \"Not rated\"\n    },\n    {\n        \"id\": 179,\n        \"text\": \"Match the Django HTTP status code with its description.\",\n        \"question_type\": \"MT\",\n        \"choices\": [],\n        \"matching_pairs\": [\n            {\n                \"item\": \"200\",\n                \"match\": \"OK - Successful request\"\n            },\n            {\n                \"item\": \"404\",\n                \"match\": \"Not Found - Resource does not exist\"\n            },\n            {\n                \"item\": \"403\",\n                \"match\": \"Forbidden - Access denied\"\n            },\n            {\n                \"item\": \"500\",\n                \"match\": \"Internal Server Error\"\n            }\n        ],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": false,\n        \"category\": {\n            \"id\": 5,\n            \"name\": \"Django\",\n            \"slug\": \"django\"\n        },\n        \"explanation\": null,\n        \"difficulty\": \"Not rated\"\n    },\n    {\n        \"id\": 180,\n        \"text\": \"Match the Django middleware with its functionality.\",\n        \"question_type\": \"MT\",\n        \"choices\": [],\n        \"matching_pairs\": [\n            {\n                \"item\": \"SecurityMiddleware\",\n                \"match\": \"Adds security-related headers to responses\"\n            },\n            {\n                \"item\": \"SessionMiddleware\",\n                \"match\": \"Enables session support\"\n            },\n            {\n                \"item\": \"CsrfViewMiddleware\",\n                \"match\": \"Protects against Cross-Site Request Forgery\"\n            },\n            {\n                \"item\": \"AuthenticationMiddleware\",\n                \"match\": \"Associates users with requests\"\n            }\n        ],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": false,\n        \"category\": {\n            \"id\": 5,\n            \"name\": \"Django\",\n            \"slug\": \"django\"\n        },\n        \"explanation\": null,\n        \"difficulty\": \"Not rated\"\n    },\n    {\n        \"id\": 105,\n        \"text\": \"Python is an interpreted language.\",\n        \"question_type\": \"TF\",\n        \"choices\": [],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": true,\n        \"category\": {\n            \"id\": 3,\n            \"name\": \"Code\",\n            \"slug\": \"code\"\n        },\n        \"explanation\": \"Python code is executed line by line by the Python interpreter.\",\n        \"difficulty\": \"Not rated\"\n    },\n    {\n        \"id\": 106,\n        \"text\": \"The 'var' keyword is used to declare variables in Python.\",\n        \"question_type\": \"TF\",\n        \"choices\": [],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": false,\n        \"category\": {\n            \"id\": 3,\n            \"name\": \"Code\",\n            \"slug\": \"code\"\n        },\n        \"explanation\": \"'var' is used in JavaScript, not Python.\",\n        \"difficulty\": \"Not rated\"\n    },\n    {\n        \"id\": 127,\n        \"text\": \"In Django, the 'urls.py' file is used to define URL routing patterns.\",\n        \"question_type\": \"TF\",\n        \"choices\": [],\n        \"matching_pairs\": [],\n        \"ordering_items\": [],\n        \"tf_correct_answer\": true,\n        \"category\": {\n            \"id\": 5,\n            \"name\": \"Django\",\n            \"slug\": \"django\"\n        },\n        \"explanation\": \"The 'urls.py' file in Django maps URLs to views and their associated logic.\",\n        \"difficulty\": \"Not rated\"\n    }\n]"}],"_postman_id":"f34ad069-8bd5-4650-8c1c-7ef2eb2efefe"}],"id":"f2bf63e9-2443-46c4-b04f-1dd5cc19e34b","description":"<p>This folder includes endpoints to manage, retrieve, and create questions. It supports different question types, difficulty levels, and optional quiz association.</p>\n<h3 id=\"base-url\"><strong>Base URL</strong></h3>\n<p>All endpoints in this folder are prefixed with <code>/v1/questions/</code>.</p>\n<hr />\n<h3 id=\"endpoints-overview\"><strong>Endpoints Overview</strong></h3>\n<ol>\n<li><p><strong><code>/</code></strong> - Filters and retrieves questions based on specified criteria.</p>\n</li>\n<li><p><strong><code>create/</code></strong> - Creates a new question.</p>\n</li>\n<li><p><strong><code>question_id/</code></strong> - Fetches, updates, or deletes a specific question by ID.</p>\n</li>\n</ol>\n<hr />\n<h3 id=\"general-information\"><strong>General Information</strong></h3>\n<ul>\n<li><p><strong>Authentication:</strong></p>\n<ul>\n<li><p>Required for all endpoints except <code>/</code></p>\n</li>\n<li><p>token:</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Response Format:</strong></p>\n<ul>\n<li>All responses are in JSON format and provide details about success or failure with appropriate HTTP status codes.</li>\n</ul>\n</li>\n<li><p><strong>Error Handling:</strong></p>\n<ul>\n<li><p><strong>401 Unauthorized:</strong> Token is missing or invalid.</p>\n</li>\n<li><p><strong>400 Bad Request:</strong> Required fields are missing or invalid.</p>\n</li>\n<li><p><strong>404 Not Found:</strong> The requested resource does not exist.</p>\n</li>\n</ul>\n</li>\n</ul>\n<hr />\n<h3 id=\"question-types\"><strong>Question Types</strong></h3>\n<p>The following types of questions are supported:</p>\n<ul>\n<li><p><strong>Multiple Choice (MC)</strong>: Questions with multiple answer options where one or more may be correct.</p>\n</li>\n<li><p><strong>True/False (TF)</strong>: Questions with a binary answer choice (true/false).</p>\n</li>\n<li><p><strong>Matching (MT)</strong>: Questions requiring matching between sets of items.</p>\n</li>\n<li><p><strong>Ordering (OR)</strong>: Questions where the correct order of items must be provided.</p>\n</li>\n</ul>\n<h3 id=\"difficulty-levels\"><strong>Difficulty Levels</strong></h3>\n<p>Questions can be assigned a difficulty level using the following choices:</p>\n<ul>\n<li><p><strong>0:</strong> Not rated (default)</p>\n</li>\n<li><p><strong>1:</strong> Easy</p>\n</li>\n<li><p><strong>2:</strong> Medium</p>\n</li>\n<li><p><strong>3:</strong> Hard</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"optional-field-quizzes\"><strong>Optional Field: Quizzes</strong></h3>\n<p>When creating or updating a question, you can optionally include a <code>quizzes</code> key. This key accepts a list of IDs corresponding to quizzes that the question should be associated with. Example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">jsonCopy code{\n  ...\n  \"quizzes\": [1, 2, 3],\n  ...\n}\n\n</code></pre>\n<hr />\n<h3 id=\"endpoint-descriptions\"><strong>Endpoint Descriptions</strong></h3>\n<ul>\n<li><p><strong><code>/</code></strong></p>\n<ul>\n<li><p>Retrieves a list of questions based on query parameters filters (e.g., type, difficulty).</p>\n</li>\n<li><p><strong>Method:</strong> GET</p>\n</li>\n<li><p><strong>Authentication:</strong> Not required.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>create/</code></strong></p>\n<ul>\n<li><p>Creates a new question. Requires fields like <code>text</code>, <code>type</code>, and <code>difficulty</code>.</p>\n</li>\n<li><p>Optional <code>quizzes</code> field allows associating the question with specific quizzes.</p>\n</li>\n<li><p><strong>Method:</strong> POST</p>\n</li>\n<li><p><strong>Authentication:</strong> Required</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>question_id/</code></strong></p>\n<ul>\n<li><p>question_id is an integer representing the id for the question</p>\n</li>\n<li><p>Handles operations for a specific question:</p>\n<ul>\n<li><p><strong>GET:</strong> Fetches details of a specific question.</p>\n</li>\n<li><p><strong>PUT:</strong> Updates details of a specific question (e.g., text, type, difficulty).</p>\n</li>\n<li><p><strong>DELETE:</strong> Deletes a specific question.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Methods:</strong> GET, PUT, DELETE</p>\n</li>\n<li><p><strong>Authentication:</strong> Required</p>\n</li>\n</ul>\n</li>\n</ul>\n<hr />\n<h3 id=\"usage-notes\"><strong>Usage Notes</strong></h3>\n<ul>\n<li><p><strong>Token Management:</strong><br />  Ensure the <code>token</code> is valid and included in the header for authenticated endpoints. Make sure you're only trying to update or delete the question you created.</p>\n</li>\n<li><p><strong>Question ID:</strong><br />  For endpoints requiring <code>question_id</code>, ensure the ID corresponds to an existing question.</p>\n</li>\n<li><p><strong>Validation:</strong><br />  Provide valid values for <code>type</code> and <code>difficulty</code> when creating or updating questions to avoid errors.</p>\n</li>\n</ul>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"id":"3fe623a4-4beb-4d56-a6e7-71b9f069b570","type":"text/javascript","packages":{},"exec":[""]}},{"listen":"test","script":{"id":"83d96c15-5e02-4542-8cdc-c278b5cb4099","type":"text/javascript","packages":{},"exec":[""]}}],"_postman_id":"f2bf63e9-2443-46c4-b04f-1dd5cc19e34b"},{"name":"Quizzes","item":[{"name":"Create a Quiz","id":"cdd2cf37-2a4b-4e4d-956d-8498cc815059","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"title\": \"Quiz on General Knowledge\",\r\n    \"description\": \"A quiz to test your knowledge on various topics.\",\r\n    \"category\": 5,\r\n    \"questions\": [30, 45, 112]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/quizzes/create/","description":"<h3 id=\"create-quiz\">Create Quiz</h3>\n<h3 id=\"post-quizzescreate\">POST /quizzes/create/</h3>\n<p>This endpoint allows you to create a new quiz with a title, description, category, and links a list of questions.</p>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><p>title (string, required): The title of the quiz.</p>\n</li>\n<li><p>description (string, required): A brief description of the quiz.</p>\n</li>\n<li><p>category (integer or string, required): The ID of the category for the quiz or the slug for the category.</p>\n</li>\n<li><p>questions (array of integers, required): An array of question IDs to be included in the quiz.</p>\n</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<p>The response will be a JSON object with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": integer,\n  \"title\": string,\n  \"description\": string,\n  \"category\": {\n    \"id\": integer,\n    \"name\": string,\n    \"slug\": string\n  },\n  \"number_of_questions\": integer,\n  \"questions\": [\n    {\n      \"id\": integer,\n      \"text\": string,\n      \"question_type\": string,\n      \"choices\": array,\n      \"matching_pairs\": array,\n      \"ordering_items\": array,\n      \"tf_correct_answer\": boolean,\n      \"category\": {\n        \"id\": integer,\n        \"name\": string,\n        \"slug\": string\n      },\n      \"explanation\": string,\n      \"difficulty\": string\n    }\n  ]\n}\n\n</code></pre>\n<ul>\n<li><p>id (integer): The ID of the created quiz.</p>\n</li>\n<li><p>title (string): The title of the quiz.</p>\n</li>\n<li><p>description (string): A brief description of the quiz.</p>\n</li>\n<li><p>category (object): The category of the quiz with its ID, name, and slug.</p>\n</li>\n<li><p>number_of_questions (integer): The total number of questions in the quiz.</p>\n</li>\n<li><p>questions (array): An array of objects representing the questions included in the quiz, each with its ID, text, question type, choices, matching pairs, ordering items, true/false correct answer, category, explanation, and difficulty.</p>\n</li>\n</ul>\n","urlObject":{"path":["quizzes","create",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"34c2506e-c858-40be-8a56-39321cc77b33","name":"Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"title\": \"Quiz on General Knowledge\",\r\n    \"description\": \"A quiz to test your knowledge on various topics.\",\r\n    \"category\": 5,\r\n    \"questions\": [30, 45, 112]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/quizzes/create/"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 08 Jan 2025 06:48:48 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, PUT, DELETE, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"1873"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 2,\n    \"title\": \"Quiz on General Knowledge\",\n    \"description\": \"A quiz to test your knowledge on various topics.\",\n    \"category\": {\n        \"id\": 5,\n        \"name\": \"Django\",\n        \"slug\": \"django\"\n    },\n    \"number_of_questions\": 3,\n    \"questions\": [\n        {\n            \"id\": 112,\n            \"text\": \"A for loop in Python can only iterate over sequences such as lists, tuples, and strings.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": true,\n            \"category\": {\n                \"id\": 3,\n                \"name\": \"Code\",\n                \"slug\": \"code\"\n            },\n            \"explanation\": \"In Python, a 'for' loop iterates over any iterable object, including sequences like lists, tuples, and strings.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 30,\n            \"text\": \"How can you include related fields in a DRF serializer using depth?\",\n            \"question_type\": \"MC\",\n            \"choices\": [\n                {\n                    \"text\": \"Set the depth attribute in the serializer\",\n                    \"is_correct\": true\n                },\n                {\n                    \"text\": \"Use the ForeignKeySerializer class\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"Override the get_queryset() method\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"Use the @depth decorator\",\n                    \"is_correct\": false\n                }\n            ],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 5,\n                \"name\": \"Django\",\n                \"slug\": \"django\"\n            },\n            \"explanation\": \"To include related fields in a serializer, set the depth attribute, which controls how deep the relationships are serialized.\",\n            \"difficulty\": \"Medium\"\n        },\n        {\n            \"id\": 45,\n            \"text\": \"Which SQL clause can be used to group results by multiple columns simultaneously?\",\n            \"question_type\": \"MC\",\n            \"choices\": [\n                {\n                    \"text\": \"GROUP BY with multiple columns\",\n                    \"is_correct\": true\n                },\n                {\n                    \"text\": \"HAVING with multiple columns\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"JOIN with GROUP BY\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"UNION with GROUP BY\",\n                    \"is_correct\": false\n                }\n            ],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 4,\n                \"name\": \"SQL\",\n                \"slug\": \"sql\"\n            },\n            \"explanation\": \"The GROUP BY clause can be used to group data by multiple columns, allowing for more complex aggregations.\",\n            \"difficulty\": \"Hard\"\n        }\n    ]\n}"},{"id":"6678dbe1-4875-485d-ac2b-176d653f697e","name":"No Questions","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"title\": \"Quiz on General Knowledge\",\r\n    \"description\": \"A quiz to test your knowledge on various topics.\",\r\n    \"category\": 5\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/quizzes/create/"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 09 Jan 2025 01:14:44 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, PUT, DELETE, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"59"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"non_field_errors\": [\n        \"At least one question is required.\"\n    ]\n}"},{"id":"fc4b8b86-e2ec-4ff9-a557-85fd43d91734","name":"Invalid Category","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"title\": \"Quiz on General Knowledge\",\r\n    \"description\": \"A quiz to test your knowledge on various topics.\",\r\n    \"category\": \"Doesn't exist\",\r\n    \"questions\": [30, 45, 112]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/quizzes/create/"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 09 Jan 2025 01:16:07 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, PUT, DELETE, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"37"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"category\": \"Invalid category slug.\"\n}"}],"_postman_id":"cdd2cf37-2a4b-4e4d-956d-8498cc815059"},{"name":"View Certain Quiz","id":"0965a24e-bd9c-44a2-895f-bb7a324fa665","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://quizapi.up.railway.app/v1/quizzes/2/","description":"<h3 id=\"get-quizzesid\">GET /quizzes/id/</h3>\n<p>This endpoint retrieves the details of a specific quiz.</p>\n<h4 id=\"request\">Request</h4>\n<p>No request body is required for this endpoint.</p>\n<h4 id=\"response\">Response</h4>\n<p>The response will be a JSON object with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"number\",\n  \"title\": \"string\",\n  \"description\": \"string\",\n  \"category\": {\n    \"id\": \"number\",\n    \"name\": \"string\",\n    \"slug\": \"string\"\n  },\n  \"number_of_questions\": \"number\",\n  \"questions\": [\n    {\n      \"id\": \"number\",\n      \"text\": \"string\",\n      \"question_type\": \"string\",\n      \"choices\": [\"string\"],\n      \"matching_pairs\": [\n        {\n          \"left\": \"string\",\n          \"right\": \"string\"\n        }\n      ],\n      \"ordering_items\": [\"string\"],\n      \"tf_correct_answer\": \"boolean\",\n      \"category\": {\n        \"id\": \"number\",\n        \"name\": \"string\",\n        \"slug\": \"string\"\n      },\n      \"explanation\": \"string\",\n      \"difficulty\": \"string\"\n    }\n  ]\n}\n\n</code></pre>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"b701ddaa-1a46-42df-b488-d49089072b81","id":"b701ddaa-1a46-42df-b488-d49089072b81","name":"Quizzes","type":"folder"}},"urlObject":{"path":["quizzes","2",""],"host":["https://quizapi.up.railway.app/v1"],"query":[{"disabled":true,"key":"difficulty","value":"Easy"}],"variable":[]}},"response":[{"id":"2d45edac-bcb5-4da2-9b16-502ee2e60f63","name":"Success","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://quizapi.up.railway.app/v1/quizzes/2/","host":["https://quizapi.up.railway.app/v1"],"path":["quizzes","2",""],"query":[{"key":"difficulty","value":"Easy","type":"text","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 08 Jan 2025 06:56:51 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, PUT, DELETE, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"1873"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 2,\n    \"title\": \"Quiz on General Knowledge\",\n    \"description\": \"A quiz to test your knowledge on various topics.\",\n    \"category\": {\n        \"id\": 5,\n        \"name\": \"Django\",\n        \"slug\": \"django\"\n    },\n    \"number_of_questions\": 3,\n    \"questions\": [\n        {\n            \"id\": 112,\n            \"text\": \"A for loop in Python can only iterate over sequences such as lists, tuples, and strings.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": true,\n            \"category\": {\n                \"id\": 3,\n                \"name\": \"Code\",\n                \"slug\": \"code\"\n            },\n            \"explanation\": \"In Python, a 'for' loop iterates over any iterable object, including sequences like lists, tuples, and strings.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 30,\n            \"text\": \"How can you include related fields in a DRF serializer using depth?\",\n            \"question_type\": \"MC\",\n            \"choices\": [\n                {\n                    \"text\": \"Set the depth attribute in the serializer\",\n                    \"is_correct\": true\n                },\n                {\n                    \"text\": \"Use the ForeignKeySerializer class\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"Override the get_queryset() method\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"Use the @depth decorator\",\n                    \"is_correct\": false\n                }\n            ],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 5,\n                \"name\": \"Django\",\n                \"slug\": \"django\"\n            },\n            \"explanation\": \"To include related fields in a serializer, set the depth attribute, which controls how deep the relationships are serialized.\",\n            \"difficulty\": \"Medium\"\n        },\n        {\n            \"id\": 45,\n            \"text\": \"Which SQL clause can be used to group results by multiple columns simultaneously?\",\n            \"question_type\": \"MC\",\n            \"choices\": [\n                {\n                    \"text\": \"GROUP BY with multiple columns\",\n                    \"is_correct\": true\n                },\n                {\n                    \"text\": \"HAVING with multiple columns\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"JOIN with GROUP BY\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"UNION with GROUP BY\",\n                    \"is_correct\": false\n                }\n            ],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 4,\n                \"name\": \"SQL\",\n                \"slug\": \"sql\"\n            },\n            \"explanation\": \"The GROUP BY clause can be used to group data by multiple columns, allowing for more complex aggregations.\",\n            \"difficulty\": \"Hard\"\n        }\n    ]\n}"},{"id":"6bd92d6e-ad96-4aa1-956d-ec741e42ec9a","name":"ID doesn't exist","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://quizapi.up.railway.app/v1/quizzes/44/","host":["https://quizapi.up.railway.app/v1"],"path":["quizzes","44",""],"query":[{"key":"difficulty","value":"Easy","type":"text","disabled":true}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 09 Jan 2025 01:20:21 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, PUT, DELETE, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"28"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"detail\": \"Quiz not found.\"\n}"}],"_postman_id":"0965a24e-bd9c-44a2-895f-bb7a324fa665"},{"name":"Update a quiz","id":"cce246e9-eb19-4ce6-a10d-76c9ce7165a4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"title\": \"my quiz\",\r\n    \"description\": \"A quiz to test your knowledge on various topics.\",\r\n    \"category\": \"django\",\r\n    \"questions\": [112, 30, 45]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/quizzes/2/","description":"<h3 id=\"update-quiz\">Update Quiz</h3>\n<h3 id=\"put-quizzesquiz_id\">PUT /quizzes/quiz_id/</h3>\n<p>This endpoint allows the user to update an existing quiz by sending an HTTP PUT request to the specified URL ending with the id of the quiz.</p>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><p><strong>title</strong> (string): The title of the quiz.</p>\n</li>\n<li><p><strong>description</strong> (string): A brief description of the quiz.</p>\n</li>\n<li><p><strong>category</strong> (string): The category of the quiz.</p>\n</li>\n<li><p><strong>questions</strong> (array): An array of question IDs associated with the quiz.</p>\n</li>\n</ul>\n<p>Important note: you can't edit a quiz you didn't create.</p>\n<h4 id=\"response\">Response</h4>\n<p>The response will be in JSON format and will include the following fields:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": 0,\n  \"title\": \"\",\n  \"description\": \"\",\n  \"category\": {\n    \"id\": 0,\n    \"name\": \"\",\n    \"slug\": \"\"\n  },\n  \"number_of_questions\": 0,\n  \"questions\": [\n    {\n      \"id\": 0,\n      \"text\": \"\",\n      \"question_type\": \"\",\n      \"choices\": [],\n      \"matching_pairs\": [],\n      \"ordering_items\": [],\n      \"tf_correct_answer\": true,\n      \"category\": {\n        \"id\": 0,\n        \"name\": \"\",\n        \"slug\": \"\"\n      },\n      \"explanation\": \"\",\n      \"difficulty\": \"\"\n    }\n  ]\n}\n\n</code></pre>\n<p>The response schema includes fields for the updated quiz, such as the ID, title, description, category, number of questions, and details of the questions associated with the quiz.</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"b701ddaa-1a46-42df-b488-d49089072b81","id":"b701ddaa-1a46-42df-b488-d49089072b81","name":"Quizzes","type":"folder"}},"urlObject":{"path":["quizzes","2",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"a13424ea-2746-479e-b3be-5f250f6a5ed1","name":"Success","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"title\": \"my quiz\",\r\n    \"description\": \"A quiz to test your knowledge on various topics.\",\r\n    \"category\": \"django\",\r\n    \"questions\": [112, 30, 45]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/quizzes/2/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 08 Jan 2025 07:05:26 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, PUT, DELETE, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"1855"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 2,\n    \"title\": \"my quiz\",\n    \"description\": \"A quiz to test your knowledge on various topics.\",\n    \"category\": {\n        \"id\": 5,\n        \"name\": \"Django\",\n        \"slug\": \"django\"\n    },\n    \"number_of_questions\": 3,\n    \"questions\": [\n        {\n            \"id\": 112,\n            \"text\": \"A for loop in Python can only iterate over sequences such as lists, tuples, and strings.\",\n            \"question_type\": \"TF\",\n            \"choices\": [],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": true,\n            \"category\": {\n                \"id\": 3,\n                \"name\": \"Code\",\n                \"slug\": \"code\"\n            },\n            \"explanation\": \"In Python, a 'for' loop iterates over any iterable object, including sequences like lists, tuples, and strings.\",\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 30,\n            \"text\": \"How can you include related fields in a DRF serializer using depth?\",\n            \"question_type\": \"MC\",\n            \"choices\": [\n                {\n                    \"text\": \"Set the depth attribute in the serializer\",\n                    \"is_correct\": true\n                },\n                {\n                    \"text\": \"Use the ForeignKeySerializer class\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"Override the get_queryset() method\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"Use the @depth decorator\",\n                    \"is_correct\": false\n                }\n            ],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 5,\n                \"name\": \"Django\",\n                \"slug\": \"django\"\n            },\n            \"explanation\": \"To include related fields in a serializer, set the depth attribute, which controls how deep the relationships are serialized.\",\n            \"difficulty\": \"Medium\"\n        },\n        {\n            \"id\": 45,\n            \"text\": \"Which SQL clause can be used to group results by multiple columns simultaneously?\",\n            \"question_type\": \"MC\",\n            \"choices\": [\n                {\n                    \"text\": \"GROUP BY with multiple columns\",\n                    \"is_correct\": true\n                },\n                {\n                    \"text\": \"HAVING with multiple columns\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"JOIN with GROUP BY\",\n                    \"is_correct\": false\n                },\n                {\n                    \"text\": \"UNION with GROUP BY\",\n                    \"is_correct\": false\n                }\n            ],\n            \"matching_pairs\": [],\n            \"ordering_items\": [],\n            \"tf_correct_answer\": false,\n            \"category\": {\n                \"id\": 4,\n                \"name\": \"SQL\",\n                \"slug\": \"sql\"\n            },\n            \"explanation\": \"The GROUP BY clause can be used to group data by multiple columns, allowing for more complex aggregations.\",\n            \"difficulty\": \"Hard\"\n        }\n    ]\n}"}],"_postman_id":"cce246e9-eb19-4ce6-a10d-76c9ce7165a4"},{"name":"Delete a quiz","id":"a947635e-bad6-4358-a08e-2bf2b58ae615","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"https://quizapi.up.railway.app/v1/quizzes/2/","description":"<h3 id=\"delete-quiz\">Delete Quiz</h3>\n<h3 id=\"delete-quizzesquiz_id\">DELETE /quizzes/quiz_id/</h3>\n<p>This endpoint is used to delete a specific quiz.</p>\n<p>Important note: you can't delete a quiz you didn't create.</p>\n<h4 id=\"request-body\">Request Body</h4>\n<p>This request does not require a request body.</p>\n<h4 id=\"response\">Response</h4>\n<ul>\n<li><p>Status: 204</p>\n</li>\n<li><p>Content-Type: application/json</p>\n</li>\n<li><p>{ \"detail\": \"\"}</p>\n</li>\n</ul>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"b701ddaa-1a46-42df-b488-d49089072b81","id":"b701ddaa-1a46-42df-b488-d49089072b81","name":"Quizzes","type":"folder"}},"urlObject":{"path":["quizzes","2",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"794ab6d6-712b-4753-8d3b-0bf3672fd8a4","name":"Success","originalRequest":{"method":"DELETE","header":[],"url":"https://quizapi.up.railway.app/v1/quizzes/2/"},"status":"No Content","code":204,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 08 Jan 2025 07:07:31 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, PUT, DELETE, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"39"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"detail\": \"Quiz deleted successfully.\"\n}"}],"_postman_id":"a947635e-bad6-4358-a08e-2bf2b58ae615"},{"name":"Quiz list and filtering","id":"65808160-ed08-4208-bb7c-38c0eab65932","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://quizapi.up.railway.app/v1/quizzes/?category=django&limit=5","description":"<h3 id=\"request-description\">Request Description</h3>\n<p>This endpoint retrieves a list of quizzes based on the specified category and limit (optional).</p>\n<ul>\n<li><p><code>category</code> (query parameter): Specifies the category of the quizzes to retrieve.</p>\n<ul>\n<li><p>category can be</p>\n<ul>\n<li><p>integer representing the id of the wanted category</p>\n</li>\n<li><p>string representing the slug of the wanted category</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p><code>limit</code> (query parameter): Specifies the maximum number of quizzes to be returned. default is 25.</p>\n<ul>\n<li>limit can't be less than 1 or larger than 100.</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<p>This request does not contain a request body.</p>\n<h3 id=\"response-body-json-schema\">Response Body (JSON Schema)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"array\",\n  \"items\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"id\": {\n        \"type\": \"number\"\n      },\n      \"title\": {\n        \"type\": \"string\"\n      },\n      \"description\": {\n        \"type\": \"string\"\n      },\n      \"category\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"id\": {\n            \"type\": \"number\"\n          },\n          \"name\": {\n            \"type\": \"string\"\n          },\n          \"slug\": {\n            \"type\": \"string\"\n          }\n        }\n      },\n      \"number_of_questions\": {\n        \"type\": \"number\"\n      },\n      \"questions\": {\n        \"type\": \"array\",\n        \"items\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"id\": {\n              \"type\": \"number\"\n            },\n            \"text\": {\n              \"type\": \"string\"\n            },\n            \"question_type\": {\n              \"type\": \"string\"\n            },\n            \"choices\": {\n              \"type\": \"array\"\n            },\n            \"matching_pairs\": {\n              \"type\": \"array\"\n            },\n            \"ordering_items\": {\n              \"type\": \"array\"\n            },\n            \"tf_correct_answer\": {\n              \"type\": \"boolean\"\n            },\n            \"category\": {\n              \"type\": \"object\",\n              \"properties\": {\n                \"id\": {\n                  \"type\": \"number\"\n                },\n                \"name\": {\n                  \"type\": \"string\"\n                },\n                \"slug\": {\n                  \"type\": \"string\"\n                }\n              }\n            },\n            \"explanation\": {\n              \"type\": \"string\"\n            },\n            \"difficulty\": {\n              \"type\": \"string\"\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n</code></pre>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"b701ddaa-1a46-42df-b488-d49089072b81","id":"b701ddaa-1a46-42df-b488-d49089072b81","name":"Quizzes","type":"folder"}},"urlObject":{"path":["quizzes",""],"host":["https://quizapi.up.railway.app/v1"],"query":[{"key":"category","value":"django"},{"key":"limit","value":"5"}],"variable":[]}},"response":[{"id":"5fd39a73-277f-43b4-9ffc-fa69ca9f0c62","name":"Success","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://quizapi.up.railway.app/v1/quizzes/?category=django&limit=5","host":["https://quizapi.up.railway.app/v1"],"path":["quizzes",""],"query":[{"key":"category","value":"django"},{"key":"limit","value":"5"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 08 Jan 2025 06:53:10 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"3749"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"id\": 1,\n        \"title\": \"Quiz on General Knowledge\",\n        \"description\": \"A quiz to test your knowledge on various topics.\",\n        \"category\": {\n            \"id\": 5,\n            \"name\": \"Django\",\n            \"slug\": \"django\"\n        },\n        \"number_of_questions\": 3,\n        \"questions\": [\n            {\n                \"id\": 112,\n                \"text\": \"A for loop in Python can only iterate over sequences such as lists, tuples, and strings.\",\n                \"question_type\": \"TF\",\n                \"choices\": [],\n                \"matching_pairs\": [],\n                \"ordering_items\": [],\n                \"tf_correct_answer\": true,\n                \"category\": {\n                    \"id\": 3,\n                    \"name\": \"Code\",\n                    \"slug\": \"code\"\n                },\n                \"explanation\": \"In Python, a 'for' loop iterates over any iterable object, including sequences like lists, tuples, and strings.\",\n                \"difficulty\": \"Not rated\"\n            },\n            {\n                \"id\": 30,\n                \"text\": \"How can you include related fields in a DRF serializer using depth?\",\n                \"question_type\": \"MC\",\n                \"choices\": [\n                    {\n                        \"text\": \"Set the depth attribute in the serializer\",\n                        \"is_correct\": true\n                    },\n                    {\n                        \"text\": \"Use the ForeignKeySerializer class\",\n                        \"is_correct\": false\n                    },\n                    {\n                        \"text\": \"Override the get_queryset() method\",\n                        \"is_correct\": false\n                    },\n                    {\n                        \"text\": \"Use the @depth decorator\",\n                        \"is_correct\": false\n                    }\n                ],\n                \"matching_pairs\": [],\n                \"ordering_items\": [],\n                \"tf_correct_answer\": false,\n                \"category\": {\n                    \"id\": 5,\n                    \"name\": \"Django\",\n                    \"slug\": \"django\"\n                },\n                \"explanation\": \"To include related fields in a serializer, set the depth attribute, which controls how deep the relationships are serialized.\",\n                \"difficulty\": \"Medium\"\n            },\n            {\n                \"id\": 45,\n                \"text\": \"Which SQL clause can be used to group results by multiple columns simultaneously?\",\n                \"question_type\": \"MC\",\n                \"choices\": [\n                    {\n                        \"text\": \"GROUP BY with multiple columns\",\n                        \"is_correct\": true\n                    },\n                    {\n                        \"text\": \"HAVING with multiple columns\",\n                        \"is_correct\": false\n                    },\n                    {\n                        \"text\": \"JOIN with GROUP BY\",\n                        \"is_correct\": false\n                    },\n                    {\n                        \"text\": \"UNION with GROUP BY\",\n                        \"is_correct\": false\n                    }\n                ],\n                \"matching_pairs\": [],\n                \"ordering_items\": [],\n                \"tf_correct_answer\": false,\n                \"category\": {\n                    \"id\": 4,\n                    \"name\": \"SQL\",\n                    \"slug\": \"sql\"\n                },\n                \"explanation\": \"The GROUP BY clause can be used to group data by multiple columns, allowing for more complex aggregations.\",\n                \"difficulty\": \"Hard\"\n            }\n        ]\n    },\n    {\n        \"id\": 2,\n        \"title\": \"Quiz on General Knowledge\",\n        \"description\": \"A quiz to test your knowledge on various topics.\",\n        \"category\": {\n            \"id\": 5,\n            \"name\": \"Django\",\n            \"slug\": \"django\"\n        },\n        \"number_of_questions\": 3,\n        \"questions\": [\n            {\n                \"id\": 112,\n                \"text\": \"A for loop in Python can only iterate over sequences such as lists, tuples, and strings.\",\n                \"question_type\": \"TF\",\n                \"choices\": [],\n                \"matching_pairs\": [],\n                \"ordering_items\": [],\n                \"tf_correct_answer\": true,\n                \"category\": {\n                    \"id\": 3,\n                    \"name\": \"Code\",\n                    \"slug\": \"code\"\n                },\n                \"explanation\": \"In Python, a 'for' loop iterates over any iterable object, including sequences like lists, tuples, and strings.\",\n                \"difficulty\": \"Not rated\"\n            },\n            {\n                \"id\": 30,\n                \"text\": \"How can you include related fields in a DRF serializer using depth?\",\n                \"question_type\": \"MC\",\n                \"choices\": [\n                    {\n                        \"text\": \"Set the depth attribute in the serializer\",\n                        \"is_correct\": true\n                    },\n                    {\n                        \"text\": \"Use the ForeignKeySerializer class\",\n                        \"is_correct\": false\n                    },\n                    {\n                        \"text\": \"Override the get_queryset() method\",\n                        \"is_correct\": false\n                    },\n                    {\n                        \"text\": \"Use the @depth decorator\",\n                        \"is_correct\": false\n                    }\n                ],\n                \"matching_pairs\": [],\n                \"ordering_items\": [],\n                \"tf_correct_answer\": false,\n                \"category\": {\n                    \"id\": 5,\n                    \"name\": \"Django\",\n                    \"slug\": \"django\"\n                },\n                \"explanation\": \"To include related fields in a serializer, set the depth attribute, which controls how deep the relationships are serialized.\",\n                \"difficulty\": \"Medium\"\n            },\n            {\n                \"id\": 45,\n                \"text\": \"Which SQL clause can be used to group results by multiple columns simultaneously?\",\n                \"question_type\": \"MC\",\n                \"choices\": [\n                    {\n                        \"text\": \"GROUP BY with multiple columns\",\n                        \"is_correct\": true\n                    },\n                    {\n                        \"text\": \"HAVING with multiple columns\",\n                        \"is_correct\": false\n                    },\n                    {\n                        \"text\": \"JOIN with GROUP BY\",\n                        \"is_correct\": false\n                    },\n                    {\n                        \"text\": \"UNION with GROUP BY\",\n                        \"is_correct\": false\n                    }\n                ],\n                \"matching_pairs\": [],\n                \"ordering_items\": [],\n                \"tf_correct_answer\": false,\n                \"category\": {\n                    \"id\": 4,\n                    \"name\": \"SQL\",\n                    \"slug\": \"sql\"\n                },\n                \"explanation\": \"The GROUP BY clause can be used to group data by multiple columns, allowing for more complex aggregations.\",\n                \"difficulty\": \"Hard\"\n            }\n        ]\n    }\n]"}],"_postman_id":"65808160-ed08-4208-bb7c-38c0eab65932"}],"id":"b701ddaa-1a46-42df-b488-d49089072b81","description":"<p>This folder contains endpoints for managing quizzes, retrieving quiz data, and accessing random quizzes. These endpoints are designed to handle both user-generated quizzes and general quiz-related functionalities.</p>\n<h3 id=\"base-url\"><strong>Base URL</strong></h3>\n<p>All endpoints in this folder are prefixed with <code>/v1/quizzes/</code>.</p>\n<hr />\n<h3 id=\"endpoints-overview\"><strong>Endpoints Overview</strong></h3>\n<ol>\n<li><p><strong><code>/</code></strong> - Retrieves a filtered list of quizzes.</p>\n</li>\n<li><p><strong><code>create/</code></strong> - Allows authenticated users to create a new quiz.</p>\n</li>\n<li><p><strong><code>quiz_id/</code></strong> - Fetches, updates, or deletes a specific quiz based on its ID.</p>\n</li>\n</ol>\n<hr />\n<h3 id=\"general-information\"><strong>General Information</strong></h3>\n<ul>\n<li><p><strong>Response Format:</strong><br />  Responses are provided in JSON format. Each endpoint includes both success and error responses with detailed messages and relevant HTTP status codes.</p>\n</li>\n<li><p><strong>Error Handling:</strong><br />  Common errors include:</p>\n<ul>\n<li><p><strong>401 Unauthorized:</strong> When the token is invalid or missing.</p>\n</li>\n<li><p><strong>400 Bad Request:</strong> When required fields are missing or invalid.</p>\n</li>\n<li><p><strong>404 Not Found:</strong> When the requested resource does not exist.</p>\n</li>\n</ul>\n</li>\n</ul>\n<hr />\n<h3 id=\"endpoint-descriptions\"><strong>Endpoint Descriptions</strong></h3>\n<ul>\n<li><p><strong><code>/</code></strong></p>\n<ul>\n<li><p>Retrieves a list of quizzes based on filters (e.g., category, difficulty).</p>\n</li>\n<li><p><strong>Method:</strong> GET</p>\n</li>\n<li><p><strong>Authentication:</strong> Not required.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>create/</code></strong></p>\n<ul>\n<li><p>Allows users to create a new quiz by providing necessary details such as title, category, and questions.</p>\n</li>\n<li><p><strong>Method:</strong> POST</p>\n</li>\n<li><p><strong>Authentication:</strong> Required (via <code>token</code> header).</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>quiz_id/</code></strong></p>\n<ul>\n<li><p>Handles operations for a specific quiz (replace the word quiz_id with the actual id).</p>\n<ul>\n<li><p><strong>GET:</strong> Fetches the details of a specific quiz.</p>\n</li>\n<li><p><strong>PUT:</strong> Updates the details of a specific quiz.</p>\n</li>\n<li><p><strong>DELETE:</strong> Deletes a specific quiz.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Methods:</strong> GET, PUT, DELETE</p>\n</li>\n<li><p><strong>Authentication:</strong> Required (via <code>token</code> header).</p>\n</li>\n</ul>\n</li>\n</ul>\n<hr />\n<h3 id=\"usage-notes\"><strong>Usage Notes</strong></h3>\n<ul>\n<li><p><strong>Token Management:</strong><br />  For authenticated endpoints, ensure the token is valid and included in the request header.</p>\n</li>\n<li><p><strong>Quiz ID Requirements:</strong><br />  For endpoints requiring <code>quiz_id</code>, ensure the ID corresponds to an existing quiz.</p>\n</li>\n<li><p><strong>Data Validation:</strong><br />  Provide all required fields when creating or updating quizzes to avoid validation errors.</p>\n</li>\n</ul>\n<hr />\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"id":"5c5a0edf-e540-464e-b370-9d488c9e5935","type":"text/javascript","packages":{},"exec":[""]}},{"listen":"test","script":{"id":"27c00d2c-c1c5-4532-8fbb-7d8ae3917720","type":"text/javascript","packages":{},"exec":[""]}}],"_postman_id":"b701ddaa-1a46-42df-b488-d49089072b81"},{"name":"Categories","item":[{"name":"View Categories","id":"f8e5b3e8-2ad8-4c78-a8ee-555df60fd556","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://quizapi.up.railway.app/v1/categories/","description":"<h3 id=\"get-categories\">Get Categories</h3>\n<p>This endpoint retrieves a list of available categories.</p>\n<h4 id=\"request\">Request</h4>\n<ul>\n<li><p>Method: GET</p>\n</li>\n<li><p>URL: <code>https://quizapi.up.railway.app/v1/categories/</code></p>\n</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<ul>\n<li><p>Status: 200</p>\n</li>\n<li><p>Content-Type: application/json</p>\n</li>\n</ul>\n<p>Example response body:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"id\": 0,\n        \"name\": \"\",\n        \"slug\": \"\",\n        \"description\": \"\",\n        \"number_of_questions\": 0,\n        \"number_of_quizzes\": 0\n    }\n]\n\n</code></pre>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"dd4a7156-b860-4402-a7e6-a245c7bee3d9","id":"dd4a7156-b860-4402-a7e6-a245c7bee3d9","name":"Categories","type":"folder"}},"urlObject":{"path":["categories",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"0ccae543-c429-4b43-94d0-85561167668e","name":"Success","originalRequest":{"method":"GET","header":[],"url":"https://quizapi.up.railway.app/v1/categories/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 08 Jan 2025 07:48:36 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"992"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"id\": 3,\n        \"name\": \"Code\",\n        \"slug\": \"code\",\n        \"description\": \"Questions and tips about coding practices.\",\n        \"number_of_questions\": 47,\n        \"number_of_quizzes\": 0\n    },\n    {\n        \"id\": 4,\n        \"name\": \"SQL\",\n        \"slug\": \"sql\",\n        \"description\": \"Structured Query Language and database management.\",\n        \"number_of_questions\": 53,\n        \"number_of_quizzes\": 0\n    },\n    {\n        \"id\": 5,\n        \"name\": \"Django\",\n        \"slug\": \"django\",\n        \"description\": \"Everything related to Django, the Python web framework.\",\n        \"number_of_questions\": 53,\n        \"number_of_quizzes\": 1\n    },\n    {\n        \"id\": 6,\n        \"name\": \"Uncategorized\",\n        \"slug\": \"uncategorized\",\n        \"description\": \"Questions that don't fit into other categories.\",\n        \"number_of_questions\": 22,\n        \"number_of_quizzes\": 0\n    },\n    {\n        \"id\": 7,\n        \"name\": \"Postgres\",\n        \"slug\": \"postgres\",\n        \"description\": \"Topics related to PostgreSQL, an advanced relational database system.\",\n        \"number_of_questions\": 53,\n        \"number_of_quizzes\": 0\n    },\n    {\n        \"id\": 8,\n        \"name\": \"NodeJs\",\n        \"slug\": \"nodejs\",\n        \"description\": \"Questions and discussions about Node.js, a JavaScript runtime built on Chrome's V8 engine.\",\n        \"number_of_questions\": 56,\n        \"number_of_quizzes\": 0\n    }\n]"}],"_postman_id":"f8e5b3e8-2ad8-4c78-a8ee-555df60fd556"},{"name":"View Certain category","id":"cecf473f-ddd7-469f-819d-1b642c512bf6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://quizapi.up.railway.app/v1/categories/nodejs/","description":"<h3 id=\"retrieve-category-details\">Retrieve Category Details</h3>\n<p>This endpoint makes an HTTP GET request to retrieve the details of the category. you can replace nodejs with the id or the slug of any available category.</p>\n<h4 id=\"request\">Request</h4>\n<p>No request body is required for this endpoint.</p>\n<ul>\n<li><p><strong>URL</strong></p>\n<ul>\n<li><code>https://quizapi.up.railway.app/v1/categories/category/</code></li>\n</ul>\n</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<p>The response will be a JSON object with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"object\",\n  \"properties\": {\n    \"id\": {\n      \"type\": \"integer\"\n    },\n    \"name\": {\n      \"type\": \"string\"\n    },\n    \"slug\": {\n      \"type\": \"string\"\n    },\n    \"description\": {\n      \"type\": \"string\"\n    },\n    \"number_of_questions\": {\n      \"type\": \"integer\"\n    },\n    \"number_of_quizzes\": {\n      \"type\": \"integer\"\n    }\n  }\n}\n\n</code></pre>\n<p>The response will include the following fields:</p>\n<ul>\n<li><p><code>id</code> (integer): The unique identifier of the category.</p>\n</li>\n<li><p><code>name</code> (string): The name of the category.</p>\n</li>\n<li><p><code>slug</code> (string): The slug of the category.</p>\n</li>\n<li><p><code>description</code> (string): The description of the category.</p>\n</li>\n<li><p><code>number_of_questions</code> (integer): The number of questions in the category.</p>\n</li>\n<li><p><code>number_of_quizzes</code> (integer): The number of quizzes in the category.</p>\n</li>\n</ul>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"dd4a7156-b860-4402-a7e6-a245c7bee3d9","id":"dd4a7156-b860-4402-a7e6-a245c7bee3d9","name":"Categories","type":"folder"}},"urlObject":{"path":["categories","nodejs",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"83fef6e7-41ed-4e9c-970e-ae7684fed9f8","name":"Success","originalRequest":{"method":"GET","header":[],"url":"https://quizapi.up.railway.app/v1/categories/nodejs/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 08 Jan 2025 06:15:43 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"194"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 8,\n    \"name\": \"NodeJs\",\n    \"slug\": \"nodejs\",\n    \"description\": \"Questions and discussions about Node.js, a JavaScript runtime built on Chrome's V8 engine.\",\n    \"number_of_questions\": 55,\n    \"number_of_quizzes\": 0\n}"},{"id":"6656fdbb-d1ab-402a-9e0b-ad19a75f1784","name":"Failure","originalRequest":{"method":"GET","header":[],"url":"https://quizapi.up.railway.app/v1/categories/non-existent/"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 13 Jan 2025 10:18:00 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, PUT, DELETE, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"49"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"detail\": \"No Category matches the given query.\"\n}"}],"_postman_id":"cecf473f-ddd7-469f-819d-1b642c512bf6"},{"name":"Add a new Category","id":"e846a0d7-8c6e-4dde-8fcd-923df8f99842","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"My brand new category!!\",\r\n    \"description\": \"This is an attempt to test my endpoint.\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/categories/create/","description":"<h3 id=\"create-category\">Create Category</h3>\n<p>This endpoint allows the creation of a new category.</p>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><p><code>name</code> (string - mandatory): The name of the new category.</p>\n</li>\n<li><p><code>description</code> (string - mandatory): A description for the new category.</p>\n</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<p>Upon successful creation, the server responds with a status code of 201 and a JSON object containing the details of the newly created category, including:</p>\n<ul>\n<li><p><code>id</code> (integer): The unique identifier for the category.</p>\n</li>\n<li><p><code>name</code> (string): The name of the category.</p>\n</li>\n<li><p><code>slug</code> (string): The slug for the category.</p>\n</li>\n<li><p><code>description</code> (string): The description of the category.</p>\n</li>\n<li><p><code>number_of_questions</code> (integer): The number of questions in the category.</p>\n</li>\n<li><p><code>number_of_quizzes</code> (integer): The number of quizzes in the category.</p>\n</li>\n</ul>\n<p>Example response:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": 0,\n  \"name\": \"\",\n  \"slug\": \"\",\n  \"description\": \"\",\n  \"number_of_questions\": 0,\n  \"number_of_quizzes\": 0\n}\n\n</code></pre>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"dd4a7156-b860-4402-a7e6-a245c7bee3d9","id":"dd4a7156-b860-4402-a7e6-a245c7bee3d9","name":"Categories","type":"folder"}},"urlObject":{"path":["categories","create",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"fa35a2d1-2ea5-43ac-9c22-3e9ab9d374f4","name":"Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"My brand new category\",\r\n    \"description\": \"This is an attempt to test my endpoint.\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/categories/create/"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 13 Jan 2025 10:15:29 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, PUT, DELETE, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"172"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 9,\n    \"name\": \"My brand new category\",\n    \"slug\": \"my-brand-new-category\",\n    \"description\": \"This is an attempt to test my endpoint.\",\n    \"number_of_questions\": 0,\n    \"number_of_quizzes\": 0\n}"},{"id":"6a583e1f-075d-450b-a834-7e158411dd66","name":"Missing data","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"category without description.\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/categories/create/"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 13 Jan 2025 10:20:23 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, PUT, DELETE, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"43"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"description\": [\n        \"This field is required.\"\n    ]\n}"},{"id":"a47b2d5e-5267-43b9-ac00-5429d5fe3fa1","name":"Duplication","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"My brand new category\",\r\n    \"description\": \"This is an attempt to test my endpoint.\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/categories/create/"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 13 Jan 2025 10:30:48 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, PUT, DELETE, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"49"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"name\": \"Category with this name already exists\"\n}"}],"_postman_id":"e846a0d7-8c6e-4dde-8fcd-923df8f99842"},{"name":"Edit a Category","id":"c556460e-0554-4b5c-94dc-8f48c971401b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"I changed my mind\",\r\n    \"slug\": \"trying to change the slug\",\r\n    \"description\": \"This is an attempt to test my endpoint.\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/categories/my-brand-new-category-8/","description":"<h3 id=\"post-categoriesidentifier\">POST /categories/identifier/</h3>\n<p>This endpoint is used to update the details of a specific category.</p>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><p>name (text, required): The updated name of the category.</p>\n</li>\n<li><p>slug (text, shown as an example, not required).</p>\n</li>\n<li><p>description (text, required): The updated description of the category.</p>\n</li>\n</ul>\n<h4 id=\"response-201---created\">Response (201 - Created)</h4>\n<p>The response body follows the JSON schema below:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"object\",\n  \"properties\": {\n    \"id\": {\n      \"type\": \"integer\"\n    },\n    \"name\": {\n      \"type\": \"string\"\n    },\n    \"slug\": {\n      \"type\": \"string\"\n    },\n    \"description\": {\n      \"type\": \"string\"\n    },\n    \"number_of_questions\": {\n      \"type\": \"integer\"\n    },\n    \"number_of_quizzes\": {\n      \"type\": \"integer\"\n    }\n  }\n}\n\n</code></pre>\n<p>The response returns the updated details of the category, including the category ID, name, slug, description, number of questions, and number of quizzes.</p>\n","urlObject":{"path":["categories","my-brand-new-category-8",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"8a8e31de-0d2e-4dfd-98f1-e7a9b6469c86","name":"Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"I changed my mind\",\r\n    \"slug\": \"trying to change the slug\",\r\n    \"description\": \"This is an attempt to test my endpoint.\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/categories/9/"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 13 Jan 2025 10:23:12 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, PUT, DELETE, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"165"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 10,\n    \"name\": \"I changed my mind\",\n    \"slug\": \"i-changed-my-mind\",\n    \"description\": \"This is an attempt to test my endpoint.\",\n    \"number_of_questions\": 0,\n    \"number_of_quizzes\": 0\n}"}],"_postman_id":"c556460e-0554-4b5c-94dc-8f48c971401b"},{"name":"Delete a Category","id":"cc599ab0-ebce-46c5-95c4-944ddf74461a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://quizapi.up.railway.app/v1/categories/31/","description":"<p>The API endpoint sends an HTTP DELETE request to delete the category with the ID 9 or any other identifier. Upon successful deletion, the server returns a 204 status code with an empty JSON response body containing the key \"detail\". Below is the JSON schema for the response:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"object\",\n  \"properties\": {\n    \"detail\": {\n      \"type\": \"string\"\n    }\n  },\n  \"required\": [\"detail\"]\n}\n\n</code></pre>\n","urlObject":{"path":["categories","31",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"1add0410-98d3-418d-bec4-a0228c1252db","name":"Success","originalRequest":{"method":"DELETE","header":[],"url":"https://quizapi.up.railway.app/v1/categories/9/"},"status":"No Content","code":204,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 13 Jan 2025 11:15:36 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, PUT, DELETE, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"43"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"detail\": \"Category deleted successfully.\"\n}"},{"id":"72295815-76b8-4afd-a7d5-391137d923d8","name":"Wrong Query","originalRequest":{"method":"DELETE","header":[],"url":"https://quizapi.up.railway.app/v1/categories/doesn't-exist/"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 13 Jan 2025 11:17:14 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, PUT, DELETE, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"49"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"detail\": \"No Category matches the given query.\"\n}"},{"id":"7f97d55b-497c-4f4f-ad68-a2d9485985fb","name":"No Auth","originalRequest":{"method":"DELETE","header":[],"url":"https://quizapi.up.railway.app/v1/categories/9/"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 13 Jan 2025 11:18:43 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"WWW-Authenticate","value":"Token"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, PUT, DELETE, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"58"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"detail\": \"Authentication credentials were not provided.\"\n}"},{"id":"103f18a5-ad6a-4235-85e9-29a1b9927489","name":"No premission","originalRequest":{"method":"DELETE","header":[],"url":"https://quizapi.up.railway.app/v1/categories/15/"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 13 Jan 2025 11:26:08 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, PUT, DELETE, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"63"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"detail\": \"You do not have permission to perform this action.\"\n}"}],"_postman_id":"cc599ab0-ebce-46c5-95c4-944ddf74461a"}],"id":"dd4a7156-b860-4402-a7e6-a245c7bee3d9","description":"<p>This folder provides endpoints to manage and retrieve information about categories, quizzes, and questions associated with specific categories.</p>\n<hr />\n<h2 id=\"base-url\">Base URL</h2>\n<p>All endpoints in this folder are prefixed with <code>/v1/categories/</code>.</p>\n<hr />\n<h2 id=\"general-information\">General Information</h2>\n<ul>\n<li><p><strong>Authentication:</strong><br />  All endpoints require authentication. Include the token in the request header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>  token: &lt;your-api-token&gt;\n\n</code></pre></li>\n<li><p><strong>Response Format:</strong><br />  All responses are in JSON format, providing details about success or failure with appropriate HTTP status codes.</p>\n</li>\n<li><p><strong>Error Handling:</strong></p>\n<ul>\n<li><p><strong>401 Unauthorized:</strong> Token is missing or invalid.</p>\n</li>\n<li><p><strong>404 Not Found:</strong> The requested resource does not exist.</p>\n</li>\n<li><p><strong>400 Bad Request:</strong> Invalid data or malformed request.</p>\n</li>\n</ul>\n</li>\n</ul>\n<hr />\n<h2 id=\"endpoints-overview\">Endpoints Overview</h2>\n<ol>\n<li><p><strong><code>/</code></strong></p>\n<ul>\n<li><p>Retrieves a list of all categories.</p>\n</li>\n<li><p><strong>Method:</strong> GET</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>/create/</code></strong></p>\n<ul>\n<li><p>Creates a new category.</p>\n</li>\n<li><p><strong>Method:</strong> POST</p>\n</li>\n<li><p>Authentication: Required (with Admin role)</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>/</code></strong></p>\n<ul>\n<li><p>Retrieves, updates, or deletes a specific category by its identifier.</p>\n</li>\n<li><p><strong>Methods:</strong></p>\n<ul>\n<li><p><strong>GET:</strong> Retrieve details of a category.</p>\n</li>\n<li><p><strong>PUT:</strong> Update the category's information (Authentication required).</p>\n</li>\n<li><p><strong>DELETE:</strong> Delete the category (Authentication required).</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ol>\n<hr />\n<h2 id=\"usage-notes\">Usage Notes</h2>\n<h3 id=\"category-identifier\">Category Identifier</h3>\n<ul>\n<li>Ensure the matches a valid category. Otherwise, a <code>404 Not Found</code> error will be returned.</li>\n</ul>\n<h3 id=\"creating-a-category\">Creating a Category</h3>\n<ul>\n<li><p>The request body for <code>/create/</code> should include:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">  {\n      \"name\": \"string\",\n      \"description\": \"string (optional)\"\n  }\n\n</code></pre>\n</li>\n</ul>\n<h3 id=\"updating-a-category\">Updating a Category</h3>\n<ul>\n<li><p>The request body for updating a category (<code>PUT /</code>) should include:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">  {\n      \"name\": \"string (optional)\",\n      \"description\": \"string (optional)\"\n  }\n\n</code></pre>\n</li>\n</ul>\n<h3 id=\"pagination-for-quizzes-and-questions\">Pagination for Quizzes and Questions</h3>\n<ul>\n<li>For endpoints returning multiple results (<code>/quizzes/</code> and <code>/questions/</code>), use the parameter to limit the number of results retrieved.</li>\n</ul>\n<hr />\n<h2 id=\"example-requests\">Example Requests</h2>\n<h3 id=\"retrieve-all-categories\">Retrieve all categories</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /v1/categories/\nHeaders:\ntoken: &lt;your-api-token&gt;\n\n</code></pre><h3 id=\"create-a-new-category\">Create a new category</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST /v1/categories/create/\nHeaders:\ntoken: &lt;your-api-token&gt;\nBody:\n{\n    \"name\": \"Science\",\n    \"description\": \"Category for science-related quizzes and questions\"\n}\n\n</code></pre><h3 id=\"update-a-specific-category\">Update a specific category</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>PUT /v1/categories/technology/\nHeaders:\ntoken: &lt;your-api-token&gt;\nBody:\n{\n    \"description\": \"Updated description for the technology category\"\n}\n\n</code></pre><h3 id=\"retrieve-quizzes-for-a-category\">Retrieve quizzes for a category</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /v1/categories/science/quizzes/\nHeaders:\ntoken: &lt;your-api-token&gt;\n\n</code></pre><h3 id=\"retrieve-a-limited-number-of-questions-for-a-category\">Retrieve a limited number of questions for a category</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /v1/categories/math/questions/5/\nHeaders:\ntoken: &lt;your-api-token&gt;\n\n</code></pre><h3 id=\"delete-a-category\">Delete a category</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>DELETE /v1/categories/science/\nHeaders:\ntoken: &lt;your-api-token&gt;\n\n</code></pre><hr />\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"id":"8aa11604-48b7-4a31-8592-87f922f88216","type":"text/javascript","packages":{},"exec":[""]}},{"listen":"test","script":{"id":"26b77777-59ea-4b2a-8ff2-931d70ab0a97","type":"text/javascript","packages":{},"exec":[""]}}],"_postman_id":"dd4a7156-b860-4402-a7e6-a245c7bee3d9"},{"name":"Attempts","item":[{"name":"get a quiz","id":"4c91d056-80c2-4e03-824c-dfe5ba989a9a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"c94a0c99-38a5-41b7-897b-202a663e11f7","id":"c94a0c99-38a5-41b7-897b-202a663e11f7","name":"Attempts","type":"folder"}},"urlObject":{"query":[],"variable":[]},"url":""},"response":[{"id":"47289655-efca-41c5-a70b-828e5be9edab","name":"get a quiz","originalRequest":{"method":"GET","header":[],"url":"https://quizapi.up.railway.app/v1/attempts/24/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 24 Jan 2025 14:08:34 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"4013"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 24,\n    \"questions\": [\n        {\n            \"id\": 268,\n            \"text\": \"Arrange the steps to read a file in Node.js.\",\n            \"question_type\": \"OR\",\n            \"details\": [\n                \"Require the 'fs' module in your script\",\n                \"Use 'fs.readFile()' or 'fs.readFileSync()' to read the file\",\n                \"Provide a callback function to handle the file content\",\n                \"Process the file data as needed\"\n            ],\n            \"category\": {\n                \"id\": 8,\n                \"name\": \"NodeJs\",\n                \"slug\": \"nodejs\"\n            },\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 186,\n            \"text\": \"Match the SQL keyword with its purpose.\",\n            \"question_type\": \"MT\",\n            \"details\": {\n                \"items\": [\n                    \"SELECT\",\n                    \"INSERT\",\n                    \"UPDATE\",\n                    \"DELETE\"\n                ],\n                \"matches\": [\n                    \"Retrieves data from a database\",\n                    \"Adds new records to a table\",\n                    \"Modifies existing records\",\n                    \"Removes records from a table\"\n                ]\n            },\n            \"category\": {\n                \"id\": 4,\n                \"name\": \"SQL\",\n                \"slug\": \"sql\"\n            },\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 206,\n            \"text\": \"Match the computer-related term with its description.\",\n            \"question_type\": \"MT\",\n            \"details\": {\n                \"items\": [\n                    \"CPU\",\n                    \"RAM\",\n                    \"SSD\",\n                    \"GPU\"\n                ],\n                \"matches\": [\n                    \"Central Processing Unit\",\n                    \"Random Access Memory\",\n                    \"Solid State Drive\",\n                    \"Graphics Processing Unit\"\n                ]\n            },\n            \"category\": {\n                \"id\": 6,\n                \"name\": \"Uncategorized\",\n                \"slug\": \"uncategorized\"\n            },\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 221,\n            \"text\": \"Arrange the steps to create a REST API.\",\n            \"question_type\": \"OR\",\n            \"details\": [\n                \"Define the endpoints\",\n                \"Set up the server\",\n                \"Implement the API logic\",\n                \"Test the API\",\n                \"Document the API\"\n            ],\n            \"category\": {\n                \"id\": 3,\n                \"name\": \"Code\",\n                \"slug\": \"code\"\n            },\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 231,\n            \"text\": \"Arrange the steps to create a table in SQL.\",\n            \"question_type\": \"OR\",\n            \"details\": [\n                \"Write the CREATE TABLE statement\",\n                \"Define columns and their data types\",\n                \"Execute the statement\",\n                \"Verify the table creation\"\n            ],\n            \"category\": {\n                \"id\": 4,\n                \"name\": \"SQL\",\n                \"slug\": \"sql\"\n            },\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 106,\n            \"text\": \"The 'var' keyword is used to declare variables in Python.\",\n            \"question_type\": \"TF\",\n            \"details\": \"True/False\",\n            \"category\": {\n                \"id\": 3,\n                \"name\": \"Code\",\n                \"slug\": \"code\"\n            },\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 127,\n            \"text\": \"In Django, the 'urls.py' file is used to define URL routing patterns.\",\n            \"question_type\": \"TF\",\n            \"details\": \"True/False\",\n            \"category\": {\n                \"id\": 5,\n                \"name\": \"Django\",\n                \"slug\": \"django\"\n            },\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 128,\n            \"text\": \"Django's ORM (Object-Relational Mapping) allows you to query the database using Python code.\",\n            \"question_type\": \"TF\",\n            \"details\": \"True/False\",\n            \"category\": {\n                \"id\": 5,\n                \"name\": \"Django\",\n                \"slug\": \"django\"\n            },\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 129,\n            \"text\": \"In Django, a 'view' is responsible for rendering templates to display content to the user.\",\n            \"question_type\": \"TF\",\n            \"details\": \"True/False\",\n            \"category\": {\n                \"id\": 5,\n                \"name\": \"Django\",\n                \"slug\": \"django\"\n            },\n            \"difficulty\": \"Not rated\"\n        },\n        {\n            \"id\": 93,\n            \"text\": \"What is the purpose of the 'stdio' option in 'fork()'?\",\n            \"question_type\": \"MC\",\n            \"details\": [\n                \"It configures the input/output streams between the parent and child processes\",\n                \"It buffers the output of the child process\",\n                \"It determines the number of child processes that can be forked\",\n                \"It limits the memory usage of the child process\"\n            ],\n            \"category\": {\n                \"id\": 8,\n                \"name\": \"NodeJs\",\n                \"slug\": \"nodejs\"\n            },\n            \"difficulty\": \"Medium\"\n        },\n        {\n            \"id\": 57,\n            \"text\": \"Which approach best optimizes performance of recursive hierarchical queries with depth limits?\",\n            \"question_type\": \"MC\",\n            \"details\": [\n                \"Multiple joins\",\n                \"WITH RECURSIVE with indexed path and depth tracking\",\n                \"Stored procedure\",\n                \"Materialized path\"\n            ],\n            \"category\": {\n                \"id\": 7,\n                \"name\": \"Postgres\",\n                \"slug\": \"postgres\"\n            },\n            \"difficulty\": \"Hard\"\n        },\n        {\n            \"id\": 91,\n            \"text\": \"What is the role of the 'os.constants.signals' object in Node.js?\",\n            \"question_type\": \"MC\",\n            \"details\": [\n                \"Provides constants for process signals\",\n                \"Manages OS-level process priorities\",\n                \"Logs system signal usage\",\n                \"Schedules processes for execution\"\n            ],\n            \"category\": {\n                \"id\": 8,\n                \"name\": \"NodeJs\",\n                \"slug\": \"nodejs\"\n            },\n            \"difficulty\": \"Hard\"\n        },\n        {\n            \"id\": 21,\n            \"text\": \"How do you implement role-based access control for different fields in Django Admin?\",\n            \"question_type\": \"MC\",\n            \"details\": [\n                \"Override the get_fields() and get_readonly_fields() methods in ModelAdmin based on user role\",\n                \"Set role_based_access=True in ModelAdmin\",\n                \"Use the @role_access decorator\",\n                \"Override the get_queryset() method\"\n            ],\n            \"category\": {\n                \"id\": 5,\n                \"name\": \"Django\",\n                \"slug\": \"django\"\n            },\n            \"difficulty\": \"Hard\"\n        }\n    ]\n}"}],"_postman_id":"4c91d056-80c2-4e03-824c-dfe5ba989a9a"},{"name":"MCQ","id":"481f3aba-16dc-430b-806b-5fe53c326fe2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"answers\": [\r\n        {\r\n            \"question\": 93,\r\n            \"answer\": \"It configures the streams between the parent and child processes\"\r\n        },\r\n        {\r\n            \"question\": 57,\r\n            \"answer\": \"WITH RECURSIVE with indexed path and depth tracking\"\r\n        },\r\n        {\r\n            \"question\": 91,\r\n            \"answer\": \"Provides ***** for process signals\"\r\n        },\r\n        {\r\n            \"question\": 21,\r\n            \"answer\": \"Override the get_fields() and get_readonly_fields() methods in ModelAdmin based on user role\"\r\n        }\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/attempts/24/submit/","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"c94a0c99-38a5-41b7-897b-202a663e11f7","id":"c94a0c99-38a5-41b7-897b-202a663e11f7","name":"Attempts","type":"folder"}},"urlObject":{"path":["attempts","24","submit",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"f4811703-63e1-47eb-82d7-dc3ef8eb08c2","name":"New Request","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"answers\": [\r\n        {\r\n            \"question\": 93,\r\n            \"answer\": \"It configures the streams between the parent and child processes\"\r\n        },\r\n        {\r\n            \"question\": 57,\r\n            \"answer\": \"WITH RECURSIVE with indexed path and depth tracking\"\r\n        },\r\n        {\r\n            \"question\": 91,\r\n            \"answer\": \"Provides ***** for process signals\"\r\n        },\r\n        {\r\n            \"question\": 21,\r\n            \"answer\": \"Override the get_fields() and get_readonly_fields() methods in ModelAdmin based on user role\"\r\n        }\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/attempts/24/submit/"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 23 Jan 2025 19:48:21 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"192"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Quiz attempt recorded successfully.\",\n    \"data\": {\n        \"attempt\": 15,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 4,\n        \"total_correct\": 2,\n        \"user_score\": 2,\n        \"max_score\": 13\n    }\n}"}],"_postman_id":"481f3aba-16dc-430b-806b-5fe53c326fe2"},{"name":"True/False","id":"672158a7-da22-4f9d-951e-99cd53ff3475","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"answers\": [\r\n        {\r\n            \"question\": 127,\r\n            \"answer\": false\r\n        },\r\n        {\r\n            \"question\": 128,\r\n            \"answer\": \"True\"\r\n        },\r\n        {\r\n            \"question\": 129,\r\n            \"answer\": \"True\"\r\n        }\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/attempts/24/submit/","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"c94a0c99-38a5-41b7-897b-202a663e11f7","id":"c94a0c99-38a5-41b7-897b-202a663e11f7","name":"Attempts","type":"folder"}},"urlObject":{"path":["attempts","24","submit",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"c20170b8-8f19-4114-a57d-81f8634588a9","name":"New Request","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"answers\": [\r\n        {\r\n            \"question\": 127,\r\n            \"answer\": false\r\n        },\r\n        {\r\n            \"question\": 128,\r\n            \"answer\": \"True\"\r\n        },\r\n        {\r\n            \"question\": 129,\r\n            \"answer\": \"True\"\r\n        }\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/attempts/24/submit/"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 24 Jan 2025 14:10:03 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"192"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Quiz attempt recorded successfully.\",\n    \"data\": {\n        \"attempt\": 29,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 3,\n        \"total_correct\": 2,\n        \"user_score\": 2,\n        \"max_score\": 13\n    }\n}"}],"_postman_id":"672158a7-da22-4f9d-951e-99cd53ff3475"},{"name":"Matching Pairs","id":"49f0ae84-446d-4eba-a362-541b416b01e4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"answers\": [\r\n        {\r\n            \"question\": 206,\r\n            \"answer\": {\r\n                \"CPU\": \"Central Processing Unit\",\r\n                \"RAM\": \"Random Access Memory\",\r\n                \"SSD\": \"Solid State Drive\",\r\n                \"GPU\": \"Graphics Processing Unit\"\r\n            }\r\n        },\r\n        {\r\n            \"question\": 186,\r\n            \"answer\": {\r\n                \"select\": \"Retrieves data from a database\",\r\n                \"INSERT\": \"Adds new records to a table\",\r\n                \"Update\": \"Modifies existing records\",\r\n                \"dELETE\": \"Removes records from a table\"\r\n            }\r\n        }\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/attempts/24/submit/","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"c94a0c99-38a5-41b7-897b-202a663e11f7","id":"c94a0c99-38a5-41b7-897b-202a663e11f7","name":"Attempts","type":"folder"}},"urlObject":{"path":["attempts","24","submit",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"0386138d-1254-4155-a3aa-acd3800583e1","name":"New Request","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"answers\": [\r\n        {\r\n            \"question\": 206,\r\n            \"answer\": {\r\n                \"CPU\": \"Central Processing Unit\",\r\n                \"RAM\": \"Random Access Memory\",\r\n                \"SSD\": \"Solid State Drive\",\r\n                \"GPU\": \"Graphics Processing Unit\"\r\n            }\r\n        },\r\n        {\r\n            \"question\": 186,\r\n            \"answer\": {\r\n                \"select\": \"Retrieves data from a database\",\r\n                \"INSERT\": \"Adds new records to a table\",\r\n                \"Update\": \"Modifies existing records\",\r\n                \"dELETE\": \"Removes records from a table\"\r\n            }\r\n        }\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/attempts/24/submit/"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 23 Jan 2025 20:34:59 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"192"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Quiz attempt recorded successfully.\",\n    \"data\": {\n        \"attempt\": 28,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 2,\n        \"total_correct\": 2,\n        \"user_score\": 2,\n        \"max_score\": 13\n    }\n}"}],"_postman_id":"49f0ae84-446d-4eba-a362-541b416b01e4"},{"name":"Ordering Items","id":"3cfebe4b-5dfb-4146-b247-b3e65ce3702e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"answers\": [\r\n        {\r\n            \"question\": 268,\r\n            \"answer\": {\r\n                \"1\": \"item\",\r\n                \"2\": \"item\",\r\n                \"3\": \"item\",\r\n                \"4\": \"item\"\r\n            }\r\n        }\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/attempts/24/submit/","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"c94a0c99-38a5-41b7-897b-202a663e11f7","id":"c94a0c99-38a5-41b7-897b-202a663e11f7","name":"Attempts","type":"folder"}},"urlObject":{"path":["attempts","24","submit",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"474756b6-17cf-433f-af27-94d13e088753","name":"New Request","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"answers\": [\r\n        {\r\n            \"question\": 268,\r\n            \"answer\": {\r\n                \"1\": \"item\",\r\n                \"2\": \"item\",\r\n                \"3\": \"item\",\r\n                \"4\": \"item\"\r\n            }\r\n        }\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/attempts/24/submit/"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 23 Jan 2025 20:27:57 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"192"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Quiz attempt recorded successfully.\",\n    \"data\": {\n        \"attempt\": 27,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 1,\n        \"total_correct\": 0,\n        \"user_score\": 0,\n        \"max_score\": 13\n    }\n}"}],"_postman_id":"3cfebe4b-5dfb-4146-b247-b3e65ce3702e"},{"name":"A Full Attempt","id":"3c44df96-ca1d-46e5-ae5b-3fe690176d08","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"answers\": [\r\n        {\r\n            \"question\": 93,\r\n            \"answer\": \"It configures the streams between the parent and child processes\"\r\n        },\r\n        {\r\n            \"question\": 57,\r\n            \"answer\": \"WITH RECURSIVE with indexed path and depth tracking\"\r\n        },\r\n        {\r\n            \"question\": 127,\r\n            \"answer\": false\r\n        },\r\n        {\r\n            \"question\": 128,\r\n            \"answer\": \"True\"\r\n        },\r\n        {\r\n            \"question\": 206,\r\n            \"answer\": {\r\n                \"CPU\": \"Central Processing Unit\",\r\n                \"RAM\": \"Random Access Memory\",\r\n                \"SSD\": \"Solid State Drive\",\r\n                \"GPU\": \"Graphics Processing Unit\"\r\n            }\r\n        },\r\n        {\r\n            \"question\": 268,\r\n            \"answer\": {\r\n                \"1\": \"item\",\r\n                \"2\": \"item\",\r\n                \"3\": \"item\",\r\n                \"4\": \"item\"\r\n            }\r\n        }\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/attempts/25/submit/","urlObject":{"path":["attempts","25","submit",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"996824f1-1d43-4641-b441-a5b0b59e5718","name":"A Full Attempt","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"answers\": [\r\n        {\r\n            \"question\": 93,\r\n            \"answer\": \"It configures the streams between the parent and child processes\"\r\n        },\r\n        {\r\n            \"question\": 57,\r\n            \"answer\": \"WITH RECURSIVE with indexed path and depth tracking\"\r\n        },\r\n        {\r\n            \"question\": 127,\r\n            \"answer\": false\r\n        },\r\n        {\r\n            \"question\": 128,\r\n            \"answer\": \"True\"\r\n        },\r\n        {\r\n            \"question\": 206,\r\n            \"answer\": {\r\n                \"CPU\": \"Central Processing Unit\",\r\n                \"RAM\": \"Random Access Memory\",\r\n                \"SSD\": \"Solid State Drive\",\r\n                \"GPU\": \"Graphics Processing Unit\"\r\n            }\r\n        },\r\n        {\r\n            \"question\": 268,\r\n            \"answer\": {\r\n                \"1\": \"item\",\r\n                \"2\": \"item\",\r\n                \"3\": \"item\",\r\n                \"4\": \"item\"\r\n            }\r\n        }\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://quizapi.up.railway.app/v1/attempts/25/submit/"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sat, 25 Jan 2025 22:45:47 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"191"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Quiz attempt recorded successfully.\",\n    \"data\": {\n        \"attempt\": 30,\n        \"user\": 13,\n        \"quiz\": 25,\n        \"total_questions\": 6,\n        \"total_questions_answered\": 6,\n        \"total_correct\": 3,\n        \"user_score\": 3,\n        \"max_score\": 6\n    }\n}"}],"_postman_id":"3c44df96-ca1d-46e5-ae5b-3fe690176d08"},{"name":"My attempts","id":"57542ee4-1599-419c-9951-13f1f984e150","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://quizapi.up.railway.app/v1/attempts/","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"c94a0c99-38a5-41b7-897b-202a663e11f7","id":"c94a0c99-38a5-41b7-897b-202a663e11f7","name":"Attempts","type":"folder"}},"urlObject":{"path":["attempts",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"24e031d2-1fc5-48a5-b589-e1470dee60e8","name":"New Request","originalRequest":{"method":"GET","header":[],"url":"https://quizapi.up.railway.app/v1/attempts/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 24 Jan 2025 14:11:17 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"3930"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"attempt\": 2,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 0,\n        \"total_questions_answered\": 0,\n        \"total_correct\": 0,\n        \"user_score\": 4,\n        \"max_score\": 13\n    },\n    {\n        \"attempt\": 3,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 0,\n        \"total_questions_answered\": 0,\n        \"total_correct\": 0,\n        \"user_score\": 3,\n        \"max_score\": 13\n    },\n    {\n        \"attempt\": 4,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 0,\n        \"total_questions_answered\": 0,\n        \"total_correct\": 0,\n        \"user_score\": 3,\n        \"max_score\": 13\n    },\n    {\n        \"attempt\": 1,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 0,\n        \"total_questions_answered\": 0,\n        \"total_correct\": 0,\n        \"user_score\": -1,\n        \"max_score\": 0\n    },\n    {\n        \"attempt\": 5,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 4,\n        \"total_correct\": 2,\n        \"user_score\": 2,\n        \"max_score\": 13\n    },\n    {\n        \"attempt\": 6,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 4,\n        \"total_correct\": 2,\n        \"user_score\": 2,\n        \"max_score\": 13\n    },\n    {\n        \"attempt\": 7,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 4,\n        \"total_correct\": 2,\n        \"user_score\": 2,\n        \"max_score\": 13\n    },\n    {\n        \"attempt\": 8,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 4,\n        \"total_correct\": 2,\n        \"user_score\": 2,\n        \"max_score\": 13\n    },\n    {\n        \"attempt\": 9,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 4,\n        \"total_correct\": 2,\n        \"user_score\": 2,\n        \"max_score\": 13\n    },\n    {\n        \"attempt\": 10,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 4,\n        \"total_correct\": 2,\n        \"user_score\": 2,\n        \"max_score\": 13\n    },\n    {\n        \"attempt\": 11,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 4,\n        \"total_correct\": 2,\n        \"user_score\": 2,\n        \"max_score\": 13\n    },\n    {\n        \"attempt\": 12,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 4,\n        \"total_correct\": 2,\n        \"user_score\": 2,\n        \"max_score\": 13\n    },\n    {\n        \"attempt\": 13,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 4,\n        \"total_correct\": 2,\n        \"user_score\": 2,\n        \"max_score\": 13\n    },\n    {\n        \"attempt\": 14,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 4,\n        \"total_correct\": 2,\n        \"user_score\": 2,\n        \"max_score\": 13\n    },\n    {\n        \"attempt\": 15,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 4,\n        \"total_correct\": 2,\n        \"user_score\": 2,\n        \"max_score\": 13\n    },\n    {\n        \"attempt\": 16,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 0,\n        \"total_questions_answered\": 0,\n        \"total_correct\": 0,\n        \"user_score\": -1,\n        \"max_score\": 0\n    },\n    {\n        \"attempt\": 17,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 3,\n        \"total_correct\": 3,\n        \"user_score\": 3,\n        \"max_score\": 13\n    },\n    {\n        \"attempt\": 18,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 3,\n        \"total_correct\": 2,\n        \"user_score\": 2,\n        \"max_score\": 13\n    },\n    {\n        \"attempt\": 19,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 0,\n        \"total_questions_answered\": 0,\n        \"total_correct\": 0,\n        \"user_score\": -1,\n        \"max_score\": 0\n    },\n    {\n        \"attempt\": 20,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 3,\n        \"total_correct\": 3,\n        \"user_score\": 3,\n        \"max_score\": 13\n    },\n    {\n        \"attempt\": 21,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 3,\n        \"total_correct\": 2,\n        \"user_score\": 2,\n        \"max_score\": 13\n    },\n    {\n        \"attempt\": 22,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 2,\n        \"total_correct\": 0,\n        \"user_score\": 0,\n        \"max_score\": 13\n    },\n    {\n        \"attempt\": 23,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 2,\n        \"total_correct\": 0,\n        \"user_score\": 0,\n        \"max_score\": 13\n    },\n    {\n        \"attempt\": 24,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 1,\n        \"total_correct\": 0,\n        \"user_score\": 0,\n        \"max_score\": 13\n    },\n    {\n        \"attempt\": 25,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 1,\n        \"total_correct\": 1,\n        \"user_score\": 1,\n        \"max_score\": 13\n    },\n    {\n        \"attempt\": 26,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 1,\n        \"total_correct\": 0,\n        \"user_score\": 0,\n        \"max_score\": 13\n    },\n    {\n        \"attempt\": 27,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 1,\n        \"total_correct\": 0,\n        \"user_score\": 0,\n        \"max_score\": 13\n    },\n    {\n        \"attempt\": 28,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 2,\n        \"total_correct\": 2,\n        \"user_score\": 2,\n        \"max_score\": 13\n    },\n    {\n        \"attempt\": 29,\n        \"user\": 7,\n        \"quiz\": 24,\n        \"total_questions\": 13,\n        \"total_questions_answered\": 3,\n        \"total_correct\": 2,\n        \"user_score\": 2,\n        \"max_score\": 13\n    }\n]"}],"_postman_id":"57542ee4-1599-419c-9951-13f1f984e150"},{"name":"Others Attempts","id":"63436a6a-b33b-40ab-8cb8-8d13e78445eb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://quizapi.up.railway.app/v1/attempts/24/others/","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":true,"source":{"_postman_id":"c94a0c99-38a5-41b7-897b-202a663e11f7","id":"c94a0c99-38a5-41b7-897b-202a663e11f7","name":"Attempts","type":"folder"}},"urlObject":{"path":["attempts","24","others",""],"host":["https://quizapi.up.railway.app/v1"],"query":[],"variable":[]}},"response":[{"id":"fe0c7b98-6194-4753-bd6d-ca32514074e8","name":"New Request","originalRequest":{"method":"GET","header":[],"url":"https://quizapi.up.railway.app/v1/attempts/24/others/"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 24 Jan 2025 17:04:53 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.12.2"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"63"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"detail\": \"You do not have permission to perform this action.\"\n}"}],"_postman_id":"63436a6a-b33b-40ab-8cb8-8d13e78445eb"}],"id":"c94a0c99-38a5-41b7-897b-202a663e11f7","description":"<p>These endpoints allows users to interact with quiz attempts, including creating, retrieving, and viewing attempts for quizzes. This documentation provides details for endpoints to handle:</p>\n<ol>\n<li><p>Starting a quiz and submitting answers.</p>\n</li>\n<li><p>Viewing the current user's quiz attempts.</p>\n</li>\n<li><p>Viewing attempts by other users for a specific quiz.</p>\n</li>\n</ol>\n<hr />\n<h2 id=\"endpoints\">Endpoints</h2>\n<h3 id=\"1-user-attempts-get-attempts\"><strong>1. User Attempts (<strong><strong><code>GET /attempts/</code></strong></strong>)</strong></h3>\n<ul>\n<li><p><strong>Description</strong>: Retrieve all quiz attempts made by the currently authenticated user.</p>\n</li>\n<li><p><strong>Query Parameters</strong>:</p>\n<ul>\n<li><code>quiz_id</code> (optional): Retrieve attempts for a specific quiz only.</li>\n</ul>\n</li>\n<li><p><strong>Response</strong>:</p>\n<ul>\n<li>A list of the user's quiz attempts, including information such as scores, total questions answered, and correctness.</li>\n</ul>\n</li>\n<li><p><strong>Authentication</strong>: Required.</p>\n</li>\n</ul>\n<h3 id=\"2-attempt-a-quiz-get-attempts\"><strong>2. Attempt a Quiz (<strong><strong><code>GET /attempts//</code></strong></strong>)</strong></h3>\n<ul>\n<li><p><strong>Description</strong>: Retrieve the quiz questions without answers.</p>\n</li>\n<li><p><strong>Path Parameters</strong>:</p>\n<ul>\n<li><code>quiz_id</code> (required): The ID of the quiz to retrieve.</li>\n</ul>\n</li>\n<li><p><strong>Response</strong>:</p>\n<ul>\n<li>Quiz details including question text, type, category, difficulty, and relevant details for each question.</li>\n</ul>\n</li>\n<li><p><strong>Authentication</strong>: Required.</p>\n</li>\n</ul>\n<h3 id=\"3-submit-a-quiz-attempt-post-attemptssubmit\"><strong>3. Submit a Quiz Attempt (<strong><strong><code>POST /attempts//submit/</code></strong></strong>)</strong></h3>\n<ul>\n<li><p><strong>Description</strong>: Submit a new quiz attempt, including user answers for each question.</p>\n</li>\n<li><p><strong>Path Parameters</strong>:</p>\n<ul>\n<li><code>quiz_id</code> (required): The ID of the quiz being attempted.</li>\n</ul>\n</li>\n<li><p>{ \"answers\": [ {\"question\": 1, \"answer\": \"Sample Answer\"}, {\"question\": 2, \"answer\": \"True\"} ]}</p>\n</li>\n<li><p><strong>Response</strong>:</p>\n<ul>\n<li>Confirmation of the attempt being recorded along with the attempt's result summary (e.g., score, total correct answers).</li>\n</ul>\n</li>\n<li><p><strong>Authentication</strong>: Required.</p>\n</li>\n</ul>\n<h3 id=\"4-view-others-attempts-for-a-quiz-get-attemptsothers\"><strong>4. View Others' Attempts for a Quiz (<strong><strong><code>GET /attempts//others/</code></strong></strong>)</strong></h3>\n<ul>\n<li><p><strong>Description</strong>: Retrieve attempts made by other users for a specific quiz.</p>\n</li>\n<li><p><strong>Path Parameters</strong>:</p>\n<ul>\n<li><code>quiz_id</code> (required): The ID of the quiz to retrieve attempts for.</li>\n</ul>\n</li>\n<li><p><strong>Response</strong>:</p>\n<ul>\n<li>A list of attempts by other users, including their scores and answered questions.</li>\n</ul>\n</li>\n<li><p><strong>Authentication</strong>: Required. You have to be the creator of the quiz.</p>\n</li>\n</ul>\n<hr />\n<h2 id=\"examples-for-documentation\">Examples for Documentation</h2>\n<h3 id=\"1-submitting-a-quiz-attempt\"><strong>1. Submitting a Quiz Attempt</strong></h3>\n<p><strong>Request</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">POST /attempts/1/submit/\ntoken: &lt;TOKEN&gt;\nContent-Type: application/json\n{\n    \"answers\": [\n        {\"question\": 1, \"answer\": \"Option A\"},\n        {\"question\": 2, \"answer\": \"True\"}\n    ]\n}\n\n</code></pre>\n<p><strong>Response</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"Quiz attempt recorded successfully.\",\n    \"data\": {\n        \"attempt\": 42,\n        \"user\": 1,\n        \"quiz\": 1,\n        \"total_questions\": 5,\n        \"total_questions_answered\": 5,\n        \"total_correct\": 4,\n        \"user_score\": 4,\n        \"max_score\": 5\n    }\n}\n\n</code></pre>\n<h3 id=\"2-viewing-user-attempts\"><strong>2. Viewing User Attempts</strong></h3>\n<p><strong>Request</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET /attempts/?quiz_id=1\ntoken: &lt;TOKEN&gt;\n\n</code></pre>\n<p><strong>Response</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"attempt\": 42,\n        \"user\": 1,\n        \"quiz\": 1,\n        \"total_questions\": 5,\n        \"total_questions_answered\": 5,\n        \"total_correct\": 4,\n        \"user_score\": 4,\n        \"max_score\": 5\n    }\n]\n\n</code></pre>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"token"},{"key":"value","value":"<value>"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"id":"c198897c-19d7-4441-97da-1ee697a5a83e","type":"text/javascript","packages":{},"exec":[""]}},{"listen":"test","script":{"id":"1afc0916-28b6-4b41-8492-cb34bc686a77","type":"text/javascript","packages":{},"exec":[""]}}],"_postman_id":"c94a0c99-38a5-41b7-897b-202a663e11f7"}],"event":[{"listen":"prerequest","script":{"id":"1e3cd329-a6b6-4d1c-babd-a9455a7e4d09","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"e24f7a23-4647-42d0-bad4-adf21f110fce","type":"text/javascript","exec":[""]}}],"variable":[{"key":"base","value":"https://quizapi.up.railway.app/v1","type":"string"},{"key":"base","value":"http://127.0.0.1:8000/v1","type":"string","disabled":true}]}