Skip to main content

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.

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.

¿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

CapaTecnologíaVersión
FrontendVue 3 + TypeScriptVue 3.5 / TS 6.0
Routervue-router5.x
BundlerVite8.x
Íconos@lucide/vue
HTTP clientaxios
BackendNestJS + TypeScriptNestJS 11 / TS 5.7
Base de datosPostgreSQL + TypeORMTypeORM 1.x
Autenticaciónbcrypt6.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 campo tppr_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.
Roltppr_idRutas accesibles
Técnico1Dashboard, Adolescentes, Expedientes, Medidas, Perfil
Coordinador2Todo lo anterior + Reportes Estadísticos
Administrador3Todo lo anterior + Usuarios, Parámetros
// router/index.ts — umbrales mínimos por ruta
const ROUTE_MIN_ROL: Record<string, number> = {
  '/app/reportes':   2,  // Coordinador o superior
  '/app/usuarios':   3,  // Solo Administrador
  '/app/parametros': 3,  // Solo Administrador
}
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.

Build docs developers (and LLMs) love