Learning Management System con activación por PIN único + producción de contenidos interactivos · Next.js 15 + NestJS
Un LMS propio de Editorial Encuentro donde cada libro físico trae un PIN único que activa su versión digital, con panel central para la editorial y espacios por colegio. Los contenidos interactivos se cotizan en capítulo aparte.
Se construye un LMS multitenant con panel maestro para la editorial y espacios aislados por colegio. El estudiante que compra un libro original se registra con el PIN impreso en el texto, queda matriculado automáticamente en su colegio y curso, y accede a su libro digital, a los textos de cortesía que la editorial le active y a la vitrina con los demás títulos de su grado.
Panel maestro: colegios, cursos, docentes, catálogo por grado, generación de lotes de PINes, licencias por año lectivo y analíticas globales.
Selecciona colegio y grado, ingresa el PIN del libro y en menos de dos minutos está dentro de su curso con su texto digital activado.
Sus cursos llegan preconfigurados por la editorial. Habilita actividades y evaluaciones, hace seguimiento y exporta notas.
Stack definitivo: Frontend en Next.js 15 (React, App Router, RSC). Backend en NestJS + TypeORM + PostgreSQL. Todo TypeScript — los tipos de la API se comparten entre frontend y backend vía un Nx Monorepo. La misma arquitectura sirve para la opción Básica y la Avanzada: pasar de una a otra es agregar módulos, no reescribir.
Dos vías de ingreso: el PIN es la vía principal. Adicionalmente, la plataforma soporta matrícula administrada — carga masiva de estudiantes por Excel/CSV o creación manual — para colegios que prefieran entregar las cuentas ya creadas; el PIN del libro se vincula igualmente a cada cuenta para conservar el control anti-piratería.
La editorial activa en bloque, por colegio o por curso, textos digitales adicionales — por ejemplo, quien compró Matemáticas y Lenguaje físicos recibe Ciencias y Sociales en digital. Solo lectura, sin actividades ni evaluaciones. El libro digital se genera a partir del PDF que entrega la editorial (Capítulo 07); la plataforma lo publica en el visor protegido.
El estudiante ve las carátulas de los demás libros de su grado en modo desactivado. Cuando compra el libro físico, ingresa el nuevo PIN y el título se activa al instante — el catálogo completo trabaja para el equipo comercial de la editorial.
Cada decisión técnica está justificada por la escalabilidad futura, no solo por el presente.
El monorepo Nx no es solo organización de código — es la decisión que hace posible compartir interfaces TypeScript entre Next.js y NestJS, y que permite pasar de la opción Básica a la Avanzada agregando módulos sin tocar los existentes.
ActivationDto, el frontend Next.js falla en compilación antes de llegar a producción. Cero errores de integración API.
Por qué NestJS y no Express u otro framework Node: NestJS tiene un sistema de módulos con inyección de dependencias que replica exactamente la arquitectura de microservicios — solo que todo corre en el mismo proceso. Cuando el crecimiento lo exija, @nestjs/microservices permite separar módulos con un cambio de configuración. Express no tiene ese concepto — habría que reescribir la comunicación desde cero.
La opción Básica cubre todo lo que Editorial Encuentro solicitó. La Avanzada agrega IA, realidad aumentada y experiencia completa. Todo lo marcado está incluido en el precio de cada opción.
| Funcionalidad | Básica | Avanzada | Detalle |
|---|---|---|---|
| Gestión editorial, colegios y usuarios | |||
| Panel Super Admin de la editorial (multitenant) | ✓ | ✓ | Colegios, grados, cursos, docentes, catálogo y licencias |
| Catálogo de libros por grado y área | ✓ | ✓ | Carátulas, series y vigencia por año lectivo con vencimiento automático |
| Asignación de docentes a cursos (multi-grado) | ✓ | ✓ | Un docente puede tener 4°A, 4°B y 5°A simultáneamente |
| Carga masiva de docentes y estudiantes (Excel/CSV) | ✓ | ✓ | Plantilla descargable; vía alterna al registro con PIN |
| Autenticación JWT + guards por rol | ✓ | ✓ | Editorial · rector · docente · estudiante. Datos aislados por colegio |
| PIN único y anti-piratería | |||
| Generación de lotes de PINes por tirada de impresión | ✓ | ✓ | Códigos únicos con checksum, exportables a CSV/Excel para imprenta |
| Registro de estudiante con PIN y matrícula automática | ✓ | ✓ | Colegio → grado → PIN → curso con docente ya asignado |
| Validación de unicidad y bloqueo de fraude | ✓ | ✓ | Código usado o falso = rechazo; límite de intentos y bloqueo por IP |
| Auditoría de activaciones e intentos | ✓ | ✓ | Quién, cuándo y desde dónde; rastreo de lotes sospechosos |
| Contenido y lectura digital | |||
| Visor de texto digital protegido | ✓ | ✓ | Sin descarga, marca de agua por estudiante, índice y zoom. Publica el libro digital generado a partir del PDF fuente (Capítulo 07) |
| Textos digitales de cortesía (activación en bloque) | ✓ | ✓ | Por colegio o curso; solo lectura, sin actividades |
| Vitrina de catálogo con activación por compra | ✓ | ✓ | Carátulas del grado desactivadas; nuevo PIN = título activo al instante |
| CMS de contenido para la editorial (sin código) | ✓ | ✓ | Organiza libros, unidades y actividades desde un panel |
| Reproductor de actividades interactivas | ✓ | ✓ | Ejecuta las actividades del Capítulo 07 y registra resultados |
| Docente agrega URLs externas e iframes seguros | ✓ | ✓ | Wordwall, Kahoot, H5P… con whitelist de dominios |
| PWA — instalable en tablet y celular, offline parcial | ✗ | ✓ | Instalable sin app store; push web incluido |
| Evaluaciones y control docente | |||
| Evaluaciones y talleres predefinidos por la editorial | ✓ | ✓ | Cargados por unidad desde el CMS; calificación automática de cerradas |
| Docente habilita/deshabilita y programa con cierre automático | ✓ | ✓ | Fecha y hora de cierre vía BullMQ; control total por curso |
| Libro de calificaciones y exportación Excel/PDF | ✓ | ✓ | Notas por curso y estudiante, listas para el sistema del colegio |
| Banco de preguntas del docente y evaluaciones propias | ✓ | ✓ | Opción múltiple, V/F, completar, abierta; separado del banco editorial |
| IA: generación de preguntas desde el contenido del libro | ✗ | ✓ | RAG (LangChain + pgvector) sobre cada libro; el docente revisa y aprueba |
| IA: corrección automática de respuestas abiertas | ✗ | ✓ | Sugerencia de nota y retroalimentación; el docente confirma |
| IA: rutas de refuerzo adaptativas | ✗ | ✓ | Según los errores del estudiante, la plataforma sugiere qué repasar |
| Experiencia avanzada | |||
| Realidad aumentada sobre el libro físico (WebAR) | ✗ | ✓ | El estudiante escanea una lámina del libro con el celular y ve un modelo 3D o animación — sin instalar app |
| Gamificación: puntos, insignias y ranking por curso | ✗ | ✓ | Motivación de uso continuo de la plataforma |
| Mensajería docente ↔ estudiante en tiempo real | ✗ | ✓ | WebSocket; siempre mediada por el docente, sin chat entre estudiantes |
| Portal de acudientes (solo lectura) | ✗ | ✓ | Progreso, anuncios y fechas — argumento de venta ante colegios |
| Analítica y reportes | |||
| Reportes esenciales de la operación | ✓ | ✓ | PINes generados vs. activados, registros por colegio, progreso por curso |
| Dashboard del docente con progreso del curso | ✓ | ✓ | Notas, completitud, estudiantes inactivos |
| Analítica OLAP (ClickHouse) y comparativos entre colegios | ✗ | ✓ | Eventos de uso, desempeño por competencia, semáforo de rezago |
| Analítica comercial para el equipo de ventas | ✗ | ✓ | Rotación de títulos, conversión de la vitrina, colegios más activos |
| No incluido en ninguna opción | |||
| Producción de contenidos interactivos | ✗ | ✗ | Se cotiza en el Capítulo 07 — contratación independiente |
| App móvil nativa (tiendas iOS/Android) | ✗ | ✗ | Propuesta separada; la PWA de la opción Avanzada cubre el uso móvil |
| Videoconferencia integrada · chat entre estudiantes · pasarela de pagos | ✗ | ✗ | Fuera de alcance por decisión de producto y protección de menores |
Módulos concretos, cada uno con pruebas funcionales y documentación antes de pasar al siguiente. Los módulos 08 y 09 corresponden solo a la opción Avanzada.
Workspace Nx con Next.js + NestJS y librerías compartidas de tipos. GitHub Actions para tests automáticos y deploy a staging. Entornos de desarrollo, pruebas y producción configurados.
JWT con refresh tokens, guards por rol (editorial / rector / docente / estudiante), restablecimiento de contraseña, consentimiento de acudiente y aislamiento de datos por colegio.
Gestión de colegios, cursos, docentes y catálogo. Generación de lotes de PINes con checksum y exportación para imprenta. Licencias por año lectivo. CMS para organizar libros, unidades y contenido. Activación en bloque de cortesías.
Flujo completo colegio → grado → PIN → curso, con validación anti-piratería, bloqueos y auditoría. Dashboard con sus libros activos, vitrina del catálogo del grado y textos de cortesía.
Lectura paginada del libro digital generado a partir del PDF de la editorial: sin descarga, marca de agua con el nombre del estudiante, índice navegable, zoom y enlaces firmados con expiración.
Cursos asignados, habilitar/deshabilitar contenido, programación con cierre automático, calificación automática de preguntas cerradas, banco de preguntas del docente para evaluaciones propias, libro de calificaciones y exportación Excel/PDF.
Motor que ejecuta las actividades interactivas del Capítulo 07 con contrato único (configuración de entrada → puntaje, respuestas y tiempo de salida). Reportes de PINes, registros y progreso para la editorial.
RAG por libro (LangChain + pgvector): generación de preguntas desde el contenido con revisión del docente, corrección asistida de respuestas abiertas y rutas de refuerzo según los errores de cada estudiante.
Realidad aumentada WebAR sobre láminas del libro físico (sin app nativa), puntos e insignias por curso, mensajería en tiempo real docente ↔ estudiante, portal de acudientes de solo lectura, PWA con push web y analítica ClickHouse.
Despliegue en la infraestructura elegida por el cliente, CI/CD de producción, documentación técnica del monorepo, manual de usuario por rol (PDF) y capacitación al equipo de Editorial Encuentro. Acompañamiento en la primera generación de PINes.
Cada fase cierra con entregables verificables. El cliente aprueba antes de iniciar la siguiente.
Levantamiento de requisitos con la editorial. Diseño en Figma de los paneles (editorial, colegio, docente, estudiante). Setup del Nx Monorepo, esquema de base de datos y CI/CD desde el día 1. Entregable: prototipo Figma aprobado + monorepo funcionando en staging.
Autenticación por roles, panel maestro de la editorial, generación y exportación de lotes de PINes, licencias por año lectivo y CMS de contenido. Entregable: la editorial puede crear colegios, cursos y generar lotes de códigos reales.
Registro con PIN y validación anti-piratería, dashboard del estudiante, visor protegido del texto digital, cortesías y vitrina de catálogo. Entregable: un estudiante real activa un libro con su PIN y lo lee en la plataforma.
Motor de evaluaciones de la editorial, reproductor de actividades, libro de calificaciones, reportes y exportaciones. Pruebas con colegios piloto, documentación y capacitación. Aquí termina la opción Básica: plataforma en producción.
RAG por libro, generación y corrección con IA, rutas de refuerzo, WebAR sobre el libro físico, gamificación, mensajería en tiempo real, portal de acudientes, PWA con push y analítica ClickHouse. Entregable: cada capacidad probada con contenido real de la editorial.
Despliegue de la opción Avanzada, prueba de carga (estudiantes simultáneos en examen), documentación final, capacitación y soporte activo durante el primer mes de operación real.
El desarrollo es idéntico en los tres casos. Solo varía el costo mensual de operación que asume la editorial.
DevGrafik configura e instala el sistema en la opción elegida — la configuración está incluida en el precio de desarrollo. Los costos mensuales de operación los paga Editorial Encuentro directamente a cada proveedor, y varían según el tráfico real, la región y las tarifas vigentes de cada servicio.
Los costos de infraestructura no están incluidos en el precio de desarrollo — son gastos operativos mensuales que Editorial Encuentro consulta y contrata directamente con el proveedor elegido, ya que dependen del tráfico real, la región y las tarifas vigentes en el momento de la contratación. Como la editorial ya cuenta con AWS, se recomienda la Opción A: DevGrafik despliega sobre la cuenta AWS del cliente con permisos delimitados y entrega la configuración documentada con su guía de operación, para que el equipo de la editorial pueda cotizar el costo mensual directamente con AWS según su volumen esperado.
Este capítulo se contrata por separado del LMS: el cliente puede desarrollar solo la plataforma y producir los contenidos después, por etapas o con su propio equipo.
Cada libro tiene 4 unidades. Editorial Encuentro entrega el PDF del libro en alta calidad y DevGrafik genera a partir de ese archivo el libro digital completo — montado en el visor, navegable por unidad — y produce el contenido interactivo alineado unidad por unidad con el texto impreso.
| Recurso | Cantidad | Detalle |
|---|---|---|
| Generación del libro digital a partir del PDF | 1 por libro | DevGrafik convierte el PDF entregado por la editorial en el libro digital del visor: índice navegable, zoom y marcadores |
| Actividades interactivas | 8 · (2 por unidad) | Mecánicas de la sección 7.2, con calificación automática |
| Talleres | 8 · (2 por unidad) | Resolubles en línea o descargables para imprimir |
| Prueba tipo Saber | 2 por libro | Formato ICFES: selección múltiple con única respuesta, contextualizada |
| Retroalimentación automática | Incluida | En cada actividad, el estudiante ve por qué acertó o se equivocó |
Cada mecánica se construye una sola vez como plantilla configurable y se reutiliza en todos los libros — por eso el precio por libro baja con el volumen. Todas reportan puntaje, respuestas y tiempo al libro de calificaciones.
Pregunta con opciones (texto o imagen); el estudiante elige y recibe retroalimentación inmediata.
Mover elementos al lugar correcto: partes de una célula, números en una recta, palabras en una oración.
Unir columnas o parejas relacionadas: concepto con definición, país con capital, imagen con palabra.
Frases o ejercicios con espacios en blanco que el estudiante llena escribiendo o eligiendo la palabra.
Poner en el orden correcto los pasos de un proceso, eventos históricos o etapas de un ciclo.
Arrastrar elementos a la caja que corresponde: vertebrados/invertebrados, sustantivos/verbos.
Vocabulario de la unidad en formato de juego, generado desde las palabras clave del libro.
Voltear tarjetas para encontrar parejas — imagen con imagen o imagen con palabra. Ideal para primaria baja.
Señalar sobre una lámina del libro: ubicar órganos, regiones del mapa, partes de una planta.
Disponibles solo si el LMS se contrata en opción Avanzada (Capítulo 03). Se cotizan como adición por libro, sobre el paquete estándar.
2 experiencias por libro: el estudiante escanea una lámina del libro físico con la cámara del celular y ve un modelo 3D o una animación (el sistema solar girando, el ciclo del agua en movimiento). Sin instalar ninguna app — funciona en el navegador. + COP 3,5 – 5 M por libro.
100+ preguntas por libro generadas con IA desde el contenido real del texto (RAG) y curadas por el equipo editorial antes de publicarse. El docente arma evaluaciones ilimitadas desde este banco. + COP 1,5 – 2,5 M por libro.
Cada serie tiene alrededor de 11 libros; con dos o tres series el proyecto llega a 22–33 títulos. Las plantillas y motores se comparten entre libros, así que el costo unitario cae de forma real — no es un descuento comercial, es eficiencia de producción.
| Volumen contratado | Precio por libro (paquete estándar) |
|---|---|
| Hasta 10 libros | COP 3,5 millones |
| 11 – 20 libros (≈ una serie) | COP 3,0 millones |
| 21 libros en adelante (30+ · dos o tres series) | COP 2,5 millones |
Producción por oleadas: 4 libros en paralelo con el equipo base — ampliable a 8 en paralelo para 2 o 3 series, lo que reduce los tiempos aproximadamente a la mitad sin afectar la tarifa. Se prioriza por calendario escolar: primero los grados y áreas que el equipo comercial necesita listos para la temporada. Sugerencia: iniciar con un libro piloto — en 3–4 semanas la editorial ve el resultado real en la plataforma y se ajusta el estándar antes de producir en volumen.
Lo que necesitamos de la editorial: el PDF de cada libro en alta calidad (DevGrafik genera el libro digital a partir de ese archivo), solucionarios cuando existan, y aprobación de cada ronda de revisión en los tiempos acordados (2 rondas de ajustes por libro incluidas). La facturación es por libro aprobado, manteniendo la tarifa del volumen total comprometido aunque se ejecute por etapas.
Dos inversiones independientes. El cliente puede contratar solo el LMS y decidir los contenidos después.
| Alcance | El precio de cada opción cubre las funcionalidades marcadas con ✓ en la tabla del Capítulo 3 (LMS) y los recursos del Capítulo 7 (Contenidos). Cualquier funcionalidad adicional se cotiza por escrito antes de iniciar. |
| Cambios de alcance | Hasta 2 ajustes por fase sin costo, siempre que no superen el 10% del esfuerzo de esa fase. Cambios mayores se cotizan y aprueban por escrito. |
| Plan de pagos | Se acuerda directamente con el cliente, ligado a hitos y metas verificables del cronograma. El LMS se cotiza a precio fijo por opción (Capítulo 8.1); los contenidos se facturan por libro aprobado según la tarifa del volumen contratado (Capítulo 8.2). |
| Propiedad del código y del contenido | Al completar el pago total, Editorial Encuentro recibe el código fuente completo (repositorio privado en GitHub a su nombre) y la propiedad intelectual del 100% del contenido producido. |
| Infraestructura | Los costos mensuales de hosting, bases de datos, CDN y consumo de APIs de IA son responsabilidad de la editorial. DevGrafik configura el entorno como parte del proyecto (Capítulo 06). |
| Garantía de calidad | Todos los módulos se entregan con tests automatizados documentados. Bugs reportados en los primeros 60 días post-lanzamiento se corrigen sin costo adicional. |
| Protección de datos de menores | Tratamiento conforme a la Ley 1581 de 2012 (habeas data): datos mínimos, consentimiento del acudiente, sin publicidad ni terceros, comunicación siempre mediada por el docente. |
| Confidencialidad | DevGrafik mantiene absoluta confidencialidad sobre el contenido, datos de usuarios y lógica de negocio de la editorial durante y después del proyecto. |
| Vigencia de la propuesta | Precios y condiciones válidos por 30 días calendario desde el 26 de agosto de 2026. |
La firma de ambas partes constituye la aceptación formal del alcance, precios y condiciones descritos en este documento, indicando la opción de LMS elegida y el volumen de contenidos contratado.
Al firmar esta propuesta, Editorial Encuentro acepta el alcance de la opción elegida (Capítulo 3), los precios indicados en el Capítulo 8 y el plan de pagos que se acuerde por hitos. DevGrafik se compromete a ejecutar el proyecto según el cronograma del Capítulo 5 con los entregables del Capítulo 4.
Fecha de emisión: 26 de agosto de 2026 · Válida 30 días · LMS: opción ______ · Contenidos: ______ libros