TRABAJO FIN DE GRADO. Metodología para migrar aplicaciones web a CMS: el caso de un gestor de noticias

Tamaño: px
Comenzar la demostración a partir de la página:

Download "TRABAJO FIN DE GRADO. Metodología para migrar aplicaciones web a CMS: el caso de un gestor de noticias"

Transcripción

1 TRABAJO FIN DE GRADO Título Metodología para migrar aplicaciones web a CMS: el caso de un gestor de noticias Autor/es Lucian Adrian Dan Director/es Julio Rubio García Facultad Facultad de Ciencias, Estudios Agroalimentarios e Informática Titulación Grado en Ingeniería Informática Departamento Curso Académico

2 Metodología para migrar aplicaciones web a CMS: el caso de un gestor de noticias, trabajo fin de grado de Lucian Adrian Dan, dirigido por Julio Rubio García (publicado por la Universidad de La Rioja), se difunde bajo una Licencia Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported. Permisos que vayan más allá de lo cubierto por esta licencia pueden solicitarse a los titulares del copyright. El autor Universidad de La Rioja, Servicio de Publicaciones, 2013 publicaciones.unirioja.es publicaciones@unirioja.es

3 UNIVERSIDAD DE LA RIOJA Facultad de Ciencias, Estudios Agroalimentarios e Informática TRABAJO FIN DE GRADO Grado en Ingeniería Informática Metodología para migrar aplicaciones web a CMS: el caso de un gestor de noticias Alumno: Dan Lucian Adrian Director: Julio Rubio García Logroño, (Junio, 2013) Trabajo Fin de Grado Página 1

4 Introduccio n A la vista de las estadísticas del porcentaje de número de aplicaciones web desarrolladas hoy en día, en los distintos lenguajes de programación, y teniendo en cuenta el auge de los gestores de contenidos que facilitan tanto el desarrollo como el futuro mantenimiento de una aplicación web, se ha decidido dedicar una parte de este proyecto en detallar los pasos que conlleva el pasar una aplicación web hecha sin la ayuda de ningún gestor a uno muy conocido como puede ser Joomla o Wordpress. Para ello tomaremos como proyecto base el Proyecto Fin de Carrera Gestión documental de las actividades de un Servicio de Comunicación desarrollado en su día en asp/mysql/tomcat. Trabajo Fin de Grado Página 2

5 Tabla de Contenido: 1. Documento de objetivos del proyecto Descripción del producto Alcance del proyecto Detallar los pasos para cambiar a un proyecto basado en herramientas de gestión de contenido Listas de subscripción a las noticias Proteger el apartado de gestión de la aplicación mediante SSL API REST Terminales móviles (Android) Recursos humanos y personales Plan de comunicación Dirección de riesgos Planificación del proyecto Detallar los pasos para cambiar a un proyecto basado en herramientas de gestión de contenido (Iteración 1) Listas de subscripción a las noticias (Iteración 2) Proteger el apartado de gestión de la aplicación mediante SSL (Iteración 3) API REST (Iteracion 4) Terminales móviles (Iteración 5) Documentación (Iteración 0) Total Listado de entregables Revisión del DOP Análisis Iteración Alcance Objetivos Entregables Aprendizaje Descripción Definiciones Seguridad Funcionalidades de la aplicación Trabajo Fin de Grado Página 3

6 2.6 Documentación de referencia y anexos Diseño Iteración Instalación Funcionalidades Inicio de sesión Registrar Finalizar sesión Página de Inicio Filtrar noticias Publicar noticias Editar noticias Eliminar noticia Descargar noticia - frontend Implementación Iteración Idiomas Múltiples categorías Análisis Iteración Alcance Objetivos Entregables Descripción Diseño e implementación Iteración Análisis Iteración Alcance Proteger el apartado de gestión de la aplicación mediante SSL Configuración personal Análisis Iteración Alcance Objetivos Perspectiva general de la solución Seguridad, Fiabilidad y Disponibilidad Funcionalidades de la aplicación Listado de Noticias Listado de Categorías Trabajo Fin de Grado Página 4

7 8.5.3 Listado de Alertas Filtrado de Noticias Detalle de noticia Alta de las listas de suscripción (alertas) Baja de las listas de suscripción (alertas) Diseño Iteración Objeto del documento Definiciones, acrónimos y abreviaturas API Sitio web de la API Entorno desarrollo/producción Parámetros de entrada comunes Formato de llamada Formato de respuesta Métodos del API Listado de noticias Listado de Categorías Listado de Alertas Filtrado de noticias Detalle de noticia Alta de las listas de suscripción (alertas) Baja de las listas de suscripción (alertas) Aspectos de seguridad Validaciones/Seguridad del API Modulado funciones Módulo api_noticias Módulo api_categorías Módulo api_alertas Vista de Datos Modelo de base datos Implementación Iteración Pasos Centralizar peticiones Procesar petición Trabajo Fin de Grado Página 5

8 Versionado Recursos, objetos, clases Componentes Carpetas base Carpeta Objetos ANEXOS Códigos de Error API REST - REpresentational State Transfer Ejemplo CRUD Ejemplo POST Ejemplo petición post api REST Petición Notas Trabajo Fin de Grado Página 6

9 1. Documento de objetivos del proyecto 1.1 Descripción del producto El objetivo de este proyecto es analizar los pasos necesarios para pasar de una aplicación desarrollada sin la ayuda de ningún gestor de contenido a una que se base en ellos. Como caso práctico nos basaremos en la aplicación web desarrollada en el Proyecto Fin de Carrera Gestión documental de las actividades de un Servicio de Comunicación. Una vez analizados y desarrollados los pasos se implementaran funcionalidades en varias iteraciones que serán limitadas al tiempo preestablecido que limita el desarrollo de un Trabajo Fin de Grado. 1.2 Alcance del proyecto Para el desarrollo de este proyecto se ha elegido el CMS(Content Management System) Joomla por la experiencia personal que me ha tocado vivir en el trabajo al migrar empresas de clientes recién adquiridas, y por continuas preguntas que me encuentro en mi día a día por parte de amigos al preguntarme si les puedo ayudar con proyectos en Joomla. Se ha decidido no hacer un estudio con respecto a cuál sería el mejor CMS ya que dicho estudio probablemente llevaría más de la mitad del tiempo disponible para dedicar a este proyecto y las diferencias serian mínimas entre las primeras soluciones posibles. El proyecto se desarrollará en iteraciones teniendo como base la que se encarga de pasar el proyecto antes mencionado al gestor de contenido elegido, todas las demás iteraciones ampliarán el proyecto hasta acabadas las horas de dedicación asignadas a un proyecto Fin de Grado no teniendo en ningún momento como objetivo implementar todas las iteraciones si estas ocupan más tiempo que el establecido. A continuación se hará un resumen de las partes que se tratarán en cada iteración Detallar los pasos para cambiar a un proyecto basado en herramientas de gestión de contenido Se pasará el Proyecto Fin de Carrera Gestión documental de las actividades de un Servicio de Comunicación, desarrollado en asp, a php5 utilizando el esqueleto de aplicación web que ofrece Joomla. Para ello se detallarán los siguientes pasos teniendo como objetivo reutilizar cuanto más código de la aplicación anterior mejor: a. Analizar y detallar los pasos necesarios para replicar la estructura de tablas utilizadas en el antiguo proyecto a la estructura de tablas que utiliza Joomla. En este apartado se concretará si se siguen utilizando los procedimientos almacenados del antiguo proyecto o se optará por otra solución. Si en este paso no se puede mantener alguna estructura de la BD original, ella se modificará para cumplir con los criterios de Joomla. b. Detallar el paso de una acción normal como creación de una noticia a la forma de creación de Joomla que utiliza plantillas, vistas, acciones. c. Detallar la creación de un plugin personalizado de la aplicación para dar soporte a funcionalidades que el propio Joomla no ofrece. Se planteará la idea de crear un plugin para la generación de PDF. Si existe ya algún plugin que Trabajo Fin de Grado Página 7

10 ofrece una funcionalidad parecida se utilizará como base para el plugin personalizado. d. Se utilizará algún plugin existente para dar soporte al apartado de visualización de las noticias en formato multimedia. e. Para el desarrollo de la interfaz web se utilizará la idea de 960 Grid system para darle robustez y amigabilidad a la aplicación. Objetivo: Detallar los pasos seguidos para pasar una aplicación web a un CMS. Cómo implementar funcionalidades básicas o complejas mediante plugins. Utilización del 960 Grid system para la interfaz de usuario. El objetivo de la primera parte no es el de pasar el 100% de la aplicación web utilizada como ejemplo sino solo las funciones necesarias para el ejemplo y para poder seguir ampliando el proyecto en las siguientes iteraciones. Para ello se considerarán necesarias las funcionalidades básicas de creación, eliminación, modificación, listado de los elementos que se gestionan desde el apartado de administración de la antigua aplicación como pueden ser noticias, dossiers, géneros, etc. Solamente se desarrollarán funcionalidades avanzadas como reproducción de contenidos multimedia para poder explicar la correspondiente parte de la primera iteración Listas de subscripción a las noticias Se creara una lista de subscripción a las noticias, en la cual los usuarios se podrán dar de alta para recibir avisos mediante mensajes de la existencia de nuevo contenido en la aplicación. Dicho apartado será accesible mediante la web. Se creará un apartado desde el cual los usuarios registrados podrán darse de alta en un sistema de alertas predefinidas. Tendrán la posibilidad de darse de alta o de baja cuando lo desean desde su área de cliente. Se creará una plantilla para los correos que se enviarán a los clientes. Cada uno de los correos con noticias que se enviarán al cliente estarán en formato HTML y tendrán URL que te permitirá el acceso a la web de las noticias, y además información con respecto a los contenidos nuevos agregados Proteger el apartado de gestión de la aplicación mediante SSL Se configurará la parte de gestión de la aplicación con SSL. Para ello se creará un certificado propio que utilizaremos para la comunicación cliente/servidor en la parte de gestión API REST Implementar un API REST para que clientes desde otros dispositivos puedan disfrutar de los servicios que la aplicación ofrece montando su propia interfaz basándose en los servicios web del API. Este API solamente dará soporte a noticias en formato de textos sin implicar los ficheros adjuntos tanto multimedia como documentos normales. Funcionalidades que estarán disponibles: Trabajo Fin de Grado Página 8

11 Listado de noticias. Detalle de noticia. Filtrado. Subscripción a listas de la iteración anterior. Se crearán funciones que solamente serán accesibles a usuarios dados de alta desde el apartado de gestión de la aplicación. A dichas funciones se les tendrán que pasar datos necesarios para la autenticación. Valorar noticia. Baja de la lista de subscripción Terminales móviles (Android) Desarrollar una aplicación para teléfonos con sistema Android que consuma los servicios web desarrollados anteriormente. Este apartado se estima que no se llegará a desarrollar, pero hemos preferido considerar la iteración por si hubiese desvíos importantes en las estimaciones, al utilizar tecnologías y herramientas desconocidas por el alumno. El objetivo de esta iteración sería ampliar los conocimientos del alumno en un sector en auge. El objetivo final del proyecto no es el de tener una aplicación completa y finalizada, como en el proyecto que tomaremos por caso práctico, sino el de demostrar las capacidades del alumno frente al continuo cambio necesario en las aplicaciones web actuales Recursos humanos y personales Este proyecto estará formado por Dan Lucian Adrian como Director del proyecto que tomará todas las decisiones y su dedicación será total. Como tutor Julio Rubio García que tomará las decisiones que estime oportunas. También evaluará parte de la nota final del proyecto y su dedicación al mismo será esporádica. Los miembros del Tribunal formados por un grupo de profesores que evaluarán el proyecto poniéndole la nota final. Su dedicación será la necesaria para leer la memoria y el tiempo dedicado a la defensa del proyecto Plan de comunicación Teniendo en cuenta que se trata de un proyecto que tiene como base el anterior proyecto fin de carrera del alumno del que este tiene un buen conocimiento, las comunicaciones se resumirán en entregas de seguimiento al tutor por parte del alumno que serán por medio del correo electrónico y en el caso de ser necesario se organizarán reuniones con el tutor. Como prevención de la posible pérdida de información cada día se creara un backup de los contenidos del proyecto hasta el momento Dirección de riesgos En este proyecto se han detectado las siguientes posibles fuentes de riesgo: Inexperiencia del desarrollador de la implementación del sistema de gestión de contenido elegido. Trabajo Fin de Grado Página 9

12 El anterior punto conlleva que las estimaciones de fechas iniciales propuestas por el alumno pueden no ser apropiadas. También afecta el hecho de que el alumno se encuentre trabajando durante el periodo de desarrollo de este proyecto. El diseño propuesto puede acarrear problemas que obligarán a revisar todo lo desarrollado. Problemas por malas instalaciones de las herramientas que se utilizarán. También problemas de hardware que serán limitados por el backup diario que se hace pero aun así este puede llegar a afectar al desarrollo del proyecto si el alumno no dispone de medios para continuar. Riesgo de que el alumno caiga enfermo o de que tenga que viajar fuera del país. Ante la detección de alguna de las fuentes de riesgo antes mencionadas se evaluara su alcance y se replanteará todo lo necesario para poder llevar a cabo el proyecto. Esto incluye dejar sin terminar algunas iteraciones que en un inicio se han propuesto. Como cada fuente de riesgo afecta a ciertos apartados del desarrollo de este proyecto antes de seguir con la siguiente función se evaluará lo realizado hasta el momento para disminuir todo lo posible los riesgos y se corregirá la planificación de las fechas haciendo constar el desvió que dicho riesgo a supuesto Planificación del proyecto Se estimarán las horas y fechas de cada iteración del proyecto definiendo el tiempo necesario para el análisis, diseño e implementación teniendo como base una dedicación semanal de 15 horas. Se definirán los documentos a generar y entregar de cada una de las iteraciones Detallar los pasos para cambiar a un proyecto basado en herramientas de gestión de contenido (Iteración 1) Análisis Estimación: 30 horas Periodo: 17/02/2013 3/03/ Diseño Estimación: 15 horas Periodo: 3/03/ /03/ Implementación Estimación: 48 horas Periodo: 10/03/2013 2/04/ Resumen Estimación: 93 horas Periodo: 17/02/2013 2/04/ Listas de subscripción a las noticias (Iteración 2) Análisis Estimación: 12 horas Trabajo Fin de Grado Página 10

13 Periodo: 2/04/2013 7/04/ Diseño Estimación: 8 horas Periodo: 7/04/ /04/ Implementación Estimación: 15 horas Periodo: 10/04/ /04/ Resumen Estimación: 35 horas Periodo: 02/04/ /04/ Proteger el apartado de gestión de la aplicación mediante SSL (Iteración 3) Análisis Estimación: 10 horas Periodo: 2/04/2013 5/04/ Diseño Estimación: 3 horas Periodo: 5/04/2013 5/04/ Implementación Estimación: 3 horas Periodo: 6/04/2013 6/04/ Resumen Estimación: 15 horas Periodo: 02/04/2013 6/04/ API REST (Iteracion 4) Análisis Estimación: 10 horas Periodo: 17/04/ /04/ Diseño Estimación: 10 horas Periodo: 25/04/ /04/ Implementación Estimación: 25 horas Periodo: 30/04/ /05/ Resumen Estimación: 45 horas Periodo: 17/04/ /05/ Terminales móviles (Iteración 5) No se hace ninguna estimación ya que no se sabe si se llegará hasta este punto. Trabajo Fin de Grado Página 11

14 1.6.6 Documentación (Iteración 0) Estimación: 110 horas Periodo: 6/02/ /05/ Total Estimación: 298 horas Periodo: 6/02/ /05/ Listado de entregables ENTREGABLE DESCRIPCIÓN FORMATO Plan del proyecto Versión de la planificación Word del proyecto Análisis Iteración 1 Todo lo referente al análisis Word de la iteración 1 Diseño Iteración 1 Todo lo referente al diseño Word de la iteración 1 Implementación Iteración 1 Todo lo referente a la Word implementación de la iteración 1. Análisis Iteración 2 Todo lo referente al análisis Word de la iteración 2 Diseño Iteración 2 Todo lo referente al diseño Word de la iteración 2 Implementación Iteración 2 Todo lo referente a la Word implementación de la iteración 2 Análisis Iteración 3 Todo lo referente al análisis Word de la iteración 3 Diseño Iteración 3 Todo lo referente al diseño Word de la iteración 3 Implementación Iteración 3 Todo lo referente a la Word implementación de la Análisis Iteración 4 Todo lo referente al análisis Word de la iteración 4 Diseño Iteración 4 Todo lo referente al diseño Word de la iteración 4 Implementación Iteración 4 Todo lo referente a la Word implementación de la Memoria del proyecto Memoria del proyecto PDF 1.8. Revisión del DOP Se hará cada vez que se finaliza una fase del proyecto. 2. Análisis Iteración Alcance La iteración abarca la conversión y puesta en funcionamiento de la aplicación de gestión de noticias mediante la utilización de Joomla. Trabajo Fin de Grado Página 12

15 En este documento de análisis y especificaciones se definirán las funcionalidades que debe ofrecer la aplicación. Al tomar como base para el ejemplo la aplicación del proyecto Gestión documental de las actividades de un Servicio de Comunicación se intentará dar soporte a un elevado porcentaje de funcionalidades. 2.2 Objetivos El objetivo de este proyecto es pasar la aplicación de origen a una aplicación que tenga como base el CMS Joomla. Mediante el desarrollo de la aplicación se pretende demostrar las grandes facilidades que te ofrece un CMS ya que la mayoría de las funcionalidades que nuestro proyecto de ejemplo tiene las ofrece el CMS Joomla. 2.3 Entregables - Una aplicación web que permite gestionar las noticias de una forma similar a la antigua aplicación. - Documento de Análisis y Especificaciones. - Documento de Diseño Técnico. - Código de la aplicación Web. 2.4 Aprendizaje He considerado oportuno este apartado ya que afecta a toda la Iteracion1 y en él se justificaran las modificaciones que aparecen con respecto a lo planteado en el DOP. Tras un periodo de aprendizaje del CMS Joomla se deciden las modificaciones especificadas debajo con respecto a algunos de los puntos de esta iteración. Con respecto al punto de analizar y detallar los pasos necesarios para replicar la BD del antiguo proyecto se ha llegado a la conclusión de que no es necesario realizar dicha replica. El motivo de la decisión es que Joomla es una herramienta que te permite hacer un nivel de abstracción mayor sin tener que llegar hasta las BD. Solamente te tendrás que encargar de cómo deseas que funcione tu aplicación y qué es lo que deseas que se pueda hacer con ella y por debajo ya estarán creadas las tablas necesarias para dicho proceso. A la hora de detallar los pasos de acciones al nuevo sistema es tan básico que no es necesario explicarlo en detalle. A veces se limitará a habilitar funcionalidades existentes desde el backend de la aplicación y a veces instalar plugins existentes que te ofrecen las funcionalidades buscadas. Tras la investigación hecha sobre los plugins necesarios para la aplicación se ha llegado a la conclusión, que para toda funcionalidad que se implementará existen plugins que ofrecen dicho funcionamiento. Por lo tanto el proceso de creación de plugins no se detallara. De lo explicado más arriba se llega a la conclusión de que muchos puntos a tratar en la primera iteración no tienen sentido en un sistema CMS Joomla salvo que se desean realizar cosas muy especiales pero no es nuestro caso. Trabajo Fin de Grado Página 13

16 Como conclusión en este punto cambiaremos el detallar la forma de pasar las funcionalidades a detallar las funcionalidades que ofrecerá la aplicación. 2.5 Descripción Definiciones Frontend: la parte publica de la aplicación que será visible para todo el mundo y que tendrá un apartado de login mediante el cual se mostrarán más opciones para los usuarios. Backend: la parte privada de la aplicación a la cual solamente tendrá acceso el administrador. CMS o Joomla: Sistema de gestión de contenido. Se hace esta equivalencia solamente para este proyecto ya que Joomla es un CMS en sí Seguridad Toda funcionalidad de la aplicación que requiera de la inserción de datos implica una validación interna de dichos datos para que así se limiten los posibles ataques. En caso de que los datos introducidos no sean válidos aparecerán mensajes de error suficientemente descriptivos del problema, para que el usuario pueda hacer las modificaciones oportunas. En caso de error de alguna de las funcionalidades de la aplicación ésta nunca devolverá errores descriptivos que pueden ser aprovechados por atacantes para entender el funcionamiento interno de la aplicación y propiciar futuros ataques. Este aspecto de validación de datos está contemplado por el CMS Joomla al saltarse cualquier carácter extraño que pueda dañar la aplicación Funcionalidades de la aplicación La presentación de las distintas funciones recogidas puede variar respecto a las mismas funciones que se daban en la aplicación de origen. Estos cambios afectaran tanto a las funciones de backend como las de frontend. Con objetivo de tener separadas las funcionalidades que se dan en el frontend/backend a cada funcionalidad que aparece a continuación se le concatenarán la palabra correspondiente a la interfaz en la que se ofrece Inicio de Sesión frontend/backend La aplicación permitirá al usuario iniciar sesión mediante usuario/contraseña y comprobará la validez de dichos datos contra los guardados en la BD del CMS. La gestión de tipos de usuarios será delegada en el propio sistema CMS empleado. Nosotros solamente nos encargaremos de la correcta asignación de los permisos que éstos tienen Recordar contraseña/usuario Existirá la posibilidad de recordar la contraseña y el usuario del cliente mediante una validación por correo electrónico. Trabajo Fin de Grado Página 14

17 Inicio frontend Al acceder a la aplicación se cargará una página de inicio que mostrará un listado de noticias. Dicho listado contendrá las noticias ordenadas por fechas, apareciendo primero las noticias más recientes y siguiendo hasta la última noticia. Para disminuir la carga de la web se paginarán las noticias, siendo el número de noticias que se mostrará en cada página marcado por el administrador desde el backend. En el listado de noticias se mostrarán datos reducidos de cada noticia siendo posible ver toda la noticia mediante un enlace que aparecerá debajo de cada una de las noticias. Si se pulsa sobre el título de la noticia se le llevara a un apartado donde podrá dejar comentarios y valoraciones sobre las noticias. El apartado de comentarios solamente estará disponible para usuarios registrados Registrar frontend Permite registrar usuarios que tendrán acceso a funcionalidades predefinidas en el backend por el administrador. Para el registro de usuario se pedirán el nombre, apellido, dirección de correo electrónico, sexo, imagen del avatar, una pequeña descripción del usuario y una contraseña. De los datos que se piden en el registro solo algunos serán obligatorios Filtrara noticias frontend Habrá dos formas de filtrar las noticias una será por mes y la otra por palabras insertadas. Para ello se creara un listado de los meses y el número de noticias que hubo en ese mes y dicho listado se mostrará en la parte derecha de la aplicación justo debajo del módulo de acceso a la aplicación. Para el filtrado por palabras se utilizará un input arriba en la aplicación que permitirá filtrar las noticias por las palabras que se inserten en el. Este filtrado de noticias buscará la palabra en todos los campos que puede tener una noticia salvo que se marque que por dicho campo no se puede buscar desde el backend Iniciar Sesión frontend Cualquier usuario registrado y aprobado por el administrador podrá iniciar sesión en la aplicación para acceder a una serie de funcionalidades avanzadas. Dicho inicio de sesión se podrá hacer en cualquier página de la aplicación mediante un pequeño formulario de usuario/contraseña en la parte derecha de la aplicación Publicar noticias frontend autenticado Una vez iniciada sesión los usuarios podrán publicar Artículos que para su publicación tendrán que ser aceptados por el administrador o bien el usuario tendrá que pertenecer a un grupo que tenga permisos de publicación. Al publicar artículos tendrán que completar como mínimo el título, un pequeño resumen y toda la noticia. Además de los campos obligatorios se pueden agregar ficheros de audio, vídeo o documentos a la noticia y se podrá marcar si el artículo se publicara o no en función del permiso del usuario. Trabajo Fin de Grado Página 15

18 Editar noticias frontend autenticado Una vez iniciada sesión los usuarios podrán editar las noticias que hayan publicado con antelación Visualizar noticias frontend Al acceder a la web se mostrará el listado de noticias actuales ordenadas por fecha. Al hacer click en cada noticia se accederá al detalle de esta. Por defecto las noticias que tengan ficheros de audio y vídeo mostrarán dichos contenidos en un reproductor en el listado mencionado Descargar noticia - frontend Toda noticia que tenga un fichero adjunto tendrá un link mediante el cual el usuario podrá descargar el fichero de la noticia en su equipo. Dicho link solamente aparecerá al acceder al detalle de la noticia Menús frontend La aplicación tendrá dos menús en la parte pública, uno que tendrá los elementos por los que puede navegar un usuario sin acceso y otro al que solamente tendrán acceso los usuarios registrados Menú principal Estará situado en la parte de arriba de la aplicación y contendrá un enlace a la página principal de la web y otro menú desplegable que contendrá un enlace a cada una de las categorías de la aplicación y se encargará de mostrar las noticias de dicha categoría Menú de Usuarios Este menú aparecerá en la posición del módulo de acceso a la aplicación sustituyendo dicho módulo una vez iniciada la sesión por un usuario. Este menú contendrá las siguientes opciones: Creación de artículos. Listado de todos tus artículos publicados. Editar tu perfil. Moderar comentarios cambiar los comentarios que has creado para las noticias. Alertas - apartado de configuración mencionado anteriormente. 2.6 Documentación de referencia y anexos Para el desarrollo de esta parte de la aplicación será necesario estudiar los apartados de instalación y funcionamiento del CMS Joomla. Para necesidades específicas será necesario estudiar plugin que pueden ofrecer las funcionalidades que se desean. En el caso de que no se consiga encontrar ningún complemento del CMS Joomla que cumpla con los requisitos de la aplicación se tendrá que estudiar la forma de crear uno personalizado o modificar uno existente. Trabajo Fin de Grado Página 16

19 3. Diseño Iteración 1 Apartado en el cual se detallarán los pasos a llevar a cabo para la implantación de una instalación básica de Joomla sobre la cual se añadirán todos los apartados especificados en el análisis. 3.1 Instalación Para la instalación necesitamos de un servidor web y para ello utilizaremos la herramienta Xampp que ofrece un servidor web apache gratuito disponible para Windows. Para la instalación copiaremos los ficheros de Joomla en la ruta C:\xampp\htdocs ruta en la que por defecto se instala Xampp. Tras arrancar el servidor accedemos a localhost en el navegador y seguiremos los pasos del asistente de instalación de Joomla que aparece. Cuando se nos pide BD y usuarios utilizaremos los datos que aparecen debajo y como contraseña de usuario administrador pondremos Aa. Datos de la instalación: Datos de la BD BD: qpv314 Usuario: qpv312 Host: qpv314.dantodo.com Contraseña: Aa 3.2 Funcionalidades Para la implementación de gran parte de las funcionalidades de la aplicación se utilizará el plugin k2 que ofrece más posibilidades de gestión de noticias/usuarios que el propio Joomla. Esta decisión se ha tomado por las siguientes limitaciones que ofrece Joomla y que se consiguen mediante la utilización del plugin k2. Limitaciones: Asignar un artículo a varias categorías. Agregar campos adicionales a las noticias. Gestionar mejor los usuarios mediante grupos personalizados. Enlazar contenido multimedia desde multitud de páginas como youtube.com. Estas son las limitaciones que cubre k2 y que en nuestro proyecto solo con Joomla no nos es suficiente Inicio de sesión Todo usuario previamente registrado en el sistema dispondrá de un nombre de usuario y contraseña para acceder a su parte privada de la aplicación. El acceso a la aplicación se hará mediante un formulario que se encargara de comprobar que el usuario este en la BD de la aplicación y que no se encuentra bloqueado. Trabajo Fin de Grado Página 17

20 Este funcionamiento es válido tanto para el frontend como para el backend. Para tener la funcionalidad de acceso a la aplicación hay que habilitarla desde el apartado de módulos creando un nuevo módulo de tipo K2 user, con nombre K2 user que se situará en el menú de la parte derecha de la aplicación. En el mismo módulo ya aparecen las opciones de recordatorio de contraseña, recordatorio de usuario y la opción de crear una nueva cuenta Registrar Para que los usuarios nuevos que se registren tengan acceso a la hora de crear artículos y comentarios se tendrán que crear nuevos grupos k2 desde el backend de Joomla. Se crearán 3 grupos y cada uno tendrá los permisos indicados a continuación: Administradores: todos los permisos. Autores: todos los permisos menos los de edición de artículos que no son del usuario. Registrados: todos los permisos menos los de publicación y edición de artículos que no son del usuario. Tras crear los grupos se modifican las configuraciones de K2 para que los usuarios por defecto se den de alta como pertenecientes al grupo de Registrados. Para que aparezca la opción de registrar se tiene que habilitar desde el apartado de Gestión de Usuarios de las configuraciones de Joomla. Para evitar ataques mediante robots se utilizará un campo captcha que se activará desde el apartado de configuración genérica del gestor de contenido k2. Para funcionar es necesario registrarse en google.com/recaptcha y obtener unas claves pública/privada mediante las cuales se accede al servicio. Dichas claves se tendrán que poner en el apartado antes mencionado Finalizar sesión Al pulsar sobre el botón de finalizar sesión se tiene que salir de la aplicación como usuario registrado y redirigir a la página de inicio de la aplicación. Para ello en las opciones del módulo creado para el acceso se tiene que marcar que la página de redirección de salida sea la de inicio de la aplicación Página de Inicio La página de inicio tendrá un listado de los artículos de la aplicación ordenados decrecientemente. Para hacer el funcionamiento se creará un enlace que mostrará todas las noticias de una categoría. Como no todos los artículos pertenecen a todas las categorías entonces se crea una categoría genérica llamada Global a la que se asignarán por defecto los artículos, y se utilizará dicha categoría para mostrar el listado. Trabajo Fin de Grado Página 18

21 Para que el orden sea decreciente se marcará desde las opciones del listado de categoría y se marcará que se ordene por la fecha de modificación para que si el artículo sufre modificaciones sea visible en la página de inicio entre los primeros. También se definirá que solamente se muestren los últimos 5 artículos desde el propio apartado de configuración Filtrar noticias En la parte superior derecha de la aplicación aparecerá un cuadro que permitirá buscar noticias por palabras y se buscará la palabra introducida en todos los campos que contempla la creación de un artículo. Para ello se creará un módulo de tipo búsqueda k2 que se situará en dicha posición. Dicho módulo mostrará todos los artículos de la aplicación que tengan dicha palabra o palabras en alguno de sus campos. Se creará otro filtro para la aplicación que mostrará un listado de los meses y los artículos que se han creado en dichos meses. Para ello se creara un nuevo módulo k2 Tools con el nombre de Calendario de Noticias que se situará debajo del módulo de login de la aplicación Publicar noticias Para que la opción de creación de artículos aparezca será suficiente que el usuario esté asignado a un grupo que tenga permisos de creación de artículos ya que el módulo k2 user se encargará de mostrarle dicha opción Información adicional Al no ser suficiente con los campos que nos ofrece la creación de un artículo en Joomla crearemos nuevos campos necesarios en los artículos. Los nuevos campos se llamarán valoración y temas. El objetivo no es replicar todos los campos de la antigua aplicación sino mostrar cómo se puede hacer mediante la utilización del plugin k2. Para ello crearemos un nuevo Grupo de Campos Extra que se llamará Información Adicional y luego crearemos dos Campos asociados al grupo así definido. Los campos se llamarán valoración y temas y serán del tipo combobox y tendrán unos valores predefinidos. Por defecto serán públicos y no obligatorios. Con cualquier nuevo campo que se necesite a la hora de crear un artículo se seguirán los mismos pasos. Para que se visualicen en la sección de creación de artículos se tienen que seleccionar el grupo de campos extra en las propiedades de cada categoría creada. Para publicar las noticias se crearán 4 categorías que englobaran todas las noticias de la aplicación: TV: noticias que contienen incrustados archivos de vídeos y que normalmente aparecen por televisión antes. Radio: noticias que contienen incrustados archivos de audio y que normalmente se escuchan por la radio antes. Internet: noticias que se recopilan desde internet y son de interés para la aplicación. Trabajo Fin de Grado Página 19

22 Global: categoría que será asignada por defecto a toda noticia dada de alta en la aplicación Editar noticias Para la edición de noticias será suficiente con asignar el usuario a un grupo que tenga permisos de edición de noticias. En nuestro caso por defecto un nuevo usuario se asocia al grupo Registrados. Conforme a lo explicado anteriormente dicho grupo ya tiene permisos de edición de artículos, solo de los personales de cada usuario. Por lo tanto como el grupo ya tiene dichos permisos el usuario los hereda Eliminar noticia La funcionalidad de eliminar noticia será asignada por defecto a los usuarios que pertenecen al grupo de Autores; solamente podrán eliminar las noticias publicadas por ellos. Para ello al darse de alta como usuario registrado se asignarán al grupo Registrados y posteriormente el administrador debe asignarlos al grupo de autores desde el backend de la aplicación Descargar noticia - frontend El propio módulo de k2 de creación de noticias permite agregar ficheros adjuntos a la noticia y permite descargarlos una vez publicada la noticia y accediendo a los detalles de la misma, así que este apartado estará solucionado con habilitar la creación de artículos para el usuario. 4. Implementación Iteración 1 En este apartado de la documentación se entrega la aplicación en un fichero Zip y se detallarán los cambios que se han tenido que hacer a los plugins de Joomla o al proprio Joomla para que se consiga el funcionamiento deseado de la aplicación. 4.1 Idiomas Al instalar la aplicación en español hay que tener en cuenta que no todos los plugins que se utilizan vienen con traducciones de español. Para adaptar los plugins al español se han seguido los pasos explicados a continuación basándonos en el concepto de plugin de Joomla, aquel de que cada plugin tiene que tener definidos ficheros con traducciones utilizadas en la interfaz del plugin. Una vez entendido el concepto lo que se hace es replica el fichero de traducciones origina con su formato y se cambian las traducciones al idioma deseado. Por lo tanto se copia el fichero original y se modificado tanto su nombre como las traducciones que contiene. Para encontrar los ficheros que contienen las traducciones originales de los plugins se buscan en dos rutas que corresponden cada una al apartado backend y frontend de la aplicación. Si solo se desea cambiar el idioma del plugin en el frontend solamente se modificará el fichero correspondiente. Rutas de los ficheros de traducciones de los plugins: [ruta_base]\administrator\language ficheros de idiomas de backend. Trabajo Fin de Grado Página 20

23 [ruta_base]\language ficheros de idiomas de frontend. Una vez encontrado lo que se desea cambiar se accede a la ruta correspondiente y de allí a la carpeta del idioma original y se busca el fichero del idioma del plugin. Tras encontrarlo se copia en la carpeta del idioma de destino y se le cambia el nombre para que tenga el formato del idioma de destino y se cambian las traducciones internamente. A partir de aquí es el propio Joomla el que se encarga de recoger las traducciones correctas en función del idioma de la aplicación. Estas modificaciones se han realizado para el plugin de múltiples categorías del módulo k Múltiples categorías Al instalar el plugin adicional de múltiples categorías del módulo k2 el funcionamiento que se da a la hora de crear un nuevo artículo no es el deseado ya que se nos permite seleccionar desde la misma ventana dos veces la misma categoría. La primera vez para seleccionar la categoría del artículo y la segunda vez en el listado de categorías desde la cual se pueden asignar más de una al mismo artículo. Para evitar dicho comportamiento se modifica el código para que en el combo solamente aparezca la categoría Global y en el listado de categorías a seleccionar aparezcan todas las demás menos la de Global. Para ello modificamos el funcionamiento tanto en el backend como en el frontend de la aplicación. Se modifica el código de los ficheros de debajo para que en el combo de creación de artículos solamente aparezca la categoría Global. Para ello se elimina todas las demás categorías del dato que contiene las categorías. Ficheros modificados: Backend: [ruta_base]\ administrator\components\com_k2\views\item\tmpl\default.php Frontend: [ruta_base]\ components\com_k2\templates\default\itemform.php Para eliminar la categoría del listado de categorías adicionales se modifica el código del fichero de debajo; solamente se trata de un fichero ya que es código compartido tanto por el backend como por frontend. Fichero: [ruta_base]\ plugins\k2\k2additonalcategories\k2additonalcategories.php 5. Análisis Iteración Alcance La iteración contempla la implementación de los avisos en la aplicación como una opción más en el menú de los usuarios registrados. Trabajo Fin de Grado Página 21

24 5.2 Objetivos El objetivo de esta iteración es la de permitir a los usuarios registrados estar al tanto de las noticias que les interesen sin tener que revisar cada día el contenido nuevo que se halla agregado. 5.3 Entregables - La aplicación web de la iteracion1 con el nuevo funcionamiento agregado. - Documento de Análisis. - Documento de Diseño Técnico. - Código de la aplicación Web de la iteracion1 ampliado con las funcionalidades de la iteracion Descripción Se crearán alertas a las que los usuarios podrán subscribirse y que podrán configurar. Las alertas se podrán configurar para que se avise cada cierto intervalo de tiempo y para que se avise al usuario solamente si hay noticias en las categorías que ha preseleccionado al subscribirse a la alerta. Tanto los intervalos de tiempo como las categorías que el usuario registrado podrá seleccionar se podrán configurar; por defecto toda categoría dada de alta en la aplicación será incluida en el listado de preselección de alertas. En un inicio se crearán intervalos de tiempo diario, semanal, quincenal, mensual, pero en cualquier momento se podrán crear otros. 6. Diseño e implementación Iteración 2 Se agrupan en un solo paso las dos tareas ya que en realidad se trata de un trabajo de investigación para ver que plugin se amolda más a lo que buscamos y la implementación del mismo en la aplicación. Al investigar los plugins existentes para el CMS Joomla que traten el tema que nos interesa descubrimos que hay muchos plugins que realizan lo que se desea hacer en la aplicación. El que seleccionamos para la aplicación es J!MailAlerts ya que nos da toda la funcionalidad que buscamos y a diferencia de otros es un plugin gratuito. Al estar limitados por la utilización del plugin k2 a buscar solamente los que son compatibles entonces hay que instalar una extensión (J!MailAlerts - K2 - Latest Items) que permite hacer la compatibilidad entre los dos plugins y que nos da la posibilidad de creación de alertas que cumplen los criterios del análisis. Tras la instalación del plugin hay que crear un menú de usuario que tenemos que asociar al módulo de acceso de k2 para que así nos aparezca igual que las demás opciones que dicho módulo ofrece. Trabajo Fin de Grado Página 22

25 Esta opción nos llevará a un listado de las alertas previamente creadas y configuradas y permitirá al usuario el alta/baja de las mismas y su configuración también. Como se explica en el apartado de implementación de la primera implementación para este módulo también hay que configurar su correspondiente fichero de idioma para que así muestre los textos en español. 7. Análisis Iteración Alcance La iteración contempla la habilitación del SSL en la aplicación utilizando certificados personales existentes o creados utilizando los conocimientos adquiridos en la asignatura de Seguridad de la titulación. 7.2 Proteger el apartado de gestión de la aplicación mediante SSL Como para el desarrollo del proyecto utilizamos la herramienta gratuita de xampp que viene configurada con todos los requisitos necesarios vamos a explicar los pasos necesarios que se harían para que funcione el SSL en nuestro sitio. Para activar el sitio seguro se configurará apache para que responda en el puerto 443. Para ello se modificará el fichero httpd.conf. En nuestro caso xampp tiene ficheros de configuración separados por cada módulo que puedes agregar haciendo las modificaciones más fáciles de encontrar. Para el módulo de SSL tiene un fichero de configuración separado httpd-ssl.conf. Una vez hecho esto también hay que definir un virtual host relacionado al puerto 443. Dicho virtual host hay que definirlo en el mismo fichero mencionado antes. El virtual host tendrá definidos los certificados que se utilizarán para la autenticidad del servidor el nombre al que responde, la ruta básica de donde espera cargar el sitio. Por último para que apache detecte que se desea cargar la configuración SSL se tiene que arrancar el servidor con el módulo ssl_module, de esta forma se tienen en cuenta todas las configuraciones mencionadas antes Configuración personal Como el proyecto persigue configurar el SSL con un certificado personalizado entonces tenemos que generar uno y sustituir los ya existentes por ellos. Para configurar el servidor con el certificado que nosotros deseamos hay que generar primero el certificado Esto se puede hacer con las herramientas que se han utilizado en la asignatura de Seguridad. Para ello necesitamos un certificado de tipo SSL Server y su clave para el servidor y el fichero.key con la clave del certificado. Se definen las variables SSLCertificateFile y SSLCertificateKeyFile en el virtual host definido antes que apunten a las rutas de donde se encuentra los ficheros del certificado y el de la clave. Trabajo Fin de Grado Página 23

26 Hay que tener en cuenta que cualquier virtual host que creemos de ahora en adelante para el proyecto tendremos que crear su correspondiente virtual host en el fichero de SSL. 8. Análisis Iteración 4 En esta iteración se creara una API que ofrezca acceso a funcionalidades de la aplicación. Se ha decidido por un API REST ya que se desea enviar el mínimo contenido en una comunicación cliente-servidor y en caso de otra alternativa como es un API SOAP se envían más datos ya que se envía un documento XML tanto para la petición como para la respuesta. 8.1 Alcance La iteración abarca la creación de un API REST que servirá para que otros dispositivos puedan crear aplicaciones basándose en los datos que hay en la aplicación. El objetivo general es dar la posibilidad a clientes a implementar aplicaciones que utilicen los recursos de la web desarrollada en el proyecto detallado en las iteraciones anteriores. 8.2 Objetivos Se considerará conseguido el objetivo si se entregan una serie de métodos de acceso a funcionalidades de la aplicación que respeten el formato de llamadas explicadas en el Anexo I sobre información de una API REST. 8.3 Perspectiva general de la solución Se creará un listado de llamadas que realizarán funciones básicas que se pueden realizar desde la aplicación web. Aunque sean funcionalidades básicas a implementar hay que ser conscientes de que las funcionalidades que se describan y los métodos o funciones que se expongan, deben estar pensadas para ser reutilizadas en funcionalidades similares o extendidas, para hacer posible un futuro crecimiento de esta plataforma. A modo de resumen, las opciones con las que se contará en esta primera versión serán las siguientes: - Listado de noticias, categorías, alertas. - Filtrado de noticias buscando por usuario, categoría, título de noticia. - Detalle de noticia. - Alta/baja de las listas de suscripción (alertas). 8.4 Seguridad, Fiabilidad y Disponibilidad Se prevén las siguientes restricciones de seguridad: - Todas las comunicaciones serán mediante HTTPS. Trabajo Fin de Grado Página 24

27 - Las funciones desarrolladas nunca devolverán id reales de datos de la BBDD, sino un alias (ClientRef o token) diferente para cada id distinto. - Los Servicios Web expuestos, que requieran de autenticación, nunca devolverán información de clientes que no correspondan exactamente al Cliente vinculado con la petición. - Se realizará siempre una comprobación que verifique que el Cliente es un usuario existente en BD, posibles bajas etc. - Debe quedar registrada cualquier operación realizada desde los dispositivos que hacen uso de la API. - Como se trata de funcionalidades que tienen como objetivo ser utilizadas por terceros cada datos de entrada sera validado para que respete el formato de datos esperado. Con respecto a la fiabilidad y disponibilidad, esta aplicación requiere de una arquitectura capaz de ofrecer servicio en alta disponibilidad, ya que se trata de una herramienta de cliente. 8.5 Funcionalidades de la aplicación Listado de Noticias Una llamada a este método permite al cliente obtener un listado ordenado por fecha de publicación de las noticias publicadas de la aplicación. Los datos que se mostrarán por cada noticia serán el título y la fecha de publicación, la categoría, y el resumen de la noticia, así como también el usuario que creó dicho artículo. Para evitar cargas extremas al servidor se implementará un sistema de paginado que ofrezca la posibilidad de obtener noticias por páginas Listado de Categorías Una llamada a este método permite al cliente obtener un listado ordenado por nombre de categoría de las categorías publicadas en la aplicación para el usuario invitado. Los datos que se mostrarán por cada categoría serán el título y el número de elementos a los que está asociada la categoría Listado de Alertas Una llamada a este método permite al cliente obtener un listado ordenado por nombre de alertas de las categorías publicadas en la aplicación para el usuario pasado. Los datos que se mostrarán por cada alerta serán el título y una pequeña descripción de la alerta. A esta funcionalidad solamente tendrán acceso usuarios registrados así que se hará una previa validación de los datos antes de devolver el resultado. Trabajo Fin de Grado Página 25

28 8.5.4 Filtrado de Noticias Una llamada a este método se encargará de devolver un listado de noticias que cumpla con los criterios de búsqueda. De momento solamente se permitirá buscar noticias publicadas por un usuario en concreto, noticias que pertenezcan a una categoría en concreto o noticias que contengan ciertas palabras en su título Detalle de noticia Se mostrará el detalle de una noticia pasada que además de los datos que ya se devolvían en el listado ofrecerán los siguientes datos: Tema. Valoración. Las demás categorías a las que pertenece. El texto completo de la noticia. Como ya se detalló en este apartado se eliminará cualquier archivo adjunto a la noticia y solamente se mostraran los textos que la acompañan Alta de las listas de suscripción (alertas) Funcionalidad que ofrece la posibilidad de asociar al usuario pasado la alerta seleccionada, antes de hacer cualquier cambio se validarán todos los datos y que el usuario existe y es válido. Si el usuario ya tiene otras alertas asociadas se da de baja de dichas listas de suscripción y se le da de alta en la nueva Baja de las listas de suscripción (alertas) Funcionalidad que ofrece la posibilidad de desasociar al usuario de cualquier lista de suscripción a la que pertenezca. 9. Diseño Iteración 4 Toda la documentación del diseño técnico de la iteración 4 estará orientada a ser utilizada por aplicaciones móviles de terceros. 9.1 Objeto del documento El objetivo de este documento es detallar el funcionamiento del API que se expondrá para aplicaciónes móviles de terceros. En él aparecerán los diferentes métodos que compondrán el API, así como los parámetros y formato de los parámetros de entrada y salida. 9.2 Definiciones, acrónimos y abreviaturas clientref: Identificador único que definirá a cada uno de los clientes que podrán llamar a la aplicación. clientref = RC4 (<login>&<pass>) Trabajo Fin de Grado Página 26

29 noticiaref: Identificador que referencia una noticia de la aplicación. Se formará de la siguiente forma: noticiaref = RC4 (<ID noticia>) alertaref: Identificador que referencia una alerta de la aplicación. Se formará de la siguiente forma: alertasref = RC4 (<ID alerta>) categoriaref: Identificador que referencia un identificador de una categoría de la aplicación. Se formará de la siguiente forma: categoriaref = RC4 (<ID categoria>) 9.3 API En este apartado se detallará el WebService que se utilizará para la comunicación entre las aplicaciones de terceros para terminales móviles y los sistemas técnicos. Los diferentes puntos que se tratarán son: - Sitio web de la API. - Parámetros de entrada comunes. - Formato de llamada. - Formato de la respuesta JSON. - Métodos expuestos en la API. - Aspectos de seguridad. 9.4 Sitio web de la API Entorno desarrollo/producción En nuestro caso como se trata de una aplicación desarrollada por el alumno para el Trabajo Fin de Grado tanto el entorno de desarrollo como el de producción serán los mismos. Para ello el alumno se dará de alta una entrada DNS en la Web no-ip.info que apuntará al servicio web que tendrá levantado para las pruebas. Dicho servicio estará levantado en casa del alumno por las limitaciones que se tienen a la hora de hacer pruebas con certificados personales en hostings de prueba. URL Parámetros de entrada comunes Todas las llamadas a métodos del WebService que requieran de autenticación, tendrán tres parámetros comunes: Trabajo Fin de Grado Página 27

30 - accesskeyid: identificador del usuario o token que realiza la petición. Será el parámetro clientref, codificado en base64. Ejemplo: "ABCDEF123456" Codificado en Base 64: " QUJDREVGMTIzNDU2 " - timestamp: marca de tiempo de la petición. Fecha y hora en formato GMT (Greenwich Mean Time) del momento de realizar la petición, en el siguiente formato: aaaa-mm-ddthh:mm:ss Ejemplo: T09:11:58 La petición no será válida, y devolverá un código de error, si la fecha y hora indicadas difieren en más de 15 minutos con la fecha y hora del servidor. - signature: firma de la petición para comprobar la autenticidad de la misma. Se forma mediante la codificación SHA1 (hexadecimal) de la cadena formada resultado de la concatenación de: - El hash MD5 (hexadecimal) del parámetro ClientRef - El nombre de la función u operación a realizar. - La marca de tiempo (timestamp) de la petición. Podría por tanto expresarse como: SHA1(MD5(<ClientRef>)<NombreFuncion><Timestamp>) 9.6 Formato de llamada En este apartado se define el formato en el que deben enviarse los parámetros de llamada a los diferentes métodos de la API. Todos los métodos, independientemente de que sean POST, GET, PUT, DELETE, recibirán un único parámetro llamado param que se formará de la siguiente manera: Codificar en UTF-8 los parámetros de cada uno de los métodos, según se especifica más adelante en este documento. Se conformará un string en formato JSON con los parámetros anteriormente codificados. Se aplicará una codificación RC4 al string anterior, utilizando la clave proyecto.danlucian. Se codificará en base64 el string anterior. Formato: $param = base64(rc4(json(utf-8(<parámetros de entrada>)))) NOTA: en la recepción hay que hacer el proceso inverso Trabajo Fin de Grado Página 28

31 Ejemplo de llamada GET: Ejemplo de llamada POST: POST $param Ejemplo de llamada DELETE: DELETE $param Ejemplo de llamada PUT: PUT $param 9.7 Formato de respuesta Con el fin de estandarizar la respuesta de los métodos expuestos en el WebService, se seguirá la siguiente estructura en cualquier JSON de respuesta: {"status":"$status","code":"$code","description":"$description", "data":"$data"} -$status: 1 => la operación se ha realizado con éxito. 0 => ha habido algún error en la operación. - $code: en caso de éxito, este campo vendrá vacío. En caso de error, este campo contendrá un código numérico que identificará de manera unívoca el error que se ha producido en la operación. - $description: campo opcional que contendrá una descripción del resultado de la operación. - $data: en caso de error, este campo vendrá vacío. En caso de éxito, este campo contendrá la información específica del método que ha sido llamado. Para más detalle sobre este campo, hay que consultar el método en cuestión dentro de este documento. 9.8 Métodos del API Listado de noticias Esta función será la base de presentación de información desde la aplicación hacia las aplicaciones de terceros, y debe construirse de forma que se garantice su crecimiento en opciones y contenido sin comprometer su flexibilidad ni compatibilidad hacia atrás (las versiones posteriores, salvo en cambios muy importantes, no deberían alterar el funcionamiento de esta versión). Mostrará el listado de noticias de la aplicación. Trabajo Fin de Grado Página 29

32 URL Método GET Nombre de método para el parámetro signature noticelist Parámetros de entrada - top (opcional): indica el número total de registros a devolver. Este parámetro se utilizará para la paginación de los resultados. - min (opcional): indica el identificador a partir del cual se deben devolver los resultados. Este parámetro se utilizará en combinación con el anterior para la paginación de los resultados. El valor de este parámetro será el número a partir de cual se empezara a paginar la respuesta Parámetros de salida Se entiende que estos son los parámetros del campo data. - numtotal: número total de noticias. Este dato se devuelve para utilizarlo en la paginación. Por cada noticia o ítem se devolverá la siguiente información: - noticiaref: identificador de la noticia. - categoriaref: identificador de la categoría de la noticia. - Título: descripción de la noticia. Pequeño resumen de la noticia que aparece en el frontend de la aplicación también. - usuario: nombre del usuario que creo el artículo Listado de Categorías Método que devuelve el listado de categorías públicas de la aplicación. URL Método GET Nombre de método para el parámetro signature categoriaslist Parámetros de entrada No necesita de ningún parámetro de entrada extra; una simple llamada a dicha URL devolverá las categorías Parámetros de salida Se entiende que estos son los parámetros del campo data. - numtotal: número total de categorías. Trabajo Fin de Grado Página 30

33 Por cada categoría o ítem se devolverá la siguiente información: - categoriaref: identificador de la categoría. - Título: Nombre de la categoría. - Descripción: Pequeño resumen de la categoría Listado de Alertas Método que devuelve el listado de alertas disponibles de la aplicación. URL Método GET Nombre de método para el parámetro signature alertaslist Parámetros de entrada - clientref: identificador único de usuario Parámetros de salida Se entiende que estos son los parámetros del campo data. - numtotal: número total de alertas. Por cada alerta o ítem se devolverá la siguiente información: - alertaref: identificador de la alerta. - Título: Nombre de la alerta. - Descripción: Pequeña descripción de la alerta Filtrado de noticias Método que devuelve el listado de las noticias que cumple el filtro aplicado. URL Método GET Nombre de método para el parámetro signature noticiasfilter Parámetros de entrada - usuario (opcional): nombre del usuario que publicó la noticia. - categoría (opcional): nombre de la categoría a buscar. - titulo (opcional): palabra/s que se buscara en el título de las noticias. Trabajo Fin de Grado Página 31

34 - top (opcional): indica el número total de registros a devolver. Este parámetro se utilizará para la paginación de los resultados. - min (opcional): indica el identificador a partir del cual se deben devolver los resultados. Este parámetro se utilizará en combinación con el anterior para la paginación de los resultados. El valor de este parámetro será el número a partir de cual se empezará a paginar la respuesta Parámetros de salida Se entiende que estos son los parámetros del campo data. - numtotal: número total de noticias. Este dato se devuelve para utilizarlo en la paginación. Por cada noticia o ítem se devolverá la siguiente información: - noticiaref: identificador de la noticia. - categoriaref: identificador de la categoría de la noticia. - Título: descripción de la noticia. Pequeño resumen de la noticia que aparece en el frontend de la aplicación también. - usuario: nombre del usuario que creo el artículo Detalle de noticia Método que devuelve la información detallada de la noticia pasada URL Método GET Nombre de método para el parámetro signature noticiainfo Parámetros de entrada No necesita de ningún parámetro de entrada extra; una simple llamada a dicha URL devolverá la información de la noticia Parámetros de salida Se entiende que estos son los parámetros del campo data. - noticiaref: identificador de la noticia. - categoriaref: identificador de la categoría de la noticia. - título: descripción de la noticia. Pequeño resumen de la noticia que aparece en el frontend de la aplicación también. Trabajo Fin de Grado Página 32

35 - usuario: nombre del usuario que creo el artículo. - tema: tema de la noticia. - valoración: valoración de la noticia. - extracategories: las categorías adicionales a las que pertenece la noticia. - detalle: el texto completo de la noticia Alta de las listas de suscripción (alertas) Método que sirve para dar de alta al usuario en la lista de suscripción pasada. URL Método POST Nombre de método para el parámetro signature newuseralert Parámetros de entrada - clientref: identificador único de usuario Parámetros de salida No se devolverá nada en la posición data. Con el resto de campos comunes de respuesta (status, code y description) se comprobará si la operación se ha realizado con éxito o ha habido algún error Baja de las listas de suscripción (alertas) Método que sirve para dar de baja al usuario de la lista de suscripción pasada. URL Método DELETE Nombre de método para el parámetro signature deluseralert Parámetros de entrada - clientref: identificador único de usuario Parámetros de salida No se devolverá nada en la posición data. Con el resto de campos comunes de respuesta (status, code y description) se comprobará si la operación se ha realizado con éxito o ha habido algún error. 9.9 Aspectos de seguridad Apartado que añadirán aspectos de seguridad del API complementarios a la documentación anterior. Trabajo Fin de Grado Página 33

36 9.9.1 Validaciones/Seguridad del API En este apartado se detallarán todos aquellos controles de seguridad que aplicarán a todos los métodos de la API. Adicionalmente, cada método tendrá una serie de validaciones adicionales que se detallarán de manera individual. Cada error tendrá su código de error y será devuelto a la aplicación (ver Anexo). 1) Número de peticiones por unidad de tiempo El objetivo de esta validación consiste en no permitir que desde una IP se superen más de X peticiones por unidad de tiempo. Para ello, los pasos a seguir son los siguientes: Definir constantes para limitar el número de peticiones. If(!defined( LIMITACION_LLAMADAS_MINUTO )) define( LIMITACION_LLAMADAS_MINUTO,100); Con estos valores se indica que no se pueden superar las 100 peticiones por minuto y podrán ser modificados después. Crear el método Authentication_API_Method en el fichero \api\modules\authentication\authentication.inc.php, él se encargara de hacer las validaciones necesarias. Crear el método Interface_Execute_Method. 2) Validación de token, timestamp y firma Hay 3 métodos que tendrán esta validación: - Listado de alertas - Baja/alta del usuario a listas de suscripción. Estos métodos recibirán los 3 parámetros que se han comentado en puntos anteriores: - accesskeyid: se validará que exista el token (clientref) en nuestra base de datos, en la tabla un_users. - timestamp: se validará que la hora que nos llega como parámetro y la que tiene el servidor no supere los 15 minutos. Si supera este tiempo, se rechaza la petición y se devuelve el error correspondiente. - signature: se validará que la firma que se pasa como parámetro y la que se conforma en el servidor coincidan. Si no coinciden, se rechaza la petición y se devuelve el error correspondiente. Estas validaciones se harán en el método Authentication_API_Method del fichero \api\modules\authentication\authentication.inc. Trabajo Fin de Grado Página 34

37 3) Validación de que la operación solicitada corresponde al cliente que ha realizado la llamada. Esta validación no aplica a todos los métodos sino a aquellos métodos que permitan realizar una operación sobre un elemento que pueda no pertenecer al cliente. En nuestro caso no será necesario ya que en los métodos que necesitan dicho funcionamiento con validar que existe el usuario y se encuentra en un estado valido será suficiente. Esta validación seria valida en operaciones que se podrían dar en versiones futuras como la baja de artículos o la modificación de éstos. Ejemplo: método para modificar una noticia Este método recibe, entre otros parámetros, el ID de la noticia a modificar. El objetivo de esta validación consiste en que un cliente no pueda modificar los datos de una noticia que pertenece a otros usuarios si no tiene permisos para ello. Esta validación debería meterse en el metodo Authentication_API_Method el cual, después de las validaciones comentadas quedará de la siguiente forma: Authentication_API_Method ($remoteip,$accesskeyid=null,$timestamp=null,$signature=null,$function4signature=null), donde - $remoteip IP del dispositivo móvil desde el que se realiza la petición. - $acceskeyid token ya comentado. Admite valor null por defecto, porque solo hay 3 métodos que dispondrán de este dato. - $timestamp fecha ya comentada. Admite valor null por defecto, porque solo hay 3 métodos que dispondrán de este dato - $signature firma ya comentada. Admite valor null por defecto, porque solo hay 3 métodos que dispondrán de este dato - $function4signature nombre interno que damos al método para poder validar la firma Admite valor null por defecto, porque solo hay 3 métodos que dispondrán de este dato Con estos valores, lo que debe realizar el método Authentication_API_Method es lo detallado anteriormente 4) Identificadores de BBDD Existe un requisito de seguridad que consiste en que en los parámetros de entrada y salida de los métodos del API no vayan los identificadores de las bases de datos internas (ID de noticia, ID de categoría, ID de alerta, etcétera). Trabajo Fin de Grado Página 35

38 Para ello, como norma general, utilizaremos los métodos de encriptado y desencriptado que existen en el fichero \api\lib\encriptacion_lib.php En este caso utilizaremos una clave de encriptado que definiremos como constante en nuestro API: define('clave', proyecto.danlucian ); 9.10 Modulado funciones Para las funciones necesarias para el API se crearan módulos. Para la creación de un nuevo módulo como norma general se decidirán en función del objeto que tiene que tratar. De esta forma se crearan módulos que se llamaran api_$elemento donde elemento es el objeto a tratar en las funciones. Conforme a lo explicado se crearan 3 módulos llamados: api_noticias: contendrá funciones que tratan las noticias de la aplicación. Listado, detalle, filtrado de noticias. api_categorias: contendrá funciones que tratan las categorías de la aplicación. Listado de categorías. api_alertas: contendrá funciones que tratan las alertas de la aplicación. Listado de alertas, baja de la alerta del usuario, alta de la aleras del usuario. El hecho de crear un nuevo módulo es para que no se tenga que compilarse tanto código PHP en el servidor. Así que este módulo debe incluir el menor número posible de requires. De esta forma también hacemos más fácil detectar errores y tener el código más estructurado. Nota: Hay que validar todos los parámetros que lleguen a los métodos procesador Módulo api_noticias Función listarnoticias Método que obtiene el listado de noticias publicadas en la aplicación. listarnoticias($top = null, $min =null) Se conectara a la BD de la aplicación y ejecutara la consulta de debajo sobre las tablas que utiliza Joomla para las noticias, categorías y usuarios y devolverá el resultado: SELECT i.id,i.title,c.name,u.username FROM un_k2_items AS i JOIN un_k2_categories AS c ON i.catid = c.id JOIN un_k2_users AS u ON i.created_by = u.userid WHERE i.published = Función filtrarnoticias Método que obtiene el listado de noticias publicadas en la aplicación aplicando el filtro de los parámetros pasados. Trabajo Fin de Grado Página 36

39 filtrarnoticias ($user = null, $categoria = null, $titulo = null, $top = null, $min = null) Se conectara a la BD de la aplicación y ejecutara la consulta de debajo sobre las tablas que utiliza Joomla para las noticias, categorías y usuarios y devolverá el resultado: SELECT i.id,i.title,c.name,u.username FROM un_k2_items AS i JOIN un_k2_categories AS c ON i.catid = c.id JOIN un_k2_users AS u ON i.created_by = u.userid WHERE i.published = 1 and ( (u.name =? or u.username =? ) or (c.name =?) or (i.title =?) ) Función detallenoticia Método que obtiene el detalle de la noticia pasada. detallenoticia($idnoticia) Se conectara a la BD de la aplicación y ejecutara la consulta de debajo: SELECT i.id AS noticiaref,i.title AS titulo,c.id AS categoriaref,u.username AS usuario, i.extra_fields AS camposextra,i.fulltext AS detalle, ac.catid AS extracategories FROM un_k2_items AS i JOIN un_k2_categories AS c ON i.catid = c.id JOIN un_k2_users AS u ON i.created_by = u.userid LEFT JOIN un_k2_additional_categories AS ac ON i.id = ac.itemid WHERE i.published = 1 AND i.id=? Módulo api_categorías Función listarcategorias Método que obtiene el listado de categorías publicadas en la aplicación. listarcategorias () Se conectara a la BD de la aplicación y ejecutara la consulta de debajo sobre las tablas que utiliza Joomla para las categorías y devolverá el resultado: SELECT c.id,c.name FROM un_k2_categories WHERE c.published = 1 Trabajo Fin de Grado Página 37

40 Módulo api_alertas Función listaralertas Método que obtiene el listado de alertas publicadas en la aplicación. listaralertas () Se conectara a la BD de la aplicación y ejecutara la consulta de debajo sobre la tabla que utiliza Joomla para las alertar y devolverá el resultado: SELECT ID, TITLE, DESCRIPTION FROM un_jma_alerts WHERE state = Función altaalerta Método que asocia el usuario a la alerta seleccionada. altaalerta ($user,$alerta) Comprueba que se trata de un $user valido y activo. Comprueba que la $alerta existe Si el usuario tiene otras alertas esas se desasocian haciendo un DELETE en la tabla un_jma_subscribers. Para dar de alta al usuario en la alerta de hace un INSERT en la tabla un_jma_subscribers. Se devuelve error si ha fallado alguno de los pasos anteriores o true si no Función bajaalerta Método que desasocia el usuario de toda alerta a la que está asociado. bajaalerta($user) Ejecuta un DELETE de la tabla un_jma_subscribers para el usuario $user Vista de Datos Modelo de base datos Debido a que este proyecto se basa en el CMS Joomla no hay que diseñar ninguna BD ya que viene instalada con la aplicación y todos los demás plugins utilizados crean sus propias tablas. Aparte de eso sí que hay ciertas funcionalidades de la aplicación que necesitan de unas tablas maestras para guardar datos y para ello se ha decidido crear unas tablas que darán soporte a dichas funcionalidades. Las operaciones que guardaran datos en BD serán: Cada llamada al API es necesario guardarla para poder hacer un recuento de cuantas llamadas se han hecho en un intervalo de tiempo indicado por la limitación de Trabajo Fin de Grado Página 38

41 Tablas seguridad mencionada antes. Para ello se crea la tabla API_REQUESTS, esta tabla se creara en la misma BD que se utilizó para la instalación de Joomla. Mensaje de los códigos de error de la aplicación. Para no tener códigos de error definidos por todos los módulos de la aplicación se creara una tabla que guardara la información correspondiente a cada id de error que devolverá el API. Para ello se creara la tabla API_ERRORS_MESSAGE y siempre que se devuelve un error se consultara dicha tabla para devolver la descripción adecuada en cada caso. Para ver un listado de los posibles errores ver anexo. API_REQUESTS Esta tabla maestra contiene todas las peticiones hechas a la aplicación mediante los métodos del API. APIR_ID (int, NOT NULL): Identificados de la fila a insertar. PK de la tabla. APIR_IP (varchar(50), NOT NULL): IP del cliente que realizo la petición. APIR_FECHA (datetime, NOT NULL): fecha de la petición. APIR_FUNCTION (varchar(255), NOT NULL): función de la petición. Para uso interno para ver si hay algún ataque, muchas llamadas en poco tiempo a la misma función. API_ERRORS_MESSAGE Esta tabla maestra contiene todos los tipos posibles de mensajes que puedan ser devueltos por los métodos del webservice que utiliza la aplicación. APIM_CODIGO (int, NOT NULL): código del mensaje a mostrar. PK de la tabla. APIM_VISIBLE_MESSAGE (varchar(1000), NOT NULL): texto con el mensaje a mostrar. Es el texto que se pasara al cliente que realizo la llamada. APIM_DESCRIPCION (varchar(1000), NULL): descripción del error para uso interno. Este mensaje será más descriptivo. Ejemplo: o APIM_CODIGO: 1 o APIM_VISIBLE_MESSAGE: Error listando las noticias. o APIM_DESCRIPCION: Error al ejecutar la consulta del listado de noticias. 10. Implementación Iteración 4 Este apartado detallara los pasos hechos para realizar la implementación y el encaminado de una petición REST. Antes de empezar tengo que explicar que el desarrollo de esta API se ha realizado teniendo en cuenta que en un futuro podría ser implementada una API SOAP sobre lo mismo así que lo que Trabajo Fin de Grado Página 39

42 se ha hecho ha sido desarrollar la API REST como una interfaz sobre unas clases que identifican los métodos y que se podrán instanciar desde una API SOAP si se decide implementar también en un futuro. La única diferencia de un API REST normal es que en lugar de ejecutar las acciones en cada uno de los objetos estos se ejecutan llamando a unas clases que se identifican por el nombre del método Pasos Centralizar peticiones El primer paso ha sido el de crear un fichero.htacces que redirija toda petición a un fichero index.php que se encargara de ejecutar la petición. Para ello se ha creado la carpeta [ruta_base]\api\www\rest que contiene un fichero index.php que se encargara de las peticiones. Dentro de la carpeta REST tenemos los ficheros de debajo: El fichero.htaccess se encargara de redirigir cualquier petición a la carpeta REST, o cualquier otra que tenga como base a la carpeta REST, al fichero index.php Procesar petición El fichero index.php instancia la clase Request que se encarga de sacar la información referente a la versión, objeto a instanciar, método utilizado, parámetros de la petición que nos han llegado. Una vez sacados todos los datos necesarios se realiza la llamada pedida a la clase del objeto Versionado Para mantener un control de versiones se ha implementado un versionado en la propia URL. De esta forma cada petición tendrá el formato: [RUTA BASE][Versión formato V [0-9]][Identificación de objeto] Ejemplo: Trabajo Fin de Grado Página 40

43 La instancia del Request hecha en el index.php se encargara de romper la url y encaminar cada una de las peticiones además la clase contiene variables para detectar si se está haciendo una llamada a una versión en desuso, actual o que no esté implementada Recursos, objetos, clases Cada una de las URL se encuentra mapeada a un objeto que tendrá 4 funciones creadas por cada método por el cual se puede pedir una URL POST/PUT/GET/DELETE. En algunos casos las clases no tienen todos los métodos definidos ya que no es posible hacer peticiones con ese método al objeto. De lo explicado si se puede llamar a un objeto con todos los métodos, dicho objeto tiene que tener las funciones postaction, putaction, getaction, deleteaction implementadas Componentes Carpetas base [ruta_base]\api\www\rest Ficheros Index.php.htaccess Carpeta Objetos [ruta_base]\api\modules\objetos Ficheros Request.php V1 Carpeta que contiene los controladores de objetos. Clases que identifican cada una de las acciones. index.inc.php se encarga de instanciar las clases de las acciones. Para ver en más detalle una petición REST ver anexo. Trabajo Fin de Grado Página 41

44 11. ANEXOS 11.1 Códigos de Error API A continuación se listan los diferentes códigos de error y descripciones que puede devolver el API. Nota: el listado de códigos de error puede ir creciendo conforme se controlen más excepciones y aumenten los métodos del Web Service. La nomenclatura será la siguiente: - 1XXX: errores en la autenticación. - 2XXX: error en el formato de los parámetros de las peticiones. - 3XXX: error en la operación. - 5XXX: errores relativos al servidor. Código Descripción 1001 No existe el usuario Máximo número de peticiones alcanzadas 1003 Acceso denegado 1004 Las credenciales de autenticación no son válidas AccessKeyId no válida 1006 Formato de Timestamp no válido 1007 La firma indicada no coincide con la esperada 1008 La petición ha expirado. Este error se produce cuando la marca de tiempo (timestamp) difiere en más de 15 minutos con la fecha y hora del servidor La versión utilizada es demasiado antigua 2001 La función especificada no existe 2002 Falta alguno de los parámetros obligatorios en la llamada a la función Alguno de los argumentos indicados en la función no es válido No se puede obtener información del usuario 3002 No se ha podido cambiar la alerta del usuario No se ha podido obtener el listado de categorías No se ha podido obtener el listado de noticias No se ha podido obtener el listado de alertas. Trabajo Fin de Grado Página 42

45 3006 Error de conectividad de BBDD 3007 Información no valida al ejecutar la consulta en BBDD 3008 Se ha llegado al límite de recursos Servicio no disponible Error en la operación REST - REpresentational State Transfer La idea principal de REST es la de tener un sistema de redirecciones que mapea URL con recursos (objetos) sobre los que se podrán hacer peticiones en función de los métodos que se implementan. Aunque la idea de REST no se encuentra ligada a ningún protocolo en concreto la mayoría de nosotros cuando hablamos de REST nos referimos a REST sobre http y por lo tanto los métodos a utilizar en este caso son GET/POST/PUT/DELETE, etc. La gran diferencia entre REST y otras formas de implementar una API es que REST intenta utilizar la potencia del protocolo http al máximo aprovechándose de casi todo lo que esta provee. De esta forma nos encontramos los principios básicos de REST: - Cada uno de los recursos (objetos) de tu web tienen un id que será representado por la URI. Ejemplos: etc. Esto ayuda en la depuración de errores y a la hora de entender mejor la aplicación. - Utilizar los métodos que ofrece el servicio sobre el que implementas REST, como en este caso es http se utilizaran solamente los métodos que este posee, POST,PUT,GET,DELETE, etc. Aunque es bastante limitado es suficiente para realizar las operaciones necesarias sobre los objetos identificados anteriormente. - Posibilidad de implementar la entrada como la salida con diferentes formatos, ej : json, xml, texto plano, o cualquier otro formato personalizado que lo pueda entender la aplicación que hace las peticiones. Con esto se consigue una aplicación muy escalable y que es capaz de dar soporte a varios sistemas a la vez teniendo así solamente una interfaz para varios clientes diferentes en lugar de tener una por cada tipo de cliente que se puede tener. - La ventaja de utilizar el protocolo http es que permite una gran interoperabilidad con cualquier sistema desarrollado mediante algún lenguaje que tenga librerías para el http que hoy en día son la mayoría. Además la facilidad de elegir la representación de los datos a nivel de http es muy fácil simplemente estableciendo las cabeceras adecuadas tanto para identificar que formato de datos se manda como los que se aceptan(cabeceras content-type y accepted). - Otra característica de REST es que es una forma de interactuar con el servidor sin utilizar estados ya que cada operación se realiza sobre cada recurso que el servidor gestiona y este ofrece solamente el estado en el que dicho recurso se encuentra. Si Trabajo Fin de Grado Página 43

46 es necesario la utilización de sesiones estas tendrían que hacerse desde la perspectiva del cliente que será el que se encarga de gestionarlas Ejemplo CRUD En el caso de una aplicación web se intentan mapear recursos con URL utilizando el protocolo http y sus métodos en principio PUT/POST/GET/DELETE. El API REST no es más que una librería que se encarga de procesar las peticiones http/s recibidas con sus parámetros y redirigir la petición hacia un recurso que se establece mediante un mapeo de la URL. Para identificar lo que se tiene que hacer el servidor con el recurso que se pide antes de devolver la respuesta se utilizan los métodos que el protocolo ofrece ej: Recurso: Sobre el recurso de arriba se pueden hacer varias peticiones que identifican la acción a realizar sobre el recurso. -Si se hace una petición GET se devuelve la lista de noticias. -Si se hace una petición POST, se interpreta que se desea crear una noticia. Tanto en el caso de PUT como el de DELETE a la URL de arriba se le añade un id de la forma de debajo para tener identificada la noticia sobre la que se desean hacer las operaciones sin necesidad de pasar parámetros extra para identificarlo y por tanto romper la idea de que mediante la URL y la petición se identifique la acción y el elemento sobre el que se desea realizar la acción: Recurso: -Si se hace una petición PUT, se interpreta que se desea modificar los datos de la noticia. -Si se hace una petición DELETE, se interpreta que se desea eliminar la noticia. De esta forma mediante la URL y el método se identifica perfectamente la acción que se desea realizar y como datos se mandan los parámetros necesarios para efectuar cada una de las acciones arriba mencionadas. Una petición REST en este caso tiene tres componentes: 1. URI identifica el objeto sobre el que se realizara la acción. 2. Metodo http utilizado (POST/GET/PUT/DELETE) identifica la acción a llevar a cabo. 3. Datos pasado son los datos necesarios para llevar a cabo la operación. Trabajo Fin de Grado Página 44

47 Este mismo funcionamiento se puede dar mediante la utilización de diferentes formas de crear la URL pero se ha elegido esta en el desarrollo de nuestro API para tener bien definidos los conceptos básicos de REST Ejemplo POST Como ejemplo se puede implementar el mismo funcionamiento utilizando solamente llamadas POST pero de esta forma se tendría que meter en la URL un verbo para identificar la acción ya que no será posible hacerlo simplemente con el método utilizado. Ejemplo: Recurso: mediante POST la información de la noticia. Recurso: mediante POST crea una noticia. Recurso: mediante POST modifica una noticia. Recurso: noticia. mediante post elimina una Como se puede ver se mantiene la idea pero no la forma ya que se pierde la utilización del protocolo http mediante sus métodos Ejemplo petición post api REST Petición POST + Parámetros 1. El fichero index.php instancia la clase Request.php 2. La clase Request.php obtiene la información de la petición. Obtiene la versión, la clase el método que se utiliza y los parámetros(también los decodifica pero eso no nos interesa para explicar el funcionamiento) 3. La clase Request utilizando el nombre del objeto sacado alertas y la versión v1 instancia la clase controlador AlertasController de la carpeta v1 y llama a la función postaction de esta. Trabajo Fin de Grado Página 45

48 4. Esta función se encargara de llamar a la función altauseralertasaction que se encuentran definidas en el fichero index.inc.php. este fichero tiene definidas todas las funciones a las que se llamaran desde los controladores. La función postaction de arriba tiene contenidas dos posibles llamadas mediante POST aunque una está comentada esta puesta para mostrar el posible funcionamiento: nuevaalertaaction. altauseralertasaction. 5. A partir de este paso se instancia la clase correspondiente y se ejecuta el método doaction de dicha clase. Este se encargara de hacer hacer las llamadas que compruebas las validaciones de seguridad y de llamar al método correspondiente una vez pasadas todas las validaciones. 6. Hay que tener en cuenta antes de devolver el resultado de establecer la cabecera para identificar el formato de datos de vas a devolver. header('content-type: application/json; charset=utf-8'); Notas Este API se ha desarrollado teniendo en cuenta que solamente se recibirán datos en formado json con sus respectivas codificaciones necesarias y que solamente se envían datos en formato json. Esto se ha decidido así por las características del proyecto y por los tiempos a dedicar. No se ha hecho uso de ningún framework que nos facilite dicho funcionamiento ya que en un inicio se ha probado con una versión de php4 y para ello no existe ningún framework de en REST para creación de APIs, así que se ha hecho un trabajo de investigación y se ha desarrollado uno desde cero. Si en un futuro se desea implementar en otros tipos de formatos de salida antes de hacerlo mirar la versión de php ya que si es la 5 hay muchos frameworks que te ofrecen fácil solución a la hora de crear APIs REST y que te devuelvan los datos en muchísimos formatos ya conocidos o personales. Trabajo Fin de Grado Página 46

Conceptos Generales en Joomla 1.7.2.

Conceptos Generales en Joomla 1.7.2. 1.- Tipos de usuarios en Joomla! JOOMLA 1.7 USUARIOS. Los usuarios de sitios web de Joomla! pueden dividirse en dos categorías principales: Invitados. Usuarios registrados. Los Invitados son sencillamente

Más detalles

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD Manual de usuario 1 - ÍNDICE 1 - ÍNDICE... 2 2 - INTRODUCCIÓN... 3 3 - SELECCIÓN CARPETA TRABAJO... 4 3.1 CÓMO CAMBIAR DE EMPRESA O DE CARPETA DE TRABAJO?...

Más detalles

CIF-KM. GUÍA DE LOS PRIMEROS PASOS

CIF-KM. GUÍA DE LOS PRIMEROS PASOS CIF-KM. GUÍA DE LOS PRIMEROS PASOS Secciones 1. CONCEPTOS PREVIOS. 2. INSTALAR CIF-KM. 2.1 Descargar e instalar CIF-KM. 2.2 Configuración de CIF-KM. 2.3 Acceso externo al servidor de CIF-KM. 3. PRIMERA

Más detalles

Programa diseñado y creado por 2014 - Art-Tronic Promotora Audiovisual, S.L.

Programa diseñado y creado por 2014 - Art-Tronic Promotora Audiovisual, S.L. Manual de Usuario Programa diseñado y creado por Contenido 1. Acceso al programa... 3 2. Opciones del programa... 3 3. Inicio... 4 4. Empresa... 4 4.2. Impuestos... 5 4.3. Series de facturación... 5 4.4.

Más detalles

Ajustes del Curso en egela (Moodle 2.5)

Ajustes del Curso en egela (Moodle 2.5) Ajustes del Curso en egela (Moodle 2.5) Manual para el profesorado Versión 2 (12/05/2015) El presente manual ha sido desarrollado por el Campus Virtual de la Universidad del País Vasco / Euskal Herriko

Más detalles

Manual hosting acens

Manual hosting acens Manual hosting acens Contenido Acceso al panel de control de cliente... 3 Asociar un dominio a mi Hosting... 5 Acceso al panel de administración del hosting... 7 INICIO - Visión general del estado de nuestro

Más detalles

PANEL DE CONTROL (Zona de Administración) MANUAL DE USO Por conexanet. Revisión 1.1 Fecha 2006-08

PANEL DE CONTROL (Zona de Administración) MANUAL DE USO Por conexanet. Revisión 1.1 Fecha 2006-08 PANEL DE CONTROL (Zona de Administración) MANUAL DE USO Por conexanet Revisión 1.1 Fecha 2006-08 Índice 1. Acceder 2. Menú 3. Gestión Básica 3.1 Añadir 3.2 Editar 3.3 Eliminar 3.4 Eliminación de registros

Más detalles

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD Fecha última revisión: Diciembre 2010 Tareas Programadas TAREAS PROGRAMADAS... 3 LAS TAREAS PROGRAMADAS EN GOTELGEST.NET... 4 A) DAR DE ALTA UN USUARIO...

Más detalles

Gestión de Extensiones en Joomla!

Gestión de Extensiones en Joomla! Gestión de Extensiones en Joomla! Aplicaciones web. 2º SMR 1. Tipos de extensiones en Joomla 2. Crear un canal electrónico RSS 3. Inserción de anuncios (Banners) en nuestro sitio 4. Crear un foro con el

Más detalles

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib Manual de uso de la plataforma para monitores CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib [Manual de uso de la plataforma para monitores] 1. Licencia Autor del documento: Centro de Apoyo Tecnológico

Más detalles

MANUAL DE. manual de Joomla JOOMLA

MANUAL DE. manual de Joomla JOOMLA MANUAL DE manual de Joomla JOOMLA Tabla de contenido 1. Instalación de Joomla y características... 2 2. Configuración del sitio web... 3 3. Gestión de usuario... 8 4. Gestión de artículos... 11 5. Otros

Más detalles

Manual del Usuario Groupware

Manual del Usuario Groupware Manual del Usuario Groupware por Dionisio Antón (antond@quersystem.com) v1.0 Con este manual usted podrá trabajar con la herramienta Groupware de la plataforma Open-Xchange Índice: 1 Portal... 2 2 Calendario...

Más detalles

Joomla! La web en entornos educativos

Joomla! La web en entornos educativos Joomla! La web en entornos educativos Módulo : 2012 ACL (I). Usuarios. Estructura predeterminada. 4 Las versiones 2.5 de Joomla! poseen un avanzado ACL (Access Control List), que especifica qué usuarios

Más detalles

Manual CMS Mobincube

Manual CMS Mobincube Manual CMS Mobincube CMS Mobincube Qué es? El CMS (Sistema de Gestión de Contenidos) es un completo website que permite la creación y actualización de contenido remoto. De esta forma, una vez creada una

Más detalles

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)

Más detalles

FOROS. Manual de Usuario

FOROS. Manual de Usuario FOROS Manual de Usuario Versión: 1.1 Fecha: Septiembre de 2014 Tabla de Contenidos 1. INTRODUCCIÓN... 4 1.1 Propósito... 4 1.2 Definiciones, acrónimos y abreviaturas... 4 2. ESPECIFICACIONES TÉCNICAS...

Más detalles

E 4.2-4 Manual de usuario. : Versión: 0.1 Fecha: 05/02/2013 Autor: Carlos Ors Email: Carlos.ors@tecsidel.es

E 4.2-4 Manual de usuario. : Versión: 0.1 Fecha: 05/02/2013 Autor: Carlos Ors Email: Carlos.ors@tecsidel.es E 4.2-4 Manual de usuario : Versión: 0.1 Fecha: 05/02/2013 Autor: Carlos Ors Email: Carlos.ors@tecsidel.es Historial de cambios Versión Fecha Autor Cambios 0.1 05/02/2013 Carlos Ors Versión Inicial Índice

Más detalles

Manual de usuario de Windows Live Writer

Manual de usuario de Windows Live Writer Manual de usuario de Windows Live Writer Índice 0.- Introducción. 3 1.- Descarga e Instalación. 4 2.- Conexión a un blog. 7 3.- Interfaz de Windows Live Writer. 12 4.- Creación de un Post. 13 5.- Creación

Más detalles

port@firmas V.2.3.1 Manual de Portafirmas V.2.3.1

port@firmas V.2.3.1 Manual de Portafirmas V.2.3.1 Manual de Portafirmas V.2.3.1 1 1.- Introducción 2.- Acceso 3.- Interfaz 4.- Bandejas de peticiones 5.- Etiquetas 6.- Búsquedas 7.- Petición de firma 8.- Redactar petición 9.- Firma 10.- Devolución de

Más detalles

Usuarios y Permisos. Capítulo 12

Usuarios y Permisos. Capítulo 12 Capítulo 12 Usuarios y Permisos La gente simplemente intenta utilizar el sitio web Joomla! que has creado - ya sea de forma activa o pasiva. Cuanto mejor sea la experiencia que tenga al hacerlo, mejor

Más detalles

Administración de portales Joomla (II) antonio.duran.terres@gmail.com

Administración de portales Joomla (II) antonio.duran.terres@gmail.com Administración de portales Joomla (II) antonio.duran.terres@gmail.com Módulos Con la instalación base de Joomla vienen varios módulos Algunos ya los vimos, como encuestas o Quien está en línea? Hay otros

Más detalles

MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA. Perfil Entidad Proveedora

MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA. Perfil Entidad Proveedora MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA Perfil Entidad Proveedora El objetivo del módulo de Gestión de Solicitudes vía Internet es facilitar el trabajo

Más detalles

ÍTEMS DEL MENÚ CREACIÓN Y GESTIÓN (Última revisión: lunes, 9 de marzo de 2009)

ÍTEMS DEL MENÚ CREACIÓN Y GESTIÓN (Última revisión: lunes, 9 de marzo de 2009) JOOMLA! ÍTEMS DEL MENÚ CREACIÓN Y GESTIÓN (Última revisión: lunes, 9 de marzo de 2009) Es necesario comentar que este manual ha sido diseñado en su mayor parte por comunidadjoomla.org. Este manual es una

Más detalles

PRESENTACIÓN DEL PRODUCTO

PRESENTACIÓN DEL PRODUCTO PRESENTACIÓN DEL PRODUCTO esernet, s.l. Sebastián Elcano, 32 Planta 1 Oficina 22 28012 Madrid Teléfono: 91 433 84 38 -- Fax. 91 141 21 89 www.esernet.com -- esernet@esernet.com 1. Introducción 2. Descripción

Más detalles

Guía de uso del Cloud Datacenter de acens

Guía de uso del Cloud Datacenter de acens guíasdeuso Guía de uso del Cloud Datacenter de Calle San Rafael, 14 28108 Alcobendas (Madrid) 902 90 10 20 www..com Introducción Un Data Center o centro de datos físico es un espacio utilizado para alojar

Más detalles

G R U P O S INDICE Cómo crear una cuenta en ARQA? Cómo tener un grupo en ARQA? Secciones y funcionalidades de los grupos Configuración del grupo

G R U P O S INDICE Cómo crear una cuenta en ARQA? Cómo tener un grupo en ARQA? Secciones y funcionalidades de los grupos Configuración del grupo INDICE Cómo crear una cuenta en ARQA? 4 Cómo tener un grupo en ARQA? 5 Secciones y funcionalidades de los grupos 6 Muro del Grupo 6 Compartir Textos 8 Compartir Imágenes 9 Compartir videos 10 Compartir

Más detalles

Herramienta Encuestas. MiAulario

Herramienta Encuestas. MiAulario Herramienta Encuestas MiAulario Introducción... 2 Menú de la herramienta... 3 Panel de encuestas... 3 Mis encuestas... 4 Añadir encuesta... 4 Mis plantillas... 7 Añadir elemento: pregunta o cabecera...

Más detalles

Contacto. Primeros pasos en MiAulario. Curso de Formación. Primeros pasos en MiAulario

Contacto. Primeros pasos en MiAulario. Curso de Formación. Primeros pasos en MiAulario Contacto Curso de Formación Primeros pasos en MiAulario Centro Superior de Innovación Educativa Hezkuntza Berrikuntzaren Goi Mailako Ikastegia Edificio Sario, Módulo 2-1ª Planta aulariovirtual@unavarra.es

Más detalles

Manual de instalación Actualizador masivo de Stocks y Precios

Manual de instalación Actualizador masivo de Stocks y Precios Manual de instalación Actualizador masivo de Stocks y Precios Instrucciones para la instalación de Actualizado masivo de Stocks y Precios Módulo para Prestashop desarrollado por OBSolutions Módulo para

Más detalles

Móvil Seguro. Guía de Usuario Terminales Android

Móvil Seguro. Guía de Usuario Terminales Android Móvil Seguro Guía de Usuario Terminales Android Índice 1 Introducción...2 2 Descarga e instalación de Móvil Seguro...3 3 Registro del producto...5 4 Funciones de Móvil Seguro...7 4.1 Antivirus... 7 4.1

Más detalles

Kit de Autenticación con Tarjetas. Guía Técnica de Configuración

Kit de Autenticación con Tarjetas. Guía Técnica de Configuración Kit de Autenticación con Tarjetas Guía Técnica de Configuración 1 ÍNDICE 1. 2. 3. 4. 5. 6. 7. INTRODUCCIÓN... 3 INSTALACION DEL LECTOR Y ACTIVACIÓN DE LA LICENCIA... 4 ALTA DE CÓDIGOS ID... 7 ALTA DE USUARIOS

Más detalles

Cuando hacemos uso de los grupos, se tendrán los permisos asignados al grupo, en todas las carpetas y documentos del sitio.

Cuando hacemos uso de los grupos, se tendrán los permisos asignados al grupo, en todas las carpetas y documentos del sitio. En Sharepoint se puede controlar quién y cómo podrá acceder a las carpetas y documentos. Deberá ser la persona encargada de la administración del sitio quien lo gestione a través de los Grupos, aunque

Más detalles

Proyectos de Innovación Docente

Proyectos de Innovación Docente Proyectos de Innovación Docente Manual de Usuario Vicerrectorado de Docencia y Profesorado Contenido INTRODUCCIÓN... 3 DATOS PERSONALES... 6 Modificar email... 6 Modificar contraseña... 7 GESTIÓN PROYECTOS...

Más detalles

Oficina Online. Manual del administrador

Oficina Online. Manual del administrador Oficina Online Manual del administrador 2/31 ÍNDICE El administrador 3 Consola de Administración 3 Administración 6 Usuarios 6 Ordenar listado de usuarios 6 Cambio de clave del Administrador Principal

Más detalles

Cómo instalar fácilmente tu WordPress tras contratar un hosting en Hostalia

Cómo instalar fácilmente tu WordPress tras contratar un hosting en Hostalia Cómo instalar fácilmente tu WordPress tras contratar un hosting en Hostalia Cardenal Gardoki, 1 48008 BILBAO (Vizcaya) Teléfono: 902 012 199 www.hostalia.com La puesta en marcha de WordPress es muy sencilla,

Más detalles

MANUAL DE USO DE LA APLICACIÓN

MANUAL DE USO DE LA APLICACIÓN MANUAL DE USO DE LA APLICACIÓN ÍNDICE 1. Acceso a la aplicación 2. Definición de funciones 3. Plantillas 4. Cómo crear una nueva encuesta 5. Cómo enviar una encuesta 6. Cómo copiar una encuesta 7. Cómo

Más detalles

Manual LiveBox WEB USUARIO. http://www.liveboxcloud.com

Manual LiveBox WEB USUARIO. http://www.liveboxcloud.com 2014 Manual LiveBox WEB USUARIO http://www.liveboxcloud.com LiveBox Srl no asume responsabilidades o garantías sobre el contenido y uso de ésta documentación y declina cualquier garantía explicita o implícita

Más detalles

Manual de Usuario SIMIN 2.0

Manual de Usuario SIMIN 2.0 Servicio Nacional de Geología y Minería Ministerio de Minería Gobierno de Chile Manual de Usuario SIMIN 2.0 [Sistema de Información Minera en Línea] Administrador delegado de Empresas Mandantes Programa

Más detalles

MANUAL EMPRESA PRÁCTICAS CURRICULARES

MANUAL EMPRESA PRÁCTICAS CURRICULARES MANUAL EMPRESA PRÁCTICAS CURRICULARES ÍNDICE 1. Introducción... 2 2. Registro y Acceso... 2 2.1. Registro Guiado... 3 2.1. Registro Guiado Datos Básicos... 4 2.1. Registro Guiado Contactos... 4 3. Creación

Más detalles

Explotación de Sistemas Informáticos IES Murgi 2006-2007 PRÁCTICA 9: SERVICIO WEB Y FTP DE INTERNET INFORMATION SERVICE

Explotación de Sistemas Informáticos IES Murgi 2006-2007 PRÁCTICA 9: SERVICIO WEB Y FTP DE INTERNET INFORMATION SERVICE PRÁCTICA 9: SERVICIO WEB Y FTP DE INTERNET INFORMATION SERVICE Índice 1. Instalación...2 2. Administrar los sitios Web... 4 3. Crear un nuevo sitio Web... 4 4. Creación de directorios virtuales... 5 5.

Más detalles

ACCESO AL SERVIDOR EXCHANGE MEDIANTE OWA

ACCESO AL SERVIDOR EXCHANGE MEDIANTE OWA ACCESO AL SERVIDOR EXCHANGE MEDIANTE OWA El Acceso al correo a través de OWA (Outlook Web Access) es una herramienta que permite a los usuarios consultar sus mensajes en una interfaz Web a través de un

Más detalles

Manual para la utilización de PrestaShop

Manual para la utilización de PrestaShop Manual para la utilización de PrestaShop En este manual mostraremos de forma sencilla y práctica la utilización del Gestor de su Tienda Online mediante Prestashop 1.6, explicaremos todo lo necesario para

Más detalles

Zon@de. Servidor FTP LEECH FTP INDICE PRESENTACIÓN ACERCA DE CTRLWEB MAILING WORD AYUDA : Acceso a Panel de Control. 1.-Panel de control privado.

Zon@de. Servidor FTP LEECH FTP INDICE PRESENTACIÓN ACERCA DE CTRLWEB MAILING WORD AYUDA : Acceso a Panel de Control. 1.-Panel de control privado. INDICE PRESENTACIÓN ACERCA DE CTRLWEB MAILING WORD AYUDA : Acceso a Panel de Control. 1.-Panel de control privado. 1.1.-MAILING. Herramienta de Mailing.. Gestor de Textos. E-mails. MANUAL DE AYUDA ADMINISTRACIÓN

Más detalles

UNIVERSIDAD DE MEDELLÍN NUEVO PORTAL WEB MANUAL DE USUARIO GESTOR DE CONTENIDOS

UNIVERSIDAD DE MEDELLÍN NUEVO PORTAL WEB MANUAL DE USUARIO GESTOR DE CONTENIDOS UNIVERSIDAD DE MEDELLÍN MANUAL DE USUARIO GESTOR DE CONTENIDOS NUEVO PORTAL WEB TABLA DE CONTENIDO Tabla de Contenido 2 Consideraciones Iniciales 3 Ingreso al Sistema 4 Opciones de Gestor de contenidos

Más detalles

2011-2012 RESOLUCIÓN DE ERRORES EN MOODLE CAMPUS VIRTUAL-BIRTUALA UPV-EHU

2011-2012 RESOLUCIÓN DE ERRORES EN MOODLE CAMPUS VIRTUAL-BIRTUALA UPV-EHU 2011-2012 RESOLUCIÓN DE ERRORES EN MOODLE CAMPUS VIRTUAL-BIRTUALA UPV-EHU Antecedentes:... 2 1. Introducción... 3 2. Imágenes que no se visualizan... 3 3. URLs de recursos o actividades que no son autocontenido...

Más detalles

Portal Del Emisor MANUAL DEL USUARIO. Plataforma de Facturación Electrónica

Portal Del Emisor MANUAL DEL USUARIO. Plataforma de Facturación Electrónica Portal Del Emisor MANUAL DEL USUARIO Plataforma de Facturación Electrónica 1. Índice 1. Índice... 2 2. Descripción General... 3 2.1. Alcance... 3 2.2. Flujo de navegación... 4 2.3. Perfil del Usuario...

Más detalles

Manual de usuario. Autor: Oriol Borrás Gené. Oriol.borras@upm.es

Manual de usuario. Autor: Oriol Borrás Gené. Oriol.borras@upm.es Manual de usuario Autor: Oriol Borrás Gené Oriol.borras@upm.es Índice 1. Qué es Pinterest 2. Crear una cuenta 3. Entorno o Inicio o Estructura de un pin o Perfiles 4. Cómo trabajar con Pinterest o Crear

Más detalles

LiLa Portal Guía para profesores

LiLa Portal Guía para profesores Library of Labs Lecturer s Guide LiLa Portal Guía para profesores Se espera que los profesores se encarguen de gestionar el aprendizaje de los alumnos, por lo que su objetivo es seleccionar de la lista

Más detalles

Manual de administrador. Versión 1.9. Revisión 2

Manual de administrador. Versión 1.9. Revisión 2 Manual de administrador Versión 1.9 Revisión 2 Índice 1. Introducción... 1 2. Empezar a usar LCmaker... 2 2.1 Entrar y salir... 2 2.2. Editar mi perfil... 3 2.3. Cambiar mi contraseña... 3 3. Gestionar

Más detalles

Person IP CRM Manual MOBILE

Person IP CRM Manual MOBILE Manual MOBILE División Informática BuscPerson Telecomunicaciones : Manual MOBILE 0.- Introducción 3 0.1 Configuración de los terminales 3 0.2 Acceso de Usuarios 3 1.- Funcionalidades CRM 5 1.1 Agenda del

Más detalles

Región de Murcia Consejería de Educación, Ciencia e Investigación. Manual Usuario FCT

Región de Murcia Consejería de Educación, Ciencia e Investigación. Manual Usuario FCT . Manual Usuario FCT Murcia, 9 de Julio de 2007 Manual de Usuario FCT v1.0 pág. 2 de 73 ÍNDICE Manual Usuario FCT...1 1. Tipos de usuarios... 4 2. Modelo de navegación... 5 3. Servicios... 6 3.1. Convenios...

Más detalles

Manual del Alumno de la plataforma de e-learning.

Manual del Alumno de la plataforma de e-learning. 2 Manual del Alumno de la Plataforma de E-learning 3 4 ÍNDICE 1. Página de Inicio...7 2. Opciones generales...8 2.1. Qué es el Campus...8 2.2. Nuestros Cursos...9 2.3. Cómo matricularme...9 2.4. Contactar...9

Más detalles

Para este caso vamos a suponer que son los siguientes:

Para este caso vamos a suponer que son los siguientes: 1.-La primera práctica va a consistir en configurar manualmente los parámetros de red y conseguir la conexión de la tarjeta de red ethernet de un equipo de sobremesa a la red de una clase. El administrador

Más detalles

Guía de Inicio Respaldo Cloud

Guía de Inicio Respaldo Cloud Guía de Inicio Respaldo Cloud Calle San Rafael, 14 28108 Alcobendas (Madrid) 900 103 293 www.acens.com Contenido 1 Introducción... 3 2 Características Respaldo Cloud... 4 3 Acceso y activación... 5 - Gestión

Más detalles

SISTEMA DE ESPECIICACION DE REQUERIMIENTOS

SISTEMA DE ESPECIICACION DE REQUERIMIENTOS SISTEMA DE ESPECIICACION DE REQUERIMIENTOS Presentado por: Jefferson Peña Cristian Álvarez Cristian Alzate 10 CONTENIDO 1. INTRODUCCIÓN 1.1. PROPÓSITO 1.2. AMBITO DEL SISTEMA 1.3. DEFINICIONES, ACRÓNIMOS

Más detalles

MANUAL PARA EMPRESAS PRÁCTICAS CURRICULARES

MANUAL PARA EMPRESAS PRÁCTICAS CURRICULARES MANUAL PARA EMPRESAS PRÁCTICAS CURRICULARES ÍNDICE 1. Introducción... 3. Registro y Acceso... 3.1. Registro Guiado... 4.1. Registro Guiado Datos Básicos... 5.1. Registro Guiado Contactos... 6 3. Creación

Más detalles

GUIA DE USUARIO. CONFIGURACION CORREO ELECTRONICO

GUIA DE USUARIO. CONFIGURACION CORREO ELECTRONICO versiongalega.com - Departamento de Atención al cliente GUIA DE USUARIO. CONFIGURACION CORREO ELECTRONICO En este documento encontrará una descripción de cómo configurar sus cuentas de correo electrónico

Más detalles

Escudo Movistar Guía Rápida de Instalación Para Windows

Escudo Movistar Guía Rápida de Instalación Para Windows Escudo Movistar Guía Rápida de Instalación Para Windows Guía de Instalación Página 1 Índice ESCUDO MOVISTAR.... 3 1. INSTALACIÓN DEL SERVICIO ESCUDO MOVISTAR... 3 1.1. VERSIONES SOPORTADAS... 3 1.2. DISPOSITIVOS

Más detalles

Manual del Usuario. Portal Web Para uso exclusivo de Ministros de Estado.

Manual del Usuario. Portal Web Para uso exclusivo de Ministros de Estado. Manual del Usuario Portal Web Para uso exclusivo de Ministros de Estado. Índice de contenido Pimi 2011... 3 Ingreso al Portal... 3 Manual de Usuario... 4 Vista Perfil Privado... 5 Navegación por Perfil

Más detalles

Escudo Movistar Guía Rápida de Instalación Dispositivos Symbian

Escudo Movistar Guía Rápida de Instalación Dispositivos Symbian Escudo Movistar Guía Rápida de Instalación Dispositivos Symbian Guía de Instalación Página 1 Índice ESCUDO MOVISTAR.... 3 1. INSTALACIÓN DEL SERVICIO ESCUDO MOVISTAR... 3 1.1. VERSIONES SOPORTADAS... 3

Más detalles

UNIDAD DIDACTICA 3 USUARIOS Y GRUPOS EN REDES WINDOWS 2003 SERVER II

UNIDAD DIDACTICA 3 USUARIOS Y GRUPOS EN REDES WINDOWS 2003 SERVER II UNIDAD DIDACTICA 3 USUARIOS Y GRUPOS EN REDES WINDOWS 2003 SERVER II Eduard Lara 1 1. USUARIOS DE ACTIVE DIRECTORY Las cuentas de usuario en el Active Directory tienen la catalogación de cuentas DNS. Cada

Más detalles

Manual de usuario Noticias y Accesos Directos en Facultades ÍNDICE

Manual de usuario Noticias y Accesos Directos en Facultades ÍNDICE Manual de usuario Noticias y Accesos Directos en Facultades ÍNDICE 1. PARA QUÉ SIRVE ESTA APLICACIÓN? 2. QUIÉN PUEDE HACER USO DE ELLA? 3. CÓMO SE UTILIZA? 1. PARA QUE SIRVE ESTA APLICACIÓN? El objeto

Más detalles

Manual de uso de Moodle para alumnos

Manual de uso de Moodle para alumnos Manual de uso de Moodle para alumnos Versión adaptada para Eureka FACULTAD DE PSICOLOGÍA - UNIVERSIDAD DE GRANADA Granada, Septiembre 2011 1. Primeros pasos...3 I. Registro de alumnos...3 II. Olvidó su

Más detalles

Manual del Profesor Campus Virtual UNIVO

Manual del Profesor Campus Virtual UNIVO Manual del Profesor Campus Virtual UNIVO Versión 2.0 Universidad de Oriente UNIVO Dirección de Educación a Distancia INDICE 1. Campus Virtual. 03 1.1 Accesos al Curso 04 1.2 Interfaz del Curso...06 1.3

Más detalles

Manual de ayuda para crear y gestionar Tareas, como actividad evaluable

Manual de ayuda para crear y gestionar Tareas, como actividad evaluable Manual de ayuda para crear y gestionar Tareas, como actividad evaluable Contenido TAREAS.... 3 CONFIGURACIÓN.... 3 GESTIÓN Y CALIFICACIÓN DE TAREAS.... 8 TAREAS. Mediante esta herramienta podemos establecer

Más detalles

Colegio de Ingenieros de Caminos, Canales y Puertos. Manual de Gestión de correo electrónico y SMS

Colegio de Ingenieros de Caminos, Canales y Puertos. Manual de Gestión de correo electrónico y SMS Colegio de Ingenieros de Caminos, Canales y Puertos. Manual de Gestión de correo electrónico y SMS Versión 2.0 3/05/2010 Manual de Gestión de correo electrónico y SMS (v 2.0) 1 GESTOR DE CORREO ELECTRÓNICO

Más detalles

La elección de Blogger como la plataforma o lugar donde

La elección de Blogger como la plataforma o lugar donde 1. INTRODUCCIÓN La elección de Blogger como la plataforma o lugar donde alojar nuestro blog es adecuada si no deseamos complicarnos con la instalación de un servidor propio, con todo lo que ello conlleva:

Más detalles

Página 1 de 13 PLATAFORMA HELVIA. ADMINISTRACIÓN GENERAL: Manual de la Administración General

Página 1 de 13 PLATAFORMA HELVIA. ADMINISTRACIÓN GENERAL: Manual de la Administración General Página 1 de 13 PLATAFORMA HELVIA ADMINISTRACIÓN GENERAL: Manual de la Administración General Se accede como webmaster: 1. Habilitar o deshabilitar algún módulo 2. Habilitar usuarios para administrar el

Más detalles

En la siguiente imagen se muestra la pantalla principal del portafolio de un usuario que será utilizado para explicar cada aspecto del mismo.

En la siguiente imagen se muestra la pantalla principal del portafolio de un usuario que será utilizado para explicar cada aspecto del mismo. Manual Portafolio El portafolio digital provee a los usuarios de herramientas para crear y mantener su propio portafolio digital en su proceso de formación en moodle en el cual podrán enviar sus trabajos,

Más detalles

El protocolo IMAP ofrece la descarga de correos en modo sólo lectura, es decir descarga sólo una copia del correo y no permite el borrado.

El protocolo IMAP ofrece la descarga de correos en modo sólo lectura, es decir descarga sólo una copia del correo y no permite el borrado. Manual de Configuración de correo en Android Utilizar POP o IMAP? Existen dos formas de configurar su cuenta de correo en dispositivos móviles, la primera es POP y la segunda es IMAP El protocolo POP es

Más detalles

CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO

CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO MANUAL DE USUARIO CATÁLOGO MANUAL DE USUARIO CATÁLOGO MANUAL DE USUARIO 1. CATÁLOGO MANUAL DE USUARIO CATÁLOGO AHORA CATÁLOGO MANUAL DE USUARIO 1 1. Introducción AHORA Catálogo es una aplicación

Más detalles

GUÍA DE USUARIO: GOOGLE DRIVE

GUÍA DE USUARIO: GOOGLE DRIVE GUÍA DE USUARIO: GOOGLE DRIVE Google Drive es una herramienta telemática de la web 2.0 que permite el trabajo virtual de forma colaborativa. En Google Drive podemos encontrar una barra de navegación en

Más detalles

Contenido. Email: capacitacion@u cursos.cl / Teléfono: 9782450

Contenido. Email: capacitacion@u cursos.cl / Teléfono: 9782450 GMI Contenido PUBLICAR AVISO... 3 CREAR PROCESO DE SELECCIÓN... 6 VER/ELIMINAR AVISOS PUBLICADOS... 8 ETAPAS DE UN PROCESO DE SELECCIÓN... 10 SECCIONES DE LOS PROCESOS DE SELECCIÓN (GPS)... 21 PERSONALIZAR

Más detalles

Guía nuevo panel de clientes Hostalia

Guía nuevo panel de clientes Hostalia Guía nuevo panel de clientes Hostalia Cardenal Gardoki, 1 48008 BILBAO (Vizcaya) Teléfono: 902 012 199 www.hostalia.com 1. Estructura del panel de administración El panel de control presenta un diseño

Más detalles

Manual de configuración de Thunderbird ÍNDICE

Manual de configuración de Thunderbird ÍNDICE Manual de configuración de Thunderbird ÍNDICE 1. ARRANCANDO THUNDERBIRD POR PRIMERA VEZ... 2 2. ARRANCANDO THUNDERBIRD POR N-ÉSIMA VEZ... 2 3. CONFIGURACIÓN DE CUENTA DE CORREO... 4 4. SERVICIO DE DIRECTORIO

Más detalles

Contenido 1 INTRODUCCIÓN. Universidad Pablo de Olavide, de Sevilla Vicerrectorado de TIC, Calidad e Innovación

Contenido 1 INTRODUCCIÓN. Universidad Pablo de Olavide, de Sevilla Vicerrectorado de TIC, Calidad e Innovación GUÍA PARA INICIAR UN TRÁMITE ELECTRÓNICO Contenido 1 INTRODUCCIÓN... 1 2 PRESENTACIÓN DEL TRÁMITE ELECTRÓNICO... 2 2.1 Requisitos Técnicos... 3 2.2 Iniciación... 3 2.3 Firmar un documento... 9 2.4 Adjuntar

Más detalles

Administración Local Soluciones

Administración Local Soluciones SISTEMA INTEGRADO DE GESTIÓN DE EXPEDIENTES MODULAR (SIGM) MANUAL DE USUARIO DE ARCHIVO PRÉSTAMOS Y CONSULTAS SIGM v3 Administración Local Soluciones Control de versiones Versión Fecha aprobación Cambio

Más detalles

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora Plataforma e-ducativa Aragonesa Manual de Administración Bitácora ÍNDICE Acceso a la administración de la Bitácora...3 Interfaz Gráfica...3 Publicaciones...4 Cómo Agregar una Publicación...4 Cómo Modificar

Más detalles

Ayuda básica relativa al interfaz web

Ayuda básica relativa al interfaz web Ayuda básica relativa al interfaz web El webmail es un cliente de correo que nos permite visualizar los mensajes de nuestras cuentas de email a través de una página web, pudiendo acceder desde cualquier

Más detalles

MANUAL DE USUARIO DE EGROUPWARE MANUAL DE USUARIO EGROUPWARE

MANUAL DE USUARIO DE EGROUPWARE MANUAL DE USUARIO EGROUPWARE MANUAL DE USUARIO EGROUPWARE 1 INDICE Que es egroupware... 3 Inicio de sesión... 4 Aplicaciones de egroupware... 4 Correo electrónico... 5 Calendario... 7 ACL... 9 Administración de proyectos... 10 Libreta

Más detalles

APLICATECA. Guía para la contratación y gestión de. Hacemos Tu Web

APLICATECA. Guía para la contratación y gestión de. Hacemos Tu Web APLICATECA Guía para la contratación y gestión de Hacemos Tu Web INDICE 1 QUÉ ES HACEMOS TU WEB?... 1 1.1 PARA QUÉ SIRVE?... 1 1.2 CARACTERÍSTICAS DE HACEMOS TU WEB... 1 1.3 REQUERIMIENTOS DEL SERVICIO...

Más detalles

CURSO OUTLOOK DEPARTAMENTO COMERCIAL

CURSO OUTLOOK DEPARTAMENTO COMERCIAL CURSO OUTLOOK DEPARTAMENTO COMERCIAL Diciembre del 2009 SUMARIO 1 INTRODUCCIÓN...3 1.1 Descripción...3 2 ESTRUCTURA OUTLOOK...4 2.1 Descripción...4 2.2 Estructura...4 3 GESTIÓN DEL CORREO...5 3.1 Descripción...5

Más detalles

MANUAL SERVICIOS TELEFONIA FIJA

MANUAL SERVICIOS TELEFONIA FIJA MANUAL SERVICIOS TELEFONIA FIJA En este manual se explica cómo saber gestionar nuestra área de cliente asociada al teléfono o teléfonos fijos de los que disponemos para poder activar ver un listado de

Más detalles

SERVICIOS PARA EL DISEÑO E IMPLEMENTACIÓN DEL PROGRAMA INTEGRAL DE TRANSFORMACIÓN DIGITAL DE LA PROVINCIA DE LUGO: TRANSFORM@TIC

SERVICIOS PARA EL DISEÑO E IMPLEMENTACIÓN DEL PROGRAMA INTEGRAL DE TRANSFORMACIÓN DIGITAL DE LA PROVINCIA DE LUGO: TRANSFORM@TIC Diputación de Lugo SERVICIOS PARA EL DISEÑO E IMPLEMENTACIÓN DEL PROGRAMA INTEGRAL DE TRANSFORMACIÓN DIGITAL DE LA PROVINCIA DE LUGO: TRANSFORM@TIC Manual usuario CRM Agroalimentario Marzo 2015 ÍNDICE

Más detalles

Correo Electrónico: Webmail: Horde 3.1.1

Correo Electrónico: Webmail: Horde 3.1.1 CONTENIDOS: PAGINA Qué es Webmail?. 2 Acceder a Webmail. 2 Instilación del Certificado UCO. 4 Instilación Certificado I.explorer. 4 Instilación Certificado Firefox. 7 Opciones Webmail. 8 Opciones Información

Más detalles

Crear la base de datos antes de la instalación de Wordpress.

Crear la base de datos antes de la instalación de Wordpress. Introducción En este tutorial básico sobre instalar Wordpress en tu propio hosting mediante un panel de control cpanel y aprenderás como personalizar las bases de datos MySQL que utiliza Wordpress. Para

Más detalles

Introducción a Moodle

Introducción a Moodle Instituto la Américas de Nayarit Ing. Elías Portugal Luna Qué es Moodle? Moodle es una aplicación web de tipo Ambiente Educativo Virtual, un sistema de gestión de cursos, de distribución libre, que ayuda

Más detalles

PRÁCTICA 10. Configuración de Correo y Publicar en la Web

PRÁCTICA 10. Configuración de Correo y Publicar en la Web PRÁCTICA 10. Configuración de Correo y Publicar en la Web INFORMÁTICA BÁSICA Publicidad y Relaciones Públicas y Periodismo. Curso 2006/2007 1. Configuración del correo Gestores de correo en la máquina

Más detalles

Manual: Gestor de contenidos e-gim cms. 6 abril 2010

Manual: Gestor de contenidos e-gim cms. 6 abril 2010 Manual: Gestor de contenidos e-gim cms 6 abril 2010 Índice 1 ACCESO AL GESTOR DE CONTENIDOS...3 2 ADMINISTRACIÓN...5 2.1 USUARIOS...5 2.2 ÁREAS...6 3 TIPOS DE CONTENIDO...9 3.1 DIRECTORIO...9 3.2 EVENTOS...10

Más detalles

Manual de configuraciones básicas para cuentas @Colvet.es

Manual de configuraciones básicas para cuentas @Colvet.es Manual de configuraciones básicas para cuentas@colvet.es INDICE: 1. INTRODUCCION Tipos de configuración POP3 e IMAP 2. Datos generales para configuración de correo 3. Acceso al correo vía explorador Web

Más detalles

MANUAL DE AYUDA MANEJO DE SHAREPOINT CON GOTELGEST.NET

MANUAL DE AYUDA MANEJO DE SHAREPOINT CON GOTELGEST.NET MANUAL DE AYUDA MANEJO DE SHAREPOINT CON GOTELGEST.NET Fecha última revisión: Febrero 2012 INDICE DE CONTENIDOS MANEJO DE SHAREPOINT EN GOTELGEST.NET... 3 1. CONFIGURACIÓN GESTIÓN DOCUMENTAL... 3 2. SINCRONIZACIÓN

Más detalles

GUÍA RED SOCIAL FACEBOOK

GUÍA RED SOCIAL FACEBOOK GUÍA RED SOCIAL FACEBOOK Qué es una Red Social? Una Red Sociales un sitio en internet donde compartir información, mensajes, ideas, fotos, etc., con amigos, conocidos y desconocidos. Para acceder a una

Más detalles

Aplicateca. Manual de Usuario: Ilion Factura Electrónica. Espíritu de Servicio

Aplicateca. Manual de Usuario: Ilion Factura Electrónica. Espíritu de Servicio Aplicateca Manual de Usuario: Ilion Factura Electrónica Espíritu de Servicio Índice 1 Introducción... 4 1.1 Qué es Ilion Factura electrónica?... 4 1.2 Requisitos del sistema... 4 1.3 Configuración del

Más detalles

CONFEDERACIÓN DE EMPRESARIOS DE MÁLAGA

CONFEDERACIÓN DE EMPRESARIOS DE MÁLAGA GUÍA DEL ALUMNO 1 Introducción 2 Acceso a la plataforma 3 Cerrar sesión 4 Estructura del curso virtual 5 Foros 5.1 No quiero recibir copias de los foros en mi email 6 Mensajería Interna 7 Como subir tareas

Más detalles

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL Índice 1 Introducción... 5 1.1 Perfil de la aplicación... 5 1.2 Requisitos técnicos... 5 2 Manual de usuario... 7 2.1 Instalación del certificado...

Más detalles

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación Vicerrectorado de Tecnologías de la Información y la Comunicación Conexión mediante Escritorio Remoto de Windows Última Actualización 16 de septiembre de 2013 Histórico de cambios Fecha Descripción Autor

Más detalles

TUTORIAL PHP WEBQUEST

TUTORIAL PHP WEBQUEST TUTORIAL PHP WEBQUEST CURSO TIC CEIP ANDALUCÍA POSADAS (Córdoba) 1 TUTORIAL SOBRE PHP WEBQUEST PHP Webquest es un programa educativo pensado para realizar Webquest, Miniquest y Cazas del Tesoro sin necesidad

Más detalles

GUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE

GUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE ÍNDICE ACCESO A LA APLICACIÓN... 2 1.- HOMOLOGACIÓN DE CURSOS... 4 1.1.- INICIAR EXPEDIENTE... 4 1.2.- CONSULTA DE EXPEDIENTES... 13 1.3.- RENUNCIA A LA HOMOLOGACIÓN... 16 2.- MECÁNICA DE CURSOS... 19

Más detalles

Instalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta

Instalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta Configuración de una red con Windows Aunque existen múltiples sistemas operativos, el más utilizado en todo el mundo sigue siendo Windows de Microsoft. Por este motivo, vamos a aprender los pasos para

Más detalles

SIEWEB. La intranet corporativa de SIE

SIEWEB. La intranet corporativa de SIE La intranet corporativa de SIE por ALBA Software Acceso a los servicios SIE desde páginas Web para los usuarios de sistema *. Administración del Sistema (cuentas de usuarios, permisos, servicios, etc...)

Más detalles