Blog con flujo de trabajo y gestión de comentarios

03 Feb 2025 -
P001
Back end
Site Builder

Proyecto en Drupal 11 que habilita la creación y revisión estructurada de artículos, junto con la moderación de comentarios. Incluye capacidades de búsqueda y un sistema de auditoría para asegurar trazabilidad y calidad en todo el proceso editorial.

1. Introducción

El presente documento describe en detalle la solución propuesta para la gestión de un blog en Drupal 11 que incorpora un flujo de trabajo (Workflow) para la publicación de artículos, así como un sistema de moderación de comentarios. Se incluyen los objetivos generales, actores del sistema, requisitos funcionales y no funcionales, requisitos de información, flujos de información, casos de uso, modelo de datos y la arquitectura de la solución. Su propósito es servir como base para la implementación y validación del sistema.

 

2. Funcionalidades

En este apartado se presentan los objetivos principales de la solución, así como el análisis funcional que detalla los actores, requisitos y flujos de información.

2.1 Objetivos

A continuación, se listan los objetivos principales del sistema de blog:

CódigoTítuloDescripción
OB-001Gestión de Artículos con WorkflowPermitir a los autores crear, editar y someter artículos a revisión, manejando estados: Borrador, En revisión, Aprobado/Publicado, Rechazado.
OB-002Interacción de UsuariosFacilitar la participación de la comunidad al permitir a usuarios registrados comentar los artículos y generar discusiones.
OB-003Notificaciones AutomáticasEnviar notificaciones por correo electrónico a editores y moderadores cuando ocurran eventos críticos (por ejemplo, artículo en revisión o comentario pendiente).
OB-004Búsqueda y FiltradoImplementar un sistema de búsqueda y filtrado avanzado para que los usuarios puedan localizar artículos por palabras clave, etiquetas y categorías.
OB-005Seguimiento y AuditoríaRegistrar todas las transiciones de estado de artículos y comentarios para mantener un historial de auditoría completo.

2.2 Análisis Funcional

El análisis funcional detalla los actores involucrados, los requisitos funcionales y no funcionales, los requisitos de información y los principales flujos de información.

2.2.1 Actores del Sistema

CódigoActorDescripciónPermisos & Interacciones
AC-001AutorUsuario responsable de crear y editar artículos en estado Borrador y someterlos a revisión.Crear, editar y enviar artículos a revisión.
AC-002EditorUsuario responsable de revisar, modificar y aprobar o rechazar artículos enviados a revisión.Revisar, aprobar, editar y registrar cambios en artículos.
AC-003ModeradorUsuario encargado de gestionar la creación, edición y eliminación de comentarios, aprobándolos o rechazándolos.Modera y controla comentarios.
AC-004Usuario RegistradoUsuario autenticado que puede leer artículos y dejar comentarios, con capacidad de editar los suyos dentro de un plazo determinado.Leer, crear, y editar temporalmente sus comentarios.
AC-005Usuario AnónimoVisitante no autenticado con acceso únicamente al contenido público.Acceso de solo lectura.

 

2.2.2 Requisitos del Sistema

2.2.2.1 Requisitos Funcionales
CódigoTítuloDescripciónActores Involucrados
RF-001Gestión de ArtículosPermitir a los autores crear, editar y guardar artículos en estado Borrador.Autor
RF-002Flujo de TrabajoImplementar un Workflow que gestione las transiciones: Borrador → En Revisión → Aprobado/Publicado o Rechazado.Autor, Editor, Sistema
RF-003Registro de AuditoríaRegistrar cada cambio de estado en los artículos para fines de seguimiento y auditoría.Sistema, Editor
RF-004Gestión de ComentariosPermitir a los usuarios registrados crear comentarios en estado Pendiente, sujetos a moderación.Usuario Registrado, Moderador
RF-005Edición/Eliminación de ComentariosPermitir que los usuarios editen o eliminen sus comentarios dentro de un tiempo definido (p. ej., 15 minutos).Usuario Registrado
RF-006NotificacionesEnviar notificaciones por correo electrónico al editor cuando se envía un artículo a revisión y al moderador cuando un comentario está pendiente.Sistema, Editor, Moderador
RF-007Búsqueda y FiltradoOfrecer una herramienta de búsqueda avanzada para filtrar artículos por palabras clave, etiquetas y categorías.Usuario Registrado, Usuario Anónimo
2.2.2.2 Requisitos No Funcionales
CódigoTítuloDescripciónPrioridad
RNF-001SeguridadProteger el sistema ante ataques como inyección SQL, XSS, CSRF y cifrar los datos sensibles.Alta
RNF-002RendimientoAsegurar tiempos de carga inferiores a 2 segundos bajo carga moderada.Alta
RNF-003EscalabilidadLa arquitectura debe soportar el crecimiento en el número de artículos y usuarios sin degradar el servicio.Media
RNF-004MantenibilidadEl código debe estar estructurado y documentado para facilitar futuras actualizaciones.Media
RNF-005AccesibilidadLa interfaz de usuario debe cumplir con estándares WCAG 2.1.Alta

 

2.2.3 Requisitos de Información

A continuación se indican los principales datos que el sistema debe recopilar y gestionar:

  • Artículo:
    • Título
    • Cuerpo (contenido principal)
    • Autor (referencia a usuario)
    • Fecha de creación
    • Estado (Borrador, En Revisión, Aprobado/Publicado, Rechazado)
    • Historial de revisiones y cambios
  • Comentario:
    • Contenido
    • Autor (referencia a usuario)
    • Fecha de creación
    • Estado (Pendiente, Aprobado, Rechazado)
  • Usuario:
    • Nombre de usuario, Email
    • Roles (Autor, Editor, Moderador, Usuario Registrado)
    • Datos de sesión (último acceso, etc.)
  • Metadatos de Auditoría:
    • Registro de cambios de estado de artículos y comentarios
    • Información de notificaciones enviadas (destinatario, fecha, asunto)

Además, los requisitos de información deben considerar la confidencialidad y la integridad de los datos, especialmente en lo referente a la moderación de contenidos y la gestión de estados de publicación.

 

2.2.4 Flujos de Información

A continuación, se describen los flujos principales que se dan dentro del sistema:

CódigoFlujoDescripción
FL-001Creación y Envío de ArtículoEl autor crea un artículo en estado Borrador, lo edita y lo somete a revisión, lo que desencadena una notificación al editor.
FL-002Revisión y Publicación de ArtículoEl editor revisa el artículo, lo aprueba o rechaza; el sistema registra la transición de estado para la auditoría.
FL-003Creación y Moderación de ComentarioUn usuario registrado añade un comentario (estado Pendiente), que luego es revisado por un moderador para aprobarlo o rechazarlo.
FL-004Envío de NotificacionesEl sistema envía notificaciones automáticas a los actores correspondientes cuando ocurren eventos clave (artículo enviado, comentario pendiente, etc.).

 

3. Casos de Uso

En este apartado se detallan los casos de uso más relevantes que describen la interacción de los actores con el sistema.

CU-001: Creación y Envío de Artículo

ElementoDescripción
CódigoCU-001
TítuloCreación y Envío de Artículo
ActoresAutor
PrecondiciónEl autor debe estar autenticado.
Flujo Principal1. Crear artículo → 2. Editar artículo → 3. Guardar como Borrador → 4. Enviar a Revisión
PostcondiciónEl artículo se pasa a estado En Revisión.
ExcepcionesErrores de validación de datos o problemas de conectividad.

CU-002: Revisión y Aprobación de Artículo

ElementoDescripción
CódigoCU-002
TítuloRevisión y Aprobación de Artículo
ActoresEditor
PrecondiciónEl artículo debe estar en estado En Revisión.
Flujo Principal1. Acceder a lista de artículos en revisión → 2. Seleccionar artículo → 3. Revisar contenido → 4. Aprobar o Rechazar
PostcondiciónEl estado del artículo cambia a Publicado o Rechazado.
ExcepcionesFallos en la edición o validaciones incompletas.

CU-003: Gestión de Comentarios

ElementoDescripción
CódigoCU-003
TítuloGestión de Comentarios
ActoresUsuario Registrado, Moderador
PrecondiciónEl artículo debe estar publicado; el usuario que comenta debe estar autenticado.
Flujo Principal1. Crear comentario → 2. Almacenado en estado Pendiente → 3. Moderador revisa → 4. Aprobar o Rechazar comentario
PostcondiciónEl comentario queda publicado o rechazado.
ExcepcionesViolaciones de política de comentarios, fallos en la publicación.

CU-004: Notificaciones Automáticas

ElementoDescripción
CódigoCU-004
TítuloNotificaciones Automáticas
ActoresSistema, Editor, Moderador
PrecondiciónOcurren eventos críticos (envío de artículo a revisión, comentario pendiente).
Flujo Principal1. Evento dispara notificación → 2. El sistema envía correo → 3. Destinatarios reciben notificación
PostcondiciónLa notificación se entrega exitosamente.
ExcepcionesFallos en la entrega de correo o configuración incorrecta.

 

4. Integraciones

Si bien este sistema puede funcionar de manera autónoma en Drupal, se contemplan integraciones potenciales:

  • Servicios de Correo (SMTP o API de terceros como Mailchimp/Mandrill) para el envío de notificaciones.
  • Servicios de Búsqueda Avanzada (por ejemplo, Solr o Elasticsearch) para implementar el filtrado y búsqueda de artículos.
  • Módulos de Control de Acceso (Workflow/Content Moderation nativo de Drupal) para gestionar estados y transiciones de los artículos.

 

5. Modelo de Datos

En este apartado se describe la entidad principal de Artículo, la de Comentario y la relación con usuarios.

EntidadCampos PrincipalesRelaciones
ArtículoTítulo, Cuerpo, Autor, Fecha de creación, EstadoAsociado a un usuario (Autor, Editor) y a sus comentarios
ComentarioContenido, Autor, Fecha, EstadoVinculado a un Artículo; gestionado por Moderador
UsuarioNombre, Email, Rol, CredencialesRoles: Autor, Editor, Moderador, Usuario Registrado, Usuario Anónimo

Auditoría: Se registran las transiciones de estado de artículos y comentarios para fines de seguimiento.

 

6. Arquitectura del Sistema

La solución se articula en tres capas principales:

  1. Capa de Presentación: Implementada en Drupal 11, con temas responsivos y plantillas personalizadas.
  2. Capa de Aplicación: Basada en el núcleo de Drupal 11 y módulos contribuidos (Workflow/Content Moderation, Comment, Pathauto, Metatag, etc.) para la gestión del flujo de trabajo y la interacción con el usuario.
  3. Capa de Datos: Utiliza una base de datos (p. ej., MariaDB o PostgreSQL) para almacenar artículos, comentarios, información de usuarios y logs de auditoría.

Seguridad:

  • Se aplican permisos basados en roles (Autor, Editor, Moderador, etc.).
  • Se cifran credenciales y se protegen los formularios frente a ataques XSS, CSRF, y otros.
  • Se registra cada transición de estado para fines de auditoría.