Qué se construyó, qué está funcionando ahora mismo en el servidor, y qué falta. Documento técnico para SPR Media, no para el cliente.
La sede digital de la Escuela de Cuadros, bajo responsabilidad conjunta de la Secretaría Nacional de Educación y Doctrina y la Secretaría Nacional de Asuntos Electorales. Es una plataforma construida a medida, no un Moodle adaptado: se decidió así porque hacían falta clases en vivo dentro de la propia plataforma y un asistente que responda dudas sobre el material, dos cosas que Moodle no da sin plugins de pago.
Banner con la bandera y el retrato del Dr. Peña Gómez, los tres módulos con sus cifras reales, próximas clases en vivo, preguntas frecuentes y verificación de certificados. Se adapta a teléfono.
#/inicio con la sesión abierta.Micrófono, cámara, compartir pantalla, levantar la mano, chat y cola de preguntas con votos. La asistencia se toma sola por los minutos realmente conectados, no a mano.
Subida hasta 3 GB con barra de progreso, miniatura automática y reproductor con control de velocidad. Registra los minutos vistos y marca la lección completada al 90 %.
Banco de preguntas por lección, de una o varias respuestas correctas. Corrección automática con repaso pregunta por pregunta. Intentos ilimitados y cuenta la mejor nota.
PDF con la franja tricolor, las dos secretarías firmando, sello y código. Cualquiera puede comprobar su autenticidad por el código, sin tener cuenta.
La clase en vivo se graba sola y queda publicada en la biblioteca del curso al terminar. Arranca cuando entra quien dicta, no el primer alumno.
Cuatro áreas: contenido (módulos, cursos, lecciones, material), personas (altas, roles, territorios, PIN), certificados y marca e identidad.
Busca en las transcripciones de las lecciones y responde con el minuto exacto del video. No inventa: si la respuesta no está en el material, lo dice.
Base de datos, archivos subidos, código y configuración de nginx, todas las noches a las 3:15, con rotación de catorce días.
El código está escrito y se enciende con dos variables. Falta que el sistema de registro exponga una consulta de cédula: hoy solo tiene endpoints para inscribir.
Los tres módulos que definió el cliente, con la estructura completa montada. Los títulos y descripciones son un esqueleto para que la plataforma no arranque en blanco, no material aprobado por la Secretaría. Todo es editable desde el panel.
| Módulo | Cursos | Lecciones | Horas | Dirigido a |
|---|---|---|---|---|
| Pensamiento de José Francisco Peña Gómez Trayectoria, principios, doctrina y visión política | 4 | 16 | 6 | Todo miembro |
| Revolución de Valores La propuesta política y de campaña del BIS | 4 | 15 | 7 | Dirigentes de base, campaña y voceros |
| Capacitación y adiestramiento electoral Delegados, coordinadores de recinto y de colegio | 7 | 26 | 12 | Toda la estructura electoral |
Además: 10 materiales de apoyo registrados, 2 lecciones con transcripción completa (las que hacen funcionar a Nova) y 3 preguntas de evaluación cargadas como muestra.
Cinco servicios, todos propios del proyecto. Nada compartido con los otros sistemas del VPS: la Escuela tiene su base, su servidor de video y su Redis, siguiendo la regla de que cada proyecto es independiente.
| Servicio | Qué hace | Imagen |
|---|---|---|
nexo-formacion | La aplicación: web, API, certificados en PDF | Node 22 + Express, construida a medida |
formacion-db | La base de datos, 19 tablas | PostgreSQL 16 |
formacion-livekit | El servidor de video de las clases en vivo | livekit/livekit-server |
formacion-egress | Graba las clases y las guarda en MP4 | livekit/egress |
formacion-redis | Enlaza el servidor de video con la grabadora | redis 7 |
| Dirección | Para qué |
|---|---|
formacion.sprhub.cloud | La plataforma: portada, aula, panel |
livekit-formacion.sprhub.cloud | El video de las clases en vivo |
Consumo actual: 64 MB de base, 11 MB de archivos, 2,2 MB de respaldos. El servidor tiene 170 GB libres y 19 GB de memoria disponible, así que hay margen de sobra para los videos que vengan.
Todo el código es propio y vive en el VPS, en /opt/nexo-formacion. No hay dependencia de ningún servicio externo de pago: ni video, ni almacenamiento, ni generación de PDF.
| Pieza | Qué contiene | Líneas |
|---|---|---|
servidor.js | Toda la API: acceso, cursos, aula, evaluaciones, panel, certificados | 1.287 |
publico/app.js | La interfaz entera: portada, escritorio, aula, examen, panel, Nova | 2.649 |
publico/estilos.css | El diseño, en claro y en oscuro | 1.116 |
semilla.js | El contenido inicial de los tres módulos | 232 |
sql/esquema.sql | Las 19 tablas | 211 |
archivos.js | Subida de videos y material, miniaturas, duración | 171 |
nova.js | La asistente: motor local y enchufe para un modelo | 161 |
certificados.js | El PDF del certificado | 137 |
examenes.js | Preguntas, corrección y notas | 127 |
base.js · registro.js · sesion.js | Base de datos, puente con el registro, sesiones | 279 |
Sin adornos, en el orden en que conviene atacarlo.
Los 15 cursos tienen estructura pero el material es un esqueleto. Hacen falta los videos, las lecturas y las preguntas que apruebe la Secretaría de Educación y Doctrina.
Un endpoint en el sistema de registro que devuelva los datos de un miembro por su cédula. Es un cambio en ese proyecto, no en este.
Recordatorio antes de una sesión en vivo, por la aplicación o por WhatsApp. El registro ya tiene montado el envío por WhatsApp; se podría reutilizar.
Hoy responde con el motor local, que busca en las transcripciones. Conectar un modelo son dos variables de entorno.
| Qué ver | Dirección | Cédula |
|---|---|---|
| Portada pública | formacion.sprhub.cloud/#/inicio | no hace falta entrar |
| Panel del alumno | formacion.sprhub.cloud/#/escritorio | 031-1234567-7 |
| Panel del instructor | formacion.sprhub.cloud/#/instructor | 031-0000000-1 |
| Administración | formacion.sprhub.cloud/#/admin/contenido | 031-5555555-5 |
| Verificar un certificado | formacion.sprhub.cloud/#/certificado/ | no hace falta entrar |