El Gestor de Contenidos tiene como finalidad centralizar, estructurar y facilitar la gestión, edición y publicación de contenidos digitales en la Plataforma Smart Island, permitiendo su integración con otros componentes y canales de comunicación.
Componente C2.03 – Gestor de Contenidos
Objetivo
Centralizar la gestión, edición y publicación de contenidos digitales en la Plataforma Smart Island, actuando como back office para los distintos componentes y canales.
Arquitectura del Sistema
Arquitectura Lógica
- Capa de Interoperabilidad: expone APIs REST para acceso a datos desde servicios verticales y sistemas externos.
- Capa de Persistencia: basada en PostgreSQL/PostGIS, gestiona almacenamiento y modificación de datos.
- Capa de Servicios: ejecuta la lógica de negocio mediante servidores Apache.
- Capa de Aplicación: interfaz para técnicos y ciudadanos, incluyendo el gestor de contenidos y la app turística.
Arquitectura de Despliegue
- Drupal como CMS desplegado sobre servidor Apache.
- Base de datos PostgreSQL/PostGIS en servidor dedicado.
Integraciones
- Google Analytics: ETL en Jenkins para enviar analíticas al Context Broker.
- Firebase: envío de notificaciones push.
- Context Broker: persistencia de datos de beacons e indicadores.
- App móvil turística: consumo de servicios web del gestor como backend.
Funcionalidades Clave
Gestión de Contenidos
- Edición, publicación, categorización y navegación jerárquica.
- Soporte para múltiples tipos de contenido: POIs, eventos, rutas, artículos, etc.
- Gestión multimedia: imágenes, vídeos, audioguías, realidad aumentada.
- Comentarios moderados, valoraciones, favoritos y compartición en redes sociales.
Multilingüismo
- Soporte completo para múltiples idiomas, con campos traducibles.
Geolocalización
- Visualización en mapas, cálculo de rutas, búsqueda por cercanía.
Agenda de Eventos
- Gestión de eventos con fechas, localización, multimedia y categorización.
Planificador de Rutas
- Catálogo de rutas, asignación por perfil de usuario, agrupación temática.
Buscador Avanzado
- Búsqueda simple y avanzada, filtros, historial, integración con motores externos.
Interoperabilidad
- API REST, modos Push/Pull, integración con buscadores y sistemas externos.
————————————————————————————————————————————————-Infraestructura de Producción
Plataforma Kubernetes
- Orquestación de contenedores con Kubernetes.
- Cada POD aloja un único componente.
- Despliegue en esquema activo/activo para servicios críticos.
- Uso de Namespaces para aislamiento lógico.
- Recursos asignados: 96 vCPUs y 256 GB RAM.
Escalabilidad y Rendimiento
Tipos de Escalabilidad
- Lógica: segmentación por servicios y subservicios.
- Física: escalado horizontal (nuevos nodos) y vertical (más recursos por nodo).
Rendimiento
- Capacidad para 500 transacciones por segundo con tramas de 200 bytes.
- Pruebas realizadas con Apache Benchmark y JMeter.
🛠️ Tareas de Implantación
| Tarea | Descripción | Fecha |
|---|---|---|
| C2.03-imp-1 | Despliegue de Drupal con Helm y Docker | 25/11/2021 |
| C2.03-imp-2 | Configuración de persistencia (volúmenes y PVCs) | 25/11/2021 |
| C2.03-imp-3 | Asignación de recursos de CPU y memoria | 26/11/2021 |
| C2.03-imp-4 | Gestión automática de la base de datos con init-container y Drush |
26/11/2021 |
Detalles Técnicos
- Helm Charts para despliegue automatizado.
- Configuración desacoplada mediante ConfigMaps (
httpd.conf,php.ini, etc.). - Uso de volúmenes persistentes para almacenamiento de datos.
- Autoescalado (HPA/VPA), autorreparación, rollbacks automáticos y descubrimiento de servicios.
- Seguridad mediante Secrets para credenciales y claves.
Integraciones – Componente C2.03
Documentar las integraciones del Gestor de Contenidos (Drupal) con otros sistemas de la Plataforma Smart Island, describiendo tanto los flujos de datos como los mecanismos técnicos utilizados.
Integraciones Principales
1. Con Firebase
- Función: Envío de notificaciones push a dispositivos móviles.
- Origen: Portal web de turismo.
- Mecanismo:
- Creación de contenido tipo “Notificación App”.
- Configuración en
/admin/config/push_service/config. - Envío gestionado por el módulo personalizado
push_service.module.
2. Con Context Broker
- Función: Integración bidireccional para envío y recepción de datos.
a. Envío de información
- Cantidad de contenidos (eventos, experiencias, noticias):
- Módulo:
Cross-platforms integration indicators.
- Módulo:
- Elementos individuales (ej. Beacons):
- Módulo:
Cross-platforms integration.
- Módulo:
b. Recepción de notificaciones
- Origen: Entidades tipo mensaje en el subservicio de Beacons.
- Destino: Backend Drupal, que las trata como notificaciones para la app móvil.
- Endpoint:
https://lapalmasmart.lapalma.es/api/subscription_context_broker
(securizado)
4. Con Google Analytics
- Función: Seguimiento del uso y consumo de contenidos.
- Módulo:
Google Analyticspara Drupal. - Resultado: Datos disponibles para análisis en la plataforma de Google.
Manual de Administrador – Componente C2.03
Proporcionar una guía detallada para la administración del Gestor de Contenidos Drupal de la Plataforma Smart Island, incluyendo la gestión de usuarios, contenidos, módulos, vistas, taxonomías y configuraciones.
Estructura del Gestor de Contenidos
Plataforma
- CMS: Drupal 9 (basado en Symfony 4)
- Rol requerido: Administrador
- Acceso:
/user/login
Elementos Administrables
1. Contenidos
- Tipos de contenido: Artículo, Evento, Empresa, Experiencia, Ruta, Notificación App, etc.
- Gestión:
/admin/content - Cada contenido es un nodo con campos personalizados.
2. Taxonomías
- Clasificación de contenidos mediante vocabularios y términos.
- Ejemplos: Categoría de oferta, Tipo de recurso, Tipo de turista.
- Gestión:
/admin/structure/taxonomy
3. Vistas
- Herramienta visual para mostrar datos personalizados.
- Gestión:
/admin/structure/views
4. Usuarios y Roles
- Roles definidos: Administrador, Gestor Turismo, Empresa, Municipio, Oficina Turismo, Usuario autenticado/anónimo.
- Gestión:
/admin/people - Permisos configurables por rol.
5. Menús y Bloques
- Menús:
/admin/structure/menu - Bloques:
/admin/structure/block
6. Traducciones
- Drupal permite traducción de contenidos, interfaz y taxonomías.
- Gestión:
/admin/config/regional
7. Cron y Caché
- Recomendado ejecutar tras cambios importantes.
- Acceso desde el backend.
Módulos
Módulos Contribuidos
- Feeds: Importación de contenidos desde fuentes externas.
- Webform: Creación de formularios personalizados.
- REST Services: Exposición de APIs.
- SMTP: Configuración de correo saliente.
- Google Analytics: Integración con herramienta de analítica.
Módulos Personalizados
- custom_beacons: Gestión de balizas (Beacon, QR, NFC).
- custom_welcome: Configuración de pantalla de bienvenida.
- custom_db_backup: Copias de seguridad de la base de datos.
- push_service: Notificaciones push vía Firebase.
- custom_integration: Envío de datos al Context Broker.
- services_rest_api: Servicios REST personalizados.
- custom_social_media: Configuración de redes sociales.
Permisos
- Granularidad total: más de 300 permisos configurables.
- Permiten controlar acceso a contenidos, módulos, formularios, APIs, etc.
Manual de Gestión de Contenidos – Componente C2.03
Guiar a los usuarios con rol “admin_lapalma” en la creación, edición, traducción, publicación y organización de contenidos turísticos en el CMS Drupal, que alimenta la app móvil y otros canales de la Plataforma Smart Island.
Acceso
- Inicio de sesión: desde el backend de la app.
- Rol necesario:
admin_lapalma.
Funcionalidades Principales
1. Gestión de Contenidos
- Crear: desde “Administrar > Contenido > Añadir contenido”.
- Editar: desde el listado de contenidos.
- Traducir: accesible desde listado, detalle o edición. Idiomas: ES, EN, DE, NL.
- Eliminar: individual o masivo, con confirmación.
- Despublicar: oculta el contenido sin eliminarlo.
- Auditar: historial de revisiones y posibilidad de revertir.
Tipos de Contenido y Campos
Generales
- Título, descripción, imagen, ubicación, contacto, redes sociales, multimedia, SEO, categorización para plan de viaje.
Específicos
- Información de bienvenida: mensaje único editable.
- Artículo: noticias o entradas de blog.
- Ayuda: textos para la sección de ayuda de la app.
- Balizas (Beacon, QR, NFC): configuración de canales, acciones y geolocalización.
- Notificación App: mensajes push con canal, idioma e imagen.
- Empresa / Recurso / Evento / Experiencia: ficha completa con multimedia, contacto, accesibilidad, etc.
- Ofertas / Cupones: promociones asociadas a empresas.
- Punto WiFi: ubicación y alcance.
- Página básica: textos legales o informativos.
- Ruta: con puntos de inicio, fin, intermedios y rutas relacionadas.
- Sección: agrupación de contenidos por tipo, categoría o lista personalizada.
Acciones Asociadas a Balizas
- Mostrar mensaje
- Abrir recurso
- Abrir URL
- Abrir multimedia
- Abrir más información
SEO y Accesibilidad
- Real-time SEO for Drupal: disponible en todos los tipos de contenido.
- Accesibilidad: campo booleano para marcar contenidos accesibles.
Configuración, Librerías y APIs – Componente C2.03
Documentar la configuración técnica, módulos, librerías y APIs REST utilizadas en el despliegue e integración del gestor de contenidos Drupal para la Plataforma Smart Island.
Configuración Técnica
Despliegue
- CMS: Drupal sobre Kubernetes.
- Namespace: 96 vCPUs, 256 GB RAM.
- Clúster Virtual Host: 9 vCPUs, 9 GB RAM.
- Almacenamiento: 7 TB.
- Carpeta compartida:
/smartorense.
Instalación
- Código subido por SFTP.
- Configuración en
settings.php. - Base de datos PostgreSQL con extensión
pg_trgm. - Despliegue vía Helm con
values.yaml.
Módulos
Contribuidos (selección)
- Admin Toolbar: navegación mejorada.
- Feeds / Feeds Tamper: importación de datos.
- Webform / Webform REST: formularios.
- Geolocation / Leaflet / Geofield: mapas y geolocalización.
- Yoast SEO / Metatag / Pathauto: posicionamiento web.
- Mailchimp / SMTP / Mailsystem: gestión de correos.
- Captcha / Password Policy: seguridad.
- Scheduler / Structure Sync / Content Synchronizer: automatización y CI/CD.
- REST UI / Voting API / Rate: APIs y valoración de contenidos.
Personalizados
- custom_api_rest: generación de endpoints REST para consumo externo.
API REST
Usuario
POST /user/loginGET /api/userPOST /user/registerPOST /user/passwordDELETE /user/{id}GET /user/logout
Contenido
- Taxonomías, ayuda, secciones, eventos, empresas, recursos, rutas, bienvenida, ofertas, experiencias, puntos WiFi, páginas básicas.
- Datos medioambientales: aire y tiempo (Pentaho CDA).
Plan de viaje
POST /api/calculate_plan: cálculo personalizado según perfil del usuario.
Librerías
Instaladas
- jQuery (varios plugins), CKEditor, Codemirror, Select2, Signature Pad, Swagger UI, TippyJS, etc.
Plantillas
- Bootstrap 5.2.3
- Swipper 4.3.0
Fuentes
- Arial Rounded MT Bold (tema personalizado)
- Open Sans (tema de administración)
Documentación del Gestor de contenidos
Documentación del C2.03 Gestor de Contenidos
Despliegue y puesta en producción
Configuración, librerías y APIS