{
  "info": {
    "name": "Node.js Boilerplate API",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "item": [
    {
      "name": "Auth",
      "item": [
        {
          "name": "Signup",
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"username\": \"testuser\",\n    \"email\": \"test@example.com\",\n    \"password\": \"password123\",\n    \"roles\": [\"user\"]\n}"
            },
            "url": {
              "raw": "{{baseUrl}}/api/auth/signup",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "auth",
                "signup"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Signin",
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"username\": \"testuser\",\n    \"password\": \"password123\"\n}"
            },
            "url": {
              "raw": "{{baseUrl}}/api/auth/signin",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "auth",
                "signin"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Validate User Signup",
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"email\": \"test@example.com\",\n    \"otp\": \"123456\"\n}"
            },
            "url": {
              "raw": "{{baseUrl}}/api/auth/validateUserSignup",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "auth",
                "validateUserSignup"
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Exams",
      "item": [
        {
          "name": "Create Exam",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"title\": \"My First Exam\",\n    \"description\": \"This is a test exam.\",\n    \"duration_minutes\": 60\n}"
            },
            "url": {
              "raw": "{{baseUrl}}/api/exams",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "exams"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Find All Exams",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/exams",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "exams"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Find One Exam",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/exams/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "exams",
                "1"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Update Exam",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"title\": \"Updated Exam Title\"\n}"
            },
            "url": {
              "raw": "{{baseUrl}}/api/exams/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "exams",
                "1"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Delete Exam",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/exams/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "exams",
                "1"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Create Question",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"text\": \"What is 2+2?\",\n    \"type\": \"mcq\",\n    \"score\": 10\n}"
            },
            "url": {
              "raw": "{{baseUrl}}/api/exams/1/questions",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "exams",
                "1",
                "questions"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Update Question",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"text\": \"What is 2+2+2?\"\n}"
            },
            "url": {
              "raw": "{{baseUrl}}/api/exams/questions/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "exams",
                "questions",
                "1"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Delete Question",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/exams/questions/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "exams",
                "questions",
                "1"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Create Option",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"text\": \"4\",\n    \"isCorrect\": true\n}"
            },
            "url": {
              "raw": "{{baseUrl}}/api/exams/questions/1/options",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "exams",
                "questions",
                "1",
                "options"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Update Option",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"text\": \"5\"\n}"
            },
            "url": {
              "raw": "{{baseUrl}}/api/exams/options/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "exams",
                "options",
                "1"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Delete Option",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/exams/options/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "exams",
                "options",
                "1"
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Exam Attempts",
      "item": [
        {
          "name": "Start Exam Attempt",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/exams/1/attempts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "exams",
                "1",
                "attempts"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Submit Answer",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"selectedOptionId\": 1\n}"
            },
            "url": {
              "raw": "{{baseUrl}}/api/attempts/1/questions/1/answers",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "attempts",
                "1",
                "questions",
                "1",
                "answers"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Submit Exam Attempt",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/attempts/1/submit",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "attempts",
                "1",
                "submit"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Get User Exam Attempts",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/attempts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "attempts"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Get All Exam Attempts",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/attempts/all",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "attempts",
                "all"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Get Exam Attempt",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/attempts/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "attempts",
                "1"
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Jobs",
      "item": [
        {
          "name": "Create Job",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"title\": \"Software Engineer\",\n    \"description\": \"We are hiring a software engineer.\",\n    \"location\": \"San Francisco, CA\"\n}"
            },
            "url": {
              "raw": "{{baseUrl}}/api/jobs",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "jobs"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Find All Jobs",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/jobs",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "jobs"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Find One Job",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/jobs/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "jobs",
                "1"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Update Job",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"title\": \"Senior Software Engineer\"\n}"
            },
            "url": {
              "raw": "{{baseUrl}}/api/jobs/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "jobs",
                "1"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Delete Job",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/jobs/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "jobs",
                "1"
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Users",
      "item": [
        {
          "name": "Find All Users",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/users",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "users"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Create User",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"username\": \"newuser\",\n    \"email\": \"newuser@example.com\",\n    \"password\": \"password123\",\n    \"roles\": [\"user\"]\n}"
            },
            "url": {
              "raw": "{{baseUrl}}/api/users",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "users"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Find One User",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/users/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "users",
                "1"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Update User",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"username\": \"updateduser\"\n}"
            },
            "url": {
              "raw": "{{baseUrl}}/api/users/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "users",
                "1"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Delete User",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/users/1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "users",
                "1"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Delete All Users",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/users",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "users"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Send Mail",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"to\": \"test@example.com\",\n    \"subject\": \"Test Email\",\n    \"text\": \"This is a test email.\"\n}"
            },
            "url": {
              "raw": "{{baseUrl}}/api/users/sendmail",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "users",
                "sendmail"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Send SMS",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "x-access-token",
                "value": "{{accessToken}}",
                "type": "string"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"to\": \"+1234567890\",\n    \"body\": \"This is a test SMS.\"\n}"
            },
            "url": {
              "raw": "{{baseUrl}}/api/users/sendsms",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "users",
                "sendsms"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Reset Password Email",
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"email\": \"test@example.com\"\n}"
            },
            "url": {
              "raw": "{{baseUrl}}/api/users/reset-password-email",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "users",
                "reset-password-email"
              ]
            }
          },
          "response": []
        }
      ]
    }
  ],
  "variable": [
    {
      "key": "baseUrl",
      "value": "http://localhost:8080"
    },
    {
      "key": "accessToken",
      "value": ""
    }
  ]
}