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ódigo | Título | Descripción |
---|---|---|
OB-001 | Gestión de Artículos con Workflow | Permitir a los autores crear, editar y someter artículos a revisión, manejando estados: Borrador, En revisión, Aprobado/Publicado, Rechazado. |
OB-002 | Interacción de Usuarios | Facilitar la participación de la comunidad al permitir a usuarios registrados comentar los artículos y generar discusiones. |
OB-003 | Notificaciones Automáticas | Enviar 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-004 | Búsqueda y Filtrado | Implementar un sistema de búsqueda y filtrado avanzado para que los usuarios puedan localizar artículos por palabras clave, etiquetas y categorías. |
OB-005 | Seguimiento y Auditoría | Registrar 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ódigo | Actor | Descripción | Permisos & Interacciones |
AC-001 | Autor | Usuario 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-002 | Editor | Usuario responsable de revisar, modificar y aprobar o rechazar artículos enviados a revisión. | Revisar, aprobar, editar y registrar cambios en artículos. |
AC-003 | Moderador | Usuario encargado de gestionar la creación, edición y eliminación de comentarios, aprobándolos o rechazándolos. | Modera y controla comentarios. |
AC-004 | Usuario Registrado | Usuario 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-005 | Usuario Anónimo | Visitante 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ódigo | Título | Descripción | Actores Involucrados |
RF-001 | Gestión de Artículos | Permitir a los autores crear, editar y guardar artículos en estado Borrador. | Autor |
RF-002 | Flujo de Trabajo | Implementar un Workflow que gestione las transiciones: Borrador → En Revisión → Aprobado/Publicado o Rechazado. | Autor, Editor, Sistema |
RF-003 | Registro de Auditoría | Registrar cada cambio de estado en los artículos para fines de seguimiento y auditoría. | Sistema, Editor |
RF-004 | Gestión de Comentarios | Permitir a los usuarios registrados crear comentarios en estado Pendiente, sujetos a moderación. | Usuario Registrado, Moderador |
RF-005 | Edición/Eliminación de Comentarios | Permitir que los usuarios editen o eliminen sus comentarios dentro de un tiempo definido (p. ej., 15 minutos). | Usuario Registrado |
RF-006 | Notificaciones | Enviar 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-007 | Búsqueda y Filtrado | Ofrecer 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ódigo | Título | Descripción | Prioridad |
RNF-001 | Seguridad | Proteger el sistema ante ataques como inyección SQL, XSS, CSRF y cifrar los datos sensibles. | Alta |
RNF-002 | Rendimiento | Asegurar tiempos de carga inferiores a 2 segundos bajo carga moderada. | Alta |
RNF-003 | Escalabilidad | La arquitectura debe soportar el crecimiento en el número de artículos y usuarios sin degradar el servicio. | Media |
RNF-004 | Mantenibilidad | El código debe estar estructurado y documentado para facilitar futuras actualizaciones. | Media |
RNF-005 | Accesibilidad | La 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ódigo | Flujo | Descripción |
FL-001 | Creación y Envío de Artículo | El 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-002 | Revisión y Publicación de Artículo | El editor revisa el artículo, lo aprueba o rechaza; el sistema registra la transición de estado para la auditoría. |
FL-003 | Creación y Moderación de Comentario | Un usuario registrado añade un comentario (estado Pendiente), que luego es revisado por un moderador para aprobarlo o rechazarlo. |
FL-004 | Envío de Notificaciones | El 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
Elemento | Descripción |
Código | CU-001 |
Título | Creación y Envío de Artículo |
Actores | Autor |
Precondición | El autor debe estar autenticado. |
Flujo Principal | 1. Crear artículo → 2. Editar artículo → 3. Guardar como Borrador → 4. Enviar a Revisión |
Postcondición | El artículo se pasa a estado En Revisión. |
Excepciones | Errores de validación de datos o problemas de conectividad. |
CU-002: Revisión y Aprobación de Artículo
Elemento | Descripción |
Código | CU-002 |
Título | Revisión y Aprobación de Artículo |
Actores | Editor |
Precondición | El artículo debe estar en estado En Revisión. |
Flujo Principal | 1. Acceder a lista de artículos en revisión → 2. Seleccionar artículo → 3. Revisar contenido → 4. Aprobar o Rechazar |
Postcondición | El estado del artículo cambia a Publicado o Rechazado. |
Excepciones | Fallos en la edición o validaciones incompletas. |
CU-003: Gestión de Comentarios
Elemento | Descripción |
Código | CU-003 |
Título | Gestión de Comentarios |
Actores | Usuario Registrado, Moderador |
Precondición | El artículo debe estar publicado; el usuario que comenta debe estar autenticado. |
Flujo Principal | 1. Crear comentario → 2. Almacenado en estado Pendiente → 3. Moderador revisa → 4. Aprobar o Rechazar comentario |
Postcondición | El comentario queda publicado o rechazado. |
Excepciones | Violaciones de política de comentarios, fallos en la publicación. |
CU-004: Notificaciones Automáticas
Elemento | Descripción |
Código | CU-004 |
Título | Notificaciones Automáticas |
Actores | Sistema, Editor, Moderador |
Precondición | Ocurren eventos críticos (envío de artículo a revisión, comentario pendiente). |
Flujo Principal | 1. Evento dispara notificación → 2. El sistema envía correo → 3. Destinatarios reciben notificación |
Postcondición | La notificación se entrega exitosamente. |
Excepciones | Fallos 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.
Entidad | Campos Principales | Relaciones |
Artículo | Título, Cuerpo, Autor, Fecha de creación, Estado | Asociado a un usuario (Autor, Editor) y a sus comentarios |
Comentario | Contenido, Autor, Fecha, Estado | Vinculado a un Artículo; gestionado por Moderador |
Usuario | Nombre, Email, Rol, Credenciales | Roles: 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:
- Capa de Presentación: Implementada en Drupal 11, con temas responsivos y plantillas personalizadas.
- 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.
- 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.