mod.certificates — Certificados¶
Community · Categoría core (siempre activo)
Qué hace¶
Emisión y gestión de certificados PDF al completar un curso: plantillas personalizables por organización (logo, copy, color, firmante) con plantilla por defecto, emisión automática al recibir learning.course.completed, numeración correlativa única por tenant, y verificación pública por enlace compartible (la URL que se añade al perfil de LinkedIn).
Cómo funciona¶
- Cada certificado emitido guarda un snapshot inmutable (alumno, curso, fecha) y el hash SHA-256 del PDF: renombrar el curso después no altera un certificado ya emitido. El PDF se regenera bajo demanda desde el snapshot.
- Doble unicidad:
(tenant, número)garantiza numeración correlativa y(tenant, matrícula)impide emitir dos veces por la misma matrícula. - La verificación pública (
/modules/certificates/verify/:id) responde{ number, studentName, courseTitle, issuedAt, valid }sin exponer nunca email ni datos internos, y contempla la revocación con registro de auditoría. - El editor de plantillas tiene preview PDF con datos de ejemplo, sin persistir nada.
Dependencias¶
- Dura:
mod.learning(la emisión se dispara al completar). Opcional:mod.courses(lectura de datos del curso al emitir).
Modelo de datos¶
| Tabla | Qué guarda |
|---|---|
mod_certificates_template |
Plantillas: cuerpo, color, logo, firmante, flag default. |
mod_certificates_issued |
Emitidos: número, hash SHA-256, snapshot JSON, clave de storage, revocación. |
API¶
Prefijo /modules/certificates: los del alumno (me, detalle, descarga), plantillas (formador+) y verificación pública. Detalle en Referencia → Aprendizaje.
Eventos¶
- Emite:
certificates.issued,certificates.revoked. - Consume:
learning.course.completed(auto-emisión).
Configuración¶
Sin variables propias; toda la personalización va por plantillas del tenant. Borrar una plantilla en uso o marcada como default responde 409.