Título: Sitio web de Jo Existeixo: migration y upgrading Volumen: 1 Alumno: Diego Arenas Casado Director/Ponente: Ana Edelmira Pasarella Sánchez Amalia Duch Brown Departamento: Lenguajes y sistemas informáticos. 2 DATOS DEL PROYECTO Título del proyecto: Sitio web de Jo Existeixo: migration y upgrading Nombre del estudiante: Diego Arenas Casado Titulación: Ingeniero Técnico en informática de Gestión Créditos: 22,5 Director/Ponente: Ana Edelmira Pasarella Sánchez y Amalia Duch Brown Departamento: Lenguajes y sistemas informáticos MIEMBROS DEL TRIBUNAL Secretaria: Ana Edelmira Pasarella Sánchez Presidenta: Elvira Patricia Pino Blanco Codirectora: Amalia Duch Brown Vocal: Javier Alonso López CALIFICACIÓN Calificación numérica: Calificación descriptiva: Fecha: 3 4 Facultad de Informática de Barcelona Universidad Politécnica de Cataluña PROYECTO FINAL DE CARRERA Sitio web de Jo Existeixo: migration y upgrading Alumno: Directora: Diego Arenas Casado Ana Edelmira Pasarella Sánchez Codirectora: Amalia Duch Brown 5 6 Resumen El objetivo general del proyecto fue hacer una "migration and upgrading" del sitio web de Jo Existeixo, que es una asociación de familias y profesionales vinculados con personas con pluridiscapacidad. En concreto, actualizamos el sitio web original migrando el software que lo soportaba a una versión más actual, modificando el diseño gráfico para hacerlo más amigable y atractivo y ampliando sus funcionalidades teniendo en cuenta criterios de seguridad, accesibilidad, etc. Entre las funcionalidades añadidas se encuentran: foros, chats, registro de usuarios, conectividad con redes sociales, conversión de texto a audio, widgets, etc. La herramienta principal para la implementación fue el gestor de contenidos Joomla, ya que era el que soportaba originalmente el sitio, y a día de hoy, es uno de los más importantes y seguros que hay de código libre. El sitio web está permanentemente accesible en http://www.joexisteixo.org/ 7 8 Prólogo Para realizar mi proyecto final de carrera me planteé distintos temas que me llamaran la atención y que a su vez me motivaran, con el objetivo de tener una mayor implicación en el proyecto. Después de tanto indagar, ¡Eureka! … apareció. Me gustan las tareas que sean un reto y requieran creatividad, por esta razón me decanté por el proyecto: "Sitio web de Jo Existeixo: migration y upgrading", ya que se trataba de un trabajo altruista que produciría una verdadera satisfacción entre los miembros de la asociación Jo Existeixo. Además la propuesta del proyecto estaba basada en el Sistema de Gestión de Contenidos Joomla (1), del que había escuchado hablar desde que comencé la carrera, y esto aumentó mi interés hacia el proyecto: aprendería una herramienta nueva que podría ser de gran utilidad en mi futuro. Con la realización de este proyecto he conseguido unos conocimientos muy valiosos en el campo de los gestores de contenidos y desarrollo web, especialmente en el tema del diseño. Finalmente, la realización de esta memoria, me ha aportado, mucho trabajo, y una gran experiencia en lo que se refiere a la organización y estructuración de la información en la realización de dichos documentos. 9 10 Índice Introducción .................................................................................................................... 13 CAPÍTULO I. Preliminares ............................................................................................. 15 I.1. Gestor de contenidos............................................................................................ 15 I.1.1. Características ............................................................................................... 16 I.1.2. ¿Cómo está formado? ................................................................................... 16 I.1.3. Alcance de los CMS ....................................................................................... 18 I.2. Joomla................................................................................................................... 19 I.2.1. Comunidad ..................................................................................................... 22 I.2.2. Versiones de Joomla ..................................................................................... 23 CAPÍTULO II. Estudio del proyecto................................................................................ 26 II.1. Situación de partida ............................................................................................. 26 II.2. Análisis de requisitos ........................................................................................... 31 II.3. Casos de uso ....................................................................................................... 34 II.3.1. Casos de uso: Usuario visitante ................................................................... 35 II.3.2. Casos de uso: Usuario registrado ................................................................ 38 II.3.3. Casos de uso: Usuario publicador................................................................ 41 II.3.3. Casos de uso: Usuario administrador .......................................................... 44 CAPÍTULO III. Implementación ...................................................................................... 47 CAPÍTULO IV. Planificación y estudio económico ........................................................ 58 IV.1. Planificación ....................................................................................................... 58 11 IV.2. Coste del proyecto ............................................................................................. 61 CAPÍTULO V. Conclusiones y mejoras futuras ............................................................. 65 Bibliografía ...................................................................................................................... 67 Anexo 1. Especificación técnica..................................................................................... 71 Anexo 2. Manual de usuario publicador......................................................................... 74 Anexo 3. Casos de uso .................................................................................................. 79 Casos de uso: Usuario visitante ................................................................................. 79 Casos de uso: Usuario registrado .............................................................................. 86 Casos de uso: Usuario publicador.............................................................................. 93 Casos de uso: Usuario administrador ........................................................................ 96 Anexo 4. Hosting ............................................................................................................ 99 Anexo 5. Cursos de formación ..................................................................................... 107 12 Introducción La Asociación “Jo Existeixo: Nexo de unión entre personas con discapacidad, sus familias y los profesionales que las atienden”, es una asociación sin afán de lucro, constituida en el año 2006 por un grupo de familiares y profesionales vinculados directamente con la pluridiscapacidad. En Jo Existeixo, familias y profesionales trabajan en equipo para conseguir los apoyos y la representatividad que les hace falta a las personas con pluridiscapacidad, para afrontar las dificultades y atender sus necesidades. La Asociación quiere mejorar la calidad de vida de las personas con pluridiscapacidad y la de sus familias. Buscan el reconocimiento de la identidad profesional de los equipos que trabajan con personas con multidiscapacidad para que puedan disponer de la formación y de los medios que permitan las intervenciones educativas y terapéuticas necesarias. Se trata de una asociación pequeña con 152 socios, dirigida por una Junta Directiva de 5 personas que son las encargadas de su buen funcionamiento. El presupuesto de la asociación es muy reducido, proviene de pequeñas donaciones y principalmente de las cuotas de sus socios. Debido a esta situación, es muy importante para la asociación darse a conocer al público en general y mantenerse en contacto con sus socios de una manera económica y al mismo tiempo atractiva y dinámica. La Asociación ha tenido muy claro desde sus inicios que un sitio web bien diseñado y funcional es una manera ideal de combinar las características anteriores, y que además puede ayudar a captar nuevos socios, voluntarios, colaboradores y/o donaciones. Al momento de comenzar este proyecto, en enero de 2011, Jo Existeixo disponía de un sitio web que comenzaba a quedar corto con respecto a las funcionalidades que la Asociación requería y obsoleto con respecto al software en que estaba montado (el gestor de contenidos Joomla versión 1.0 (2). Así mismo, el diseño de las páginas no consideraba criterios de accesibilidad ni de usabilidad. Adicionalmente, las funcionalidades ofrecidas eran muy restringidas. El objetivo de este trabajo, es por lo tanto modernizar el sitio web de Jo Existeixo en ambos aspectos: tanto ampliando sus funcionalidades como migrándolo a la última versión estable disponible actualmente de Joomla. 13 Podemos decir que hemos actualizado el sitio web de la asociación desde dos frentes: Actualizando (upgrading) la versión del gestor de contenidos utilizado para garantizar la operatividad, seguridad, el soporte técnico y el mantenimiento del mismo. Rediseñando la estructura del sitio web para hacerlo más ergonómico de cara a la navegación y ampliar sus funcionalidades. En el rediseño, hemos considerado criterios de usabilidad, accesibilidad y encontrabilidad (findability) en motores de búsqueda (SEO) (3). Adicionalmente, hemos incluido nuevas funcionalidades que permiten y promueven la interacción y el intercambio entre usuarios y Jo Existeixo y usuarios entre ellos. Esta memoria está organizada como sigue. En el Capítulo I presentamos las nociones preliminares básicas de gestores de contenidos en general (Sección I.1) y Joomla en particular (Sección I.2), que se requieren en este proyecto. El Capítulo II está formado por dos secciones. En la primera sección presentamos un análisis del sitio en el momento de comenzar el proyecto. En la segunda sección presentamos el análisis de requisitos para establecer las funcionalidades que tendría el sitio web una vez actualizado. Dedicamos el Capítulo III a la descripción de la implementación incluyendo una explicación detallada de todo lo que se hizo para la migración y upgrading del sitio web. En el Capítulo IV detallamos la planificación del proyecto viendo los costes temporales de cómo se ha llevado a cabo y el análisis de su coste económico. Finalmente en el Capítulo V damos nuestras conclusiones y posibles líneas de trabajo futuro. Como anexos a este trabajo presentamos: Una especificación técnica del proyecto, es decir las versiones y componentes utilizados (Anexo 1. Especificación técnica) Un manual de usuario publicador (Anexo 2. Manual de usuario publicador) Los casos de uso del proyecto (Anexo 3. Casos de uso) El informe de los distintos hostings analizados (Anexo 4. Hosting) 14 CAPÍTULO I. Preliminares En este capítulo, introducimos brevemente algunos de los conceptos necesarios para el desarrollo de este proyecto. Comenzamos definiendo los sistemas de gestión de contenidos así como sus principales características en la Sección I.1. En la Sección I.2, damos una explicación breve sobre el gestor de contenidos Joomla, ya que es el que hemos utilizado para la implementación del sitio web de Jo Existeixo. I.1. Gestor de contenidos Un Sistema de Gestión de Contenidos (o CMS, abreviando su nombre en inglés: Content Management Systems) es un sistema de software que permite la gestión de documentos de diferentes tipos. Toda la información se almacena en una base de datos. Los contenidos pueden ser muy variados incluyendo ficheros de texto, audio, vídeo, imágenes y, en general, la mayoría de formatos de cualquier contenido web (4). Un CMS no solamente ayuda en la gestión de contenidos como los mencionados anteriormente (sin necesidad de tener conocimientos técnicos de lenguajes de programación como HTML) sino que permite definir diferentes grupos de usuarios, cada grupo con roles y responsabilidades distintas, con la idea de que diferentes personas puedan contribuir a la creación, edición y gestión de contenidos del sitio web mientras que los visitantes del sitio tienen un acceso limitado, usualmente restringido a la consulta de dichos contenidos (5). En particular existe un usuario responsable de la gestión del sitio, es el usuario administrador. El administrador del sitio puede acceder a los datos de manera muy sencilla, utilizando la interfaz de administración del sitio proporcionada por el CMS usualmente mediante un sistema de menús. Todo cambio realizado en la interfaz de administración queda reflejado en la base de datos (6). Los CMS se han convertido en herramientas sumamente populares ya que la creación completa de sitios web (a partir de la nada y mediante un lenguaje de programación) es una tarea compleja y larga. No se trata solamente de la programación de cada una de las partes del sitio, que requiere de experiencia y conocimientos técnicos, sino de la integración de todas las distintas partes entre ellas, tarea que induce errores fácilmente y que requiere de un largo y bien diseñado proceso de pruebas y correcciones (6). 15 Los CMS actuales son fácilmente extensibles utilizando los módulos y funcionalidades ya disponibles que son fáciles de añadir y/o eliminar en cualquier sitio web. De esta manera se pueden conseguir contenidos complejos como por ejemplo: foros, tiendas online, sistemas de subscripción (RSS), entre otros. Esto convierte la creación de sitios web en una tarea relativamente sencilla y accesible a personas sin conocimientos técnicos de informática. I.1.1. Características A continuación describimos las características principales de un CMS (7). Gestión de contenidos: permite organizar los contenidos del sitio. Una página por defecto, se publica automáticamente en el momento de crearla y sin fecha de caducidad, pero se puede modificar para publicarse y despublicarse en una fecha establecida por el usuario. Gestión de usuarios: controla el acceso al sitio web, de los diferentes tipos de usuarios gestionando los diferentes permisos de cada área del sitio. Escalable: gestiona el incremento de la cantidad de información del sitio manteniendo en la medida de lo posible su rendimiento. Extensible: facilita el aumento de las funcionalidades del sitio permitiendo la inclusión de módulos específicos. Mantenible: En un sitio web con muchas páginas hace falta un sistema para distribuir los trabajos de creación, edición y mantenimiento con permisos de acceso a las diferentes áreas. También se tienen que gestionar los metadatos (8) (9) de cada documento, la publicación y caducidad de páginas, entre otros. Cambios del aspecto del sitio web. Un cambio de diseño puede llevar a cabo la revisión de muchas páginas para su adaptación. Los CMS utilizan hojas de estilo, con lo que se consigue la independencia de presentación y contenido. I.1.2. ¿Cómo está formado? Como podemos ver en la Figura 1 un CMS está compuesto por una colección de programas del CMS, una interfaz, una base de datos y un web server. La interfaz es lo que compone visualmente el sitio, es decir, incluye imágenes, fotos, etc. En la base de 16 datos se organizan y gestionan los datos que componen los contenidos, y el web server, es el alojamiento físico (hosting) donde se almacenan los datos que componen el sitio y la interfaz. A un CMS se puede acceder a través de dos partes, conocidas como back-end y frontend. El back-end es el área privada del sitio, donde los administradores editan, categorizan administran y ordenan los contenidos, mientras que el front-end, es el sitio final con el que interactúan todos los demás usuarios. Figura 1. Componentes de un CMS. Imagen obtenida de http://www.chocolatepublicidad.com/blog/?p=259 17 I.1.3. Alcance de los CMS En la actualidad hay multitud de gestores de contenidos con diferentes propósitos. A continuación listamos algunos de los tipos de sitios más representativos que se suelen gestionar con la ayuda de CMS (10): Para los sitios webs convencionales, que son la mayoría de sitios, por ejemplo los que muestran noticias, sitios de empresas que muestran información, etc. se utilizan los CMS genéricos. También ha CMS que gestionar sitios más interactivos con el usuario como por ejemplo Foros, permite publicar/discutir todo tipo de comentarios de manera organizada, Wikis, sitios en que se crea, modifica, y/o elimina información sobre temas concretos y Blogs, permite la publicación de artículos. Para los colegios y universidades, es decir para la enseñanza, hay los gestores llamados e-Learning, que permiten tener toda la información del curso o asignatura accesible para profesores y alumnos. Otro tema que está ahora en auge es el comercio electrónico, que permite comprar, vender por internet, y para esto se utilizarían los CMS del tipo eCommerce. 18 I.2. Joomla En esta sección explicaremos brevemente las principales características del CMS Joomla. A continuación presentaremos las diferencias entre sus versiones principales: 1.0, 1.5 y 1.6. Joomla es un CMS de código libre, que permite crear sitios web robustos, seguros, dinámicos y multidiomas, con múltiples aplicaciones de manera automática, y sin la necesidad de tener conocimientos técnicos para administrar el sitio web. Permite que un grupo de personas pueda contribuir a la creación de contenidos, para mantener el sitio siempre actualizado, todo de manera automática a través de una jerarquerización y categorización de la información. Joomla está desarrollado en PHP y utiliza el gestor de bases de datos MySQL, una vez instalado Joomla en el servidor, se puede acceder a través de un navegador al front-end, que es la parte pública, la que verán los visitantes, y será accesible a través del dominio, y el back-end, es la parte privada del sitio, que se accede agregando “/Administrator” a nuestro dominio (11). En la Figura 2, mostramos la organización de archivos que tiene Joomla, observamos que hay una parte para el administrador (acceso al back-end), y otra parte pública, está todo muy organizado, las extensiones están separan en tres carpetas distintas como son módulos, componentes y plugins, las plantillas se ubican en la carpeta de “templates”, mientras que las imágenes y archivos del sitio se guardan en “images” y “media” respectivamente. Para acceder a los distintos idiomas se accede mediante la carpeta de “language”. Los componentes son aplicaciones independientes entre sí que gestionan la información dentro de Joomla, por ejemplo el com_contac (contacto), se encarga de administrar los contactos y enviar los mensajes por correo que se escriben desde el formulario, Los módulos extienden las capacidades de Joomla, dándole al software nuevas funcionalidades, aunque también suelen ser el complemento de los componentes: por ejemplo el componente com_poll (encuestas) posee un módulo asociado mod_poll (encuestas) que es el que permite mostrar la encuesta sobre una columna lateral y permitirle al usuario "votar" con un clic. Una vez que el usuario votó (o si simplemente 19 desea ver los resultados de la votación), es redirigido hacia la información que muestra el componente com_poll sobre el cuerpo principal del sitio (11). Los conectores son unidades funcionales de código (scripts) que soportan algunas operaciones de Joomla. Por ejemplo, existen conectores que sólo operan sobre artículos de contenido (content), otros proporcionan posibilidades de investigación (search), controlan el acceso de los usuarios (authentication), entre otros. Figura 2. Imagen de las carpetas de Jooma. Fuente extraida de http://how-tobuild-a-website-az.blogspot.com/2011/05/joomla-15-directory-and-its-files.html 20 Joomla tienen una gran flexibilidad para cambiar la apariencia del sitio web, esto se realiza a través de las plantillas, compuestas por un archivo PHP (index.php) que es donde está la distribución de las distintas posiciones de la web, y los ficheros de hojas de estilos (CSS), que definen los estilos y formato para cada posición de la plantilla. Además de cambiar la apariencia del sitio web, Joomla también permite cambiar o agregar funcionalidades a través del uso de extensiones, formadas principalmente por componentes, módulos y conectores, de manera organizada y automática. Los usuarios en Joomla se dividen en dos grupos, back-end y front-end. Los usuarios, a medida que aumentan de rango, heredan los permisos de los usuarios anteriores, añadiendo nuevas funcionalidades. Los usuarios del back-end son: usuario superadministrador que posee acceso total a todo el sitio y a la administración, el usuario administrador que tiene similares atributos al del superadministrador pero sin la posibilidad de ingresar en la configuración global, y el usuario gestor que tiene un acceso parcial, sin poder acceder a la administración de componentes, edición de usuarios, configuración, etc. Los usuarios del front-end son: usuario registrado, que solamente puede acceder al contenido marcado con el permiso de registrado, el usuario autor que puede enviar artículos, pero no puede editar los ítems de los demás, ni publicar los que escriba él mismo (quedan pendientes validación hasta que un publicador o administrador lo autorice y publique), el usuario editor puede enviar artículos y editar los de los demás, pero no puede publicar (estos quedan pendientes de validación, al igual que el caso anterior), y el usuario publicador que puede enviar, modificar y publicar artículos. Los permisos de que dispone un recurso en Joomla son: público: cualquier usuario puede visualizar el recurso, registrado: sólo los usuarios registrados verán el recurso y especial: dentro de los usuarios registrados, sólo los usuarios con más rango que el registrado (de autor hacia delante) podrán acceder al recurso. Joomla utiliza un sistema de organización de los contenidos basado en tres niveles, que son: primero las secciones: es el contenedor principal y en su interior se encuentran las categorías, segundo las categorías: es el contenedor secundario y dentro encontramos los artículos, y por último los artículos: que es la unidad de contenido, es decir es donde insertamos el texto, imágenes u otros elementos que queremos mostrar en nuestra web. Esta estructura es fija y no permite modificaciones, 21 sin embargo, existe una forma de salir de esta jerarquía, son los llamados artículos sin clasificar. Estos artículos son individuales y no se ubicarían dentro de la jerarquía de contenido, ya que no tienen ninguna sección ni categoría asociada. Este potente CMS surge como el resultado de una mejora del gestor de contenido Mambo (12). La primera versión de Joomla (Joomla 1.0.0) fue publicada el 16 de septiembre de 2005. Se trataba de una versión mejorada de Mambo 4.5.2.3 combinada con otras modificaciones de seguridad y anti-bugs (13). El 22 de enero del año 2008, sale la versión estable de Joomla 1.5 que incorpora nuevos cambios en materia de seguridad, administración y cumplimiento del estándar W3C (World Wide Web Consortium) (14). Actualmente, los desarrolladores de Joomla están trabajando en dos frentes, por un lado en la versión 1.5.X, que mejoran y dan solución a los problemas de la versión inicial 1.5, y por otro lado en la versión 1.6, actualmente hay una primera versión lanzada, la cual incorporará una serie de nuevos cambios en el núcleo de la aplicación, principalmente enfocados en la organización del contenido y los permisos de los usuarios. I.2.1. Comunidad Joomla es uno de los gestores de contenido más populares en la red, y esto lo demuestra la comunidad de soporte de la que dispone. Los datos oficiales que hay actualmente sobre el número de participantes hablan de una cifra cercana a las 430.000 personas (15). El proyecto Joomla es gestionado por un grupo de trabajo llamado "Core Team" (16), este colectivo es el que marca las pautas en la evolución y a la vez organiza y distribuye los subgrupos de colaboradores, los cuales trabajan en el desarrollo de partes concretas de la plataforma. También hay muchos programadores que desarrollan módulos o componentes de forma totalmente altruista. Para finalizar, destacamos la amplia presencia de la comunidad hispana dentro de Joomla. "Joomla Spanish" o "Joomla Hispano" entre otros, que ofrecen soporte y servicios a todos los usuarios hispano hablantes 22 . I.2.2. Versiones de Joomla Joomla nació el año 2005 y se ha ido desarrollando. Las tres versiones principales a disposición de los usuarios son “Joomla 1.0”, “Joomla 1.5” y “Joomla 1.6”. A continuación se presenta su evolución. I.2.2.1. De Joomla 1.0 a Joomla 1.5 Después de tres años con Joomla 1.0, apareció la primera versión estable de Joomla 1.5 que nació en enero de 2008, y desde entonces hasta la fecha de hoy han publicado numerosas versiones, estando actualmente la versión 1.5.23. Seguidamente se muestran los cambios en relación a la versión Joomla 1.0. Uno de los principales cambios ha sido en la interfaz de usuario, haciéndola más amigable y usable, principalmente en las extensiones y los menús, que además de la simplificación de la interfaz puede editar un menú sin necesidad de eliminarlo. En las extensiones, además de la simplificación de la interfaz, los “mambots” (8) (9) se han renombrado como conectores, que son extensiones o plugins que realizan alguna transformación en el contenido de Joomla, interceptándolo y manipulándolo de alguna manera antes de que sea mostrado, es decir, son controladores de eventos, los conectores se pueden activar o desactivar dependiendo de las funcionalidades del sitio. Además el instalador se ha unificado para componentes, módulos, conectores, plantillas e idiomas e incluye una funcionalidad de seguridad como es la capacidad para desactivar componentes. Se ha creado un administrador de artículos, antes llamados ítems de contenido, en el que incluye una pre-visualización instantánea sin necesidad de guardar el artículo, una única área de edición para escribir el contenido y mejorando también las funciones de “salto de página” y “leer más”. Respecto a las plantillas ha habido una mejora de la pre-visualización, mostrando las posiciones y nombres de los módulos, así como la posibilidad de editar múltiples hojas de estilos (CSS). Los usuarios, pueden iniciar sesión mediante Gmail, activando el conector para poder estar efectivo, y también permite la sincronización, entre otras componentes que utilicen usuarios, como por ejemplo los foros, y así se sincronizan los permisos. 23 Otro de los cambios importantes ha sido la mejora de la accesibilidad, aunque es un tema que depende en gran medida de las demandas del cliente, el diseñador u otros. El diseñador puede crear sus propios módulos en su plantilla, cambiar clases CSS, eliminar tablas, hacer la plantilla conforme los estándares de accesibilidad, etc. Otro cambio ha sido la internacionalización, ofreciendo la codificación completa de UTF-8, que es capaz de representar cualquier carácter universal en el estándar Unicode, se ha creado el soporte RTL, que permite la escritura de derecha a izquierda (escritura árabe) y las traducciones se hacen utilizando unos archivos de texto (llamados archivos INI), y de este modo resulta muy fácil añadir nuevas traducciones o modificar las existentes. I.2.2.2. De Joomla 1.5 a Joomla 1.6 Después de tres años con Joomla 1.5 se ha lanzado la primera versión de Joomla 1.6, que es posible descargar aunque aún se siguen encontrando algunos errores que afectan a la seguridad del sitio web. Además hay que tener en cuenta que se debe esperar a que los desarrolladores comiencen a desarrollar componentes en forma independiente para aumentar la funcionalidad. Las principales críticas realizadas a Joomla están referidas a las dificultades que ofrece para grandes sitios en la gestión de usuarios, lo que parece haber sido una importante preocupación de los desarrolladores de la nueva versión. La introducción de cambios importantes no podía afectar las principales características de Joomla, que son la sencillez de instalación y administración, y la fiabilidad. Se puede apreciar el primer cambio desde la instalación de Joomla 1.6, ya que en el proceso de instalación nos permite la elección de un nombre de usuario. Cuando se instala Joomla 1.0 y 1.5, el primer usuario, el administrador de la página se nombraba por defecto “Admin”. Además cada usuario o grupo pueden tener permisos diferenciados, pudiendo crearse nuevos grupos de usuarios ilimitados. Uno de los cambios más atractivos es la posibilidad de insertar comentarios en los artículos, además de aceptar pingbacks (trata de conocer cuanta gente ha enlazado o compartido el documento) y trackbacks (trata de un enlace inverso que permite conocer qué enlaces apuntan hacia un determinado artículo) sin que se deba instalar ningún componente adicional para llevarlo a cabo. 24 Además se han eliminado las secciones, permitiendo la creación de distintos niveles de categorías, lo que significa una notable flexibilización del sistema de clasificación de contenidos, los menús son más flexibles, ya que se pueden dar diferentes niveles de acceso y es posible cambiar los ítems de menús, incluyendo la elección de nuevos elementos padre, sin tener que eliminar dicho menú. Otro gran cambio es la compatibilidad, ya que incorpora el conector “Legacy mode” que permite utilizar componentes realizados para la versión 1.0 y 1.5, por último han llegado a un acuerdo con Microsoft para mejorar la compatibilidad con Internet Information Server (IIS) (8) (9), que es el servidor web y FTP de Microsoft. Para la implementación del sitio web de Jo Existeixo utilizaremos la versión 1.5.x ya que la versión 1.6 está en fase de desarrollo, y aún no es estable, y es preferible dejar una versión más probada ya que aparte que es más estable hay más soporte y módulos y componentes para poder utilizar. 25 CAPÍTULO II. Estudio del proyecto En este capítulo analizamos el sitio web de partida de Jo Existeixo e identificamos algunos de los cambios y nuevas funcionalidades que utilizadas. También presentamos los casos de uso del nuevo sitio web (es decir, todo lo que pueden ejecutar sus usuarios). II.1. Situación de partida Como ya hemos mencionado anteriormente, Jo Existeixo disponía de un sitio web (17), desarrollado en Joomla 1.0. En la Figura 3, mostramos la estructura de la página principal (o de inicio) del sitio. Las funcionalidades de las que dispone (como puede verse en el menú principal de la figura) son: acceso a la información de la asociación, posibilidad de escoger entre tres idiomas distintos, posibilidad de inscripción a la asociación (en la Figura 4 se muestra el formulario de inscripción), posibilidad de contactar con la asociación (a través del formulario que se muestra en la Figura 5), acceso a distintitos enlaces e información sobre ayudas económicas, espacio reservado a las últimas noticias de la asociación y posibilidad de intercambiar, comprar o vender productos en el Discamercat. Figura 3. Estado actual del sitio Jo Existeixo, www.joexisteixo.org. 26 Figura 4. Inscripción de Jo Existeixo, imagen obtenida de www.joexiteixo.org 27 Figura 5. Formulario de contacto, imagen obtenida de www.joexiteixo.org Como ya explicamos en el capítulo anterior, Joomla 1.0, sigue una estructura modular y jerárquica. Un sitio está compuesto por artículos que forman parte de categorías que a su vez pertenecen a secciones, en la tabla siguiente se detallan las secciones y categorías que existían en el sitio, en el momento de comenzar este proyecto. 28 Secciones Categorías Prestacions i Ajudes Prestacions i Ajudes Discamercat Vendes Compres Donacions Enllaços Enllaços Contacta’ns Contacta’ns Suport Suport Fes-te Soci Fes-te Soci Comissions Comissions Full informatiu - Activitats - Notícies Notícies Inici Inici L’associació Una mica d’història Objectius i fins Col·laboracions Finançament Estructura Estatuts Todo lo anterior está soportado por los siguientes módulos y componentes: Componentes: JoomFish!, proporciona la posibilidad de tener múltiples idiomas. Contactos, da soporte al formulario de contacto. Módulos: El módulo mod_mainmenu, utilizado por el Menú Principal. El módulo mod_newsflash, utilizado por las Noticias. El módulo mod_jflanguageselection, utilizado para cambiar el idioma. La presentación visual del sitio está soportada por la plantilla “biz_blue” diseñada por Raduga (18). 29 Desde un punto de vista técnico el sitio contiene una serie de inconsistencias, que conviene reparar, mencionamos algunos casos particulares: • Muchas de las categorías no tenían artículos relacionados, ya que el contenido está escrito dentro de la sección correspondiente. • Muchos artículos no están categorizados (por ejemplo el documento de recetas y la composición de la junta directiva) • Para acceder a toda la información se dispone de un único menú para acceder a todos los datos. Por otra parte, Jo Existeixo, quiere un sitio más dinámico, moderno, fácil de utilizar y con más y mejores funcionalidades que las del sitio del que ya disponían. En el siguiente apartado presentamos un análisis de las nuevas funcionalidades. 30 II.2. Análisis de requisitos En el momento de iniciar este proyecto, el sitio de Jo Existeixo no permitía el registro de usuarios una funcionalidad a tener en cuenta. La asociación solicitó cuatro tipos de usuarios: • Usuario administrador que se encarga de administrar (instalar / desinstalar) que cualquier componente de la aplicación • Usuario publicador el cual se encarga de subir nuevos artículos de última hora a la web (estos dos usuarios serán personal de Jo Existeixo), • Usuario registrado que tiene distintos privilegios básicos. • Usuario visitante Otra de las funcionalidades que solicitaron modificar es el actual Discamercado, se trata de un espacio para poder vender, comprar o intercambiar objetos que pueden ser de gran utilidad para personas con pluridiscapacidad, ya que muchos de estos objetos son caros y difíciles de conseguir. Originalmente, para insertar un anuncio sobre ventas, compras, donaciones o intercambios, se tenía que enviar un correo electrónico al personal de Jo Existeixo, para que la organización publicara el anuncio. Solicitaron la funcionalidad de que los usuarios registrados pudieran publicar esta información sin tener que pasar por los miembros de la asociación. La manera ideal de proveer esta funcionalidad es a través de un foro, donde cada usuario registrado puede añadir o eliminar su producto y/o contestar a otras publicaciones de usuarios registrados, mientras que los usuarios no registrados tienen acceso de sólo lectura. Otra funcionalidad solicitada por Jo Existeixo, es la de una “Comunidad”, en la cual los usuarios puedan interactuar entre ellos, cambiar opiniones, conocerse, entre otras muchas actividades. Dicha funcionalidad estará separada en dos: Creación de un “Muro” de Facebook en el cual los usuarios registrados en dicha red social pueden escribir sus comentarios e interactuar entre ellos. Por otro lado, los usuarios no registrados en Facebook, podrán utilizar un chat interno, siempre y cuando el usuario esté registrado en el portal de Jo Existeixo. 31 Como facilidades de acceso a la información para todos los usuarios, se han añadido dos funcionalidades, la primera es la de poder visualizar un fichero en PDF, sin la necesidad de abrirlos o descargarlos, lo que acelera el acceso a la información y la segunda es la de convertir el texto a audio, de esta manera se puede escuchar el texto sin tener que leerlo. Creemos que esta última funcionalidad es muy importante, en el caso del sitio web de Jo Existeixo, porque da acceso a sus contenidos a personas con discapacidades visuales. Para una asociación sin fines de lucro como Jo Existeixo es muy importante recibir donativos que le permitan llevar a cabo sus actividades, por este motivo, la asociación está interesada en que desde el sitio web, se puedan realizar aportaciones económicas, esta es otra de las funcionalidades que tendremos que tener en cuenta en el momento de la implementación del nuevo sitio. También es importante para la asociación el poder contactar con voluntarios, que les ayuden en sus actividades, ya que es una asociación pequeña con pocos recursos humanos. Una ayuda para las familias, es utilizar enlaces de interés, además de los que ya están publicados, incluir también distintas ONG’s colaboradoras con la asociación, Centros de Servicios Sociales y centros de educación especial en Cataluña. Para la que la gente visite el sitio web con frecuencia y por tanto poderle dar más visibilidad a la asociación, la junta directiva solicitó que el nuevo sitio web incorporara un calendario, un módulo del tiempo en Barcelona, ya que es donde se sitúa la sede de la asociación. Con este mismo objetivo se les propuso, y estuvieron de acuerdo, incorporar dos “mini juegos”, el primero sería, como un puzle, que se basa en ordenar una imagen de proporcionada por Jo Existeixo hasta hacerla coincidir con la imagen original, y el otro “mini juego”, el clásico comecocos. Además habrá accesos directos a Facebook y Twitter de Jo Existeixo. El sitio web, estará adecuado según el protocolo de accesibilidad de la Generalitat de Cataluña (19) y el de W3C (World Wide Web Consortium) (14). Otra funcionalidad es un SiteMap (mapa del sitio) ya que Google, lo utiliza para indexar las páginas web y posicionarlas en las búsquedas. Además, muchos usuarios lo utilizan para acceder más rápido a lo que están buscando. De todas maneras, 32 facilitaremos a los usuarios de Jo Existeixo con la incorporación de un botón de búsqueda para toda la página web de la organización. Finalmente, pero no menos importante, es poder realizar copias de seguridad de todo el sistema, es decir copia de toda la base de datos y de los archivos del sitio (fotos, documentos, presentaciones, etc.). 33 II.3. Casos de uso Un caso de uso es una descripción de la secuencia de interacciones que se producen entre un actor y el sistema, cuando el actor usa el sistema para llevar a cabo una tarea específica. El sistema tiene cuatro usuarios diferenciados que son: usuario visitante, usuario registrado, usuario publicador y usuario administrador, a continuación veremos el diagrama de casos de uso y algunos casos de usos de ejemplos. Queda detallada la lista completa, en el Anexo 3. Casos de uso. Hemos creado los casos de uso, diagrama y especificación, basados en los estándares vistos en la asignatura ES1 y ES2 (Ingeniería del Software 1 y 2). Además también se ha utilizado UML (Lenguaje Unificado de Modelado) (20) (21). En el diagrama de casos de uso representamos el sistema como una caja rectangular con el nombre de dicho caso de uso en su interior. Los casos de uso están situados en el interior de la caja del sistema y los actores situados fuera. Cada actor está unido a los casos de uso en los que participa. La especificación de los casos de uso está compuesto por los campos: nombre, actores (aquellos que interactúan con el sistema), precondiciones (hechos que se han de cumplir para que el caso de uso se pueda llevar a cabo), postcondiciones (resultado de haber concluido satisfactoriamente el caso de uso) y por último, el curso de acontecimientos, que corresponde a la ejecución normal y exitosa de dicho caso de uso. Los cursos alternativos son los que nos permiten indicar qué es lo que hace el sistema en los casos menos frecuentes e inesperados. 34 II.3.1. Casos de uso: Usuario visitante II.3.1.1. Diagrama SISTEMA Registrarse Contactar Visualización de páginas Consultar enlaces Leer foro Cambiar idioma Cambiar tamaño de letra Usuario visitante Escuchar artículo Hazte socio Utilizar gadgets interactivos Compartir en Facebook 35 II.3.1.2. Especificación Caso de Uso: Registrarse Caso de Uso: Registrarse Descripción Un usuario quiere registrarse en nuestra página web. Actor Principal Usuario visitante. Precondición El usuario no está registrado. Postcondición Se ha registrado un nuevo usuario en el sistema. Curso típico de acontecimientos Actor Sistema 1. El usuario pide registrarse en el sistema. 2. El sistema muestra los campos que hay que rellenar. 3. El usuario introduce sus datos. 4. El sistema comprueba que los datos estén correctos y manda un correo de confirmación al usuario. 5. El usuario confirma su registro con el link recibido en su correo. Cursos Alternativos 3a. La información entrada es incorrecta. 3a1. El sistema notifica al usuario que los datos son incorrectos. 3a2. El usuario entra de nuevo los datos. 3a3. El caso de uso continúa en el paso 3. 36 Caso de Uso: Contactar Caso de Uso: Contactar Descripción Un usuario quiere contactar con nosotros. Actor Principal Usuario visitante. Precondición Postcondición Se ha enviado un correo a la asociación Jo Existeixo. Curso típico de acontecimientos Actor Sistema 1. El usuario pide contactar con la asociación. 2. El sistema muestra los campos que hay que rellenar. 3. El usuario introduce los datos. 4. El sistema comprueba que los datos estén correctos y manda un correo con la información a Jo Existeixo. Cursos Alternativos Caso de Uso: Visualización de páginas Caso de Uso: Visualización de páginas Descripción Un usuario quiere ver algún apartado de nuestra página web. Actor Principal Usuario visitante. Precondición Postcondición El sistema muestra la página pedida por el usuario. Curso típico de acontecimientos Actor Sistema 1. El usuario pide que se le muestre una página del sistema. 2. El sistema muestra la página deseada. Cursos Alternativos - 37 II.3.2. Casos de uso: Usuario registrado El usuario registrado hereda todos los casos de uso del usuario visitante, excepto, el caso de uso de registrarse, ya que el usuario ya se encuentra en el sistema. II.3.2.1. Diagrama SISTEMA Iniciar sesión Cerrar sesión Utilizar chat Jo Existeixo Publicar nuevo tema en el foro Responder tema en el foro Borrar sus mensajes en el foro Usuario registrado Pedir contraseña Pedir nombre de usuario Modificar cuenta 38 II.3.2.2. Especificación Caso de Uso: Iniciar Sesión Caso de Uso: Iniciar Sesión Descripción Un usuario registrado en el sistema se identifica para acceder a su contenido. Actor Principal Usuario registrado Precondición El usuario está registrado. Postcondición Se inicia la sesión del usuario. Curso típico de acontecimientos Actor Sistema 1. El usuario registrado pide acceder a su cuenta. 2. El usuario registrado introduce sus datos. 3. El sistema comprueba que los datos estén correctos. 4. El sistema permite el acceso al usuario registrado. Cursos Alternativos 3a. La información entrada es incorrecta. 3a1. El sistema notifica al usuario que los datos son incorrectos. 3a2. El usuario entra de nuevo los datos. 3a3. El caso de uso continúa en el paso 3. 39 Caso de Uso: Cerrar Sesión Caso de Uso: Cerrar Sesión Descripción Un usuario registrado quiere cerrar su sesión abierta en el sistema. Actor Principal Usuario registrado Precondición El usuario está registrado y tiene sesión abierta. Postcondición Se cierra la sesión del usuario. Curso típico de acontecimientos Actor Sistema 1. El usuario registrado pide cerrar su sesión. 2. El sistema cierra la sesión del usuario. Cursos Alternativos - Caso de Uso: Utilizar chat de Jo Existeixo Caso de Uso: Utilizar chat de Jo Existeixo Descripción Un usuario registrado quiere utilizar el chat de Jo Existeixo. Actor Principal Usuario registrado Precondición El usuario está registrado y ha iniciado sesión Postcondición Se inicia la sesión en el chat. Curso típico de acontecimientos Actor Sistema 1. El usuario registrado pide acceder al chat. 2. El sistema inicia sesión en el chat, con el nombre de usuario de la sesión. 3. El sistema muestra la página con el chat cargado. Cursos Alternativos - 40 II.3.3. Casos de uso: Usuario publicador El usuario publicador hereda todos los casos del usuario registrado, y por lo tanto también los el usuario visitante, excepto, el caso de uso de registrarse, ya que el usuario ya se encuentra en el sistema. II.3.3.1. Diagrama SISTEMA Editar artículo Subir archivos Crear artículos Usuario publicador 41 II.3.2.2. Especificación Caso de Uso: Editar artículo Caso de Uso: Editar artículo Descripción Un usuario publicador quiere modificar un artículo del sistema. Actor Principal Usuario publicador Precondición El usuario está registrado y ha iniciado sesión. Postcondición Se modifica el artículo Curso típico de acontecimientos Actor Sistema 1. El usuario pide modificar un artículo. 2. El sistema muestra el artículo a editar. 2. El usuario modifica el artículo. 3. El sistema guarda la nueva información y muestra el artículo modificado. Cursos Alternativos Caso de Uso: Crear artículo Caso de Uso: Crear artículo Descripción Un usuario publicador quiere crear un nuevo artículo. Actor Principal Usuario publicador Precondición El usuario está registrado y ha iniciado sesión. Postcondición Se crea el artículo Curso típico de acontecimientos Actor Sistema 1. El usuario pide crear un artículo. 2. El sistema muestra un editor de texto para crear el artículo. 2. El usuario introduce los datos. 3. El sistema guarda el nuevo artículo. Cursos Alternativos - 42 Caso de Uso: Subir archivos Caso de Uso: Editar artículo Descripción Un usuario publicador quiere subir archivos al sistema. Actor Principal Usuario publicador Precondición El usuario está registrado y ha iniciado sesión. Postcondición Se sube un archivo al servidor Curso típico de acontecimientos Actor Sistema 1. El usuario pide subir un archivo. 2. El sistema muestra un cuadro buscar para escoger el archivo. 3. El usuario selecciona el archivo. 4. El sistema guarda el archivo en el servidor. Cursos Alternativos 4a.La extensión del archivo no es válida para guardarla en el servidor. 4a1. El sistema notifica al usuario que la extensión del archivo a subir no está permitida. 4a2. El caso de uso continúa en el paso 3. 43 II.3.3. Casos de uso: Usuario administrador El usuario administrador controla tanto el back-end como el front-end y por tanto tiene el control total del sitio. Ahora mostraremos algunas funcionalidades que puede hacer el usuario administrador. II.3.3.1. Diagrama SISTEMA Limpiar memoria Asignar permisos a usuarios Eliminar usuarios Usuario administrador 44 II.3.2.2. Especificación Caso de Uso: Limpiar memoria Caso de Uso: Limpiar memoria Descripción El administrador hace una limpieza de la caché. Actor Principal Usuario administrador Precondición El usuario ha iniciado sesión en el back-end. Postcondición Se elimina la caché Curso típico de acontecimientos Actor Sistema 1. El usuario pide eliminar la caché. 2. El sistema muestra que cache quiere eliminar si la del sitio o la del administrador. 2. El usuario selecciona la que desea. 3. El sistema elimina la caché seleccionada. Cursos Alternativos Caso de Uso: Eliminar usuario Caso de Uso: Eliminar usuario Descripción El administrador quiere eliminar un usuario del sistema. Actor Principal Usuario administrador Precondición El usuario está registrado en el sistema. Postcondición El usuario es eliminado del sistema. Curso típico de acontecimientos Actor 1. El administrador pide ver usuarios Sistema los 2. El sistema muestra registrados en el sistema. los 2. El administrador selecciona uno. 3. El sistema elimina al usuario. Cursos Alternativos 45 usuarios Caso de Uso: Asignar permisos a usuarios Caso de Uso: Asignar permisos a usuarios Descripción El administrador asigna permisos de publicador o administrador a un usuario. Actor Principal Usuario administrador Precondición El usuario está registrado en el sistema. Postcondición El usuario pasa a ser usuario administrador o publicador Curso típico de acontecimientos Actor 1. El administrador pide ver usuarios Sistema los 2. El sistema muestra registrados en el sistema. 2. El administrador selecciona usuario y el rango a asignar. los usuarios al 3. El sistema asigna los nuevos permisos al usuario. Cursos Alternativos - 46 CAPÍTULO III. Implementación En el momento de iniciar este proyecto el sitio web, como se ha dicho anteriormente, estaba desarrollado en Joomla 1.0, y por tanto mantendremos el mismo gestor de contenidos ya que actualmente es uno de los que ofrecen mayores funcionalidades, seguridad y soporte, teniendo en cuenta que es de código libre (gratuito), ya que los CMS comerciales tienen un coste elevado, con valores que oscilan entre 5.000 y 100.000 euros (22). Actualizaremos su versión de 1.0 a 1.5, ya que la versión 1.0, no tiene soporte de Joomla y la versión 1.5 además de tener soporte, es más segura, más rápida y más fiable. Por tanto lo primero que haremos será una migración a la versión 1.5.22 de Joomla, que actualmente es la última. Joomla 1.5.22 requiere versiones mínimas de PHP 4.3.10 y de MySQL 3.23, versiones que el hosting que alojaba el sitio sí que cumplía, pero para otras funcionalidades, como por ejemplo el foro, necesitamos las versiones mínimas de PHP 5.2.3 y de MySQL 5.0.3, que no están soportadas por el hosting que alojaba el sitio web de Jo Existeixo. Dado que para poder realizar el proceso de migración y upgrading del sitio requeríamos de mejores servicios realizamos un estudio de mercado de diferentes compañías de hosting, que explicamos más adelante. Una vez contratado el hosting y hecha la migración procedemos a la instalación, modificación y configuración de las distintas funcionalidades, que los miembros de la junta de Jo Existeixo, nos han pedido para su nuevo sitio web. Así mismo también rediseñaremos la plantilla, adaptándola a los estándares de accesibilidad (14) (19). Para empezar el nuevo proyecto, realizamos un análisis de requisitos (véase Capítulo II), para saber qué conservaba y qué necesidades había. Hosting Realizamos la búsqueda de información sobre distintos hosting, dado que el que había en el momento de iniciar el proyecto era “Nominalia”, caduca en breve y no cumplía con los requisitos técnicos para el correcto funcionamiento del sistema. Para ello analizamos cuatro opciones distintas, Se puede ver el resultado de este análisis en el Anexo 4. Hosting, donde mostramos una tabla con las distintas características que son necesarias y/o deseables de un servicio de host y de dominio y las diferentes compañías que estudiamos. 47 Como puede verse en el estudio descartamos Nominalia y Hostalia, primero, por su precio elevado, aunque la oferta del primer año es asequible, pero en los siguientes años el precio se eleva considerablemente, y segundo porque no ofrecen las versiones de PHP y MySQL que se requieren para Joomla 1.5.23. Por lo tanto nos quedan 1and1 y Fatcow. El primero tiene un precio asequible, pero sólo nos ofrece una base de datos, y diez cuentas de correo con una capacidad máxima en el servidor de 1GB, mientras que en el segundo, dispondríamos de cuentas de correo y capacidad ilimitadas. Hemos elegido Fatcow como proveedor de dominio y de alojamiento, tanto por los motivos anteriores como por su tiempo de respuesta de atención al cliente, ya que es inmediata (Chat, correo, teléfono) durante los siete días de la semana, las 24 horas del día, solucionan todos los problemas o consultas en un espacio muy reducido de tiempo (menos de una hora). Migración Antes de iniciar el proceso de migración a la versión 1.5 de Joomla, como medida de seguridad, realizamos una copia de seguridad de todo el sitio. Para poder llevar a cabo el proceso de migración, descargamos e instalamos un componente de Joomla 1.0 llamado “com_migrator”, Realizamos la preparación del componente “com_migrator” seleccionando todos los artículos, categorías, secciones, usuarios, entre otros, así como los componentes que vamos a migrar (como por ejemplo JoomFish!), y el propio componente nos crea un script de migración para la nueva versión. También necesitamos descargar y subir al servidor la última versión de Joomla, en este caso la versión 1.5.22 (23), una vez obtenida la nueva versión en el servidor y el script de migración de la versión anterior, precedemos a la instalación/migración del sitio web de Jo Existeixo. (Véase manual de instalación de Joomla (24)). Una vez efectuada la migración de la base de datos, descargamos (desde el sitio oficial (25)) e instalamos la extensión actualizada de JoomFish! versión 2.0.4 para Joomla 1.5, y configuramos los idiomas deseados. Intentamos utilizar el componente GTranslate, ya que hace traducciones automáticas utilizando el traductor de Google, pero había un problema, y es que también traduce el nombre de la organización Jo Existeixo a “Yo Existo”, “I Exist”, y por tanto se descartó dicho componente. También 48 instalamos la plantilla “School time” (26), y por último cambiamos el apuntador del sitio web de Jo Existeixo, a la versión 1.5, así la nueva página está actualizada y en funcionamiento. Hemos de decir que al realizar la migración han aparecido una serie de errores: Problema de pérdida de información de la base de datos. Al hacer la migración se perdieron datos en la base de datos, así como las traducciones que teníamos con el componente Joom!Fish, en los datos originales se perdieron datos por la codificación UTF-8 como por ejemplo, cuando llegábamos a un acento, apóstrofe, etc. Para solucionarlo se tuvo que ejecutarlo manualmente, es decir, para que la página pudiera estar en funcionamiento, se tuvo que coger la información de la base de datos de respaldo que se hizo en Joomla 1.0 y hacer un copiar y pegar de la información. Problema de pérdida de ficheros. Al realizar la migración no se copiaron los ficheros ni las imágenes almacenadas en Joomla 1.0 ya que no estaban ubicados en la base de datos, y por tanto se tuvieron que volver a subir mediante FTP a sus respectivos directorios. Problemas con el menú Joom!Fish. Una vez hecha la migración, instalamos el Joom!Fish, y pero no podíamos entrar a su panel de control, pero si a sus funcionalidades internas, para solucionarlo, mediante MySQL entramos en la base de datos, en la tabla jos_components, registro Joom!Fish, y allí cambiamos manualmente el valor del parámetro showPanelNews a de 1 a 0 (27). Una vez resueltos todos los errores, tenemos un sitio web migrado a Joomla 1.5.22, este sitio contiene la misma información y funcionalidades que el de la versión 1.0. A partir de este momento, tenemos hecha la actualización de la versión de Joomla y el cambio de hosting. Desde que se empezó el proyecto, creamos un sitio web de Joomla, en local, es decir, en el propio ordenador, que ha servido de pruebas y en el cual se han ido instalando y desinstalando distintos componentes y módulos (que más adelante explicaremos). En el nuevo servidor, instalamos una nueva versión de Joomla, en este caso la 1.5.22, ya que acababa de salir, y con toda la información que teníamos en el antiguo sitio web, dicho sitio será que él estará visible una vez terminado el proyecto, y por lo tanto, lo primero que se hizo fue actualizar toda la información y links. 49 Plantilla Para el nuevo sitio necesitamos una plantilla rápida de cargar, con optimización para búsquedas SEO ( del inglés Search Engine Optimizer, en castellano Optimizador de Buscadores) (8) (9), gratuita y con numerosas posiciones para insertar las funcionalidades solicitadas, después de mucho buscar, la plantilla que finalmente se eligió, fue “afterbuner” (28), véase Figura 6. Esta plantilla tiene 18 posiciones, es compatible con la mayoría de navegadores, cumple con el estándar de W3C y está optimizada para SEO. Figura 6. Se muestra el estado original de la plantilla Afterburner, imagen obtenida de http://demo.rockettheme.com/free/afterburner/ En dicha plantilla, se crearon dos posiciones nuevas, una fue para poner los idiomas y la elección del tamaño de letra, y otra para el recuadro de búsqueda. El aspecto del sitio viene dado por el diseñador Enric Cala, un amigo del presidente de la asociación Jo Existeixo, manteniendo los colores y estilos que hace tiempo él creó para la asociación en trípticos y notificaciones. De esta manera el sitio mantiene la línea corporativa la asociación. 50 Para adecuar el diseño a las peticiones del señor Cala fue necesario cambiar el fichero de estilos (CSS). A continuación, en la Figura 7, mostramos el diseño final de la plantilla, se puede observar que el fondo de la página es de color blanco, y el color de letra es gris, en los menús se ha utilizado el color amarillo, ya que es el originario de la asociación, con letra de color blanco, el color negro únicamente aparece en los enlaces. En la parte superior, vemos en los lados derecho e izquierdo, las dos posiciones nuevas creadas para insertar el módulo de buscar, el de los idiomas y del tamaño de letra, añadiendo también un fondo de color amarillo. Modificamos también el espacio para insertar el logo, y al artículo de “Bienvenidos a Jo Existeixo” se le puso de fondo una parte del logo de Jo Existeixo. Figura 7. Imagen que muestra el nuevo diseño de la página principal del sitio web de Jo Existeixo. Imagen obtenida de www.joexisteixo.org Módulos y componentes Como se ha mencionado anteriormente, para cumplir con los requisitos del sitio web, se hemos probado distintos módulos y componentes, obtenidos de sus sitios oficiales, y accediendo a ellos desde el sitio de extensiones de Joomla (29). Todos los módulos y componentes utilizados son de código libre. 51 A continuación se muestran los módulos y componentes, que se han utilizado y los que se han tenido que configurar para poder adaptarlos al sitio. Para ver el resto de módulos y complementos con sus respectivas versiones véase el Anexo 1. Especificación técnica. Los componentes que han sido configurados son los siguientes: Utilizamos para crear el chat de Jo Existeixo el componente jPFChat (30), y una vez instalado, modificamos los canales del chat, ya que sólo habrá un canal para todos los usuarios, también se creó un filtro de palabras prohibidas, con el fin de que si un usuario las escribiese, aparecerían codificadas con asteriscos (*). En el componente JoomFish! (25), solamente añadimos los idiomas deseados (castellano, catalán e inglés) e insertamos las traducciones del contenido en cada idioma. El foro previsto a utilizar es el Kunena 1.6.1 (31), es gratuito, y su última versión está en castellano y catalán. Para poder adaptarlo al sitio web se modificamos las categorías del foro y configuramos parámetros y permisos de cara a los usuarios, como por ejemplo, no modificar ni postear las normas de uso, poder borrar sus propios post, entre otros. Asimismo instalamos un nuevo editor JCE 1.5.75 (32), el cual ofrece una mejora en la vista para el usuario, y más funcionalidades que los incorporados de serie, como un componente para facilitar la subida de archivos al servidor (para usuarios Publicadores). A continuación se presentan los módulos que han sido configurados: Para hacer más fácil la incorporación de archivos al servidor, se instalamos un módulo llamado “EasyFileUpdate” (33), de serie solamente se podían subir imágenes y vídeos, lo hemos modificado de tal manera que, ahora permiten añadir ficheros de tipos diversos (PDF’s, PowerPoint, etc.). Para poner los enlaces de enlace a facebook y Twitter, utilizamos el módulo “Nice Social Bookmark” (34), configuramos los enlaces y redireccionándolos a cada una de las cuentas de facebook y twitter respectivamente. 52 Para el chat del facebook hemos utilizado el módulo “Facebook Live Stream” (35) y hemos configurado los enlaces hacia la página de Facebook de Jo Existeixo. También incorporamos un “widget” (8) (9) del tiempo en Barcelona, para esto creamos un módulo personalizado en HTML, e insertamos un código (36), previamente configurando unos parámetros en dicha página. Para poder visualizar los ficheros PDF desde el mismo sitio sin necesidad de abrirlos, instalamos el conector llamado “embed pdf” (37), para poder utilizarlo, hemos tenido que insertar un pequeño código en el sitio en que se quiera mostrar el PDF, por ejemplo en el artículo de recetas, el código sería el siguiente. {pdf}Ruta_del_archivo_pdf|height:altura|width:anchura|app: aplicación_para_abrirlo{/pdf} Para poder abrir el archivo PDF tenemos dos opciones, una es utilizando la herramienta de google para webs que puedan abrir PDF’s (app:google), y la otra es utilizar la aplicación de adobe (app:adobe), insertada en los navegadores, y observamos que manejando la aplicación de google tardaba menos tiempo en abrir el documento, por este motivo utilizamos app:google. Vemos ahora el ejemplo completo para abrir el PDF de recetas de concina. {pdf}http://www.joexisteixo.org/media/Martinecat.pdf|height:1020|width:99%|app:google{/pdf} Problema con el visor de PDF’s Como hemos comentado anteriormente decidimos utilizar la aplicación de google para abrir el PDF, pero vimos que para el navegador Internet Explorer, no era compatible, y por lo tanto probamos con la aplicación de adobe, y no daba ningún problema, y creamos el siguiente código: 53 {source} <?php $navegador=getenv("HTTP_USER_AGENT"); if(preg_match("/MSIE/i","$navegador")) { ?><p>{pdf}http://www.joexisteixo.org/media/Martinecat.pdf|height:1020|width:99%|app:adobe{/pdf}</p><?php } else if (preg_match("/Mozilla/i", "$navegador")) { ?> <p>{pdf}http://www.joexisteixo.org/media/Martinecat.pdf|height:1020|width:99%|app:google{/pdf}</p><?php } else { ?><p>{pdf}http://www.joexisteixo.org/media/Martinecat.pdf|height:1020|width:99%|app:google{/pdf}</p><?php } ?> {/source} Con dicho código, lo que se hace es comprobar qué navegador se está utilizando, y si se utiliza Internet Explorer, abrimos el archivo con la aplicación de adobe, y si se utiliza Firefox u otro navegador se abre con la aplicación de google, que es más rápida. Donaciones La asociación quería un apartado para hacer aportaciones económicas y se barajó la opción de un aplicativo de “La Caixa” obteniendo así una mayor seguridad para los donantes y evitar posibles fraudes, pero esta opción finalmente no se ha llevado a cabo, ya que “La Caixa” se llevaba una alta comisión en cada donación que se hiciera a la asociación. Artículos Todos los artículos se han categorizado y se han actualizado la información, especialmente en la Junta directiva, los enlaces y prestaciones y ayudas que están actualmente en funcionamiento. 54 SEO Un aspecto fundamental a ser tomado en cuenta cuando se lanza un sitio web es el posicionamiento en buscadores. A fin de establecer la infraestructura básica para el posicionamiento del nuevo sitio www.joexisteixo.com, hemos definido las palabras claves (como parte de los metadatos) para cada artículo. Las palabras claves que se han elegido son: pluridiscapacitat, pluridiscapacidad, asociación de discapacitados, associació discapacitat, ajuda famílies discapacitat, ayudas familias discapacitadas, discapacitat, discapacitados, discamercat. Estas palabras clave están escritas en los dos idiomas oficiales de la comunidad autónoma de Cataluña, el catalán y el castellano. También hemos incluido el mapa del sitio web que como comentaremos más adelante hemos dado de alta en la herramienta de Google para webmasters. Con esto facilitamos el indexamiento de las páginas del sitio por este motor de búsqueda. W3C El World Wide Web Consortium (W3C) es una comunidad internacional que desarrolla estándares que aseguran el crecimiento de la web a largo plazo y controla que se cumplan estos estándares de programación y de diseño de las páginas webs. El nuevo sitio www.joexisteixo.org fue sometido a los validadores de XHTML (38), y CSS (39), de W3C. En relación al código, fue necesario adaptarlo a los estándares, ya que en la modificación del diseño y de algunos módulos se incumplían dichas normas y no fueron aceptados. Una vez modificados obtuvimos los certificados de W3C de XHTML 1.0 y CSS 2.1. Iniciativa de Accesibilidad Web (Web Accessibility Initiative WAI) La Iniciativa de Accesibilidad Web, WAI, pertenecientes al W3C representa un camino para diseñar una web accesible, ya que siguen una serie de estándares de accesibilidad que ayudan a los diseñadores y desarrolladores web a identificar los puntos claves al optimizar una web desde el punto de vista de la accesibilidad. Hay tres niveles A, AA, AAA, correspondiendo respectivamente a criterios mínimos de accesibilidad, extendidos, y accesibilidad máxima (40). El sito www.joexisteixo.org, cumple las pautas que son aplicables de prioridad 1, y un subconjunto de las pautas de prioridad 2 y 3. No podemos optar a la doble A, porque si se deshabilita el Java Script, las funcionalidades del audio quedarían inhabilitadas, y 55 queremos que personas con problemas visuales puedan acceder a la información, Este aspecto sería superable utilizando un conector de audio programado utilizando el lenguaje PHP o HTML5, por ejemplo. No obstante, cumple con prioridades 2 y 3, en el aspecto visual al ver la web en blanco y negro y sin hoja de estilos. Actualización Durante todo este tiempo, de creación del sitio, la versión de Joomla 1.5.23 fue liberada, y por razones de seguridad actualizamos nuestro sitio a dicha versión, la actualización consistió en descargarse un paquete de datos (41), y mediante FTP (8) (9), subirlos al servidor y reemplazar los existentes, esto siempre haciendo antes un backup, por si había algún error durante el proceso de actualización. Seguridad En el momento de contratación del hosting, también se contrató un servicio de seguridad, para nuestro sitio esté protegido de cualquier vulnerabilidad. Dicho servicio tiene el nombre de “SiteLock” (42), para poder insertarlo en la página se tuvo que acceder a la cuenta del hosting en fatcow (43), y darse de alta para habilitar el servicio, obtuvimos un trozo de código, que nos muestra una insignia de la empresa, para darle confianza a los usuarios. Otro mecanismo de seguridad es el componente “Akeeba Backup”, que permite hacer copias de seguridad (backup), tanto de la base de datos como del sitio, es decir, es una herramienta para que el administrador respalde todos los archivos, fotos, documentos, plantillas que hay en el servidor, mediante un simple clic. Otro mecanismo de seguridad está basado en las recomendaciones de Joomla (44), como utilizar un servidor con PHP5 (8) (9), apache, no habilitar el usuario anonimous en FTP (8) (9), ajustar permisos de usuarios, tanto para el sitio web, como para los archivos que componen dicho sitio 755 para directorios, y 644 para archivos, vaciar la caché, crear copias de seguridad, eliminar el usuario Admin y los módulos y componentes que no se utilizan, entre otros. Herramientas de Google Para controlar las visitas del sitio web, utilizaremos las herramientas de Google. A continuación se especifican: 56 Google analytics. Nos proporciona información muy valiosa sobre el tráfico del sitio web, es decir, que páginas visita más el usuario, en que página abandona nuestro sitio web, cuantos usuarios nuevos nos han visitado, cuantos usuarios entran asiduamente, etc. (45). Para poder utilizar el servicio, es necesario darse de alta (45), además, hay que colocar nuestro sitio web para obtener un código de Google, y con dicho código, insertarlo en nuestra web justo antes de cerrar el “head”. Google Webmaster tools. Es un conjunto de herramientas que permite a los webmasters hacer que los sus sitios web sean amigables para Google. Entre otras cosas, a través del envío del mapa del sitio (sitemap) se facilita el rastreo de las páginas del sitio por el robot de google (Googlebot). También permite visualizar cuántos enlaces apuntan a los sitios gestionados, monitorización de las palabras utilizadas en la búsqueda, verificación de software malicioso, etc. (46). Para poder utilizar el servicio, hay que darse de alta (46), una vez dados de alta se ha de poner nuestro sitio web y descargar y subir un fichero mediante ftp, para comprobar la identidad del sitio. Una vez comprobada, se puso el sitemap, para que el “robot” de google, acceda a todos los apartados de nuestro sitio web, pueda indexarlos correctamente, compruebe que los links no son obsoletos y que no haya ningún software malicioso en nuestro sitio web. 57 CAPÍTULO IV. Planificación y estudio económico En este capítulo, se especifica la planificación, una previsión del coste y el tiempo del trabajo ejecutado. IV.1. Planificación El proyecto se planteó en enero del 2011, con una duración de un cuatrimestre, para una dedicación de 6 horas diarias de lunes a viernes para presentarse a principios de junio del mismo año hacer su presentación. La planificación consta de 5 fases • Fase 1: Estudio del proyecto. • Fase 2: Análisis de requisitos. • Fase 3: Implementación y diseño • Fase 4: Pruebas • Fase 5: Documentación de la memoria La siguiente Tabla 1, muestra un diagrama de Gantt simple con la planificación de dichas fases. Tabla 1. Diagrama de Gantt inicial simple Este diagrama inicial ha sufrido modificaciones por diversos imprevistos y problemas encontrados durante el transcurso del proyecto, especialmente en la elaboración de la memoria y las pruebas para asegurarse que, todas las funcionalidades del sitio están operativas. Esto supuso posponer la fecha de la defensa del proyecto y aumentar las horas de dedicación diarias. 58 En la siguiente Tabla 2 se muestra el diagrama de Gantt final. Tabla 2. Diagrama de Gantt final simple A continuación mostramos la duración de las distintas tareas. Tabla 3. Diagrama de Gantt simple A principios de abril, una vez definidos el análisis de requisitos y que diseño tendría el sitio web, se empezó a documentar la memoria de éste. La Tabla 4, muestra detalladamente las 140 horas de estudio inicial para llegar al análisis del proyecto, en el que se han invertido 110 horas. 59 Tabla 4. Diagrama de Gantt. Partes: Estudio del proyecto y Análisis de requisitos Se puede observar en Tabla 4, que una de las tareas listadas corresponde a diversos cursos de formación. En efecto durante la elaboración del proyecto hemos asistido a los cursos que se detallan en Anexo 5. Cursos de formación, con el fin de adquirir los conocimientos necesarios para mejorar la garantía y calidad del proyecto. La Tabla 5, se muestran detalladamente las 107 horas invertidas en el diseño del nuevo sitio web y las 205 horas invertidas en su implementación. Tabla 5. Diagrama de Gantt. Partes: Diseño e Implementación 60 La Tabla 6 indica la duración de las pruebas y la documentación. La tarea de testear se solapa con la de implementación, ya que se consideró oportuno ir haciendo pruebas a medida que se iban añadiendo funcionalidades. Las horas dedicadas al testeo son 180, mientras que a la elaboración de la documentación hemos dedicado 304 horas. Tabla 6. Diagrama de Gantt. Partes: Test/Pruebas y Documentación IV.2. Coste del proyecto Como sucede en la planificación temporal, es muy importante realizar un presupuesto inicial del proyecto para ver su grosor a nivel económico. Esto permite hacer una predicción económica del proyecto y saber si se dispone de recursos suficientes para su realización. A pesar de todo, el coste real del proyecto se calcula al finalizar éste ya que puede haber alteraciones en su cálculo inicial. Hay dos grandes grupos dentro de los costes temporales: el coste del personal encargado en llevar a cabo todas las fases del proyecto y el coste del material usado para ello. Cuando se calcula el coste total de un proyecto aparecen también factores de desplazamiento, imprevistos, sistema eléctrico y otros. Éstos aumentan la complejidad del cálculo del coste final, por lo que no los hemos considerado. 61 Coste del personal Este bloque es el que más recursos económicos consume. En este proyecto, al ser un proyecto final de carrera, no hay un personal especializado en cada una de las tareas, sino que solamente hay una persona, que se encarga de todas las tareas. Para mostrar el cálculo que supondría la realización de este proyecto hemos supuesto lo siguiente: Que hay distintos roles encargados de realizar las tareas que se han especificado en el diagrama de Gantt. En un proyecto informático intervienen los roles de director de proyecto, analista, diseñador y programador. En este caso, el director del proyecto será a su vez el analista y se encargará de toda la parte de especificación y análisis del problema. El diseñador se encarga de realizar el diseño del sistema y el programador de codificarlo. El programador y el diseñador seleccionados para la realización del proyecto son becarios y el analista es profesional, a continuación se muestra el precio por hora de cada rol, obtenidos de la página del Univers de la UPC (47): • Analista: 20 € / hora * • Diseñador: 6 € / hora • Programador: 6 € / hora (*) Se ha considerado 20 € la hora, ya que hace una faena más técnica y sería un poco más del triple que cobra un diseñador/programador. TAREA Estudio del proyecto ROL HORAS COSTE Analista /Programador 130 h 2.600 € Especificación preliminar del PFC Analista 30 h 600 € Especificación preliminar de los casos de uso Analista 30 h 600 € Definición de requisitos del proyecto Analista 30 h 600 € Definición definitiva de los casos de uso Diseño Analista 30 h 600 € Buscar diseño preliminar Seleccionar diseño final Diseñador Diseñador 13 h 20 h 78 € Estudio de Joomla + Cursos + Otros Análisis de requisitos 62 120 € Modificar la plantilla del diseño final Implementación Programador 50 h 300 € Instalación y migración de Joomla Programador Análisis y contratación del nuevo hosting Analista Buscar, instalar y configurar módulos/componentes Programador 7h 15 h 42 € 300 € 180 h 1.080 € Reuniones Analista 20 h 400 € Actualización de Joomla Programador 2h 12 € Seguridad del sitio Programador 2h 12 € SEO + Analytics + WebMasterTools Test / Pruebas Programador 30 h 180 € Prueba de la plantilla Programador 20 h 120 € Prueba de módulos Programador 180 h 1.080 € Prueba de enlaces Documentación Redactar memoria Programador 2h 12 € 304 h Analista 152 h 3.040 € Becario 152 h 912 € Preparar presentación Analista 10 h 200 € Defender proyecto Analista 2h 40 € 946 h 12.928 € Se observa que el desarrollo total del proyecto tiene un coste de 12.928 €. Pero si quitamos la parte de redactar la memoria, quedaría en 8.736 € Coste del material En el coste material se cuenta el software y el hardware utilizado. Hemos trabajado con el sistema operativo Windows7 utilizando programas que se incluían en el sistema o que se han conseguido mediante la licencia de estudiante y todos los módulos o componentes usados son de código libre, por lo que no conllevan coste adicional. 63 Hemos tenido que contratar un nuevo hosting, pero eso sí mucho más barato que el que había anteriormente, con un coste de 60 €. Además se ha utilizado un portátil de coste 800 € incluyendo el mencionado sistema operativo. Por lo tanto el coste total del material sube a 860€. Coste total El coste total no es más que la suma de los dos costes anteriores: Coste total = 8.736 € + 860 € = 9.596 € 64 CAPÍTULO V. Conclusiones y mejoras futuras En este trabajo hemos actualizado el sitio web de las Asociación Jo Existeixo convirtiéndolo en un sitio moderno, “alegre”, dinámico y funcional. Para ello hemos hecho un “upgrade” de la versión de Joomla que soportaba el sitio y hemos migrado todos sus contenidos a esta nueva versión 1.5.23 (que es la última versión estable de Joomla) Además le hemos agregado las siguientes funcionalidades: Registro de usuarios. Calendario. Módulo del tiempo. Aumentar, reducir tamaño de letra. Buscador. Entretenimiento mediante dos mini juegos. Chat y comunidad. Foro para el discamercado. Conversor de texto a audio en los artículos. Visualización de PDF en línea. El sitio resultante cumple con los criterios de accesibilidad de la Generalitat de Cataluña y del W3C, y los requisitos de posicionamiento en buscadores (SEO). Como mejoras futuras proponemos: Migración a versión 1.6. Además de ir actualizando la versión de Joomla y sus componentes para obtener un mayor grado de seguridad en el sitio, en la página de Joomla nos hacen unas preguntas por si queremos instalar la versión 1.6. (48): Hemos de mirar si tenemos la plantilla y el código adaptado a la versión 1.6, así como la compatibilidad de las extensiones para Joomla 1.6, en nuestro caso, las respuestas no serían todas afirmativas, y si no se superan todas estas preguntas, es mejor no actualizar a dicha versión, para más información léase el artículo de Joomla (48). Estudio del SEO, ya que se ha dado de alta por primera vez en “Google analytics” y “Google Webmaster Tools”, para conseguir aumentar las visitas en el sitio web de Jo Existeixo y así, poder captar nuevos asociados. 65 Sistema de donaciones. Como alternativa al servicio de donaciones de “La Caixa”, se podría hacer un estudio, de crear una cuenta PayPal, y así poder hacer donaciones on-line. Accesibilidad. Comprobar si aparecen nuevas normas de accesibilidad para garantizar que el sitio web las cumpla. 66 Bibliografía 1. Sitio web de Joomla Spanish http://www.joomlaspanish.org/. [En línea] 2. Sitio web de la Ayuda de Joomla http://ayuda.joomlaspanish.org/ayuda-joomla/. [En línea] 3. Página web wikipedia en castellano: http://es.wikipedia.org/. [En línea] 4. Página Web de CMS, alojada en wikipedia en castellano: [http://es.wikipedia.org/wiki/Sistema_de_gesti%C3%B3n_de_contenidos]. [En línea] 5. Artículo de, Ruyman Gil. ¿CMS o desarrollo web personalizado?, 2008, http://www.yafaonline.com/portal/joomla/joomla-noticias/cms-o-desarrollo-webpersonalizado.html. [En línea] 6. Gary Mailer, Michael K. Glass, Jason Gerner, Mike Glass, Jeremy Stolz, Yann Le Scouarnec, Elizabeth Naramore. ECM/CMS: Content Managements http://books.google.es/books?id=tHA_2RMqsZ0C&printsec=frontcover&dq=cms&hl=es &ei=Wo. 2008. 7. Robertson, J. How to evaluate a content management system. http://www.steptwo.com.au/papers/kmc_evaluate/index.html. 2002. 8. Diccionario básico de tecnología, para el mundo de mac, http://www.faqmac.com/31544/diccionario-basico-tecnologia. [En línea] 9. Diccionario informático en español de la web del programador http://www.lawebdelprogramador.com/diccionario/#. [En línea] 10. Gonzalez, Jorge. Distintos tipos de CMS http://es.scribd.com/doc/9784576/Distintos-Tipos-de-CMS. [En línea] 11. Hanke, Johann-Christian. Joomla!: versión 1.5, crea y administra tu sitio web. s.l. : KnowWare E.U.R.L., 2008. 12. Sitio web de mambo, http://www.mamboserver.com/. [En línea] 13. Harwani, Bintu. Manual imprescindible de Joomla! (Traducción de: Foundation Joomla!). Madrid : Anaya Multimedia, 2010. 67 14. Accesibilidad, w3c. http://www.w3c.es/divulgacion/accesibilidad. [En línea] 15. Orwig, Paul. Documento con datos de los usuarios de la comunidad de Joomla http://groups.google.com/group/joomla-wg-community?pli=1. [En línea] 16. Página web de los principales miembros del proyecto de Joomla http://www.joomla.org/about-joomla/the-project/leadership-team.html. [En línea] 17. Sitio web de Jo Existeixo, http://www.joexisteixo.org/. [En línea] 18. Sitio web de plantillas de Raduga. http://www.joomla24.com/remository/Download/Templates_for_Joomla_1.5/Templates _from_Raduga/. [En línea] 19. Gencat, Accesibilidad. http://www.gencat.cat/web/cas/accessibilitat.htm . Accesibilidad Gencat. [En línea] 20. Larman, Craig. Applying UML and patterns: an introduction to object-oriented analysis and design and iterative development. s.l. : Prentice Hall PTR, 2005. 21. James Rumbaugh, Ivar Jacobson, Grady Booch. The Unified modeling language reference manual. s.l. : Addison-Wesley, 2005. 22. Sitio web Content Management overview, precios de los CMS http://tools.hartmancommunicatie.nl/. [En línea] 23. Descarga de Joomla 1.5. http://www.joomlaspanish.org/. [En línea] 24. Manual de instalación de Joomla: http://ayuda.joomlaspanish.org/ayuda-joomla/. [En línea] 25. Descarga de JoomFish: http://www.joomfish.net/downloads. [En línea] 26. Plantilla Siteground: http://www.siteground.com/templatepreview/joomla/siteground-j15-101. [En línea] 27. Solución error JoomFish http://www.joomfish.net/forum/viewtopic.php?f=42&t=2579&p=12112&hilit=internal+ser ver+error#p12112. [En línea] 68 28. Demo plantilla Afterbuner. http://demo.rockettheme.com/free/afterburner/. [En línea] 29. Extensiones de Joomla: http://extensions.joomla.org. [En línea] 30. Descargar del Chat http://www.jpfchat.com/. [En línea] 31. Foro Kunena http://www.kunena.org. [En línea] 32. Editor JCE para joomla http://www.joomlackeditor.com/. [En línea] 33. EasyFileUpdate, subir ficheros al servidor http://michaelgilkes.info/joomla-plugineasy-file-uploader/. [En línea] 34. Nice Social Bookmark, enlaces a Facebook y Twitter http://salamanderstudios.com/download,. [En línea] 35. Facebook Live Stream, chat facebook http://www.khawaib.co.uk/downloads/kafacebook-live-stream.html. [En línea] 36. El tiempo http://www.eltiempo.es/widget/. [En línea] 37. Embed PDF, visor de pdf's online http://tekdi.net/View-document-details/4-EmbedPDF-in-content-for-Joomla-1.5.html,. [En línea] 38. Validador de XHTML http://validator.w3.org/. [En línea] 39. Validador de CSS http://jigsaw.w3.org/css-validator/. [En línea] 40. Normas WAI. http://www.w3.org/TR/WAI-WEBCONTENT/. [En línea] 41. Actualización de Joomla 1.5.22 a 1.5.23 http://joomlacode.org/gf/project/spanish/frs/?action=FrsReleaseView&release_id=1452 5. [En línea] 42. Sitio de seguidad Site Lockhttp://www.sitelock.com/. [En línea] 43. Fatcow http://www.fatcow.com/. [En línea] 44. Normas de seguridad de Joomla. http://docs.joomla.org/Security. [En línea] 69 45. Google Analytics http://www.google.com/intl/es/analytics/ . [En línea] 46. Sitio web de Google WebMasterTools: http://www.google.com/webmasters/tools/?hl=es. [En línea] 47. Web Univers http://www.univers.upc.edu/comunitatupc/beques/models_impresos. [En línea] 48. Pagina web de una noticia para actualizar tu sitio a Joomla 1.6, página ubicada en http://www.joomlaspanish.org/noticias/191-noticias-16/402-actualizando-tu-sitio-ajoomla-16.html. [En línea] 49. Web de Jacob Nielsen www.useit.com. [En línea] 50. Web W3C. www.w3c.org. [En línea] 51. Normas WAI. http://www.w3.org/WAI/WCAG1AAA-Conformance.html.es. [En línea] 70 Anexo 1. Especificación técnica En este apartado veremos las especificaciones técnicas del sitio de Jo Existeixo. La versión de Joomla utilizada es la 1.5.23, ocupa aproximadamente 27 MB, y para poder instalar y usar Joomla se debe tener un servidor web (Apache es el recomendado), una base de datos (MySQL es la óptima) y el lenguaje de script del lado del servidor PHP, junto con módulos específicos que se activan en PHP para MySQL, XML y Zlib, entre otros. Ahora veremos los requisitos mínimos de cada versión del software que se necesita para tener instalado Joomla: Software Requisitos mínimos Recomendado Sitio Web PHP 4.3.10 4.4.7 MySQL 3.23.x o superior http://dev.mysql.com Apache 1.3 o superior http://httpd.apache.org http//php.net Fuente obtenida de: http://ayuda.joomlaspanish.org/index2.php?option=com_content&task=findkey&pop=1 &keyref=requisitos Se recomienda, por razones de seguridad hacer un backup cada dos semanas, por si hay algún problema tener siempre una versión bastante actual del sitio. También, se recomienda hacer mensualmente una limpieza de la memoria caché, con esto conseguimos limpiar ficheros generados por el servidor web y así evitar la entrada de hackers al sitio. Ahora nos centramos en los módulos y componentes del sitio web. En la siguiente tabla se muestran todas las posiciones de la plantilla que se ha utilizado y en cada posición nos mostrará los módulos, componentes, menús… que contiene el sitio web de Jo Existeixo. 71 debug footer bottom user9 user8 user7 user6 user5 user4 right user3 user2 user1 breadcrumb left advertisement nav top Módulo mod_footer mod_breadcrumbs mod_custom mod_mainmenu mod_mainmenu mod_login mod_whosonline mod_jflanguageselection mod_search mod_mainmenu mod_mainmenu mod_mainmenu mod_mainmenu mod_nice_social_bookmark mod_jalendar mod_custom mod_puzzlemania mod_pacman mod_poll mod_newsflash mod_easyfileuploader mod_facebook_live_stream lengua Titulo Pie de página Navegación Info y seguridad Menú principal Menú usuario Acceso Quien está en línea Idiomas Buscador Mapa del sitio Discamercado Comunidad Chat FB and Twitter Calendario Tiempo Puzle Pacman Encuestas JoExisteixo Informa Subir archivo Facebook live stream look Posición Para finalizar veremos una tabla con todos los módulos y componentes que se han instalado: Nombre Joomla Versión 1.5.23 Akeeba backup 3.2.4 Admin Tools Core 2.0.2 JCE administration Joom!Fish jPFChat Kunena 1.5.7.5 2.0.4 2.1.1 1.6.1 JMSitemap 1.0 enbedPDF easyfileuploader 1.8 0.5 Sourcerer 2.8.3 vozme2j 2.0 puzlezmania Pacman nice_social_bookmark facebook_live_stream jalendar Plantilla x x x x x x Descripción http://www.joomlaspanish.org/ Se encarga de hacer copias de seguridad de la base de datos como del sitio https://www.akeebabackup.com/download.html Se necesita para configurar las opciones de admin de akeeba https://www.akeebabackup.com/download.html Editor de texto http://www.joomlacontenteditor.net/downloads/editor/joomla15x/item/jceadministration-component Se encarga de gestionar las traducciones http://www.joomfish.net/downloads Chat de Jo Existeixo http://www.jpfchat.com/ Foro de Jo Existeixo http://www.kunena.org/download Se encarga de crear el mapa del sitio web http://www.juicymedia.co.uk/downloads/joomla-15xdownloads.html Se encarga de leer pdf's directamente en la web http://heinelt.info/index.php?option=com_content&view=article&id=34&Itemid=50 Permite subir archivos al servidor http://michaelgilkes.info/joomla-plugin-easy-file-uploader/ Permite insertar código php, en el editor y luego es interpretado por Joomla como tal http://www.nonumber.nl/extensions/sourcerer?tab=download Se encarga de hacer la conversión de texto a audio de los artículos http://joomlacode.org/gf/project/bot_vozme/frs/ Nos crea un puzle de una imagen http://extensions.joomla.org/extensions/sports-agames/games/13702 Juego del comecocos http://joomla.baronti.net/remository.html?func=fileinfo&id=8 Enlaces hacia facebook y twitter http://salamander-studios.com/download Chat del facebook http://www.khawaib.co.uk/downloads/ka-facebook-live-stream.html Calendario http://calendarium.ru/wiki/Joomla!:_Jalendar Afterburner http://demo.rockettheme.com/free/afterburner/ 73 Anexo 2. Manual de usuario publicador Para poder acceder al sistema, el usuario se ha de registrar mediante un formulario de entrada, escribiendo su nombre, nombre de usuario, contraseña y un correo electrónico, una vez se validen los datos, se le enviará un correo al nuevo usuario, para que valide mediante un enlace el proceso de registro, una vez abierto dicho enlace, el usuario ya estará activo para poder entrar en el sistema. Subir archivo Para subir un archivo se ha de clicar el botón “examinar”, y seleccionar el archivo de su ordenador, y a continuación clicar el botón “Upload”. Por seguridad del sitio, solamente están permitidos subir archivos del tipo imágenes (jpg, gif, bmp, png), PowerPoint, Word, y pdf’s. Crear artículo Para crear un artículo, el usuario tiene que haber iniciado sesión y seleccionar en el menú de usuario la opción “Publicar Artículo”, se le presenta la pantalla “Publicar artículo nuevo”, que la dividiremos en dos zonas. Figura 8. Imagen de la primera zona La Figura 8 contiene el campo de entrada en el que se puede titular el nuevo artículo los botones de Guardar y Cancelar y el editor de texto (WYSIWYG), donde se introduce el contenido. Si la noticia a insertar, es muy grande, contiene alguna imagen o se quiere insertar un archivo PDF, se recomienda hacer: 1. Insertar el titular de la noticia 2. Clicar en la parte inferior donde pone “Leer más” 3. Insertar el cuerpo de la noticia. a. Si se quiere insertar una imagen, se ha de clicar en la parte inferior donde pone “Imagen”, y seleccionar la imagen deseada. 75 b. Si se quiere insertar un archivo PDF, primero se ha de subir el archivo PDF y después se ha de clicar en “Insert Code” borrar lo que hay escrito y escribir el siguiente código: {source} <?php $navegador=getenv("HTTP_USER_AGENT"); if(preg_match("/MSIE/i","$navegador")) { ?><p>{pdf}http://www.joexisteixo.org/images/stories/NOMBRE_DEL_ARCHIV O.pdf|height:1020|width:99%|app:adobe{/pdf}</p><?php } else if (preg_match("/Mozilla/i", "$navegador")) { ?><p>{pdf}http://www.joexisteixo.org/images/stories/NOMBRE_DEL_ARCHIV O.pdf|height:1020|width:99%|app:google{/pdf}</p><?php } else { ?><p>{pdf}http://www.joexisteixo.org/images/stories/NOMBRE_DEL_ARCHIV O.pdf|height:1020|width:99%|app:google{/pdf}</p><?php } ?> {/source} En la parte del código de color rojo, que pone Nombre del archivo, se ha de poner el nombre del archivo que se ha subido anteriormente al servidor, por ejemplo si hemos subido el archivos joexisteixo.pdf anteriormente, en este caso tenemos que cambiar quedaría así {pdf}http://www.joexisteixo.org/images/stories/joexisteixo.pdf|height: 1020|width:99%|app:google{/pdf}</ 76 Figura 9. Imagen de la segunda zona La Figura 9 contiene las partes de categorizar el artículo, tiempo de publicación y metadatos, por tanto se han de configurar de la siguiente manera. • En el apartado de Sección y categoría, se ha de seleccionar “Noticias”. • Seleccionar la fecha de inicio y final de publicación, la fecha de Inicio predeterminada, es la del día actual, mientras que la de finalización no tiene caducidad, si se quiere modificar se ha de clicar al icono de la derecha y saldrá un calendario para escoger las fechas. • Descripción: Poner Jo Existeixo – Título del artículo • Palabras claves: Poner “pluridiscapacitat, discapacitat, Título del artículo, Jo Existeixo”, separadas por comas. Una vez completada la información introducida, puede almacenarla pulsando el botón Guardar, o anular la acción pulsando el icono Cancelar. 77 Modificar artículo En Joomla, los usuarios “Publicadores” pueden editar el contenido. Cuando acceden al sistema mediante su nombre de usuario y contraseña, pueden ver un pequeño icono de Edición encima del título de los artículos. Pulsando este icono se mostrará una página de edición del contenido, que tiene las mismas pantallas que hemos descrito para la creación de artículos de contenido. Desde aquí se puede editar el contenido y guardar el artículo que aparecerá automáticamente en la web. Eliminar tema/comentario del foro Una vez seleccionado el tema del foro que queremos eliminar, solamente tendremos que clicar al botón “Eliminar” y se eliminará el comentario o “Eliminar tema” y se eliminará todo el tema. 78 Anexo 3. Casos de uso Seguidamente veremos todos los casos de usos completos de todos los usuarios, recordando que el sistema tiene cuatro usuarios diferenciados, que son: usuario visitante, usuario registrado, usuario publicador y usuario administrador. Casos de uso: Usuario visitante Diagrama SISTEMA Registrarse Contactar Visualización de páginas Consultar enlaces Leer foro Cambiar idioma Cambiar tamaño de letra Usuario visitante Escuchar artículo Hazte socio Utilizar gadgets interactivos Compartir en Facebook 79 Especificación Caso de Uso: Registrarse Descripción Un usuario quiere registrarse en nuestra página web. Actor Principal Usuario visitante. Precondición El usuario no está registrado. Postcondición Se ha registrado un nuevo usuario en el sistema. Curso típico de acontecimientos Actor Sistema 1. El usuario pide registrarse en el sistema. 2. El sistema muestra los campos que hay que rellenar. 3. El usuario introduce sus datos. 4. El sistema comprueba que los datos estén correctos y manda un correo de confirmación al usuario. 5. El usuario confirma su registro con el link recibido en su correo. Cursos Alternativos 3a. La información entrada es incorrecta. 3a1. El sistema notifica al usuario que los datos son incorrectos. 3a2. El usuario entra de nuevo los datos. 3a3. El caso de uso continúa en el paso 3. 80 Caso de Uso: Contactar Descripción Un usuario quiere contactar con nosotros. Actor Principal Usuario visitante. Precondición Postcondición Se ha enviado un correo a la asociación Jo Existeixo. Curso típico de acontecimientos Actor Sistema 1. El usuario pide contactar con la asociación. 2. El sistema muestra los campos que hay que rellenar. 3. El usuario introduce los datos. 4. El sistema comprueba que los datos estén correctos y manda un correo con la información a Jo Existeixo. Cursos Alternativos - Caso de Uso: Visualización de páginas Descripción Un usuario quiere ver algún apartado de nuestra página web. Actor Principal Usuario visitante. Precondición Postcondición El sistema muestra la página pedida por el usuario. Curso típico de acontecimientos Actor Sistema 1. El usuario pide que se le muestre una página del sistema. 2. El sistema muestra la página deseada. Cursos Alternativos - 81 Caso de Uso: Consultar enlaces Descripción Un usuario quiere ver los enlaces. Actor Principal Usuario visitante. Precondición Postcondición Se ha enviado un correo a la asociación Jo Existeixo. Curso típico de acontecimientos Actor Sistema 1. El usuario pide que se muestren los enlaces. 2. El sistema muestra los enlaces. 3. El usuario selecciona el enlace que quiere visualizar. 4. El sistema abre una nueva ventana con la información seleccionada anteriormente. Cursos Alternativos - Caso de Uso: Leer foro (Discamercat) Descripción Un usuario quiere consultar el foro. Actor Principal Usuario visitante. Precondición Postcondición Se muestra un listado con los temas del foro. Curso típico de acontecimientos Actor Sistema 1. El usuario pide que se le muestre el foro. 2. El sistema muestra un listado con los temas del foro. Cursos Alternativos - 82 Caso de Uso: Cambiar idioma Descripción Un usuario quiere cambiar el idioma del sitio web. Actor Principal Usuario visitante. Precondición Postcondición Se cambia el idioma de toda la página web de Jo Existeixo. Curso típico de acontecimientos Actor Sistema 1. El usuario selecciona el idioma en que quiere ver el contenido. 2. El sistema muestra la página web con el idioma seleccionado previamente. Cursos Alternativos - Caso de Uso: Cambiar tamaño de letra Descripción Un usuario quiere cambiar el tamaño de letra del sitio web. Actor Principal Usuario visitante. Precondición Postcondición Se modifica el tamaño de letra de toda la página web de Jo Existeixo. Curso típico de acontecimientos Actor Sistema 1. El usuario selecciona si quiere aumentar, reducir o poner formato predefinido en el tamaño de la letra. 2. El sistema muestra la página web con el nuevo tamaño de letra seleccionado. Cursos Alternativos - 83 Caso de Uso: Escuchar artículo Descripción Un usuario quiere escuchar un artículo. Actor Principal Usuario visitante. Precondición Postcondición El usuario escucha el artículo. Curso típico de acontecimientos Actor Sistema 1. El usuario pide escuchar un artículo. 2. El sistema abre una nueva ventana, que carga el sonido del artículo. 3. El sistema reproduce el texto. Cursos Alternativos - Caso de Uso: Hazte socio Descripción Un usuario quiere hacerse socio de Jo Existeixo. Actor Principal Usuario visitante. Precondición Postcondición Se ha imprimido o descargado el formulario de inscripción de socio. Curso típico de acontecimientos Actor Sistema 1. El usuario pide hacerse socio. 2. El sistema muestra el formulario para imprimir y enviar mediante correo ordinario a la asociación. 3. El usuario se descarga/imprime el formulario de solicitud. Cursos Alternativos - 84 Caso de Uso: Utilizar gadgets interactivos Descripción Un usuario quiere utilizar los gadgets interactivos. Actor Principal Usuario visitante. Precondición Postcondición El usuario interactúa con el gadget. Curso típico de acontecimientos Actor Sistema 1. El usuario activa el gadget. 2. El sistema envía el control a una aplicación externa. Cursos Alternativos - Caso de Uso: Compartir en facebook Descripción Un usuario quiere compartir información mediante el muro del Facebook. Actor Principal Usuario visitante. Precondición Postcondición Se inicia la sesión del usuario. Curso típico de acontecimientos Actor Sistema 1. El usuario pide compartir comentarios en Facebook. En el menú, comunidad. 2. El sistema envía el control a la aplicación Facebook. Cursos Alternativos - 85 Casos de uso: Usuario registrado El usuario registrado hereda todos los casos de uso del usuario visitante, excepto, el caso de uso de registrarse, ya que el usuario ya se encuentra en el sistema. Diagrama SISTEMA Iniciar sesión Cerrar sesión Utilizar chat Jo Existeixo Publicar nuevo tema en el foro Responder tema en el foro Borrar sus mensajes en el foro Usuario registrado Pedir contraseña Pedir nombre de usuario Modificar cuenta 86 Especificación Caso de Uso: Iniciar Sesión Descripción Un usuario registrado en el sistema se identifica para acceder a su contenido. Actor Principal Usuario registrado Precondición El usuario está registrado. Postcondición Se inicia la sesión del usuario. Curso típico de acontecimientos Actor Sistema 1. El usuario registrado pide acceder a su cuenta. 2. El usuario registrado introduce sus datos. 3. El sistema comprueba que los datos estén correctos. 4. El sistema permite el acceso al usuario registrado. Cursos Alternativos 3a. La información entrada es incorrecta. 3a1. El sistema notifica al usuario que los datos son incorrectos. 3a2. El usuario entra de nuevo los datos. 3a3. El caso de uso continúa en el paso 3. 87 Caso de Uso: Cerrar Sesión Descripción Un usuario registrado quiere cerrar su sesión abierta en el sistema. Actor Principal Usuario registrado Precondición El usuario está registrado y tiene sesión abierta. Postcondición Se cierra la sesión del usuario. Curso típico de acontecimientos Actor Sistema 1. El usuario registrado pide cerrar su sesión. 2. El sistema cierra la sesión del usuario. Cursos Alternativos - Caso de Uso: Utilizar chat de Jo Existeixo Descripción Un usuario registrado quiere utilizar el chat de Jo Existeixo. Actor Principal Usuario registrado Precondición El usuario está registrado y ha iniciado sesión Postcondición Se inicia la sesión en el chat. Curso típico de acontecimientos Actor Sistema 1. El usuario registrado pide acceder al chat. 2. El sistema inicia sesión en el chat, con el nombre de usuario de la sesión. 3. El sistema muestra la página con el chat cargado. Cursos Alternativos - 88 Caso de Uso: Publicar nuevo tema en el foro Descripción Un usuario registrado quiere crear un nuevo tema en el foro. Actor Principal Usuario registrado Precondición El usuario está registrado y ha iniciado sesión. Postcondición Se crea un nuevo tema en el foro. Curso típico de acontecimientos Actor Sistema 1. El usuario introduce el título y el comentario del nuevo tema en el foro. 3. El sistema actualiza el foro con el nuevo tema. Cursos Alternativos - Caso de Uso: Responder tema en el foro Descripción Un usuario registrado quiere responder un tema del foro. Actor Principal Usuario registrado Precondición El usuario está registrado y ha iniciado sesión. Postcondición Se ha respondido un mensaje en el foro. Curso típico de acontecimientos Actor Sistema 1. El usuario selecciona el tema del foro. 2. El sistema muestra todos los comentarios del tema. 3. El usuario selecciona un comentario y lo responde. 4, El sistema actualiza el tema con el nuevo comentario. Cursos Alternativos - 89 Caso de Uso: Borrar sus mensajes en el foro Descripción Un usuario registrado quiere borrar un mensaje en el foro. Actor Principal Usuario registrado Precondición El usuario está registrado y ha iniciado sesión Postcondición Se elimina un mensaje del usuario en el foro. Curso típico de acontecimientos Actor Sistema 1. El usuario registrado selecciona el tema a eliminar. 2. El sistema muestra el tema seleccionado. 3. El usuario elimina el tema entero o un comentario. 4. El sistema actualiza el foro con el tema eliminado. Cursos Alternativos 3a. El comentario o tema no es del usuario. 3a1. El sistema notifica al usuario que no puede eliminar el tema. 3a2. El caso de uso continúa en el paso 1. 90 Caso de Uso: Pedir contraseña Descripción Un usuario registrado quiere pedir su contraseña al sistema. Actor Principal Usuario registrado Precondición El usuario está registrado. Postcondición Se envía la nueva contraseña al usuario. Curso típico de acontecimientos Actor Sistema 1. El usuario registrado pide al sistema que se le envíe su contraseña introduciendo su correo electrónico. 3. El sistema envía un correo con una clave de verificación. 4. El usuario introduce la clave recibida. 5. El sistema verifica y envía la nueva clave al usuario. Cursos Alternativos 2a.El correo electrónico no se encuentra en la base de datos. 2a1. El sistema notifica al usuario que el correo electrónico es incorrecto. 2a2. El usuario entra de nuevo el correo. 2a3. El caso de uso continúa en el paso 2. 4a.El correo electrónico no se encuentra en la base de datos. 4a1. El sistema notifica al usuario que la clave es incorrecta. 4a2. El usuario entra de nuevo la clave. 4a3. El caso de uso continúa en el paso 4. 91 Caso de Uso: Pedir nombre de usuario Descripción Un usuario registrado quiere pedir su nombre de usuario al sistema. Actor Principal Usuario registrado Precondición El usuario está registrado. Postcondición Se envía el nombre del usuario. Curso típico de acontecimientos Actor Sistema 1. El usuario registrado pide al sistema que se le envíe su nombre de usuario introduciendo su correo. 2. El sistema envía un correo con el nombre de usuario. Cursos Alternativos 2a.El correo electrónico no se encuentra en la base de datos. 2a1. El sistema notifica al usuario que el correo electrónico es incorrecto. 2a2. El usuario entra de nuevo el correo electrónico. 2a3. El caso de uso continúa en el paso 2. Caso de Uso: Modificar la cuenta Descripción Un usuario registrado quiere modificar sus datos personales. Actor Principal Usuario registrado Precondición El usuario está registrado y ha iniciado sesión. Postcondición Se modifican los datos del usuario. Curso típico de acontecimientos Actor Sistema 1. El usuario solicita modificar sus datos. 2. El sistema muestra los datos del usuario. 3. El usuario modifica sus datos. 4. El sistema registra los nuevos datos. Cursos Alternativos - 92 Casos de uso: Usuario publicador El usuario publicador hereda todos los casos del usuario registrado, y por lo tanto también los el usuario visitante, excepto, el caso de uso de registrarse, ya que el usuario ya se encuentra en el sistema. Diagrama SISTEMA Editar artículo Subir archivos Crear artículos Usuario publicador 93 Especificación Caso de Uso: Editar artículo Descripción Un usuario publicador quiere modificar un artículo del sistema. Actor Principal Usuario publicador Precondición El usuario está registrado y ha iniciado sesión. Postcondición Se modifica el artículo Curso típico de acontecimientos Actor Sistema 1. El usuario pide modificar un artículo. 2. El sistema muestra el artículo a editar. 2. El usuario modifica el artículo. 3. El sistema guarda la nueva información y muestra el artículo modificado. Cursos Alternativos - Caso de Uso: Crear artículo Descripción Un usuario publicador quiere crear un nuevo artículo. Actor Principal Usuario publicador Precondición El usuario está registrado y ha iniciado sesión. Postcondición Se crea el artículo Curso típico de acontecimientos Actor Sistema 1. El usuario pide crear un artículo. 2. El sistema muestra un editor de texto para crear el artículo. 2. El usuario introduce los datos. 3. El sistema guarda el nuevo artículo. Cursos Alternativos - 94 Caso de Uso: Editar artículo Descripción Un usuario publicador quiere subir archivos al sistema. Actor Principal Usuario publicador Precondición El usuario está registrado y ha iniciado sesión. Postcondición Se sube un archivo al servidor Curso típico de acontecimientos Actor Sistema 1. El usuario pide subir un archivo. 2. El sistema muestra un cuadro buscar para escoger el archivo. 3. El usuario selecciona el archivo. 4. El sistema guarda el archivo en el servidor. Cursos Alternativos 4a.La extensión del archivo no es válida para guardarla en el servidor. 4a1. El sistema notifica al usuario que la extensión del archivo a subir no está permitida. 4a2. El caso de uso continúa en el paso 3. 95 Casos de uso: Usuario administrador El usuario administrador controla tanto el back-end como el front-end y por tanto tiene el control total del sitio. Ahora mostraremos algunas funcionalidades que puede hacer el usuario administrador. Diagrama SISTEMA Limpiar memoria Asignar permisos a usuarios Eliminar usuarios Usuario administrador 96 Especificación Caso de Uso: Limpiar memoria Descripción El administrador hace una limpieza de la caché. Actor Principal Usuario administrador Precondición El usuario ha iniciado sesión en el back-end. Postcondición Se elimina la caché Curso típico de acontecimientos Actor Sistema 1. El usuario pide eliminar la caché. 2. El sistema muestra que cache quiere eliminar si la del sitio o la del administrador. 2. El usuario selecciona la que desea. 3. El sistema elimina la caché seleccionada. Cursos Alternativos - Caso de Uso: Eliminar usuario Descripción El administrador quiere eliminar un usuario del sistema. Actor Principal Usuario administrador Precondición El usuario está registrado en el sistema. Postcondición El usuario es eliminado del sistema. Curso típico de acontecimientos Actor 1. El administrador pide ver usuarios Sistema los 2. El sistema muestra registrados en el sistema. 2. El administrador usuario. selecciona los el 3. El sistema elimina al usuario. Cursos Alternativos - 97 usuarios Caso de Uso: Asignar permisos a usuarios Descripción El administrador asigna permisos de publicador o administrador a un usuario. Actor Principal Usuario administrador Precondición El usuario está registrado en el sistema. Postcondición El usuario pasa a ser usuario administrador o publicador Curso típico de acontecimientos Actor 1. El administrador pide ver usuarios Sistema los 2. El sistema muestra registrados en el sistema. 2. El administrador selecciona usuario y el rango a asignar. los usuarios al 3. El sistema asigna los nuevos permisos al usuario. Cursos Alternativos - 98 Anexo 4. Hosting Ahora veremos el estudio realizado en la contratación del hosting. En el momento de empezar este proyecto el dominio está contratado en Nominalia. Las opciones de hosting son las siguientes: NOMINALIA Pack Starter Pack Professional Espacio en disco (GB) 1 100 Tráfico web en GB (de entrada y salida) 10 100 Ancho de banda (Mbps) ilimitado ilimitado Alias de dominio 1 ilimitado WWW) incluidos incluidos Subdominios ilimitados incluidos incluidos Registro de su nombre de dominio 1 1 Prioridad de procesamiento - incluidos Distribución de carga - incluidos PHP 4.4.9 - 5.2.5 4.4.9 - 5.2.5 ASP, ASP.net - - Extensión SSI Sí Sí Perl 5.8.8 5.8.8 Python 2.6 2.6 Ruby 1.8.7 1.8.7 SilverLight3, Ajax\LINQ - - Bases de datos 1 10 Versión 5 5 Espacio de la base de datos (MB) 25 100 Número de usuarios 1 ilimitado MySQL Connector ODBC No Sí MySQL Connector .NET No - PhpMyAdmin Sí Sí BigDump para importar (10MB) Sí Sí CARACTERÍSTICAS Servicio DNS y Configuración DNS (MX,FTP, SISTEMA BASE DE DATOS MySQL 99 HERRAMIENTAS DE GESTIÓN Administrador de archivos Sí Sí Número de usuarios FTP ilimitado ilimitado Directorios protegidos por copias de seguridad Sí Sí Control de tráfico y de espacio Sí Sí servidor Sí Sí Administrador en PHP y php.ini Sí Sí Crontabs (administrador de tareas) No Sí PHP y CGI debugger Sí Sí HERRAMIENTAS DE DESARROLLO Administrador de HTaccess y respuesta del HERRAMIENTAS WordPress Listo para instalar Listo para instalar Joomla Listo para instalar Listo para instalar Otros CMS Sí Sí BlogEngine.NET - - DasBlog - - Firewall Sí Sí Copia diaria de seguridad en el servidor Sí Sí Acceso a los ficheros de copias de seguridad No Sí Sí Sí Cuentas POP3/IMAP4 10 100 Espacio de almacenamiento de correos 2 GB 2 GB Alias de Dominios incluidos incluidos Redireccionamiento de correo 5 50 Antivirus y Antispam incluidos incluidos Webmail incluidos incluidos PRECIO MENSUAL (IVA no incluido) 5€ 7,42 € PRECIO MENSUAL (IVA no incluido) 4€ 5,75 € SEGURIDAD SOPORTES FAQ online CORREO (Si tiene dominio registrado en Nominalia) 100 El pack Starter queda descartado por su poca capacidad en la base de datos (tan solo 25MB). En cambio, el pack profesional tiene una gran capacidad de 100GB. Un ancho de banda ilimitado, y tráfico de entrada y salida de 100GB. El espacio en la base de datos es de 100MB, teniendo hasta diez bases de datos. Además dispone de copia de seguridad, cien cuentas de correo electrónico con capacidad de 2GB por cuenta, con antivirus y antispam. La desventaja es que no dispone de servicio telefónico a sus clientes, pero sí de FAQ online y de un formulario del cual dan prioridad a los clientes con hosting para solucionar su problema, y no incluye horarios de atención al público. El precio anual total es de 89,04 euros, y 69 euros si tenemos dominio registrado en nominalia. 101 HOSTALIA Plan Base Plan Avanzado Tarifas 59€ Primer año, Cuota Anual 99€ 129€, 205€ Cuota Bienal 106€, luego 178€ 232€, 367€ Espacio en Disco 1 GB 5 GB Transferencia Máx. Mensual 10 GB 40 GB Número de Dominios 1 1 Número de Subdominios 5 10 Dominio Gratis No Primer año Cuentas de Email 10 50 Conf. Cuentas en Tiempo Real Si Si Servidor de Correo SMTP/POP3/IMAP4 Si Si AntiSpam, AntiVirus, AntiPhishing Si Si Panel de Control Online Si Si Cuentas FTP Adicionales 5 10 Acceso SSH No No Utilización CGIs Externos Si Si PHP5 Si Si Flash, PERL, Phyton Si Si .htaccess, Mod rewrite, SSI Si Si ASP, AspUpload, AspMail, Servlets, .NET No No phpBB Si Si phpBook Si Si phpMyChatPlus Si Si FormMail Si Si WordPress Blog (WordPress) Si Si GalleryGallery Si Si Espacio y Tráfico Dominios Email Administración y Acceso Programación Aplicaciones CMS 102 Joomla, Drupal, Mambo Si Si MySQL 1 10 SQL Server No No Access No No IP Fija Si Si IP Dedicada para SSL Si Si Directorios Protegidos por Contraseña Si Si Páginas de Error Personalizables Si Si SSL 120 €/año 120 €/año Acceso Sin www Si Si Backups diarios Si Si Recuperación de Backup 40 €/recuperación 40 €/recuperación Tiempo de Servicio Garantizado: 99% Si Si Soporte Técnico Experto Si Si Bases de Datos Otras Características Servidores Garantía y Soporte La capacidad de la que disponemos es de 1 GB para alojar la web y la base de datos. Gracias a que los ficheros de Joomla poseen poca ocupación, tendríamos una capacidad elevada en la base de datos. Además posee una elevada fiabilidad la web, es decir, el servidor no “se cae”, dispone de un servicio técnico experto. En mi opinión es rápido y da buen resultado, ya que, sin ser cliente, les hice una consulta para saber el tamaño de la BBDD porque no lo especificaba, y tan solo tardaron 8 horas en contestarme. También realiza backups diarios, que tienen un coste de 40 euros para recuperarlos. En definitiva el precio es elevado 50 euros primer año y resto de años a 99 euros. 103 FATCOW Precio 4 € mes Seguridad Dominios 1 gratis Backups diarios Programación Si Plan PHP 4 & 5 Support Si Espacio en disco Ilimitado CGI Directory Si Ancho de banda Ilimitado MySQL Databases Ilimitado Dominios por cuenta Ilimitado Python y Script Library Si Cuentas de correo Ilimitado Aplicaciones Opciones del sitio disponibles Herramientas de Web Analytics Si WordPress Si Extensiones de FrontPage Si Gallery2 Si Búsqueda en Google Integrado phpBB Si Webmaster Integrado GBook Si Acceso FTP Si Joomla Si Herramientas de Google Poll, Survey, Counter Tools Si Soporte Telf., email y Soporte 24x7 chat Email Panel de control personalizado Si Buzón de correo (POP) Ilimitado FAQ's Si WebMail Si Tutoriales paso a paso Si Filtro Spam Si Además dispone de un servicio de atención al cliente los siete días de la semana y las 24 horas al día. También ofrecen un espacio en disco ilimitado, igual que el ancho de banda y las cuentas de correo. Realiza backups diarios y el primer dominio es gratuito. Las versiones de PHO y MySQL están actualizadas a la última versión, es un servidor bastante fiable, es decir no ha sufrido caídas en los últimos años. El precio es de 50 euros anuales. 104 1and1 Espacio web Programación Precio 1,99€/mes PHP5 y PHP6 beta Si Espacio web 1 GB CMS(Joomla, Drupal…) Si Tráfico mensual Ilimitado Soporte Flash Si Alojamiento multidominio Si Perl, Python, Ruby No IP Española Si Acceso FTP 1 Bases de datos .htaccess Si Bases de datos MySQL 1 Panel de control Si Capacidad 100MB Dominios Seguridad Gestión de DNS Si Dominios incluidos gratis 1 Cantidad máxima dominios Dominios multilingües Redirección de dominio de Ilimitado Si Si Backups diarios Si Atención al cliente Asistencia telefónica 8-22h Servicio de facturación 822h Asistencia gratuita por email Si Si Si Email Cuentas IMAP/POP3 10 Capacidad por cuenta 2GB Antivirus Si Antispam, antiphishing Si WebMail Si Dispone dos servicios de atención: telefónicamente de 8 a 22 horas, y mediante el correo electrónico en el cual no hay horario. Realiza backups diarios y posee una base de datos con un tamaño máximo de 100 MB, además tiene IP española, y dispone sólo de diez cuentas de correo. El precio es asequible, 24 euros al año. 105 Después de estudiar los cuatro casos, descartamos Nominalia y Hostalia, por su precio elevado, aunque la oferta del primer año es asequible, pero en los siguientes años el precio se eleva considerablemente. Por lo tanto nos quedan 1and1 y Fatcow. El primero tiene un precio asequible, pero sólo nos ofrece una base de datos y diez cuentas de correo con una capacidad máxima en el servidor de 1GB, mientras que el segundo todos los elementos son ilimitados. Finalmente, hemos escogido Fatcow como proveedor de internet y de alojamiento, gracias a su tiempo de respuesta de atención al cliente, que es inmediata (Chat, correo, teléfono) durante los siete días de la semana y las 24 horas del día, solucionan los problemas o consultas en un espacio muy reducido de tiempo (menos de una hora). También dispone de múltiple bases de datos y nosotros utilizaremos dos bases de datos, en una estará el actual sitio web, y en la otra estaremos trabajando para obtener el nuevo sitio web, y por tanto, la página web siempre está operativa. 106 Anexo 5. Cursos de formación Joomla 2: Práctica con aplicaciones avanzadas de Joomla. En este curso, se hizo un mini portal, muchos de los pasos y explicaciones que se hacían, ya habían sido testeadas y averiguadas por mí, de otras como crear módulos personalizados o cambiar la forma en que aparecen los artículos en la página principal, fueron aprendidas en dicho curso. También se mejoró el manejo de Joomla ya que se hizo un recorrido por todo el back-end de Joomla. Usabilidad: hacer la web pensando en el usuario. En este curso, se explico cómo crear un producto usable, realizar el diseño para el usuario, es decir el producto se ha de adaptar al usuario y no al revés. Para hacer una evaluación la mejor forma, es hacer un test de usuarios de diferentes edades y ámbitos profesionales, y también utilizar google analytics. Se ha de evaluar para tener al usuario satisfecho principalmente, porque así el usuario aumenta el tiempo de visita en la web y fidelizar al usuario, reduce costes de aprendizaje y esto implica no tener que modificar el diseño constantemente para que los usuarios puedan acceder a toda la información, la cual debe estar accesible como máximo en tres clics y no utilizar presentaciones flash en la página principal. Para más información consultar a Jacob Nielsen en (49), o los estándares de accesibilidad y usabilidad (50). Como crear webs y proyectos tecnológicos accesibles a personas discapacitadas. En este curso se explicó, no solo como crear proyecto para personas discapacitadas físicamente, sino también personas que le cuesta el aprendizaje de las nuevas tecnologías, ya que hay que hacer una web distinta dependiendo del tipo de usuario al que va dirigida. También se explico las normas que debe pasar una página web para ser accesible y obtener unos certificados de calidad, los llamados w3c (50), vistos también en el cursillo de usabilidad, y el otro certificado de accesibilidad, el cual está categorizado por “A”, “AA”, “AAA”, son las llamadas normas WAI (en inglés Web Accessibility Initiative y en castellano Iniciativa para la accesibilidad web), en el siguiente enlace se pueden ver los puntos de verificación que tienen los distintos niveles (51). También se ha visto, como una persona daltónica ve las páginas web, y en nuestro caso, el contraste de colores, la hace visible hacia dichas personas. 107