Skip to content

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

Migración y Personalización de Open Journal Systems (OJS) — TFG

Migración de una plataforma editorial de OJS 3.1 a OJS 3.4.0.1, con personalización mediante plugins (tema propio, plugin genérico), un microservicio de generación de certificados y una herramienta que convierte la estructura del XML de números y artículos entre versiones — todo sin modificar el núcleo de OJS.

Autor: José Manuel Recinos Martínez · Tutora: Loyda Leticia Alas Castañeda · Universidad Europea del Atlántico, 2026

Índice

Resumen

El grupo editorial objeto de estudio operaba sobre OJS 3.1, con interfaces poco intuitivas, dificultades de integración con servicios externos y ausencia de funcionalidades que el equipo necesitaba. Este proyecto migra la plataforma a OJS 3.4.0.1 y añade, sin tocar el core:

  • Tema propio (ThemePlugin): identidad visual, flujo de registro por revista y rol.
  • Plugin genérico (GenericPlugin): artículos aceptados pendientes de publicación, estadísticas de uso, anuncios multilingües.
  • Microservicio de certificados: genera en PDF certificados de participación (autor/revisor) consultando directamente la base de datos.
  • Migración de datos: usuarios y roles se migran con el módulo nativo de importación/exportación de OJS. Números y artículos se exportan como XML de OJS 3.1, FastConverter convierte únicamente su estructura al esquema de OJS 3.4.0.1 (no mueve datos por sí mismo), y el resultado se importa también con el módulo nativo de OJS.

De todo el catálogo de casos de uso del sistema, esta presentación se centra en los cuatro más relevantes: los dos que sustentan técnicamente todo el proyecto (Migrar Datos, Personalizar Plataforma) y los dos que son funcionalidad exclusiva de esta instalación, ausente en un OJS estándar (Consultar Artículos Aceptados, Solicitar Certificado).

Contextualización: el modelo del dominio

Modelo del Dominio

Entidades centrales: UsuarioGrupoUsuario (Lector, Autor, Revisor, Editor, Gestor), RevistaVolumenNumeroArticulo, EnvioRevision, Certificado. Un Articulo es "Aceptado" cuando está publicado (status=3) pero aún no tiene Numero asignado — estado calculado, no una tabla propia. Esta distinción de estados es la que hace posible Consultar Artículos Aceptados, y la que Migrar Datos tiene que reproducir correctamente al convertir el histórico.

Actores

Diagrama de Actores

Jerarquía de herencia: Lector (base) → Autor / RevisorEditorGestor de RevistaAdministrador del Sitio. Los cuatro casos de uso presentados involucran principalmente a:

  • Administrador del Sitio: único actor de Migrar Datos y Personalizar Plataforma.
  • Autor / Revisor: actores de Solicitar Certificado.
  • Lector (y cualquier visitante, autenticado o no): actor de Consultar Artículos Aceptados.

Los cuatro casos de uso presentados

Caso de uso Actor Entidades del dominio implicadas Por qué es relevante
Migrar Datos Administrador del Sitio Usuario, Revista, Numero, Articulo Base técnica del proyecto: usuarios/roles se importan con el módulo nativo de OJS; números y artículos se convierten de estructura con FastConverter (3.1 → 3.4.0.1) y se importan también con el módulo nativo, sin perder datos.
Personalizar Plataforma Administrador del Sitio Plataforma, Revista Activa el tema propio y el plugin genérico, y despliega el microservicio de certificados — sin tocar el core de OJS.
Consultar Artículos Aceptados Lector / cualquier usuario Articulo (estado calculado, sin Numero asignado) Funcionalidad que no existe en una instalación estándar de OJS: muestra artículos ya aprobados pero aún sin número asignado.
Solicitar Certificado Autor / Revisor Certificado, Usuario, Envio / Revision Genera en PDF un certificado de participación, consultando directamente la base de datos vía el microservicio.

Diagramas de contexto de los actores implicados:

Actor Diagrama de contexto
Administrador del Sitio (Migrar Datos, Personalizar Plataforma) Contexto Administrador
Autor (Solicitar Certificado) Contexto Autor
Revisor (Solicitar Certificado) Contexto Revisor
Lector (Consultar Artículos Aceptados) Contexto Lector

Diagramas de los módulos a los que pertenecen:

Módulo Diagrama
Certificado Certificado
Consulta Consulta
Gestión (Migrar Datos, Personalizar Plataforma) Gestión

Detalle de los casos de uso

Migrar Datos

Diagrama de actividad

Actividad Migrar Datos

Diagrama de secuencia

Secuencia Migrar Datos

Personalizar Plataforma

Diagrama de actividad

Actividad Personalizar Plataforma

Diagrama de secuencia

Secuencia Personalizar Plataforma

Consultar Artículos Aceptados

Diagrama de actividad

Actividad Artículos Aceptados

Diagrama de secuencia

Secuencia Artículos Aceptados

Solicitar Certificado

Diagrama de actividad

Actividad Solicitar Certificado

Diagrama de secuencia

Secuencia Solicitar Certificado

De los casos de uso a la arquitectura: análisis y diseño

Análisis (de cada caso de uso a sus clases de análisis):

Caso de uso Análisis
Migrar Datos Análisis Migrar Datos
Personalizar Plataforma Análisis Personalizar Plataforma
Solicitar Certificado Análisis Certificado

Estas clases de análisis (CertificadoService, UserImportExportPlugin, FastConverter, etc.) son las que después se organizan en las tres capas de diseño:

Capa de diseño Diagrama
Modelos Modelos
Controladores Controladores
Vistas Vistas

Clases relevantes para los 4 casos de uso presentados: ThemePlugin y GenericPlugin (Personalizar Plataforma), UserImportExportPlugin / NativeImportExportPlugin / FastConverter (Migrar Datos), CertificadoView / CertificadoService (Solicitar Certificado).

(La estructura de carpetas del proyecto y el código fuente se muestran en vivo desde el explorador del IDE durante la defensa, no como capturas aquí.)

Prototipos

Migrar Datos y Personalizar Plataforma no requirieron diseño propio: reutilizan los módulos nativos de importación/exportación y configuración del sitio de OJS, por eso se muestran directamente en alta fidelidad. Consultar Artículos Aceptados y Solicitar Certificado sí tuvieron wireframe propio antes de implementarse.

Migrar Datos

Prototipo Migrar Datos Prototipo Migrar Datos Números y Artículos Prototipo Herramienta de Migración

Personalizar Plataforma

Prototipo Personalizar Plataforma (Tema) Prototipo Personalizar Plataforma (Módulos)

Consultar Artículos Aceptados

Prototipo Artículos Aceptados

Solicitar Certificado

Prototipo Solicitar Certificado

La plataforma en funcionamiento

Migrar Datos

Herramienta de Migración en funcionamiento

Personalizar Plataforma

No hay captura real independiente: la interfaz de personalización es la misma pantalla nativa de OJS mostrada en el prototipo (ver sección anterior).

Consultar Artículos Aceptados

Artículos Aceptados en funcionamiento

Solicitar Certificado

Formulario de solicitud de certificado PDF del certificado generado

Arquitectura y stack tecnológico

  • OJS 3.4.0.1 (PHP 8.2, Smarty) — plataforma base, sin modificaciones al core.
  • MariaDB 11.8 — persistencia, red interna Docker inside.
  • Docker Composepkp_app (Apache 2.4 + PHP 8.2 + OJS + plugins) y pkp_db (MariaDB), puertos 8080/8443.
  • Microservicio de certificados — Node.js, puerto 5000, genera PDF con wkhtmltopdf. Componente clave de Solicitar Certificado y de Personalizar Plataforma (se despliega en ese caso de uso).
  • FastConverter — herramienta en Go que convierte solo la estructura del XML de números/artículos de OJS 3.1 al esquema de OJS 3.4.0.1; el import/export real (usuarios, números, artículos ya convertidos) lo hace el módulo nativo de OJS.

Diagrama de despliegue: Diagrama de Despliegue

Diagrama entidad-relación: ER 1/2 ER 2/2

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors