The preceptor is an administrative support role that sits between the admin and the teaching staff. Preceptors do not teach subjects and do not attend courses — their work is purely operational. They are responsible for keeping the enrolment register up to date, ensuring that students are correctly assigned to their careers and standalone subjects, adjusting subject metadata such as assigned teachers and timetables, entering official final grades, and generating grade bulletins for reporting purposes. A preceptor account cannot be self-registered; it must be created by an admin viaDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Renzo717/Aula-Virtual-Universidad-Radiolocucion/llms.txt
Use this file to discover all available pages before exploring further.
POST /api/users with rol: 'preceptor'.
Role Scope
Can Do
Manage student enrolments, edit subject name and schedule, assign teachers to subjects, enter and update final grades for any subject, download any student’s boletín, search users.
Cannot Do
Create or delete user accounts, create or delete careers, create subjects from scratch, delete subjects, access virtual classrooms, view audit logs or admin dashboard stats.
Enrolment Management
Allinscripciones routes require either admin or preceptor role. The router applies requireRole('admin', 'preceptor') as router-level middleware, so all endpoints below share the same access rule:
View a student’s enrolments
created_at descending so the most recent enrolment appears first.
Enrol a student in a career
activa, and that the student is not already enrolled with estado: 'activa'. A duplicate enrolment attempt returns 400 El alumno ya está inscripto en esta carrera.
Enrol a student in a standalone subject
carrera_id (a standalone course). The server checks that the subject exists, is active, and has carrera_id: null. The response includes the new enrolment record joined with the subject’s nombre, fecha_inicio, and fecha_fin.
The createInscripcionSchema requires that at least one of carrera_id or materia_id is present:
There is currently no
DELETE /api/inscripciones endpoint. To revoke access, an admin must set the enrolment estado to 'baja' directly via the database or a future admin-only patch endpoint.Subject Editing
Preceptors can update the metadata of any existing subject using:updateMateriaSchema:
- Reassign a teacher — set
docente_idto the new teacher’s UUID (ornullto unassign) - Update the timetable — pass a
horariosarray with day and time slots - Rename a subject — update
nombre - Mark as promocional — set
promocional: truewhen a subject allows direct promotion
Example: reassign teacher and update schedule
horarios is provided the API automatically generates a formatted horario display string via formatHorarios for use in the UI.
Listing Subjects by Teacher
Preceptors can look up all active subjects assigned to a specific docente, which is useful when reassigning workloads or auditing timetable conflicts:Materia objects joined with the parent career’s nombre and anio:
User Search
Preceptors share the user search endpoint with admins. This allows them to find a student’s UUID before creating an enrolment, without having access to the full user management panel:nombre, apellido, and dni. The response only includes id, nombre, apellido, email, dni, rol, and avatar_url — not sensitive fields like status or last_login.
Final Grades
Preceptors can enter and update official final marks for any subject — they are not limited to subjects assigned to a particular teacher. This is intentional: preceptors often need to correct or complete grade records when a teacher is unavailable.fecha_inicio.
(estudiante_id, materia_id, anio_academico) as the conflict key, so it is safe to call repeatedly. Only enrolled students are accepted — submitting a grade for a student not enrolled in the subject returns 400 Alumno no inscripto en la comisión de esta materia.
Each UpsertNotaFinalInput accepts:
| Field | Type | Notes |
|---|---|---|
estudiante_id | string (UUID) | Required |
nota | number | null | Final exam mark, 1–10 |
nota_recuperatorio | number | null | Resit mark, 1–10 (optional) |
libre | boolean | Student sat as libre (free candidate) |
regular | boolean | Student is regular; mutually exclusive with libre |
Grade Bulletins
Preceptors can download the grade bulletin for any student:BoletinAlumnoResumen + BoletinMateriaFila[]) is typically used for formal reporting to the university registrar. Each row shows the subject name, whether it is promocional, the student’s libre/regular status, the nota, and the nota_recuperatorio.
Endpoint Reference
| Method | Endpoint | Description |
|---|---|---|
GET | /api/users/search?q= | Search users by name or DNI (max 30 results) |
GET | /api/inscripciones/usuario/:userId | List all enrolments for a student |
POST | /api/inscripciones | Enrol a student in a career or standalone subject |
PATCH | /api/carreras/materias/:id | Edit subject name, teacher, or schedule |
GET | /api/carreras/docentes/:docenteId/materias | List active subjects by teacher |
GET | /api/finales/materia/:materiaId | View final grade roster for a subject |
PUT | /api/finales/materia/:materiaId | Save / update final grades (bulk upsert) |
GET | /api/boletin/:estudianteId | Download a student’s grade bulletin |