The Sistema de Gestión Académica — UTP AED implements a role-based access control (RBAC) model. When a user logs in, the application resolves their role from the authenticatedDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/kenri89/PROYECTO_UTP_AED_1_1/llms.txt
Use this file to discover all available pages before exploring further.
Usuario object and uses it to decide which buttons are rendered visible in the MenuPrincipal sidebar. There are no runtime permission prompts — panels that a role cannot access simply do not appear.
Role Comparison
| Role | Default Login | Panels Accessible | Key Operations |
|---|---|---|---|
| Administrator | admin / 1234 | All panels | Full CRUD on courses, students & enrollments; review and close student requests |
| Secretary | secretaria / 1234 | Courses, Students, Enrollment, Solicitudes | CRUD on academic catalog, student registry, and access to the student request queue |
| Student | <carnet> / 1234 | My Enrollments, Solicitudes, History | View own enrollments; submit and track academic requests |
How Authentication Works
The login flow inLoginFrame collects a username, password, and a role selection from a JComboBox. Depending on the selected role, authentication follows one of two paths.
- Administrator / Secretary
- Student
Credentials are validated against the If the database is unavailable,
usuarios table in the SQL Server database (iestp_peru_japon) through UsuarioDAO, which implements IUsuarioDAO.UsuarioDAO falls back to hard-coded credentials (admin/1234 and secretaria/1234) so the application remains usable offline.Student Account Creation
Student accounts are created automatically — there is no manual registration screen.CuentasEstudiantes.registrarPorMatricula(carnet) is invoked in two places:
- During enrollment — when a secretary or administrator enrolls a student through the Matrícula panel (
PanelMatricula), the method is called immediately after a successful enrollment is recorded. - On application startup — when
PersistenciaAcademica.cargar()loads saved data from disk, it iterates over all persisted enrollments and callsregistrarPorMatriculafor each one, ensuring the accounts file stays consistent with the enrollment list.
cuentas_estudiantes.txt, enabling that carnet to be used as a login username from that point onward.
A student who has never been enrolled cannot log in, because their carnet will not yet exist in the accounts file.
Panel Visibility by Role
The following logic inMenuPrincipal drives panel visibility at runtime:
setVisible(false) applied, so they occupy no space.
Role Pages
Administrator
Full system access, including request resolution and all CRUD panels.
Secretary
Day-to-day academic data entry: courses, students, and enrollment management.
Student
Self-service view of personal enrollments, request submission, and history.