Skip to main content
Grading happens inside the activity detail view at /app/maestro/clases/{class_id}/actividades/{task_id}. You navigate there by clicking Evaluaciones on any activity card in the activities list.

Grading interface overview

The page is split into two columns:

Submission list

A filterable, sortable data table listing every student who submitted. Columns: student name, delivery date, current score, and a view action.

Stats sidebar

A sticky panel on the right showing aggregate stats: total assigned, delivered, not delivered, min/max score, graded count, and not yet graded count.

Filtering submissions

Two tabs appear above the table:
TabMeaning
PendientesSubmissions that have not been graded yet (status !== 'qualified')
CalificadasSubmissions that have already been graded (status === 'qualified')
A search box lets you filter by student name, score, or delivery date within the active tab.

Reviewing and grading a submission

1

Open the submission

Click the eye icon on any row in the data table. The table is replaced by the individual submission view.
2

Read the student's responses

The submission is displayed based on the activity type:
  • Simple (multiple choice) — each question is shown with all options; the selected option is highlighted.
  • Development (open-ended) — each question is shown with the student’s free-text answer, or “Sin respuesta” if they left it blank.
3

Enter a comment (optional)

A text input at the bottom of the submission accepts an optional comment. This comment is stored alongside the grade and is visible to the student.
4

Enter a score

An inline numeric input shows the current score (qualification) next to the maximum (/ {max_qualification}). The input is clamped to the range 0 through max_qualification — values outside this range are corrected automatically.
5

Save the grade

Click Calificar. The client sends:
POST /api/teacher/grade-task
Content-Type: multipart/form-data

id=<tasks_completed_row_id>
qualification=<numeric_score>
comment=<optional_comment>
id_task=<task_id>
id_class=<class_id>
On success, the server updates the tasks_completed row:
{
  "qualification": 8,
  "comment": "Good work, but watch the sign errors.",
  "status": "qualified"
}
A success message appears below the save button. The submission list in the background is also updated reactively — the row moves from Pendientes to Calificadas.
6

Return to the list

Click Ir atrás to go back to the submission table and continue grading other students.

How grades appear to students

Once a submission is graded (status: 'qualified'), the student can see:
  • Their numeric score and the maximum possible score
  • The teacher’s comment (if provided)
  • The status badge changing from pending to graded
Students view their graded work from their own class detail page (/app/clases/{class_id}).

Score validation rules

ConditionBehaviour
Score below 0Clamped to 0
Score above maxClamped to max_qualification
Non-numeric inputSave button shows validation error; no request is sent
Empty score fieldStored as null; status still set to qualified
The qualification field can be null if you save without entering a number. This marks the submission as reviewed (status: 'qualified') but with no numeric score. You can return and update the score at any time.

API reference

EndpointMethodPurpose
/api/teacher/grade-taskPOSTSave a score and optional comment for a student submission

Request fields

FieldTypeRequiredNotes
idstring (UUID)YesID of the tasks_completed row
qualificationnumber or empty stringNoScore value; empty string stored as null
commentstringNoFeedback shown to the student
id_taskstring (UUID)YesID of the parent task
id_classstring (UUID)YesID of the class

Response

{
  "success": true,
  "status": "qualified",
  "qualification": 8,
  "comment": "Good work."
}