UZDI es el sistema web centralizado que reemplaza los procesos manuales dispersos de las oficinas UZDI de Ecuador por una plataforma segura, multi-rol y con trazabilidad completa de auditoría.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Zapiony/PUCE_UZDI_2026/llms.txt
Use this file to discover all available pages before exploring further.
¿Qué es UZDI?
UZDI (Sistema de Gestión Integral de la Unidad de Sustentabilidad y Desarrollo Integral) es la plataforma web oficial desarrollada por la Pontificia Universidad Católica del Ecuador (PUCE) para el SNAI (Servicio Nacional de Atención Integral a Personas Adultas Privadas de la Libertad y a Adolescentes Infractores). La plataforma unifica el registro, seguimiento y control de adolescentes sujetos a medidas socioeducativas a nivel nacional, reemplazando procesos manuales y hojas de cálculo dispersas por un sistema centralizado, seguro y multi-rol. Los usuarios principales del sistema son técnicos de campo, coordinadores zonales y administradores institucionales que operan desde las distintas oficinas UZDI del Ecuador.El problema que resuelve
Ecuador cuenta con múltiples oficinas UZDI distribuidas a nivel nacional. Antes de este sistema, cada unidad gestionaba su información de forma independiente —a través de archivos locales, hojas de cálculo y registros en papel— lo que dificultaba la supervisión centralizada, la generación de reportes estadísticos unificados y el control de acceso por roles. UZDI resuelve estos retos proporcionando:- Un repositorio único de adolescentes, expedientes y medidas socioeducativas accesible desde cualquier oficina autorizada.
- Reportes estadísticos en tiempo real (medidas activas, tipos de infracción, revisiones próximas) sin necesidad de consolidar datos manualmente.
- Trazabilidad completa gracias a triggers de auditoría automáticos que registran cada cambio en la base de datos.
- Control de acceso granular mediante un sistema de roles que garantiza que cada funcionario solo vea y opere lo que le corresponde.
Stack tecnológico
| Capa | Tecnología | Versión |
|---|---|---|
| Frontend | Vue 3 + TypeScript | Vue 3.5 / TS 6.0 |
| Router | vue-router | 5.x |
| Bundler | Vite | 8.x |
| Íconos | @lucide/vue | — |
| HTTP client | axios | — |
| Backend | NestJS + TypeScript | NestJS 11 / TS 5.7 |
| Base de datos | PostgreSQL + TypeORM | TypeORM 1.x |
| Autenticación | bcrypt | 6.x |
| Validación (backend) | class-validator + DOMPurify | — |
@lucide/vue y axios son importados directamente en el código fuente del frontend. DOMPurify es una dependencia exclusiva del backend, usada en SanitizationPipe para limpiar todos los campos string antes de la validación.Capacidades principales
Gestión de Adolescentes
Registro completo con cédula, datos personales, etnia, nacionalidad y UZDI asignada. Tabla paginada con búsqueda por nombre o cédula y filtros por estado y medida.
Expedientes
Creación y seguimiento de expedientes con numeración automática
EXP-YYYY-NNNN. Adjuntos descargables, historial de estados y cierre formal de caso.Medidas Socioeducativas
Gestión del ciclo completo de cada medida: tipo, fechas, técnico asignado y estado. Barras de progreso dinámicas con codificación de color según avance.
Reportes Estadísticos
Cinco tipos de reporte (general, adolescentes activos, medidas, expedientes, revisiones). Filtros por período, zona UZDI y rango de fechas. Exportación a PDF y Excel.
Control de Usuarios
CRUD completo de cuentas del sistema con asignación de perfil/rol. Cambio de contraseña seguro con verificación bcrypt y política de mínimo 8 caracteres.
Configuración Institucional
Panel de parámetros con tres secciones: configuración de organización, seguridad del sistema y preferencias de notificaciones por correo electrónico.
Sistema de roles (RBAC)
El acceso a cada módulo está controlado por el campotppr_id almacenado en el perfil del usuario. El router de Vue aplica guardas automáticas que redirigen al dashboard si el rol no alcanza el mínimo requerido.
| Rol | tppr_id | Rutas accesibles |
|---|---|---|
| Técnico | 1 | Dashboard, Adolescentes, Expedientes, Medidas, Perfil |
| Coordinador | 2 | Todo lo anterior + Reportes Estadísticos |
| Administrador | 3 | Todo lo anterior + Usuarios, Parámetros |
El sidebar y los accesos rápidos del Dashboard también se filtran dinámicamente por
tppr_id, de modo que los técnicos nunca ven botones o enlaces a módulos a los que no tienen acceso.Acceso al repositorio
Este es un repositorio privado. El acceso está restringido exclusivamente a miembros autorizados del equipo PUCE/SNAI. No se deben compartir credenciales, archivos
.env ni tokens fuera del equipo de desarrollo. Todo código generado está bajo la licencia UNLICENSED — todos los derechos reservados a la Pontificia Universidad Católica del Ecuador.