Saltar al contenido

Expediente 02 · Producto

FORMARPRO

Capacitación empresarial, evaluación y certificación verificable diseñadas como un solo recorrido.

  • SvelteKit
  • NestJS
  • PostgreSQL
  • Redis
  • BullMQ
  • Socket.IO

El reto

La capacitación empresarial es más que publicar videos: las empresas necesitan inscripciones, evaluaciones, sesiones en vivo, prerrequisitos, evidencias y certificados verificables. Todo debía sentirse coherente para el estudiante y seguir siendo controlable para los equipos de formación.

Página pública de capacitación empresarial de FORMARPRO
Superficie pública del producto capturada desde el frontend local.

El enfoque

Diseñé superficies distintas para cada rol sobre un modelo compartido de aprendizaje y cumplimiento. SvelteKit resuelve la experiencia; NestJS, PostgreSQL y Redis coordinan inscripciones, progreso, notificaciones y certificados asíncronos, con contenido interactivo y SSO empresarial como capacidades de primer nivel.

Decisiones clave

  1. Modelar recorridos separados para estudiante, instructor, empresa y administración sobre un mismo dominio de aprendizaje.
  2. Tratar los certificados como registros verificables, no como simples PDF decorativos.
  3. Mover el trabajo pesado a colas y admitir identidad empresarial mediante SAML y OpenID Connect.

Arquitectura técnica

Arquitectura full stack diseñada y construida de punta a punta por mí.

  1. 01 Experiencias de aprendizaje SvelteKit

    Recorridos para estudiantes, instructores, empresas y administración.

  2. 02 Dominio de aprendizaje NestJS

    Reglas de inscripción, progreso, evaluación y certificación.

  3. 03 Estado y caché PostgreSQL · Redis

    Registros durables con estado operativo de respuesta rápida.

  4. 04 Trabajos e integraciones BullMQ · SSO · H5P

    Certificados, notificaciones, identidad empresarial y contenido interactivo.

Módulos

De qué está hecho el producto, tal como lo dividen sus propias pantallas.

  • 01 Catálogo y rutas de aprendizaje

    Cursos, paquetes y prerrequisitos organizados en rutas.

  • 02 Capacitaciones

    Contenido interactivo H5P y SCORM, video y lectura con seguimiento por persona.

  • 03 Evaluaciones

    Evaluaciones con instructores, aprobaciones y resultados.

  • 04 Certificados verificables

    Certificados firmados con QR que cualquiera verifica en el sitio público.

  • 05 Empresas y órdenes

    Cuentas corporativas, órdenes de compra y solicitudes de catálogo.

  • 06 SSO corporativo

    Inicio de sesión SAML y OIDC configurado por empresa.

  • 07 Sitio público

    Catálogo, documentación, estado y la página de verificación.

Antes → después

  • Antes

    Capacitación dividida entre herramientas aisladas.

    Después

    Un recorrido continuo de aprendizaje.

  • Antes

    Certificados entregados como archivos estáticos.

    Después

    Certificados respaldados por registros verificables.

  • Antes

    Tareas pesadas bloqueando la experiencia.

    Después

    Trabajos asíncronos con progreso visible.

Tecnologías

  • SvelteKit
  • NestJS
  • PostgreSQL
  • Redis
  • BullMQ
  • Socket.IO
  • SAML/OIDC
  • H5P

El resto de la caja

  • TypeORM
  • Passport
  • JSON Web Tokens
  • OpenAI
  • Resend
  • TanStack
  • GSAP
  • SCORM
  • hls.js
  • jsPDF
  • Mapbox

Marcas de Simple Icons; los conceptos sin marca están dibujados en casa.

Bitácora

may 2026 → oct 2026 · 6 meses activos

111 commits
2 repositorios
6 meses activos
may 2026 Mes más intenso: ago 2026 · 43 commits oct 2026
  • app app · 69 commits may 2026 → oct 2026
  • api API · 42 commits may 2026 → oct 2026

En el árbol

  • 85 rutas
  • 50 controladores de API
  • 50 archivos de prueba
  • 1159 archivos versionados

Leído del historial Git local el 6 oct 2026. Solo agregados.

El resultado

La versión actual une descubrimiento, capacitación, evaluación y certificación en una misma familia de producto. Su foto local de Git abarca 73 commits, dos repositorios y 68 rutas entre experiencias públicas, de estudiante, instructor, empresa y administración.

Código privado — este archivo comparte el razonamiento, no el fuente.