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 agenda feature lets teachers post structured items — tarea (homework), examen (exam), or any custom type — for a specific class assignment. Each agenda item can carry a description, a due date, and one or more attached files. Teachers can also inspect which students have submitted work and review each submission in detail.

Data Models

Agenda

Represents a single agenda item posted to a class.
FieldTypeDescription
idint?Unique identifier
tituloStringTitle of the agenda item
descripcionString?Optional detailed description
tipoStringCategory: tarea, examen, or other value
fechaEntregaString?ISO-8601 due date (fecha_entrega in JSON)
materiaString?Subject name (read-only, returned by API)
profesorString?Teacher name (read-only, returned by API)
cursoString?Course name (read-only, returned by API)
paraleloString?Section name (read-only, returned by API)
archivosList<AgendaArchivo>Attached files

AgendaArchivo

Represents a file attached to an agenda item.
FieldTypeDescription
idint?Unique identifier
nombreOriginalStringOriginal filename (nombre_original in JSON)
urlStringFully-resolved download URL

EntregasResponse

Top-level wrapper returned when fetching student submissions for an agenda item.
FieldTypeDescription
tipoStringAgenda item type (mirrors Agenda.tipo)
tituloStringAgenda item title
entregasList<EntregaEstudiante>Per-student submission summary
Each EntregaEstudiante inside the list contains:
FieldTypeDescription
estudianteIdintStudent ID
nombreStringStudent full name
codigoString?Student code
estadoStringentregado or pendiente
entregaIdint?Submission ID (present only when estado == "entregado")
fechaEntregaString?Submission timestamp

EntregaDetalleProfesor

Full submission detail as seen by the teacher, including attached files.
FieldTypeDescription
idintSubmission ID
estudianteIdintStudent ID
nombreEstudianteStringStudent full name
codigoEstudianteString?Student code
comentarioString?Comment left by the student
estadoStringentregado or pendiente
fechaEntregaString?Submission timestamp
archivosList<ArchivoEntrega>Files uploaded by the student
Each ArchivoEntrega has id, nombreOriginal, and url.

API Reference — AgendaRepository

List agenda items

Future<List<Agenda>> getAgenda({
  required int periodoId,
  required int asignacionId,
})
GET /periodos/:periodoId/asignaciones/:asignacionId/agenda Returns all agenda items for the class within the given period.

Get a single agenda item

Future<Agenda> getAgendaDetalle(int id)
GET /agenda/:id Returns full detail for one agenda item, including its archivos list.

Create an agenda item

Future<Agenda> crearAgenda({
  required int periodoId,
  required int asignacionId,
  required String titulo,
  required String descripcion,
  required String tipo,
  String? fechaEntrega,
})
POST /periodos/:periodoId/asignaciones/:asignacionId/agenda Request body:
{
  "titulo": "Ejercicios de álgebra",
  "descripcion": "Resolver los ejercicios del capítulo 3",
  "tipo": "tarea",
  "fecha_entrega": "2025-02-28"
}
Returns the newly created Agenda object (inside a data wrapper from the server).

Update an agenda item

Future<void> actualizarAgenda({
  required int agendaId,
  required String titulo,
  required String descripcion,
  required String tipo,
  String? fechaEntrega,
})
PUT /agenda/:agendaId Same body shape as crearAgenda.

Delete an agenda item

Future<void> eliminarAgenda(int agendaId)
DELETE /agenda/:agendaId

Upload files to an agenda item

Future<void> subirArchivos({
  required int agendaId,
  required List<PlatformFile> archivos,
})
POST /agenda/:agendaId/subir-archivomultipart/form-data Each file is sent as a archivos[] field. Multiple files can be uploaded in a single request.
File selection uses the file_picker Flutter package. The picked PlatformFile.bytes are read directly into memory and sent as MultipartFile.fromBytes, so no temporary path on disk is required. This works on both web and mobile targets.

Delete an attached file

Future<void> eliminarArchivo(int archivoId)
DELETE /agenda-archivos/:archivoId

Replace an attached file

Future<void> reemplazarArchivo({
  required int archivoId,
  required PlatformFile archivo,
})
POST /agenda-archivos/:archivoId/reemplazarmultipart/form-data Sends the new file in a single archivo field. The server swaps the stored file in place while keeping the same archivoId.

Get student submissions for an item

Future<EntregasResponse> getEntregas(int agendaId)
GET /agenda/:agendaId/entregas Returns an EntregasResponse with the full student list and their submission status for that agenda item.

Get full detail of a single submission

Future<EntregaDetalleProfesor> getDetalleEntrega(int entregaId)
GET /entregas/:entregaId Returns the teacher’s detailed view of one student submission, including any files the student uploaded.

Routes

RouteDescription
/mis-clases/:periodoId/:cursoId/:paraleloId/:asignacionId/agendasList of all agenda items for the class
/mis-clases/:periodoId/:cursoId/:paraleloId/:asignacionId/agendas/createForm to create a new agenda item
/mis-clases/:periodoId/:cursoId/:paraleloId/:asignacionId/agendas/:agendaIdDetail view for a single agenda item
/agendas/:agendaId/entregasSubmission tracker for a specific agenda item
/agendas/:agendaId/entregas/:entregaIdTeacher’s detailed view of a single student submission

Build docs developers (and LLMs) love