The final grades module (Documentation 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.
/api/finales) allows authorised staff to read and bulk-save end-of-year exam results for any subject. Each grade record tracks the numeric score, a retake score, and two boolean condition flags (libre, regular). The academic year (anio_academico) is resolved automatically from the subject record — callers never need to supply it. The companion boletines endpoint generates PDF grade transcripts per student.
Final Grades
Get final grades for a subject
GET /api/finales/materia/:materiaId
null for all numeric fields and false for condition flags.
Auth: admin, docente, preceptor (docentes must be assigned to the subject; admins and preceptors have access to any subject)
The academic year resolved from the subject configuration (e.g.
2025).Student list sorted alphabetically by
apellido then nombre.Student user UUID.
Student first name.
Student last name.
Student email address.
National ID number, if on file.
Final exam grade (1–10), or
null if not yet entered.Retake exam grade (1–10), or
null if not applicable.Whether the student is marked as
libre (failed by attendance). Defaults to false.Whether the student is marked as
regular (passed coursework, pending final exam). Defaults to false.Bulk upsert final grades
PUT /api/finales/materia/:materiaId
(estudiante_id, materia_id, anio_academico) — existing records are overwritten, and new records are inserted. Only students enrolled in the subject are accepted; submitting an estudiante_id for a non-enrolled student results in a 400 error.
Auth: admin, docente, preceptor (docentes must be assigned to the subject)
Request body (application/json) — bulkUpsertNotasFinalesSchema:
Array of grade entries to save. At least one entry is required.Each item:
UUID of the enrolled student.
Final exam grade. Must be between 1 and 10, or
null to clear the grade.Retake exam grade. Must be between 1 and 10, or
null. Defaults to null.Mark the student as
libre. Defaults to false. Cannot be true at the same time as regular — the Zod schema enforces this constraint and returns a validation error if both flags are set.Mark the student as
regular. Defaults to false. Cannot be true at the same time as libre.Always
"Notas guardadas" on success.libre and regular are mutually exclusive
The upsertNotaFinalSchema applies a superRefine rule that rejects any entry where both libre and regular are true. Attempting to save such an entry returns 400 with:
Boletines (Grade Transcripts)
Download student PDF transcript
GET /api/boletines/pdf
UUID of the student whose transcript to generate.
UUID of the career for which the transcript is generated.
- Content-Type:
application/pdf - Content-Disposition:
attachment; filename="<apellido>_<nombre>.pdf"
List careers (for transcript selector)
GET /api/boletines/carreras
List students in a career
GET /api/boletines/carrera/:carreraId/alumnos