Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/andrespaul123/micole-flutter/llms.txt

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

The grade book (libro de calificaciones) is where teachers enter and review student grades. Grades are structured around evaluation criteria — weighted components defined per assignment — and organised within evaluation periods (e.g. first quarter, second quarter). The result is a full grade grid: every student mapped against every criterion, with a computed weighted average. Before grades can be entered, evaluation criteria must be defined.

Evaluation Criteria

Criterio Model

A criterion is a named, weighted grading component belonging to a specific evaluation period of an assignment.
FieldTypeDescription
idint?Unique identifier
periodoEvaluacionIdint?Evaluation period the criterion belongs to
periodoEvaluacionPeriodoEvaluacion?Nested evaluation period object (when included by API)
nombreString?Criterion name, e.g. "Participación"
porcentajedouble?Weight as a percentage, e.g. 30.0

PeriodoEvaluacion Model

Evaluation periods are tenant-scoped subdivisions of an academic period (e.g. quarters, trimesters).
FieldTypeDescription
idint?Unique identifier
academicPeriodIdint?Parent academic period
nombreString?Period name, e.g. "Primer Quimestre"
ordenint?Display order index
tenantIdint?Tenant this period belongs to

CriterioRepository Methods

List criteria for an assignment
Future<List<Criterio>> getCriterios(int asignacionId)
GET /criterios/asignacion/:asignacionId
Create a criterion
Future<void> crearCriterio({
  required int asignacionId,
  required int periodoEvaluacionId,
  required String nombre,
  required double porcentaje,
})
POST /criterios/asignacion/:asignacionId
{
  "periodo_evaluacion_id": 2,
  "nombre": "Examen escrito",
  "porcentaje": 40.0
}

Update a criterion
Future<void> actualizarCriterio({
  required int criterioId,
  required String nombre,
  required double porcentaje,
})
PUT /criterios/:criterioId
Delete a criterion
Future<void> eliminarCriterio(int criterioId)
DELETE /criterios/:criterioId
List evaluation periods for an assignment
Future<List<PeriodoEvaluacion>> getPeriodosEvaluacion(int asignacionId)
GET /asignaciones/:asignacionId/periodos-evaluacion Used to populate the period selector when creating or filtering criteria.

Grade Book

LibroCalificaciones Model

The top-level grade book response is a grid of criteria columns and student rows.
FieldTypeDescription
criteriosList<CriterioLibro>Ordered list of criteria columns
estudiantesList<EstudianteLibro>Each student’s grades and weighted average
CriterioLibro
FieldTypeDescription
idintCriterion ID
nombreStringCriterion name
porcentajedoubleWeight percentage
EstudianteLibro
FieldTypeDescription
estudianteIdintStudent ID
estudianteStringStudent full name
notasList<NotaLibro>One entry per criterion
promediodoubleWeighted average grade
NotaLibro
FieldTypeDescription
criterioIdintCriterion ID this grade belongs to
criterioStringCriterion name
porcentajedoubleCriterion weight
notadoubleStudent grade for this criterion (mutable)

LibroCalificacionesRepository Methods

Get evaluation periods for an assignment
Future<List<PeriodoEvaluacion>> getPeriodosAsignacion(int asignacionId)
GET /asignaciones/:asignacionId/periodos-evaluacion Returns the list of evaluation periods available for period selection in the grade book UI.
Get the full grade grid
Future<LibroCalificaciones> getLibroCalificaciones({
  required int asignacionId,
  required int periodoId,
})
GET /asignaciones/:asignacionId/periodos-evaluacion/:periodoId/libro-calificaciones Returns the complete LibroCalificaciones object with all criteria and student grades for the selected evaluation period.
Save grades for a criterion
Future<void> guardarNotas({
  required int criterioId,
  required List<Map<String, dynamic>> notas,
})
POST /criterios/:criterioId/notas Persists grades for every student against a single criterion in one request. The notas list must contain one entry per student:
await repository.guardarNotas(
  criterioId: 7,
  notas: [
    {'estudiante_id': 1, 'nota': 8.5},
    {'estudiante_id': 2, 'nota': 9.0},
    {'estudiante_id': 3, 'nota': 7.25},
  ],
);
The JSON body sent to the server:
{
  "notas": [
    { "estudiante_id": 1, "nota": 8.5  },
    { "estudiante_id": 2, "nota": 9.0  },
    { "estudiante_id": 3, "nota": 7.25 }
  ]
}
All students in the class must be included in the notas array. Omitting a student will not clear their grade — send a nota of 0 explicitly if no score was earned.

Routes

RouteDescription
/mis-clases/:periodoId/:cursoId/:paraleloId/:asignacionId/criteriosManage evaluation criteria for the assignment
/mis-clases/:periodoId/:cursoId/:paraleloId/:asignacionId/libro-calificacionesView and enter grades in the grade book grid

Build docs developers (and LLMs) love