Especificación técnica, trazabilidad y arquitectura del ecosistema unificado para la gestión integral de Carnés Universitarios SUNEDU, Expedientes de Grados (Bachiller y Título), Logística de Togas (Lavandería) y Portal de Autoservicio.
| ID | Módulo | Requerimiento y Especificación Funcional | Prioridad | Entidad / Arquitectura | Estado |
|---|---|---|---|---|---|
| REQ-CAR-01 | Carnés SUNEDU |
Carga Masiva e Importación Inteligente de Planillas SIU/LAMB
Procesamiento de archivos Excel (.xlsx/.xls) que detecta automáticamente estudiantes, matrículas por campus y programas. Evita colisiones de clave foránea mediante inserción masiva por lotes (chunks de 200 filas).
|
● ALTA |
estudiantesmatriculasprogramas |
Diseñado |
| REQ-CAR-02 | Carnés SUNEDU |
Soporte Nativo para Múltiples Carreras Simultáneas (Doble Titulación)
Eliminación de la restricción rígida
(estudiante_id, periodo). Ahora una matrícula se asocia a (estudiante_programa_id, periodo), permitiendo que un alumno curse dos carreras en paralelo sin sobreescrituras. |
● ALTA |
estudiantes_programasmatriculas |
En Schema |
| REQ-CAR-03 | Carnés SUNEDU |
Inmutabilidad Histórica de Fotografía por Carné Emitido
La fotografía del carné se almacena de forma inmutable en
carnes.foto_path dentro de Cloudflare R2 (fotos-estudiantes). Si el estudiante tramita un duplicado o un carné en un año posterior, cada emisión conserva su foto exacta auditada ante SUNEDU. |
● ALTA |
carnes.foto_pathR2: fotos-estudiantes |
En Schema |
| REQ-CAR-04 | Carnés SUNEDU |
Regla de Vigencia de 1 Año y Control de Duplicados (S/ 40.00)
El sistema valida que si el estudiante tiene un carné vigente (menos de 1 año desde emisión), se bloquea la solicitud de carné regular en el siguiente semestre y se le exige trámite de Duplicado (con denuncia policial y costo de S/ 40.00).
|
● ALTA |
carnes.fecha_vencimientocarnes.monto_pago |
En Schema |
| REQ-CAR-05 | Carnés SUNEDU |
Trazabilidad del Ciclo de Vida SUNEDU en 8 Estados Oficiales
Gestión de estados:
recibido, registrado_sunedu, en_produccion, en_transito, listo_recoger, no_entregado, entregado y anulado, con filtros por campus y escuela. |
● MEDIA |
carnes.estadov_estado_carne |
En Schema |
| REQ-CAR-06 | Carnés SUNEDU |
Módulo Móvil/Tablet de Entrega Presencial con Firma Digital
Buscador rápido de código de alumno (reglas de 9 y 7 dígitos), renderizado de foto para validación presencial, canvas táctil para captura de firma manuscrita y soporte para adjuntar carta poder en caso de apoderados.
|
● ALTA |
carnes.firma_pathR2: firmas-estudiantes |
Diseñado |
| REQ-GRA-01 | Grados & Fotos |
Expediente de Carrera para Fotos de Bachiller y Título Profesional
Almacenamiento de las fotos de graduación dentro de la relación
estudiantes_programas. Cumple 3NF, ya que el grado académico lo confiere la carrera, permitiendo que el egresado conserve su foto de Bachiller y años después registre su foto de Título sin colisiones. |
● ALTA |
estudiantes_programasfoto_bachiller_pathfoto_titulo_path |
En Schema |
| REQ-GRA-02 | Grados & Fotos |
Inspección Biométrica y Control de Vestimenta Formal con IA
Pre-validación en Worker de subida: detección de vestimenta formal (saco/blazer sobre camisa o blusa formal), rechazo automático de aretes/piercings/alhajas, rechazo de lentes y verificación estricta de fondo blanco de estudio.
|
● ALTA |
Cloudflare Worker Modelos IA Visión |
Diseñado |
| REQ-GRA-03 | Grados & Fotos |
Bandeja de Auditoría Humana y Validación Masiva para Secretaría
Panel comparativo con foto de ejemplo oficial (dama/varón), controles de zoom, rotación 90°, comparación lado a lado y botones de aprobación/rechazo individual o en lote con notificación de motivos.
|
● ALTA |
vista_posibles_graduandosReact + Lucide |
Diseñado |
| REQ-GRA-04 | Grados & Fotos |
Regla de 1 Solo Intento de Subida y Reemplazo Limpio en R2
El estudiante solo puede subir una fotografía. Si el estado es
PENDIENTE o VALIDADO, el portal bloquea nuevas subidas. Si la secretaría rechaza la foto, se habilita un nuevo intento borrando el archivo rechazado de Cloudflare R2 para no desperdiciar almacenamiento. |
● MEDIA |
Bucket R2: fotos-bachillerLógica Worker |
Diseñado |
| REQ-GRA-05 | Grados & Fotos |
Exportación de Padrones para Emisión de Diplomas
Generación de archivos Excel formateados con estilos institucionales (XLSX-js-style) para la Dirección de Grados y Títulos, conteniendo la metadata completa de los graduandos aptos con fotos validadas.
|
● MEDIA |
Librería XLSX-js-style Exportación en cliente |
Diseñado |
| REQ-TOG-01 | Togas & Lavandería |
Préstamo de Togas para Pregrado y Segunda Especialidad
Control de retiro de togas durante la semana previa (lunes a viernes). Registro del operador que entrega, fecha/hora y asignación de talla (S, M, L, XL, XXL) del stock custodiado por el área de Lavandería UPeU.
|
● ALTA |
togas_prestamosnivel_academico |
En Schema |
| REQ-TOG-02 | Togas & Lavandería |
Registro de Procedencia de Toga: Institucional vs Externa
Diferenciación en un solo campo
tipo_provision ('institucional' vs 'externa'). Los graduandos de Posgrado (Maestría/Doctorado) o alumnos que alquilan por fuera se registran como 'externa' (aptos para desfile, pero exonerados de devolución y sin generar mora a Lavandería). |
● ALTA |
togas_prestamos.tipo_provisionCHECK constraint |
En Schema |
| REQ-TOG-03 | Togas & Lavandería |
Control de Plazos de Devolución y Cálculo de Mora
La devolución se realiza el domingo de la ceremonia o lunes posterior (libre de recargos). A partir del martes, el sistema marca automáticamente mora diaria y genera la lista de deudores para liquidación.
|
● ALTA |
fecha_limite_sin_moraCálculo de mora |
En Schema |
| REQ-TOG-04 | Togas & Lavandería |
Regla de Inasistencia y Bloqueo de Diploma Físico
Si un estudiante retiró toga institucional la semana previa pero no asistió el domingo a la ceremonia, su diploma no se le entrega en estrado y queda en custodia de Secretaría General con flag
diploma_bloqueado = true hasta que devuelva la toga a Lavandería. |
● ALTA |
togas_prestamos.diploma_bloqueado |
En Schema |
| REQ-TOG-05 | Togas & Lavandería |
Conmutador Rápido de Rol en Cabecera (Tarapoto y Sedes Mixtas)
Para el personal de Secretaría General de Campus Tarapoto que además entrega togas, la barra superior ofrece un selector instantáneo [Secretaría General] / [Mesa de Togas] sin necesidad de desloguearse ni ingresar contraseñas dos veces.
|
● MEDIA |
React State + Header Context Permisos combinados |
Diseñado |
| REQ-STU-01 | CroniTics Studio |
Segmentación Facial y Eliminación de Fondo con IA en el Navegador
Motor de remoción de fondo mediante redes neuronales ONNX (
@imgly/background-removal). Procesa las fotos de carné y bachiller localmente en el cliente sin requerir APIs de pago ni enviar datos biométricos a servidores de terceros, garantizando fondo blanco puro #FFFFFF. |
● ALTA |
ONNX WebAssembly@imgly/background-removal |
En Código |
| REQ-STU-02 | CroniTics Studio |
Inyector Binario de 300 DPI Exigido por SUNEDU
Motor nativo (
dpiInjector.js) que reescribe directamente las cabeceras binarias JFIF y EXIF del archivo JPEG para asegurar una densidad exacta de 300x300 puntos por pulgada (DPI), superando la validación del validador oficial de SUNEDU. |
● ALTA |
lib/dpiInjector.jsCabeceras JFIF/EXIF |
En Código |
| REQ-STU-03 | CroniTics Studio |
Canvas Interactivo con Óvalo Guía Biométrico y Zoom Dinámico
Lienzo interactivo (
EditorCanvasCarnet / EditorCanvasBachiller) con guía visual de proporciones (distancia barbilla-coronilla y ancho de hombros según norma SUNEDU), paneo, zoom con rueda de ratón y centrado inteligente de rostro. |
● ALTA |
HTML5 Canvas API Telemetría de gestos |
En Código |
| REQ-STU-04 | CroniTics Studio |
Panel de Retoque Digital y Calibración de Color en Tiempo Real
Ajuste de brillo, contraste, saturación, balance de blancos y rotación milimétrica con sliders reactivos y previsualización instantánea antes de la exportación a Cloudflare R2.
|
● MEDIA |
lib/retouchEngine.jsFiltros CSS & Pixel Ops |
En Código |
| REQ-STU-05 | CroniTics Studio |
Generador de Lotes Oficiales SUNEDU (.ZIP de Fotos + Excel Estructurado)
Motor de empaquetado (
suneduExcel.js + jszip) que renombra automáticamente los archivos bajo la nomenclatura oficial de SUNEDU (ej. 01_CODIGO_DNI.jpg) y exporta el libro Excel de entrega con todas las especificaciones institucionales. |
● ALTA |
exceljs + jszipEmpaquetador Cliente |
En Código |
| REQ-POR-01 | Portal Alumno |
Consulta Segura de Estado de Carné Universitario
Autoservicio con Código + DNI + Cloudflare Turnstile. Muestra al estudiante si su carné está registrado en SUNEDU, en tránsito, listo para recoger o entregado, sin exponer la base de datos a scraping.
|
● ALTA |
Función RPC:consultar_estado_carne_alumno |
En Schema |
| REQ-POR-02 | Portal Alumno |
Inscripción a Ceremonia con Acta de Compromiso de Toga
El alumno visualiza la ceremonia oficial asignada a su facultad. Ingresa su número de celular personal, contacto de emergencia de referencia y dibuja su firma digital manuscrita de compromiso de préstamo de toga.
|
● ALTA |
Función RPC:registrar_compromiso_toga |
En Schema |
| REQ-POR-03 | Portal Alumno |
Validación Previa de Diploma Físico Entregado en Oficina
El portal no permite completar el compromiso de ceremonia a ningún egresado que no tenga registrado previamente
fecha_diploma IS NOT NULL en Secretaría General, evitando inscripciones de alumnos sin trámite culminado. |
● ALTA |
Validación en RPC Postgres (Candado de negocio) |
En Schema |
| REQ-POR-04 | Portal Alumno |
Pre-asignación Inviolable de Ceremonia (Anti-Manipulación)
El alumno no puede cambiar de ceremonia ni colarse a fechas de otros campus. La función RPC valida que la ceremonia ejecutada sea exactamente la vinculada por Secretaría General, rechazando cualquier intento de alteración con F12 o Postman.
|
● ALTA |
RPC SECURITY DEFINERValidación estricta |
En Schema |
| REQ-SEG-01 | Seguridad & RLS |
Políticas Específicas de Row Level Security (RLS) en Supabase
Blindaje de todas las tablas (
campus, facultades, programas, estudiantes, matriculas, carnes, togas). Bloqueo total para anónimos y permisos basados en rol para el personal autenticado. |
● ALTA |
PostgreSQL RLS Políticas por rol |
En Schema |
| REQ-SEG-02 | Seguridad & RLS |
Code Splitting y Aislamiento de Rutas Administrativas (React.lazy)
Las pantallas de administración y carga de datos no se descargan en el navegador de los estudiantes. Si un alumno entra a la web pública, solo descarga los 40 KB de la vista de consulta.
|
● ALTA |
Vite + React.lazy()Dynamic imports |
Diseñado |
| REQ-SEG-03 | Seguridad & RLS |
Enmascaramiento de Rutas de Administración
La ruta de acceso del personal no es la predecible
/admin ni tiene botones expuestos en la portada pública. Se parametriza en variables de entorno para que solo el personal conozca el punto de entrada. |
● MEDIA |
React Router DOM Vite Env Config |
Diseñado |
| REQ-SEG-04 | Seguridad & RLS |
Despliegue Unificado en Cloudflare Pages
Una sola base de código con dominio
secretaria-general-upeu.pages.dev. Cero problemas de CORS entre subdominios, una sola sesión de autenticación y soporte directo si TI asigna dominio institucional. |
● ALTA |
Cloudflare Pages Edge CDN global |
Diseñado |