Mesa Digital
Plataforma de tickets en tiempo real que reúne las solicitudes de la Dirección de Recursos Digitales de la UCV, con avisos, calendario y base de conocimiento.
- Cliente
- IA Systems & Data
- Año
- 2026
- Servicio
- Aplicativos y software
- Rol
- Dirección técnica full-stack
- Formato
- Plataforma web
- Estado
- En producción

Que nadie tenga que preguntar cómo va su pedido.
La Dirección de Recursos Digitales de la Universidad César Vallejo necesitaba un solo canal para las solicitudes que recibe, con el avance de cada pedido a la vista, las fechas de entrega y la documentación del equipo a mano.
Una plataforma de tickets en tiempo real.
Construimos el frontend en Next.js 16 con una interfaz inspirada en GitHub (listas y detalle al estilo de Issues, tema oscuro) y el backend en NestJS 12, con módulos de autenticación, tickets, áreas, notificaciones y tiempo real que se comunican por eventos de dominio.
La plataforma admite varias organizaciones, roles configurables (Director, Coordinador, Miembro), un tablero Kanban sincronizado por WebSocket, cierre automático de tickets, avisos agrupados con horario silencioso, un calendario de entregas y documentos versionados con listas de verificación.
Lo que incluye
Kanban en tiempo real
Tablero de tickets sincronizado por WebSocket entre todos los usuarios conectados, de la creación al cierre.
Varias organizaciones
Cada organización se identifica por el dominio de correo de sus usuarios, y las solicitudes se derivan entre áreas.
Avisos agrupados
Campana en vivo y Web Push: varios cambios en pocos minutos generan un solo aviso, con horario silencioso configurable.
Calendario de entregas
Vista de mes, semana y agenda con arrastrar y soltar; las entregas salen de los tickets y admite eventos propios recurrentes.
Base de conocimiento
Documentos con editor enriquecido, versiones, búsqueda en español y listas de verificación que se ejecutan desde el ticket.
Panel de indicadores
Indicadores con caché, series históricas, desglose por área y exportación a CSV.
Stack y arquitectura
- Next.js 16
- TypeScript
- Tailwind CSS 4
- NestJS 12
- Prisma 7
- PostgreSQL 16
- Socket.IO
- Google OAuth
- Frontend
- Next.js 16 con TanStack Query y una interfaz estilo GitHub hecha con shadcn/ui, en tema oscuro.
- Backend
- NestJS 12 con Prisma 7 sobre PostgreSQL 16 y módulos aislados que se comunican por eventos de dominio.
- Tiempo real
- Solo Socket.IO, sin SSE ni consultas periódicas, con Redis 7 para pub/sub entre réplicas.
- Infraestructura
- Monorepo con pnpm y Turborepo en un VPS propio detrás de Cloudflare y Caddy, con despliegue automático por GitHub Actions.
Lo que resolvimos
Organizaciones separadas por dominio de correo
El sistema deduce la organización a partir del dominio del correo institucional y aísla los datos de cada una sin duplicar la infraestructura.
Tiempo real sin consultas periódicas
Cada evento viaja por WebSocket en un mismo formato (tipo, contenido, versión y hora); cada módulo publica sus eventos y los demás se suscriben sin acoplarse.
Roles configurables sobre capacidades fijas
Cada organización define sus roles sobre un conjunto fijo de capacidades, así un Jefe y un Coordinador pueden tener rangos de escalado de avisos distintos sin tocar el código.
En detalle
- Cierre automático de tickets resueltos
- 5 días
- Acceso restringido al correo institucional
- @ucv.edu.pe


