Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Taykl12/Classify/llms.txt

Use this file to discover all available pages before exploring further.

Creating a project is an atomic operation backed by the create_grupo_proyecto database RPC. The RPC inserts a row into grupos_proyectos and immediately links the authenticated user as the project owner in proyecto_profesor — both in a single transaction, so there is no window where a project exists without an owner. After the RPC returns, any provided memberEmails are synced into grupo_estudiante. Every email in that list must already exist in the system; a single unrecognised address causes the entire request to fail with a 400.

Endpoint

POST /api/projects

Request

Headers

HeaderValue
AuthorizationBearer <token>
Content-Typeapplication/json

Body Parameters

name
string
required
Display name for the new project. Must be a non-empty string. Stored in nombre_proyecto.
description
string
Optional short description of the project. Stored in the project’s description field.
memberEmails
string[]
Optional list of student email addresses to enroll as members on creation. Every address must correspond to an existing user in sistema; any unknown address causes a 400 and the entire request is rolled back.

Example Request

curl -X POST https://your-domain.com/api/projects \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "AI Grading System",
    "description": "Automated rubric evaluation using NLP",
    "memberEmails": [
      "alice@university.edu",
      "bob@university.edu"
    ]
  }'

Response

Returns 201 Created with a project list item extended with the memberEmails array.

Response Fields

id
string
required
Newly assigned project identifier.
name
string
required
Project name as stored.
description
string
required
Short description. Empty string ("") if none was provided.
status
"Abierto"
required
All newly created projects begin in the "Abierto" state.
isFavorite
boolean
required
false for all newly created projects.
createdAt
string
required
Creation date formatted as DD/MM/YYYY (e.g. "20/11/2024"), derived from the database timestamp.
scopeNotes
string
required
Supplementary scope notes. Always "" for a newly created project.
preprojectValidated
boolean
required
Pre-project validation flag. Always false for a newly created project.
memberEmails
string[]
required
The resolved list of member emails enrolled during creation. Mirrors the memberEmails input when all addresses were valid.

Example Response

{
  "id": "58",
  "name": "AI Grading System",
  "description": "Automated rubric evaluation using NLP",
  "scopeNotes": "",
  "status": "Abierto",
  "isFavorite": false,
  "createdAt": "20/11/2024",
  "preprojectValidated": false,
  "memberEmails": ["alice@university.edu", "bob@university.edu"]
}

Error Responses

StatusDescription
400 Bad Requestname was not provided or was empty.
400 Bad RequestOne or more emails in memberEmails do not correspond to an existing user. The response body identifies the unrecognised addresses.
401 UnauthorizedMissing or invalid bearer token.

Build docs developers (and LLMs) love