The Final Grade Book (Finales) is where teachers, preceptors, and admins record end-of-year academic results for each enrolled student. It tracks the final exam score, an optional recuperatory score, and two status flags — libre and regular — all scoped to a specific academic year derived from the career configuration.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.
Grade Record Structure
Each record in thenotas_finales table represents a single student’s outcome for one subject in one academic year:
Final exam score. Must be between 1 and 10 inclusive, or
null if not yet recorded.Recuperatory (make-up) exam score. Same range: 1–10 or
null. When present, the boletin PDF uses this value as the effective grade.Mark the student as libre (did not meet attendance or coursework requirements). Cannot be
true at the same time as regular.Mark the student as regular (met coursework requirements and may sit the final exam). Cannot be
true at the same time as libre.Academic Year (anio_academico)
Theanio_academico value is never entered manually. The API derives it automatically from the anio field on the associated career (carreras.anio) when reading or writing grade records.
anio_academico, keeping grade records consistent without any manual configuration.
Reading the Grade Book
notas_finales record are still included — they appear with nota: null, nota_recuperatorio: null, libre: false, regular: false.
Bulk Upsert: Saving Grades
Teachers and preceptors save the entire grade book in a single request. The endpoint uses an upsert strategy keyed on(estudiante_id, materia_id, anio_academico), so re-saving a student’s record safely overwrites the previous values.
Only students who are enrolled in the subject’s career cohort may have grades submitted. The API validates each
estudiante_id against the enrolled list and returns 400 Alumno no inscripto en la comisión de esta materia for any unrecognised ID.Permissions
Docente
Can read and write grades only for subjects where they are the assigned
docente_id. The assertDocenteMateria helper enforces this by checking materias.docente_id === user.id.Preceptor
Can read and write grades for any subject that belongs to a career (
carrera_id IS NOT NULL). Standalone courses (materias without a career) are excluded.Estudiante
No access to the
/api/finales endpoints. Students view their own grades exclusively through the Boletín PDF.FinalesPanel: Teacher UI
In the classroom interface theFinalesPanel component renders an inline editable table. Each row represents one enrolled student; teachers type grades directly into the input cells and tick the Libre / Regular checkboxes, then click Guardar notas to fire the bulk PUT.
FinalesPanel row fields
FinalesPanel row fields
| Column | Description |
|---|---|
| Alumno | Apellido, Nombre — sorted alphabetically |
| Libre | Checkbox — toggling it to true automatically unchecks Regular |
| Regular | Checkbox — toggling it to true automatically unchecks Libre |
| Final | Numeric input, step 0.1, range 1–10 |
| Recup. | Numeric input for recuperatory score, step 0.1, range 1–10 |
anio_academico (e.g. “1º año académico”) so teachers always know which cohort year they are editing.
How Grades Appear in the Boletín
When generating a grade bulletin PDF, the system readsnotas_finales for a student across all subjects in their career. For each subject row, it uses nota_recuperatorio as the effective final grade when present — falling back to nota otherwise. The libre and regular flags are rendered as checkmarks in dedicated columns of the PDF table.