GenCode API Documentation

POST /register

📥 Request Body:

{
  "username": "karan",
  "email": "[email protected]",
  "password": "securepass"
}

📤 Response:

201:

{
  "message": "User successfully registered."
}

400:

{
  "message": "All fields required."
}

409:

{
  "message": "Username or email already exists."
}

POST /login

📥 Request Body:

{
  "username": "karan",
  "password": "securepass"
}

📤 Response:

202:

{
  "accessToken": "..."
}

400:

{
  "message": "Incomplete fields"
}

401:

{
  "message": "Username does not exist"
}

GET /refresh

🔐 Requires Auth Header

Headers:

Authorization: Bearer <access_token>

Cookie: jwt

📤 Response:

200:

{
  "accessToken": "..."
}

401:

{
  "message": "Unauthorized"
}

POST /logout

🔐 Requires Auth Header

Headers:

Authorization: Bearer <access_token>

Cookie: jwt

📤 Response:

200:

{
  "message": "Logout successful"
}

POST /generate

🔐 Requires Auth Header

Headers:

Authorization: Bearer <access_token>

📥 Request Body:

{
  "input": "string manipulation problem"
}

📤 Response:

200:

{
  "id": "generated_question_id"
}

400:

{
  "message": "Missing input"
}

GET /question

🔐 Requires Auth Header

Headers:

Authorization: Bearer <access_token>

📤 Response:

200:

[
  {
    "title": "...",
    "description": "...",
    "status": "solved"
  }
]

GET /question/:id

🔐 Requires Auth Header

Headers:

Authorization: Bearer <access_token>

📤 Response:

200:

{
  "title": "...",
  "description": "...",
  "testCases": []
}

POST /run

🔐 Requires Auth Header

Headers:

Authorization: Bearer <access_token>

📥 Request Body:

{
  "language": "python",
  "code": "print('Hello')",
  "questionID": "12345"
}

📤 Response:

200:

{
  "results": [
    {
      "input": "...",
      "expected": "...",
      "status": "Accepted",
      "passed": true
    }
  ]
}

POST /submit

🔐 Requires Auth Header

Headers:

Authorization: Bearer <access_token>

📥 Request Body:

{
  "language": "cpp",
  "code": "int main(){}",
  "questionID": "12345"
}

📤 Response:

200:

{
  "results": [
    {
      "input": "...",
      "passed": true
    }
  ]
}

GET /submit/all

🔐 Requires Auth Header

Headers:

Authorization: Bearer <access_token>

📥 Request Body:

{
  "questionID": "12345"
}

📤 Response:

200:

{
  "submissions": []
}

GET /stats/:username

🔐 Requires Auth Header

Headers:

Authorization: Bearer <access_token>

📤 Response:

200:

{
  "stats": {
    "totalQuestions": 10,
    "solvedQuestions": 5,
    "languagesUsed": {
      "C": 2,
      "Cpp": 3,
      "Java": 1,
      "Python": 4
    }
  }
}