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.

Parents can monitor each of their linked children’s academic performance from a single dashboard. Once a director associates a parent account with one or more students, the parent gains access to that child’s agenda, grade report, attendance record, and anecdotal notes — all in read-only view.
Parents must be linked to students by a director before they can see any child data. Use the director panel at /padres/:id/estudiantes to create the association and set the parentesco (relationship) field.

Route Map

RouteScreenDescription
/mis-hijosMisHijosScreenList of all children linked to the authenticated parent
/mis-hijos/:estudianteIdPadreDashboardScreenPer-child hub screen
/mis-hijos/:estudianteId/agendasPadreAgendaScreenChild’s tasks and exams
/mis-hijos/:estudianteId/notasPadreNotaScreenChild’s grade report by period
/mis-hijos/:estudianteId/asistenciasPadreAsistenciaScreenChild’s absences by subject
/mis-hijos/:estudianteId/anecdotariosPadreAnecdotarioScreenTeacher anecdotal notes about the child

My Children — MisHijosScreen

Route: /mis-hijos The entry point for the parent portal. Calls PadreFamiliaRepository.getMisHijos() to retrieve every student linked to the logged-in parent account.
Future<List<PadreHijo>> getMisHijos() async {
  final response = await _dio.get('/padre/mis-hijos');
  final List lista = response.data['estudiantes'];
  return lista.map((e) => PadreHijo.fromJson(e)).toList();
}
Endpoint: GET /padre/mis-hijos

PadreHijo Model

id
int
required
Student ID used throughout all child sub-routes as :estudianteId.
nombre
String
required
Student’s full name.
codigoEstudiante
String
required
Unique enrolment code. Mapped from codigo_estudiante.
parentesco
String
required
Relationship label (e.g. "Padre", "Madre", "Tutor").

Child Dashboard — PadreDashboardScreen

Route: /mis-hijos/:estudianteId A hub screen that presents the four monitoring sections for the selected child. Tapping any card navigates to the corresponding sub-route.

Agenda

Homework tasks and exams assigned to the child.

Grades

Period-by-period grade report with per-subject averages.

Attendance

Absence records grouped by subject with a total fault count.

Anecdotario

Behavioural and academic notes logged by teachers.

Agenda

Route: /mis-hijos/:estudianteId/agendas Shows all agenda items (tasks and exams) assigned to the child across all subjects.

PadreAgendaRepository

class PadreAgendaRepository {
  final Dio _dio;
  PadreAgendaRepository(this._dio);

  Future<List<PadreAgenda>> getAgendasHijo(int estudianteId) async {
    final response = await _dio.get('/padre/mis-hijos/$estudianteId/agendas');
    final List agendas = response.data['agendas'];
    return agendas.map((e) => PadreAgenda.fromJson(e)).toList();
  }
}
Endpoint: GET /padre/mis-hijos/:estudianteId/agendas

PadreAgenda Model

id
int
required
Agenda entry ID.
titulo
String
required
Title of the task or exam.
descripcion
String
required
Full description or instructions.
tipo
String
required
Entry type: "tarea" or "examen".
fechaEntrega
String?
Due date in ISO format. Mapped from fecha_entrega.
materia
String
required
Subject name the entry belongs to.
archivos
List<AgendaArchivo>
Reference files attached by the teacher. Each item has id, nombreOriginal, and url.

Grades

Route: /mis-hijos/:estudianteId/notas Displays the child’s academic report card organised by evaluation period. Each period shows a per-subject average and an overall promedioGeneral.

PadreNotaRepository

class PadreNotaRepository {
  final Dio _dio;
  PadreNotaRepository(this._dio);

  Future<List<PeriodoNota>> getBoleta(int estudianteId) async {
    final response = await _dio.get('/padre/mis-hijos/$estudianteId/notas');
    final List periodos = response.data['periodos'];
    return periodos.map((e) => PeriodoNota.fromJson(e)).toList();
  }
}
Endpoint: GET /padre/mis-hijos/:estudianteId/notas

PeriodoNota Model

periodo
String
required
Name of the evaluation period (e.g. "Quimestre 1").
materias
List<MateriaNota>
required
Per-subject grade summaries for this period.
promedioGeneral
double
required
Overall average across all subjects for this period. Mapped from promedio_general.

MateriaNota Model

materia
String
required
Subject name.
promedio
double
required
Average grade for this subject in the period.

Attendance

Route: /mis-hijos/:estudianteId/asistencias Returns the child’s absence (falta) records. Results can optionally be filtered by subject name.

PadreAsistenciaRepository

class PadreAsistenciaRepository {
  final Dio _dio;
  PadreAsistenciaRepository(this._dio);

  Future<PadreAsistenciaResponse> getAsistenciasHijo(
    int estudianteId, {
    String? materia,
  }) async {
    final response = await _dio.get(
      '/padre/hijos/$estudianteId/asistencias',
      queryParameters: {if (materia != null) 'materia': materia},
    );
    return PadreAsistenciaResponse.fromJson(response.data);
  }
}
Endpoint: GET /padre/hijos/:estudianteId/asistencias[?materia=:name]

PadreAsistenciaResponse Model

materias
List<String>
required
Full list of subject names enrolled by the student — useful for populating a filter dropdown.
totalFaltas
int
required
Total number of absences across all subjects. Mapped from total_faltas.
faltas
List<PadreAsistencia>
required
Individual absence records.

PadreAsistencia Model

fecha
String
required
Date of the absence in ISO format.
materia
String
required
Subject during which the absence was recorded.

Anecdotario

Route: /mis-hijos/:estudianteId/anecdotarios Shows anecdotal notes logged by teachers about the child. These notes can describe positive achievements, behavioural incidents, or any other relevant observation.

PadreAnecdotarioRepository

class PadreAnecdotarioRepository {
  final Dio _dio;
  PadreAnecdotarioRepository(this._dio);

  Future<List<PadreAnecdotario>> getAnecdotarios(int estudianteId) async {
    final response = await _dio.get(
      '/padre/mis-hijos/$estudianteId/anecdotarios',
    );
    return (response.data as List)
        .map((e) => PadreAnecdotario.fromJson(e))
        .toList();
  }
}
Endpoint: GET /padre/mis-hijos/:estudianteId/anecdotarios

PadreAnecdotario Model

id
int?
Record ID.
tipo
String?
Category of the note (e.g. "positivo", "negativo").
titulo
String?
Short title for the note.
descripcion
String?
Full text of the anecdotal record.
fecha
String?
Date the note was logged.
profesor
String?
Name of the teacher who wrote the note. Resolved from the nested profesor.user.name path.
materia
String?
Subject the note relates to. Resolved from asignacion_docente.subject.name.

Build docs developers (and LLMs) love