Proyectos

Automatización completa de inscripciones en Moodle con generación de PDF

Daniel Márquez
#fastapi#moodle#pdf#backend#automatización

En este proyecto desarrollé una solución completa para automatizar el proceso de inscripción en cursos de Moodle, eliminando la necesidad de introducir datos manualmente o usar formularios genéricos. El sistema combina un frontend HTML personalizado, un backend en FastAPI y la integración con la API de Moodle, generando además un PDF de inscripción firmado y enviado por correo.

🎯 Objetivo

Simplificar y automatizar el proceso de alta de usuarios en Moodle, asegurando trazabilidad mediante un documento firmado (PDF) y evitando pasos manuales como copiar datos, enviar emails o realizar altas desde el panel de administración.


🧩 Componentes técnicos del sistema

📄 Formulario personalizado

⚙️ Backend desarrollado en FastAPI

El corazón del sistema es un backend construido en Python con FastAPI, que se encarga de:

  1. Validar los datos recibidos desde el formulario.
  2. Generar un PDF con toda la información y la firma digital.
  3. Guardar el PDF en un directorio seguro fuera del docroot de Apache.
  4. Enviar el PDF por correo al centro de gestión mediante SMTP autenticado.
  5. Dar de alta automáticamente al usuario en Moodle, utilizando la API oficial REST, incluyendo:
    • Datos básicos: nombre, apellidos, email, etc.
    • Campos personalizados como el NIF.

🧩 Integración con Moodle

🖨️ Generación del PDF

La generación del PDF no se basa en HTML, sino en un diseño nativo con la librería fpdf y Pillow. Esto permite un diseño limpio y profesional, con soporte para:

El archivo resultante se envía tanto al usuario como al gestor.


🔐 Seguridad y privacidad


📬 Envío de correos


📁 Acceso a los PDFs desde Moodle


🚀 Ventajas del sistema


🔧 Tecnologías utilizadas


💬 Conclusión

Este proyecto representa un gran ejemplo de cómo se puede automatizar completamente un proceso burocrático con tecnologías modernas, combinando velocidad, seguridad y cumplimiento legal.

Además, la solución está diseñada para ser mantenible y escalable, permitiendo añadir más cursos, campos personalizados o flujos similares en el futuro.

Si te interesa un sistema como este para tu centro de formación, contáctame desde danimarqz.dev.

← Volver a los Blogs