{
  "info": {
    "name": "LMS Quiz API",
    "description": "Complete Quiz API collection for Practice, Tryouts, Subtests, Analytics and Leaderboards",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "version": "1.0.0"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{auth_token}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "base_url",
      "value": "http://localhost:8000/api",
      "type": "string"
    },
    {
      "key": "auth_token",
      "value": "",
      "type": "string"
    },
    {
      "key": "quiz_id",
      "value": "1",
      "type": "string"
    },
    {
      "key": "tryout_id",
      "value": "1",
      "type": "string"
    },
    {
      "key": "subtest_id",
      "value": "1",
      "type": "string"
    },
    {
      "key": "question_id",
      "value": "1",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "Practice Quizzes",
      "item": [
        {
          "name": "Get Practice Quizzes",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/quizzes/practice",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "practice"]
            },
            "description": "Get all available practice quizzes for the authenticated user"
          }
        },
        {
          "name": "Filter Practice Quizzes",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/quizzes/practice/filter?category=math&difficulty=easy&limit=10",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "practice", "filter"],
              "query": [
                {
                  "key": "category",
                  "value": "math",
                  "description": "Filter by category"
                },
                {
                  "key": "difficulty",
                  "value": "easy",
                  "description": "Filter by difficulty level"
                },
                {
                  "key": "limit",
                  "value": "10",
                  "description": "Limit number of results"
                }
              ]
            },
            "description": "Filter practice quizzes by various criteria"
          }
        },
        {
          "name": "Get Practice Quiz Details",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/quizzes/practice/{{quiz_id}}",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "practice", "{{quiz_id}}"]
            },
            "description": "Get detailed information about a specific practice quiz"
          }
        },
        {
          "name": "Start Practice Quiz",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"start_time\": \"2024-01-15T10:00:00Z\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{base_url}}/quizzes/practice/{{quiz_id}}/start",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "practice", "{{quiz_id}}", "start"]
            },
            "description": "Start a practice quiz session"
          }
        },
        {
          "name": "Submit Practice Quiz",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"answers\": {\n    \"1\": \"A\",\n    \"2\": \"B\",\n    \"3\": \"C\"\n  },\n  \"end_time\": \"2024-01-15T11:00:00Z\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{base_url}}/quizzes/practice/{{quiz_id}}/submit",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "practice", "{{quiz_id}}", "submit"]
            },
            "description": "Submit answers for a practice quiz"
          }
        },
        {
          "name": "Save Practice Answer",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"question_id\": 1,\n  \"answer\": \"A\",\n  \"timestamp\": \"2024-01-15T10:30:00Z\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{base_url}}/quizzes/practice/{{quiz_id}}/answer",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "practice", "{{quiz_id}}", "answer"]
            },
            "description": "Save a single answer during practice quiz"
          }
        },
        {
          "name": "Mark Practice Question",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"question_id\": 1,\n  \"marked\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{base_url}}/quizzes/practice/{{quiz_id}}/mark-question",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "practice", "{{quiz_id}}", "mark-question"]
            },
            "description": "Mark/unmark a question for review in practice quiz"
          }
        },
        {
          "name": "Get Practice Results",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/quizzes/practice/{{quiz_id}}/results",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "practice", "{{quiz_id}}", "results"]
            },
            "description": "Get results of a completed practice quiz"
          }
        },
        {
          "name": "Get Practice Explanation",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/quizzes/practice/{{quiz_id}}/explanation",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "practice", "{{quiz_id}}", "explanation"]
            },
            "description": "Get detailed explanations for practice quiz questions"
          }
        },
        {
          "name": "Restart Practice Quiz",
          "request": {
            "method": "POST",
            "url": {
              "raw": "{{base_url}}/quizzes/practice/{{quiz_id}}/restart",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "practice", "{{quiz_id}}", "restart"]
            },
            "description": "Restart a practice quiz session"
          }
        }
      ]
    },
    {
      "name": "Tryouts",
      "item": [
        {
          "name": "Get Tryouts",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/quizzes/tryouts",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "tryouts"]
            },
            "description": "Get all available tryouts"
          }
        },
        {
          "name": "Filter Tryouts",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/quizzes/tryouts/filter?type=simulation&status=active",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "tryouts", "filter"],
              "query": [
                {
                  "key": "type",
                  "value": "simulation"
                },
                {
                  "key": "status",
                  "value": "active"
                }
              ]
            },
            "description": "Filter tryouts by various criteria"
          }
        },
        {
          "name": "Get Tryout Details",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/quizzes/tryouts/{{tryout_id}}",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "tryouts", "{{tryout_id}}"]
            },
            "description": "Get detailed information about a specific tryout"
          }
        },
        {
          "name": "Start Tryout",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"start_time\": \"2024-01-15T09:00:00Z\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{base_url}}/quizzes/tryouts/{{tryout_id}}/start",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "tryouts", "{{tryout_id}}", "start"]
            },
            "description": "Start a tryout session"
          }
        },
        {
          "name": "Finish Tryout",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"end_time\": \"2024-01-15T12:00:00Z\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{base_url}}/quizzes/tryouts/{{tryout_id}}/finish",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "tryouts", "{{tryout_id}}", "finish"]
            },
            "description": "Finish a tryout session"
          }
        },
        {
          "name": "Get Tryout Results",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/quizzes/tryouts/{{tryout_id}}/results",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "tryouts", "{{tryout_id}}", "results"]
            },
            "description": "Get results of a completed tryout"
          }
        },
        {
          "name": "Restart Tryout",
          "request": {
            "method": "POST",
            "url": {
              "raw": "{{base_url}}/quizzes/tryouts/{{tryout_id}}/restart",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "tryouts", "{{tryout_id}}", "restart"]
            },
            "description": "Restart a tryout session"
          }
        },
        {
          "name": "Get Tryout Subtests",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/quizzes/tryouts/{{tryout_id}}/subtests",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "tryouts", "{{tryout_id}}", "subtests"]
            },
            "description": "Get all subtests for a specific tryout"
          }
        }
      ]
    },
    {
      "name": "Subtests",
      "item": [
        {
          "name": "Get Subtest Details",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/quizzes/subtests/{{subtest_id}}",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "subtests", "{{subtest_id}}"]
            },
            "description": "Get detailed information about a specific subtest"
          }
        },
        {
          "name": "Start Subtest",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"start_time\": \"2024-01-15T09:30:00Z\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{base_url}}/quizzes/subtests/{{subtest_id}}/start",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "subtests", "{{subtest_id}}", "start"]
            },
            "description": "Start a subtest session"
          }
        },
        {
          "name": "Submit Subtest",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"answers\": {\n    \"1\": \"A\",\n    \"2\": \"B\",\n    \"3\": \"C\"\n  },\n  \"end_time\": \"2024-01-15T10:30:00Z\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{base_url}}/quizzes/subtests/{{subtest_id}}/submit",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "subtests", "{{subtest_id}}", "submit"]
            },
            "description": "Submit answers for a subtest"
          }
        },
        {
          "name": "Save Subtest Answer",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"question_id\": 1,\n  \"answer\": \"A\",\n  \"timestamp\": \"2024-01-15T10:15:00Z\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{base_url}}/quizzes/subtests/{{subtest_id}}/answer",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "subtests", "{{subtest_id}}", "answer"]
            },
            "description": "Save a single answer during subtest"
          }
        },
        {
          "name": "Mark Subtest Question",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"question_id\": 1,\n  \"marked\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{base_url}}/quizzes/subtests/{{subtest_id}}/mark-question",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "subtests", "{{subtest_id}}", "mark-question"]
            },
            "description": "Mark/unmark a question for review in subtest"
          }
        },
        {
          "name": "Get Subtest Results",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/quizzes/subtests/{{subtest_id}}/results",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "subtests", "{{subtest_id}}", "results"]
            },
            "description": "Get results of a completed subtest"
          }
        },
        {
          "name": "Get Subtest Explanation",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/quizzes/subtests/{{subtest_id}}/explanation",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "subtests", "{{subtest_id}}", "explanation"]
            },
            "description": "Get detailed explanations for subtest questions"
          }
        }
      ]
    },
    {
      "name": "Question Tracking",
      "item": [
        {
          "name": "Save Question Timestamp",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"timestamp\": \"2024-01-15T10:45:00Z\",\n  \"action\": \"viewed\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{base_url}}/quizzes/question/{{question_id}}/timestamp",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "question", "{{question_id}}", "timestamp"]
            },
            "description": "Track when a question was viewed or answered"
          }
        }
      ]
    },
    {
      "name": "Analytics",
      "item": [
        {
          "name": "Get My Performance",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/quizzes/my-performance",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "my-performance"]
            },
            "description": "Get overall performance analytics for the user"
          }
        },
        {
          "name": "Get Practice Performance",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/quizzes/my-performance/practice",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "my-performance", "practice"]
            },
            "description": "Get performance analytics for practice quizzes"
          }
        },
        {
          "name": "Get Tryout Performance",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/quizzes/my-performance/tryouts",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "my-performance", "tryouts"]
            },
            "description": "Get performance analytics for tryouts"
          }
        },
        {
          "name": "Get Category Performance",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/quizzes/my-performance/categories",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "my-performance", "categories"]
            },
            "description": "Get performance analytics by question categories"
          }
        }
      ]
    },
    {
      "name": "Leaderboards",
      "item": [
        {
          "name": "Get General Leaderboard",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/quizzes/leaderboard",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "leaderboard"]
            },
            "description": "Get the general leaderboard for all users"
          }
        },
        {
          "name": "Get Practice Leaderboard",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/quizzes/leaderboard/practice/{{quiz_id}}",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "leaderboard", "practice", "{{quiz_id}}"]
            },
            "description": "Get leaderboard for a specific practice quiz"
          }
        },
        {
          "name": "Get Tryout Leaderboard",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/quizzes/leaderboard/tryout/{{tryout_id}}",
              "host": ["{{base_url}}"],
              "path": ["quizzes", "leaderboard", "tryout", "{{tryout_id}}"]
            },
            "description": "Get leaderboard for a specific tryout"
          }
        }
      ]
    }
  ]
} 