Student Enrollment Management (Inscripciones) Mi Cole
Register students into a course and section for a specific academic period. Enrollments drive attendance, grade books, and parent access all year long.
Use this file to discover all available pages before exploring further.
Enrollments (Inscripcion) are the records that formally place a student into a specific course and section for a given academic period. Each enrollment creates a precise four-way relationship: one student + one academic period + one course + one section. This record is the foundation for attendance tracking, grade books, agenda assignments, and parent access — every feature that involves a student in a classroom depends on an enrollment existing first.
An enrollment is always scoped to an active academic period. Before enrolling students, ensure the target academic period has been created and activated. See Academic Periods for details.
class InscripcionRepository { final Dio _dio; InscripcionRepository(this._dio);}
List Enrollments
Create Enrollment
Delete Enrollment
Returns all enrollment records for a given academic period. The response may be a bare list or wrapped in a data key — the repository handles both shapes.
Future<List<Inscripcion>> getInscripciones(int periodoId) async { final response = await _dio.get( '/periodos/$periodoId/inscripciones', ); final List data = response.data is List ? response.data : response.data['data'] ?? []; return data.map((e) => Inscripcion.fromJson(e)).toList();}
Deleting an enrollment also removes the student from class-level queries for that period. Attendance and grade records scoped to this enrollment may become orphaned. Proceed with caution.
Teachers and directors can query the list of students enrolled in a specific class (period + course + section combination) using a dedicated endpoint. This powers attendance screens, grade books, and class dashboards.Endpoint:GET /api/periodos/:periodoId/cursos/:cursoId/paralelos/:paraleloId/estudiantes
Future<List<EstudianteClase>> getEstudiantesPorClase({ required int periodoId, required int cursoId, required int paraleloId,}) async { final response = await _dio.get( '/periodos/$periodoId/cursos/$cursoId/paralelos/$paraleloId/estudiantes', ); final List data = response.data['estudiantes'] ?? []; return data.map((e) => EstudianteClase.fromJson(e)).toList();}
EstudianteClase is a lightweight projection used when listing students within a classroom context. It contains only the fields needed for display and identification.
class EstudianteClase { final int? id; final String? nombre; final String? email; EstudianteClase({this.id, this.nombre, this.email}); factory EstudianteClase.fromJson(Map<String, dynamic> json) { return EstudianteClase( id: json['id'], nombre: json['nombre'], email: json['email'], ); }}
This means a student can be enrolled in different courses or sections across different academic periods, but cannot be enrolled twice in the same period + course + section combination.