Create a new CAT (Continuous Assessment Test)

POST /api/v1/cats/{unit}

Creates a new CAT for a specific unit. Only admins and lecturers can create CATs.

Path parameters

  • unit string Required

    Unit offering ID where the CAT will be created

application/json

Body Required

CAT creation data including title, description, marks, and scheduling

  • title string Required
  • releaseDate string(date-time) Required
  • dueDate string(date-time) Required
  • durationMinutes number Required
  • score number Required
  • status string Required

    Values are ARCHIVED, DRAFT, COMPLETED, RELEASED, GRADED, UPCOMING, or ACTIVE. Default value is DRAFT.

  • maxAttempts number Required

    Default value is 1.

Responses

  • 201 application/json

    CAT created successfully

  • 400

    Invalid input data or unit not found

  • 403

    Insufficient permissions - requires ADMIN or LECTURER role

POST /api/v1/cats/{unit}
curl \
 --request POST 'https://api.echoplain.social/api/v1/cats/123e4567-e89b-12d3-a456-426614174000' \
 --header "Content-Type: application/json" \
 --data '{"title":"string","releaseDate":"2025-05-04T09:42:00Z","dueDate":"2025-05-04T09:42:00Z","durationMinutes":42.0,"score":42.0,"status":"DRAFT","maxAttempts":1}'
Request examples
{
  "title": "string",
  "releaseDate": "2025-05-04T09:42:00Z",
  "dueDate": "2025-05-04T09:42:00Z",
  "durationMinutes": 42.0,
  "score": 42.0,
  "status": "DRAFT",
  "maxAttempts": 1
}
Response examples (201)
{
  "cat": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "marks": 30,
    "title": "Midterm CAT 1",
    "status": "DRAFT",
    "dueDate": "2025-10-15T11:00:00.000Z",
    "description": "First continuous assessment test covering topics 1-3",
    "releaseDate": "2025-10-15T09:00:00.000Z"
  },
  "message": "CAT created successfully"
}