scieee AI-readable full text Open interactive document viewer

Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría

Tahoces Marroco, Daniel

Abstract

El objetivo principal es desarrollar la página web para dicha empresa, necesaria para dar a conocer el producto que ellos ofrecen y para que los alumnos de los cursos que se imparten puedan llevar un seguimiento mayor y tener la información más cercana de éstos, y puedan participar con opiniones en el blog o por medio de las redes sociales, y en un segundo plano, realizar otro tipo de tareas correspondientes para la empresa. En este documento se describirá la experiencia en la práctica de empresa, centrándose en el desarrollo de la página web mediante tecnologías CMS, en este caso Joomla, y las respectivas extensiones que se ha utilizado de ésta CMS. En un primer lugar se describirá el entorno de desarrollo como pudiera ser las tecnologías web de hoy en día, focalizando a las tecnologías o lenguajes que utiliza Joomla. Seguidamente se pasará a describir la especificación de requisitos que se compondrá de diferentes puntos y explicará entre otras cosas las funcionalidades que posee o los requerimientos funcionales y no funcionales que tendrá la aplicación web. A partir de ahí, nos centraremos en el diseño de la web (la explicación de las diferentes capas que posee esta aplicación) y la implementación de ésta. Por último habrá un apartado de conclusiones y otro de referencias.

Full text

Escola Tècnica Superior d’Enginyeria Informàtica Universitat Politècnica de València APLICACIÓN WEB DE GESTIÓN DE ALQUILER DE AULAS, CURSOS DE FORMACIÓN Y CONSULTORÍA Proyecto Final de Carrera Ingeniría Técnica Informática de Gestión Autor: Tahoces Marroco, Daniel Director: Poza Luján, José Luis 17 de Diciembre de 2012 Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 2 Índice 1. Introducción…...……………………………………………………………..….. 7 1.1. Motivación…………...…………………………………………………..…... 7 1.2. Objetivos…………………...……………………………………………..….. 7 1.3. Descripción del documento………………………………………...……..….. 8 2. Entorno……………………………………………………………...………….... 9 2.1. Introducción…………………………………………………………………... 9 2.2. Gestión docente………………………………………………………...…...…10 2.3. Tecnología Web…………………………………………………...…...……...13 2.3.1 Tecnología Web utilizada por Joomla………………………………......20 2.3.2 Extensiones utilizadas de Joomla en el proyecto………………………..24 2.4. Sistemas similares……………………………………………………………..33 2.4.1. Revisión………………………………………………………………...33 2.4.2. Análisis…………………………………………………………………34 2.5. Conclusiones…………………………………………………………………..35 3. Especificación de requisitos………………………………………………………37 3.1 Introducción………………………………………………………………...37 3.1.1 Propósito…………………………………………………………...…….37 3.1.2 Ámbito………………………………………………………………..37 3.1.3 Definiciones, siglas y abreviaturas…………………………………...37 3.1.4 Referencias……………………………………………………………38 3.1.5 Visión global………………………………………………………….38 3.2 Descripción general………………………………………………………...38 3.2.1 Perspectiva del producto………………………………………………..38 3 3.2.2 Funciones del producto………………………………………………39 3.2.3 Características del usuario……………………………………………41 3.2.4 Restricciones…………………………………………………………42 3.2.5 Supuestos y dependencias……………………………………………42 3.2.6 Evolución previsible del sistema……………………………………..42 3.3 Requisitos específicos………………………………………………………42 3.3.1. Requerimientos funcionales…………………………………………42 3.3.2 Requisitos comunes de los interfaces………………………………...48 3.3.2.1 Interfaces de usuario……………………………………………48 3.3.2.2 Interfaces hardware……………………………………………..48 3.3.2.3 Interfaces software……………………………………………...49 3.3.2.4 Interfaces de comunicación……………………………………..49 3.3.3 Requerimientos no funcionales……………………………………….49 3.3.4 Requerimientos de eficiencia…………………………………………49 3.3.5 Atributos……………………………...................................................50 3.3.5.1 Seguridad……………………………………………………….50 3.3.5.2 Fiabilidad……………………………………………………….50 3.3.5.3 Disponibilidad………………………………………………….50 3.3.5.4Mantenibilidad……………………….………………………….51 3.3.5.5Portabilidad…………………………………………….………..51 3.3.6 Otros requerimientos…………………………………………………51 4. Análisis …………………………………………………………………….……..53 4.1 Introducción …………………………………………………………….….53 4.2 Diagrama de clases ………………………………………….……………..53 4.3 Diagrama de casos de uso……………………………………………….....55 5. Diseño de la aplicación…………………………………………………………….61 5.1 Introducción……………………………………………………………………61 Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 4 5.2 Requisitos……………………………………………………………………...62 5.2.1 Requisitos software…………………………………………………….62 5.2.2 Requisitos hardware……………………………………………………63 5.3 Capa de datos…………………………………………………………………..64 5.4 Capa de negocio………………………………………………………………..64 5.5 Capa de presentación…………………………………………………………...65 5.6 Conclusiones…………………………………………………...………………66 6. Implementación…………………………...……………………………………….69 6.1Introducción…………………………………………………………….............69 6.2 Soporte físico……………………………………………………………..........69 6.3 Instalación….…………………………………………………………..............69 6.4 Evaluación……………………………………………………………...............70 6.5 Conclusiones…………………………………………………………………...70 7. Sistema desarrollado………………………..……………………………………...71 8.Conclusiones…………………………………………………………………...…...89 7.1 Aportaciones…………………………………………………………….……..89 7.2 Trabajo futuro……………………………………………………………..…...89 Referencias………………………………………………………………………...…...91 5 Índice de figuras FIGURA 1: Ejemplo código HTML………………………………………………………………..……...14 FIGURA 2: Ejemplo código XML………………………………………………………………..….…….15 FIGURA3: Ejemplo código AJAX………………………………………………………………………….17 FIGURA 4: Ejemplo código PHP…………………………………………………………………………..21 FIGURA 5: Ejemplo operaciones básicas SQL………………………………………………………..21 FIGURA 6: Administrador MySQL……………………………………………………………………….23 FIGURA 7: Gestor Acymailing……………………………………………………………………………..24 FIGURA 8: Gestor Akeeba Backup……………………………………………………………………….25 FIGURA 9: Gestor ALFContact………………………………………………………….…………………25 FIGURA 10: Gestor BreezingForms………………………………………………………………………26 FIGURA 11: Gestor Extplorer……………………………………………………………………………….27 FIGURA 12: Editor JCE……………………………………………………………………………………….28 FIGURA 13: Demostración de calendario con JEvents……………………………………………29 FIGURA 14: Demostración de blog con K2………………………………………………….…………30 FIGURA 15: Panel de control de Phoca Download…………………………………….……………31 FIGURA 16: Demostración de favicon con Phoca Favicon…………………………….…………31 FIGURA 17: Demostración de formulario con Proforms Basic……………..……….…………32 FIGURA 18: Demostración de módulo Stalker…………………………………………….…………32 FIGURA 19: Demostración de sitemap con Xmap………………………………………………….33 FIGURA 20: Diagrama de clases………………………………………………………………………….55 FIGURA 21: Actores……………………………………………………………………………………………56 FIGURA 22: Casos de uso de Usuario…………………………………………………………………...57 FIGURA 23: Casos de uso de Administrador………………………………………………………….58 FIGURA 24: Casos de uso de Cliente……………………………………………………….……………59 FIGURA 25: Sistema multicapa……………………………………………………………………………62 FIGURA 26: Administración Joomla………………………………………………………………….…63 FIGURA 27: Intefaz de usuario……………………………………………………………………………66 Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 6 FIGURA 28: Gestor de menús……………………………………………………………………….……..72 FIGURA 29: Menú Oferta formativa……………………………………………………………………..73 FIGURA 30: Inicio………………………………………………………………………………………………74 FIGURA 31: Blog…………………………………………………………………………………………………75 FIGURA 32: Información sobre ciclos formativos……………………………………………..…..75 FIGURA 33: Información sobre refuerzo escolar…………………………………………….……..76 FIGURA 34: Información sobre cursos gratuitos…………………………………………….…....76 FIGURA 35: Información sobre cursos de idiomas………………………………………….……..77 FIGURA 36: Información de la empresa………………………………………………………………..77 FIGURA 37: Información de la historia, localización, método de trabajo y material que se dispone…………………………………………………………………………………………………..……..78 FIGURA 39: Información del equipo docente………………………………………………………..78 FIGURA 38: Información de becas y ayudas………………………………………..………………..79 FIGURA 40: Información preparación a exámenes………………………………………………..79 FIGURA 41: Selección de categoría en extensión desde menú………………………….……..81 FIGURA 42: Gestor de artículos…………………………………………………………………….…....82 FIGURA 23: Contacto a la empresa………………………………………………………...……….…..84 FIGURA 44: Módulo con JEvents…………………………………………………………………….…..86 FIGURA 45: Calendario………………………………………………………………………………….…..86 7 1. Introducción Durante 4 meses, se ha desarrollado una página web para que un centro de formación pueda gestionar el alquiler de aulas, consultoría, cursos de idiomas, formación, y poder mostrar sus instalaciones mediante vídeos o fotos, integrar el blog perteneciente a ellos a esta página entre otras tareas que se explicarán con más detenimiento en el siguiente documento. 1.1 Motivación En una empresa de formación es fundamental poder darse a conocer no sólo mediante anuncios en carteles o folletos, sino que necesita nuevas tecnologías como puede ser una página web. Además esta empresa no sólo se dedica a dar cursos de idiomas o formación, también proporciona un servicio de consultoría y otro de alquiler de sus aulas lo que conlleva que deban mostrar más gráficamente sus instalaciones como puede ser mediante fotos o vídeos, y se puede facilitar el contacto entre el cliente y la empresa mediante un apartado de contacto y en el caso de los alumnos pueden recibir información de los cursos en los que estén interesados, o la posibilidad de poder enviar el número de teléfono a la empresa y que ésta se encargue de llamar al cliente. También se debe hacer mantenimiento de la página porque continuamente aparecen nuevos cursos, noticias o artículos que publicar tanto en la página, como en el blog integrado a ésta. Además la utilización de redes sociales se hace imprescindible en estos tiempos ya que la empresa puede promocionarse a través de ellas y puede ser más cercano a la sociedad porque estas herramientas están en crecimiento en la población y los alumnos pertenecientes a cursos y el personal pueden comentar diversas situaciones y dar sus opiniones, y con todo ello es necesario integrar las redes sociales a dicha página web. En definitiva, una página web da muchas más opciones de promoción y de distribuir información respecto al producto que se vende, en este caso los comentados anteriormente (cursos, idiomas, consultoría, alquiler de aulas entre otros), y de tener una organización del producto, información de opiniones de los clientes y conocer el número de personas a las que han podido conocer el producto. 1.2 Objetivos El objetivo principal es desarrollar la página web para dicha empresa, necesaria para dar a conocer el producto que ellos ofrecen y para que los alumnos de los cursos que se imparten puedan llevar un seguimiento mayor y tener la información más cercana de éstos, y puedan participar con opiniones en el blog o por medio de las redes sociales, y en un segundo plano, realizar otro tipo de tareas correspondientes para la empresa. Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 8 1.3 Descripción del documento En este documento se describirá la experiencia en la práctica de empresa, centrándose en el desarrollo de la página web mediante tecnologías CMS, en este caso ‘Joomla’, y las respectivas extensiones que se ha utilizado de ésta CMS. En un primer lugar se describirá el entorno de desarrollo como pudiera ser las tecnologías web de hoy en día, focalizando a las tecnologías o lenguajes que utiliza “Joomla”. Seguidamente se pasará a describir la especificación de requisitos que se compondrá de diferentes puntos y explicará entre otras cosas las funcionalidades que posee o los requerimientos funcionales y no funcionales que tendrá la aplicación web. A partir de ahí, nos centraremos en el diseño de la web (la explicación de las diferentes capas que posee esta aplicación) y la implementación de ésta. Por último habrá un apartado de conclusiones y otro de referencias. 9 2 Entorno 2.1 Introducción La tecnología a utilizar es CMS. CMS es un sistema de gestión de contenidos (Content Management System), que en este caso en concreto será Joomla. Los CMS nos permitirán administrar los contenidos en un medio digital, dicho de una manera más específica nos permite crear una estructura de soporte para la creación y administración de contenidos, y en este caso en particular que se ha desarrollado (no sólo exclusivamente este caso en particular), un CMS ha permitido gestionar los contenidos de la web a desarrollar, es decir, como se ha comentado anteriormente permite la creación de y administración de contenidos y en el caso de las páginas web los administradores, editores, participantes y demás roles. El sistema permite manejar de manera independiente el contenido y el diseño. Por tanto, es posible crear el contenido y en cualquier momento proporcionarle un diseño a éste, sin tener que darle formato de nuevo al contenido, además de permitir fácilmente la publicación en el sitio a varios autores. Generalmente los CMS trabajan contra una o varias bases de datos, en dónde se aloja el contenido de la página web. El autor o autores pueden acceder a la interfaz basada en formularios, a la que se accede con un navegador (generalmente) y podrán dar de alta los contenidos que deseen y estos serán ubicados en la base de datos. Explicando esto en un CMS hay 3 partes: -Interfaz donde se pueden crear, modificar y eliminar los contenidos. Es la parte donde los administradores gestionan el contenido. -Un “front” dónde los visitantes visualizan el sitio web con su contenido y formato. -Una o varias bases de datos en las que se albergan los contenidos. Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 16 - Técnicas de aplicaciones ricas no intrusivas (como AJAX): AJAX, es una técnica de desarrollo web para crear aplicaciones interactivas. Estas aplicaciones se ejecutan en el cliente, es decir, en el navegador de los usuarios mientras se mantiene la comunicación asíncrona con el servidor en segundo plano. De esta forma es posible realizar cambios sobre las páginas sin necesidad de recargarlas, lo que significa aumentar la interactividad, velocidad y usabilidad en las aplicaciones. Ajax es una tecnología asíncrona, en el sentido de que los datos adicionales se solicitan al servidor y se cargan en segundo plano sin interferir con la visualización ni el comportamiento de la página. JavaScript es el lenguaje interpretado (scripting language) en el que normalmente se efectúan las funciones de llamada de Ajax mientras que el acceso a los datos se realiza mediante XMLHttpRequest, objeto disponible en los navegadores actuales. En cualquier caso, no es necesario que el contenido asíncrono esté formateado en XML. Ajax es una técnica válida para múltiples plataformas y utilizable en muchos sistemas operativos y navegadores, dado que está basado en estándares abiertos como JavaScript y Document Object Model (DOM). Las tecnologías que forman AJAX son: - XHTML y CSS, para crear una presentación basada en estándares. - DOM, para la interacción y manipulación dinámica de la presentación. - XML, XSLT y JSON, para el intercambio y la manipulación de información. - XMLHttpRequest, para el intercambio asíncrono de información. - JavaScript, para unir todas las demás tecnologías. Én la siguiente figura se muestra un ejemplo de código con AJAX: 17 <html> <head> <title>Ejemplo1</title> <script language = “javascript”> var XMLHttpRequestObject = false; if (window.XMLHttpRequest) { XMLHttpRequestObject = new XMLHttpRequest(); } else if (window.ActiveXObject) { XMLHttpRequestObject = new ActiveXObject(“Microsoft.XMLHTTP”); } function pedirDatos(fuenteDatos, divID){ if(XMLHttpRequestObject) { var obj = document.getElementById(divID); XMLHttpRequestObject.open(“GET”, fuenteDatos); XMLHttpRequestObject.onreadystatechange = function(){ if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) { obj.innerHTML = XMLHttpRequestObject.responseText; } } XMLHttpRequestObject.send(null); } } </script> </head> <body> <H1>Mostrando código con AJAX</H1> <form> <input type = “button” value = “Mostrar mensaje” onclick = “pedirDatos(‘datos.txt’,’targetDiv’)”> </form> <div id=”targetDiv” style=”background-color:#99FF66;”> <p>Aquí aparecerá texto</p> </div> </body> </html> FIGURA3: Ejemplo código AJAX Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 18 Por otra parte, las páginas con AJAX son más difíciles de desarrollar que las páginas estáticas, además de que las páginas creadas dinámicamente mediante peticiones sucesivas AJAX, no son registradas de forma automática en el historial del navegador, así que haciendo clic en el botón de “volver” del navegador, el usuario no será devuelto a un estado anterior de la página, en cambio puede volver a la última página que visitó. Se incluyó el uso de Iframes para solucionarlo. También como inconvenientes a esta tecnología es que los motores de búsquedas no entienden JavaScript, la información en la página dinámica no se almacena en los registros del buscador, hay problemas usando Ajax entre nombres de dominio, el sitio con Ajax usa más recursos en el servidor. Como recomendación es mejor sólo usar las peticiones necesarias en Ajax, no desarrollar todo el sitio en AJAX. Con esto garantizamos menos recursos del servidor. Otro aspecto negativo es que es posible que páginas con Ajax no puedan funcionar en teléfonos móviles, PDA u otros aparatos, además de que Ajax no es compatible con todos los tipos de software para ciegos u otras discapacidades. - Java Web Start Java Web Start es la implementación de referencia de la especificación Java Networking Launching Protocol (JNLP) y está desarrollada por Sun Microsystems, mediante la cual permite arrancar aplicaciones Java que están en un servidor web de aplicaciones comprobando previamente si el cliente tiene la versión actualizada de dicha aplicación. Si no es así descargará la última versión y se ejecutará en local. El arranque de dichas aplicaciones puede ser efectuado mediante enlaces en una página web o bien a través de enlaces en el escritorio cliente. Mediante esta tecnología se asegura que una aplicación es distribuida siempre en su última versión. Los ficheros que contienen la información sobre donde se encuentra la aplicación, versión, etc. Tienen la extensión .jnlp. - Redifusión/Agregación de datos en RSS/ATOM RSS son las siglas de Really Simple Syndication, un formato XML para indicar o compartir contenido en la web. Se utiliza para difundir información actualizada frecuentemente a usuarios que se han suscrito a la fuente de contenidos. El formato permite distribuir contenidos sin necesidad de un navegador, utilizando un software diseñado para leer estos contenidos RSS (agregador). A pesar de eso, es posible utilizar el mismo navegador para ver los contenidos RSS. Las últimas versiones de los principales navegadores permiten leer los RSS sin necesidad de software adicional. RSS es parte de la familia de los formatos XML desarrollado específicamente para todo tipo de sitios que se actualicen con frecuencia y por medio del cual se puede compartir la información y usarla en otros sitios web o programas. A esto se le conoce como redifusión web o sindicación web (una traducción incorrecta, pero de uso muy común). El nombre Atom hace referencia a dos estándares relacionados. El Formato de Redifusión Atom es un fichero en formato XML usado para Redifusión web, mientras 19 que el Protocolo de Publicación Atom (resumido en Inglés AtomPub o APP) es un protocolo simple basado en HTTP para crear o actualizar recursos en Web. - URLs sencillas con significado semántico Las URL semánticas o URL amigables son aquellas URLs que son, dentro de lo que cabe, entendibles para el usuario. Lejos de las clásicas URLs de las páginas dinámicas llenas de variables GET y números difíciles de recordar, las URL semánticas están formadas con palabras relacionadas con el contenido de la página y fáciles de recordar. Estas se utilizan en los sitios web dinámicos (no estáticos). Por ello se están utilizando mucho más que las URL extensas. - JavaScript Es un lenguaje de scripting basado en objetos sin tipo y liviano, utilizado para acceder a objetos en aplicaciones. Principalmente, se utiliza integrado en un navegador web permitiendo el desarrollo de interfaces de usuario mejoradas y páginas web dinámicas. JavaScript es un dialecto de ECMAScript y se caracteriza por ser un lenguaje basado en prototipos, con entrada dinámica y con funciones de primera clase. JavaScript ha tenido influencia de múltiples lenguajes y se diseñó con una sintaxis similar al lenguaje de programación Java aunque más fácil de utilizar para personas que no programan. Todos los navegadores modernos interpretan el código JavaScript integrado dentro de las páginas web. Para interactuar con una página web se provee al lenguaje JavaScript de una implementación del Document Object Model (DOM). En general: - El sitio debe estar listo para la entrada de cualquier persona. - El sitio no debe actuar como un “jardín cerrado”: la información debe poderse introducir y extraer fácilmente. - Los usuarios deberían controlar su propia información. - Basada exclusivamente en la Web: los sitios Web 2.0 con más éxito pueden ser utilizados enteramente desde un navegador. - La existencia de links es requisito imprescindible. Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 20 2.3.1 Tecnología web utilizada por Joomla en el proyecto Esta tecnología escogida para desarrollar esta aplicación es “Joomla”, el cual está programado principalmente en lenguaje PHP (Hypertext Pre Processor) y SQL (Structure Query Language). Utiliza bases de datos relacionales, más específicamente MySQL. Tanto PHP como MySQL son programas ‘Open Source’ de libre distribución y uso, y al ser “Joomla” una aplicación web, funciona obviamente en servidores de páginas web. También utiliza un servidor HTTP Apache. PHP PHP es un lenguaje de código abierto muy popular especialmente adecuado para desarrollo web y que puede ser incrustado en HTML, interpretado, diseñado originalmente para la creación de páginas web dinámicas. Es usado principalmente en interpretación del lado del servidor (server-side scripting) pero actualmente puede ser utilizado desde una interfaz de línea de comandos o en la creación de otros tipos de programas incluyendo aplicaciones con interfaz gráfica usando las bibliotecas Qt o GTK+. PHP es un acrónimo recursivo que significa PHP Hypertext Pre-processor. Fue creado originalmente por Rasmus Lerdorf en 1994. Sin embargo la implementación principal de PHP es producida ahora por The PHP Group y sirve como el estándar de facto para PHP al no haber una especificación formal. Publicado bajo la PHP License, la Free Software Foundation considera esta licencia como software libre. Las páginas PHP contienen HTML con código incluido. El código PHP está entre medio de etiquetas de comienzo y final especiales “<?php” y “?>” que nos permitirán entrar y salir del “modo PHP”. Lo que distingue a PHP de algo lado-cliente como Javascript, es que el código es ejecutado en el servidor, generando HTML y enviándolo al cliente. El cliente recibirá los resultados de ejecutar el script, sin ninguna posibilidad de determinar qué código ha producido el resultado recibido. El servidor web puede ser incluso configurado para que procese todos los archivos HTML con PHP y entonces no hay manera que los usuarios puedan saber que tienes debajo de la manga. Lo mejor de usar PHP es que es extremadamente simple para el principiante, pero a su vez, ofrece muchas características avanzadas para los programadores profesionales. No sienta miedo de leer la larga lista de características de PHP, en poco tiempo podrá empezar a escribir sus primeros scripts. Los scripts PHP: son los que ejecutan las acciones de consulta y realizan modificaciones en la base de datos convirtiendo los datos en simples páginas web interpretables por los 21 navegadores de Internet y perfectamente inteligibles para los usuarios y administradores. Ejemplo de un código PHP: <?php $var = “Hola. Este es un sencillo script en PHP n”; //Esto es un comentario en PHP n”; echo $var; ?> FIGURA 4: Ejemplo código PHP Donde: <?php es un delimitador de inicio ; indica fin de la línea $ indica que comienza una variable (en el ejemplo, var) // indica que es un comentario no visible echo es la instrucción que indica que muestre el texto ?> es un delimitador de término del script SQL El lenguaje de consulta estructurado o SQL (por sus siglas en inglés “structured query language”) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en éstas. Una de sus características es el manejo del álgebra y el cálculo relacional permitiendo efectuar consultas con el fin de recuperar información de interés de una base de datos, así como también hacer cambios sobre ella. Es un lenguaje de cuarta generación (4GL). Ejemplo de operaciones básicas: CREATE, ALTER, DROP y TRUNCATE. CREATE TABLE ‘TABLA_NOMBRE’ ( ‘CAMPO_1’ INT, ‘CAMPO_2’ STRING ALTER TABLE ‘TABLA_NOMBRE’ ( ADD NUEVO_CAMPO INT UNSIGNED meel ALTER TABLE ‘’TABLA_NOMBRE’’ ( DROP COLUMN ‘’CAMPO_NOMBRE1’’ TRUNCATE TABLE ‘’TABLA_NOMBRE1’’ FIGURA 5: Ejemplo operaciones básicas SQL Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 22 En la siguiente descripción se comentarán individualmente las operaciones básicas: DROP: Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista, índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte. Se puede combinar con la sentencia ALTER. TRUNCATE: Este comando trunca todo el contenido de una tabla. La ventaja sobre el comando DROP, es que si se quiere borrar todo el contenido de la tabla, es mucho más rápido, especialmente si la tabla es muy grande. La desventaja es que TRUNCATE sólo sirve cuando se quiere eliminar absolutamente todos los registros, ya que no se permite la cláusula WHERE. Si bien, en un principio, esta sentencia parecería ser DML (Lenguaje de Manipulación de Datos), es en realidad una DDL, ya que internamente, el comando TRUNCATE borra la tabla y la vuelve a crear y no ejecuta ninguna transacción. ALTER: Este comando permite modificar la estructura de un objeto. Se pueden agregar/quitar campos a una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla, modificar un trigger, etc. CREATE: Este comando crea un objeto dentro de la base de datos. Puede ser una tabla, vista, índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte. La base de datos MySQL: es donde se guarda toda la información y la mayor parte de la configuración del sistema, de una forma ordenada y en distintas tablas, cada una de las cuales almacena información específica y determinada. MySQL es un gestor de bases de datos que, combinado con PHP proporciona una potencia muy grande a las aplicaciones. Es uno de los motores de bases de datos más utilizados en Internet, y es gratis para aplicaciones no comerciales. Entre las características más importantes destacan: - Gestor de bases de datos: aplicación capaz de gestionar grandes cantidades de datos organizados en tablas. - Bases de datos relacionales: relaciones entre tablas para manejar datos de una forma eficiente y segura. - Lenguaje: SQL - Open Source: el código fuente de MySql se puede descargar y está disponible para cualquiera. - Licencia GPL para aplicaciones no comerciales. En la siguiente imagen aparace el administrador de MySql: 23 FIGURA 6: Administrador MySQL Servidor HTTP Apache El servidor HTTP Apache es un servidor web HTTP de código abierto, para plataformas Unix (BSD, GNU/Linux, etc.), Microsoft Windows, Macintosh y otras, que implementa el protocolo HTTP/1.1 y la noción de sitio virtual. Cuando comenzó su desarrollo en 1995 se basó inicialmente en código del popular NCSA HTTPd 1.3, pero más tarde fue reescrito por completo. El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la Apache Software Foundation. Apache presenta entre otras características altamente configurables, bases de datos de autenticación y negociado de contenido, pero fue criticado por la falta de una interfaz gráfica que ayude en su configuración. Apache tiene amplia aceptación en la red: desde 1996, Apache, es el servidor HTTP más usado. Alcanzó su máxima cuota de mercado en 2005 siendo el servidor empleado en el 70% de los sitios web en el mundo, sin embargo ha sufrido un descenso en su cuota de mercado en los últimos años. (Estadísticas históricas y de uso diario proporcionadas por Netcraft). La mayoría de las vulnerabilidades de la seguridad descubiertas y resueltas tan sólo pueden ser aprovechadas por usuarios locales y no remotamente. Sin embargo, algunas Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 24 se pueden accionar remotamente en ciertas situaciones, o explotar por los usuarios locales en las disposiciones de recibimiento compartidas que utilizan PHP como módulo de Apache. 2.3.2 Extensiones utilizadas de Joomla en esta aplicación Acymailing AcyMailing es un sistema de “Newletter” y de correos electrónicos de marketing para Joomla . Permite administrar eficazmente un número de usuarios ilimitado, ordenarlos en listas y enviar Newsletters personalizados. También ofrece todas las opciones estándares de gestión de las listas de correo y de Newsletter. En la siguiente figura se muestra el gestor de este componente: FIGURA 7: Gestor Acymailing AkeebaBackup Akeeba Backup Core es el sucesor del componente JoomlaPack famoso. En pocas palabras, Akeeba Backup Core es un componente de copia de seguridad de código abierto para la comunidad de “Joomla”. Su misión es simple: crear una copia de seguridad del sitio que se pueden restaurar en cualquier servidor que tenga instalado Joomla. Sus posibilidades son infinitas. Crea una copia de seguridad completa de su sitio en un único archivo y éste contiene todos los archivos, una instantánea de base de datos y una instalación similar en función a la norma del instalador “Joomla”. La copia de seguridad y restaurar el proceso se consigue mediante AJAX para evitar los tiempos 25 de espera del servidor, incluso para los sitios web grandes. También permite hacer una copia de seguridad de su base de datos única, o sólo los archivos. Es un sistema fiable y fácil de usar que proporciona una solución para conseguir copias de seguridad. En la siguiente figura se muestra el gestor de AkeebaBackup: FIGURA 8: Gestor Akeeba Backup ALFContact El propósito de ALFcontact es proporcionar una plantilla de contacto con características suficientes para que sea útil y atractivo sin que sea demasiado complicado. Básicamente, el formulario te da la opción de enviar mensajes a los “alias” diferentes en función de su nivel de acceso, estos alias se definen en la sección de administrador, cada uno con su propio conjunto de opciones. En la siguiente figura se muestra el área de gestión de éste componente: FIGURA 9: Gestor ALFContact Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 32 FIGURA 17: Demostración de formulario con Proforms Basic Rereplacer Es componente y un plugin que permite sustituir cualquier texto o imagen en el sitio Joomla con lo que se quiera. Por ejemplo, ReReplacer puede buscar en el texto (html) de las páginas de la solicitud de búsqueda y reemplazarlo con el que se ha dicho que lo haga. Es un componente que contiene un plugin. Stalker Es una extensión fácil de utilizar que muestra enlaces a todas sus redes sociales en Joomla. Utiliza una interfaz atractiva. Se compone de un módulo y un plugin. Se muestra a continuación un módulo creado con esta herramienta: FIGURA 18: Demostración de módulo Stalker 33 Xmap Extensión que se basa en la creación o realización de un sitemap de la web en “Joomla”. Un sitemap es un mapa de sitio web, que es una lista de las páginas de un sitio web accesibles por parte de los buscadores y los usuarios que ayuda a los visitantes y a los buscadores a hallar las páginas de un sitio web. Tiene la posibilidad de crear más de un sitemap y guardarlo dentro del administrador de una forma sencilla y organizada, lo que va a permitir tener más de un sitemap de forma sencilla, para los casos que superen el límite de diez megas por sitemap, límite impuesto por Google, para una lectura ágil de los mismos. Esto permitirá seccionar los sitemaps, pudiendo crear uno por apartado de menú o componente. En la siguiente figura se muestra el sitemap del sitio web creado con dicha herramienta: FIGURA 19: Demostración de sitemap con Xmap 2.4 Sistemas similares Existen tecnologías similares y entre ellas están los LMS (Learning Management System) y LCMS (Learning Content Management System). 2.4.1 Revisión LMS es un software instalado en un servidor web que se emplea para administrar, distribuir y controlar las actividades de formación no presencial de una institución u organización. Son variadas las funcionalidades de un LMS y entre ellas están: registro de todos los actores que intervienen en el aprendizaje (alumnos, profesores, administradores, etc.), organiza los diferentes cursos en un catálogo, almacena datos Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 34 sobre los usuarios, realiza un seguimiento del aprendizaje y la temporización de los trámites y genera informes automáticamente para tareas de gestión específicas. Habitualmente, el LMS lo emplean las organizaciones que poseen un volumen considerable de cursos y para ello se les hace necesario el uso de una herramienta tecnológica que les permita gestionarlos con efectividad y de forma práctica. La mayoría de LMS están basadas en la Web para facilitar en cualquier momento y en cualquier lugar y a cualquier ritmo el acceso a los contenidos de aprendizaje y administración. Al igual que ocurre con los CMS, podemos encontrar LMS de diferente tipología, ya sea bajo licencias propietarias, entre ellas Blackboard, ATutor y Web CT, o LMS tipo “open source” como por ejemplo dotLRN, Moodle o Caroline. Por otro lado, los LCMS (Learning Content Management System) es una aplicación de software que combina las capacidades de gestión de cursos de un LMS con las capacidades de almacenamiento y creación de contenidos de un CMS. Los LCMS se acercan a la denominación de “campus virtuales”. Permite la creación y el desarrollo eficiente de contenidos para el aprendizaje proporcionando las herramientas necesarias a autores, diseñadores y expertos del tema. Normalmente el LCMS utiliza el lenguaje XML y sigue los estándares de la enseñanza digital IMS, AICC y SCORM. 2.4.2 Análisis Para analizar estos sistemas comentados anteriormente se va hacer una comparación entre ellos. Las diferencias que existen entre CMS y LMS en cuanto a gestión de contenidos, es que LMS administra y gestiona contenidos formativos y CMS de cualquier ámbito. Otra diferencia es que LMS permite herramientas de comunicación para la actividad docente, mientras que el CMS no las incluye. En cuanto a las diferencias entre LMS y LCMS es que son dos sistemas muy diferentes que sirven para distintos propósitos. Se puede decir que un LMS es un software que planifica y gestiona los eventos de aprendizaje dentro de una organización, incluyendo el aula online o virtual y los cursos dirigidos por un instructor. Por el contrario, un LCMS es un software para la gestión de contenidos de aprendizaje de los diversos programas de capacitación que se configuran en el desarrollo en toda la organización. En este segundo caso, se proporciona a los desarrolladores, autores, diseñadores y expertos en la materia los medios para crear y reutilizar el contenido de aprendizaje y reducir la duplicación de los esfuerzos de desarrollo, ya que un LCMS crea, almacena, ensambla y entrega de forma personalizada el contenido en forma de objetos de aprendizaje específicos. Se podría decir que un LCMS es lo mismo que un LMS pero 35 con una particularidad, que es la propia de los CMS: el hecho de poder administrar todos los contenidos del sistema. 2.5 Conclusiones En conclusión, las CMS tiene muchas ventajas ya que ahorra tiempo al creador de una página web y facilita el trabajo ya que le proporciona servicios que sólo se podrían hacer programando y un ejemplo claro es en “Joomla”, el propio software crea el código PHP que el usuario indica mediante su gestor de una forma más gráfica. Además en el caso concreto de “Joomla” es totalmente gratuito y está avanzando constantemente ya sea mediante nuevas versiones de éste o con nuevas extensiones o nuevas versiones de las extensiones que hacen que cada vez esta CMS proporcione nuevos y más servicios al usuario. En resumen, “Joomla” proporciona muchas ventajas ya no sólo que es gratuito, sino que también tiene una cantidad importante de extensiones, que hace que el mantenimiento de una página web sea sencillo y que las actualizaciones son automáticas entre otras. En cuanto a las LMS, nos ayuda a gestionar la administración de una enseñanza o de un curso en todos sus aspectos: gestionar usuarios, recursos, actividades, módulos, permisos, generar informes, evaluaciones, calificaciones, comunicación de foros, videoconferencias, chats y demás con lo que esta tecnología similar proporciona aún más servicios de una forma cómoda. Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 36 37 3 Especificación de requisitos 3.1 Introducción La especificación de requisitos es una de las tareas más importantes en el ciclo de vida del desarrollo de software ya que en esta se determinan los “planos” de la aplicación. En este caso la aplicación a desarrollar es una página web para un centro de formación, la cual permita publicitar su producto y facilite la interacción con el cliente 3.1.1 Propósito El propósito de la especificación de requisitos es definir cuáles son los requerimientos que debe tener la aplicación que se va a desarrollar y describir la funcionalidad del usuario a lo largo de ella. 3.1.2 Ámbito El desarrollo del sitio web está orientado a ofrecer diversos contenidos y funcionalidades que ayuden a poder obtener información sobre los servicios, cursos, certificados, becas, información de la empresa de los que dispone la empresa, además de promocionar esta y facilitar el contacto con sus clientes. 3.1.3 Definiciones, siglas y abreviaturas - Aplicación web: herramientas que los usuarios pueden utilizar accediendo a un servidor web a través de Internet o de una intranet mediante un navegador. - Interfaz de usuario: Es el medio con que el usuario puede comunicarse con una máquina, un equipo o una computadora, y comprende todos los puntos de contacto entre el usuario y el equipo. Normalmente suelen ser fáciles de entender y fáciles de accionar. - Navegador: Aplicación que opera a través de Internet, interpretando la información de archivos y sitios web para que estos puedan ser leídos. - Servidor web: Se trata de un programa que implementa el protocolo HTTP que procesa una aplicación del lado del servidor realizando conexiones bidireccionales y/o unidireccionales y síncronas o asíncronas con el cliente generando o cediendo una respuesta en cualquier lenguaje o aplicación del lado del cliente. - Redes sociales: Son estructuras sociales compuestas de grupos de personas, las cuales están conectadas por uno o varios tipos de relaciones, tales como amistad, parentesco, intereses comunes o que comparten conocimientos, e ideas de libre expresión. - Google+: Es un servicio de red social operado por Google Inc. Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 38 - Youtube: Es un sitio web en el cual los usuarios pueden subir y compartir vídeos. - Twitter: es un servicio de microblogging. - Facebook: Empresa que consiste en un sitio web de redes sociales. - Blog: Es un sitio web periódicamente actualizado que recopila cronológicamente textos o artículos de uno o varios autores, apareciendo primero el más reciente, donde el autor conserva siempre la libertad de dejar publicado lo que crea pertinente. 3.1.4 Referencias - Apuntes “Habilidades y técnicas para la toma de requisitos-Especificación”, por José Luis Poza. - Apuntes basados en IEEE Std 830-1998. - Apuntes Especificación de Requisitos Software según el estándar IEEE 830 de la asignatura “Ingeniería del software” de la universidad Jaume I. - Ejemplos de otros proyectos. 3.1.5 Visión global A continuación se realizará la descripción general del sistema desarrollado con sus funciones, características del usuario, restricciones, supuestos y dependencias. También se expondrá una especificación detallada de los requisitos detectados. 3.2 Descripción general 3.2.1 Perspectiva del producto La aplicación desarrollada pretende dar información general sobre la empresa (en este caso es un centro de formación) como podría ser los principios de la empresa, la excelencia de calidad o el equipo docente, así como información relacionada con los productos que ésta proporcionada, es decir, cursos de idiomas, cursos gratuitos, certificados oficiales, ciclos formativos, alquiler de aulas además de ofrecer contacto con la empresa e información relacionada a preparación de exámenes oficiales y sobre becas y ayudas. Se podrá acceder a la página web desde cualquier sistema operativo que tenga conexión a Internet utilizando un navegador web. 39 3.2.2 Funciones del producto A continuación se muestran las funciones que conforman la aplicación: - Mostrar el teléfono de la empresa: Se muestra el teléfono en color azul en la parte superior de la página, debajo del menú horizontal, además de en la página inicio junto a la promoción de matrícula de los ciclos formativos ofertados. - Posibilidad por parte del usuario de enviar su teléfono a la empresa: Por medio de un módulo situado en la parte superior en el menú vertical derecho, en el cual hay un mensaje dirigido al usuario indicándole que la empresa le llamará gratuitamente y el usuario tiene la posibilidad de introducir su teléfono y enviarlo. - Ofrece información general relacionada con la empresa y sus productos: Mediante el menú vertical izquierdo llamado “Información”. - Información de la empresa: El cual se puede acceder a través de dicho menú comentado anteriormente, en el apartado “Progresa”. En él se puede encontrar a qué se dedica la empresa mediante la pestaña ”Progresa”, y mediante la otra pestaña, ”Nuestros principios”, como se puede deducir informa sobre los principios de la empresa . - Información sobre la historia, localización, método de trabajo y material que se dispone: Información disponible en el apartado “Excelencia de calidad”. - Información relacionada con el equipo docente: Se indican las cualidades del profesorado y forma de trabajo de estos, a través del apartado “Equipo docente”. - Información sobre becas y ayudas: Esta información está disponible en el menú comentado anteriormente, en el apartado “Becas y ayudas”, el cual también está disponible en el menú horizontal superior dentro de “Secretaría” en el submenú también llamado “Becas y ayudas”. En éste podemos encontrar plazos de solicitud de becas, cómo presentarlas, requisitos y demás información útil relacionada con las becas, además de un enlace a un documento “pdf” referente a la convocatoria oficial y otro enlace a la página del Ministerio de Educación. - Información de la preparación a exámenes oficiales: Se encuentra en el apartado “Preparación a exámenes oficiales” y proporciona información sobre a las personas que va dirigida ésta información y cómo es la preparación para los diferentes exámenes oficiales. - Información relacionada con la oferta formativa: Mediante el menú vertical izquierdo llamado “Oferta formativa”. - Información sobre el refuerzo escolar que se oferta: Se puede acceder a través del apartado “Formación Técnica de estudio” y se muestra la información de la forma de ofrecer refuerzo y apoyo escolar al cliente y además información sobre las clases particulares. Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 40 - Información sobre cursos gratuitos: Se encuentra en el apartado “Cursos gratuitos” y se compone de un módulo con dos pestañas, “Formación continua” y “Formación ocupacional”, en los cuales se ofrece una serie de cursos gratuitos correspondientes a cada campo. - Información sobre cursos de idiomas: Se accede a ésta información por el apartado “Departamento de idiomas”, y ofrece la forma de aprendizaje de la empresa en cuanto a idiomas, cómo son los grupos de trabajo, el calendario, tipos de cursos de idiomas y niveles que existen entre otras cosas relacionadas siempre con el aprendizaje de otras lenguas y la oferta de cursos de idiomas. - Información sobre ciclos formativos ofertados: En este caso se puede acceder a esta información a través de varios menús los cuales se llaman “Ciclos Formativos” en los que se ofertan los diferentes ciclos en diferentes pestañas cada uno y éstos poseen submenús que corresponden a cada uno de los ciclos, en los cuáles se ofrece la información detallada de cada ciclo, además de la posibilidad de contacto a través de un formulario situado en una de las pestañas en cada ciclo. También hay un apartado con más información en cada uno de ellos en los que hay enlaces a diferentes documentos “pdf”. A esta información se puede acceder además desde “Inicio” mediante unos enlaces. - Información sobre el alquiler de aulas: Se puede encontrar en el menú horizontal superior en el apartado “Alquiler de aulas”. En dicho apartado podemos encontrar información sobre qué características poseen las aulas, los horarios, localización y sobre cómo preguntar por los precios. - Blog: En éste se comenta las noticias de la empresa y se escriben artículos que la empresa considera adecuados. Se encuentra en el apartado “Blog”. - Mostrar el calendario de eventos: Se muestra el calendario el cual ocupa un módulo en el menú vertical derecho. Al acceder a él podemos observar varias opciones de visualización. Los diferentes eventos se definen con diferentes colores. - Información sobre los certificados de profesionalidad: Se pueden encontrar los tipos de certificados de profesionalidad que poseen. Se accede a través de un módulo situado la columna izquierda y está acompañado de una imagen la cual también está enlazada a ésta página. - Ofrece contacto con la empresa: A través de un formulario se puede contactar. Posee ReCaptcha para poder controlar la base de datos utilizada y no tener problemas con el servidor. A él se puede acceder desde el menú “Contacta” y desde una imagen de un sobre que se encuentra en la parte superior junto al teléfono y que está enlazada a esta página. - Enlace con las redes sociales: Existe un apartado a las redes sociales. En éste y a través de iconos se pueden encontrar: 41 - Youtube. - Twitter. - Google+1. -Facebook. 3.2.3 Características del usuario Sólo hay un tipo de usuario. No hace falta registrarse en esta página para conocer el contenido completo de ésta. Estos usuarios podrán acceder a toda la información y contenido que ofrece la página web. Podrá acceder normalmente desde a la página de “Inicio” y a partir de ésta podrá recorrer el mapa web cómo el usuario prefiera, puede buscar información por palabra, ver información sobre los 3 ciclos formativos promocionados en la página de inicio (“Desarrollo de aplicaciones web", "Desarrollo de aplicaciones multiplataforma" y "Administración y finanzas"), además no sólo puede obtener información sobre estos mediante la página de “Inicio” sino que también a través del menú vertical izquierda “Oferta formativa” y horizontal superior dónde se encuentran apartados relacionados con los ciclos formativos, puede contactar con la empresa mediante el menú “Contacta”, el enlace en la página de inicio para contactar en relación a los cursos promocionados llamado “solicitud”, mediante el sobre en la parte superior que está junto al teléfono o simplemente enviando el número de teléfono de usuario. También hay en el menú vertical izquierda llamado “Información”, el usuario puede obtener información de la empresa y sus principios en “Progresa”, información relacionada con excelencia de calidad, equipo docente, becas y ayudas, preparación de exámenes oficiales y prueba de acceso a mayores. Además en el otro menú vertical izquierda llamado “Oferta formativa” se puede encontrar no sólo información de los ciclos ofertados sino que el usuario encontrará información relacionada con formación técnica de estudio, formación bonificada, cursos gratuitos, los cuales están compuestos por formación continua y formación ocupacional y departamento de idiomas. Además, en la parte izquierda el usuario puede encontrar contenidos relacionados con los certificados de profesionalidad. Por otro lado, en el menú horizontal superior, se puede encontrar los apartados “Inicio” el cual se ha comentado anteriormente qué información posee, “Secretaría” con sus respectivos submenús “Admisión de alumnos”, “Documentación” y “Becas y ayudas”, “Ciclos formativos” el cual también se ha comentado anteriormente y que posee submenús de cada uno de los ciclos ofertados, “Alquiler de aulas” y “Blog” que contiene algún menú diferente al resto de las páginas como puede ser “Etiquetas” y “Comentarios” ya que éste, como su palabra indica tiene un aspecto de blog. Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 48 Número de requisito RF10.3 Nombre de requisito Integrar “Twitter” Tipo Requisito Fuente de requisito Cliente Prioridad de requisito Alta Número de requisito RF10.4 Nombre de requisito Integrar “Facebook” Tipo Requisito Fuente de requisito Cliente Prioridad de requisito Alta 3.3.2 Requisitos comunes de los interfaces 3.3.2.1 Interfaces de usuario En cuanto a la interfaz de usuario, en un principio no había ningún requerimiento específico, sino que se diseñaron 80 plantillas web para “Joomla” por medio del programa “Artisteer 3”, y a partir de estas mediante su instalación en el servidor para su posible visualización junto al contenido de la web, se hizo una selección. A patir de estas, se perfilaron los requerimientos que debía de tener la interfaz del usuario, hasta llegar a la conclusión que la plantilla debía de tener un tamaño de 1024x768, que debía de tener una cabecera con una determinada foto (la cual se ve en la figura…..), que debía poseer 2 columnas posicionadas a la parte izquierda y derecha del contenido, que los colores debían de ser blanco y azul y gris en diferentes tonalidades, que el fondo de la plantilla debía de ser un azul que se degrade hasta blanco además de una serie de módulos colocados en las posiciones que se requieran. 3.3.2.2 Interfaces hardware Al tratarse de una aplicación web, se podrá visualizar sobre cualquier sistema operativo. En cuanto a la configuración del equipo, para la forma de visualización depende de la resolución del equipo del usuario. Las recomendadas son 1024x768 y 1280x800. 49 3.3.2.3 Interfaces software La aplicación funcionará en cualquier máquina, sólo hay que integrar un navegador web y tener una conexión a Internet. Un navegador web es una aplicación que opera a través de Internet, interpretando la información de archivos y sitios web para que estos puedan ser leídos. 3.3.2.4 Interfaces de comunicación Las comunicaciones se efectuarán siguiendo el protocolo HTTP mediante conexiones TCP/IP. El protocolo HTTP es el usado en cada transacción de la World Wide Web. HTTP define la sintaxis y la semántica que utilizan los elementos de software de la arquitectura web (clientes, servidores, proxies) para comunicarse. Es un protocolo orientado a transacciones y sigue el esquema petición-respuesta entre un cliente y un servidor. Al cliente que efectúa la petición que se lo conoce como "user agent" (agente del usuario). A la información transmitida se la llama recurso y se la identifica mediante un localizador uniforme de recursos (URL). En cuanto al protocolo TCP garantiza que los datos serán entregados en su destino sin errores y en el mismo orden en que se transmitieron. También proporciona un mecanismo para distinguir distintas aplicaciones dentro de una misma máquina, a través del concepto de puerto. Una dirección IP es una etiqueta numérica que identifica, de manera lógica y jerárquica, a un interfaz de un dispositivo. 3.3.3 Requerimientos no funcionales 3.3.3 Requerimientos de eficiencia Debido a la metodología empleada en el diseño de la aplicación, el portal web tiene un rendimiento del 100% independientemente del hardware y software utilizado. Los únicos factores que pueden influir son las velocidades de conexión del cliente y del servidor. En cuanto al servidor, actualmente a mayoría cuentan con velocidades de subida más que suficientes para nuestras necesidades. Respecto al cliente, las velocidades ofrecidas actualmente por los ISP también son más que suficientes para la correcta transmisión de datos entre el cliente y el servidor. Otro aspecto que hemos tratado de cuidar especialmente es la resolución del monitor. La mejor resolución para visualizar nuestra aplicación es 1280x800, pudiéndose visualizar, sin embargo, el contenido de igual modo con resoluciones inferiores. Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 50 Al tratarse de una aplicación web no se requiere un hardware específico. El servidor que albergará la base de datos del sistema deberá permanecer conectado a Internet las 24 horas, puesto que este host será quien atienda las peticiones de lectura y escritura de los usuarios que accedan a la intranet. 3.3.5 Atributos 3.3.5.1 Seguridad La seguridad es un aspecto fundamental en un portal web. Primero, la administración del sitio web se hace a través de una interfaz proporcionada por “Joomla” dónde el administrador o administradores poseen un nombre de usuario y una clave, por tanto la seguridad en la administración del sitio web está garantizada ya que está sujeta a la identificación satisfactoria del administrador en la aplicación, de forma que ningún usuario anónimo o visitante pueda entrar a éste apartado. Además el servidor dónde está ubicado el sitio web es mediante una empresa la cual facilita también una contraseña y un nombre de usuario para poder gestionar los diferentes sitios web que se posean. Por otro lado, a través de la página web, el usuario puede contactar con la empresa y estos mensajes se envían a un correo electrónico y se almacenan a su vez en la base de datos y en la administración que proporciona “Joomla” del sitio web, con lo cual se debe proteger esta bases de datos para que no se sature por medio de una gran cantidad de correos(es decir, para evitar que alguien o algo con “mala idea” sature la base de datos). Para asegurar que esto no pasa se ha introducido un “ReChaptca” que se debe rellenar para que se pueda enviar el correo. Finalmente “Joomla” posee una extensión la cual permite hacer copias del sitio web para que en el caso de que se pierda o se robe el sitio o simplemente haya cambios que no son los adecuados y se desee volver a un punto anterior se puede volver cargando esta copia. Dicha extensión se llama “Akeeba Backup” de la cual se hablará de ésta y otras extensiones más adelante. 3.3.5.2 Fiabilidad En éste caso se puede asegurar que durante 5 meses el servidor no ha tenido ningún fallo, con lo cual ha estado 100% disponible en este tiempo. 3.3.5.3 Disponibilidad La aplicación estará disponible siempre que el servidor está en condiciones óptimas. Por parte del usuario tendrá la página disponible mientras posea un equipo con conexión a Internet y un navegador instalado en dicho equipo (suele venir al menos uno instalado por defecto). 51 3.3.5.4 Mantenibilidad Se llevará a cabo por el administrador. Simplemente por medio de la interfaz que proporciona “Joomla” para administrar el sitio web se pueden actualizar contenidos, menús, enlaces y se pueden instalar nuevas versiones, paquetes, plantillas, módulos, plugins y extensiones. En el caso de crear una nueva plantilla se deberá crear en otro programa como por ejemplo el que se ha utilizado en este caso “Artisteer 3”. 3.3.5.5 Portabilidad La aplicación podrá ser soportada por cualquier plataforma y sistema operativo. Por otro lado, se podrá acceder a ella desde cualquier navegador y a través de cualquier equipo que disponga de conexión a Internet. En el caso que se desee portar a otro servidor u otra empresa de servicio de hosting no habrá ningún problema en integrarla, el único procedimiento que requeriría extra sería instalar “Joomla” junto a todas las extensiones previas e instalar la última copia recuperada del sitio web. 3.3.6 Otros requerimientos La aplicación deberá de tener un administrador creado, es decir, en el gestor “Joomla” debe de tener un administrador con su contraseña para que se pueda acceder a dicho gestor y poder gestionar la página web y mantenerla. Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 52 53 4 Análisis 4.1 Introducción Para realizar el análisis de la aplicación web se ha seguido las UML (Unified Modeling Language o Lenguaje Unificado de Modelado en castellano). UML es el lenguaje estándar de la industria que se utiliza para especificar, visualizar, construir y documentar los artefactos de software del sistema por lo que simplifica el complejo proceso de diseño de software, creando un plan para la construcción de éste. UML dispone de una gran cantidad de diagramas entre los que podemos destacar: - Diagramas de Colaboración - Diagramas de Secuencia - Diagramas de Casos de Uso - Diagramas de Clases - Diagramas de Objetos - Diagramas de Componentes - Diagramas de Despliegue - Diagramas de Paquetes - Diagramas de Actividad - Diagramas de Estados A pesar de la gran cantidad de diagramas que posee para representar los distintos aspectos del desarrollo de la aplicación, en este caso se centra única y exclusivamente en el diagrama de clases y el diagrama de casos de usos. 4.2 Diagrama de clases En la siguiente figura se muestra el diagrama de clases de la aplicación creada. Previamente se pasa a describir brevemente las diferentes clases que lo componen. - Empresa: Representa a la empresa única la cual requiere esta aplicación para proporcionarles un servicio. - Aula: Es el espacio que tiene reservado la empresa para impartir curso o alquilarlas. - Curso: Es una de los principales productos que ofrece la empresa y se imparte en aulas de esta. - Certificado de profesionalidad: Producto que ofrece la empresa. Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 54 - Profesor: Se encarga de impartir un curso. - Ciclos Formativos: Es un tipo de curso. - Clase Particular: Es un tipo de curso. - Curso Gratuito: Es un tipo de curso. - Curso de Idioma: Es un tipo de curso. - Formación ocupacional: Es un tipo de curso gratuito. - Formación Continua: Es un tipo de curso gratuito. Aunque no se ha programado, éste sería el resultado: 55 FIGURA 20: Diagrama de clases 4.3 Diagrama de casos de uso Los diagramas de casos de uso nos permiten diferenciar los actores que interactúan con nuestra aplicación, las relaciones entre ellos y las acciones que puede realizar cada uno dentro del sistema. Este tipo de diagramas son fácilmente comprensibles tanto por clientes como por usuarios, representan los requisitos funcionales del sistema y se utilizan como base para un desarrollo iterativo e incremental. Los diagramas de casos de uso tienen tres elementos: - Actores: Son los usuarios del sistema (figura 3). Un actor puede ser una persona, un conjunto de personas, un sistema hardware o un sistema software. Los actores Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 56 representan un rol, que puede desempeñar alguien que necesita intercambiar información con el sistema. - Casos de uso: Un caso de uso describe una forma concreta de utilizar parte de la funcionalidad de un sistema. La colección de todos los casos de uso describe toda la funcionalidad del sistema. - Comunicación entre actores y casos de uso: Cada actor ejecuta un número específico de casos de uso en la aplicación. Por eso decimos que hay comunicación entre actores y casos de uso. Actores FIGURA 21: Actores Entre los actores están el usuario que tiene dos especificaciones, ya que hay que diferenciar entre administrador y cliente, que son todos los que acceden a la página web. 57 Casos de uso de Usuario FIGURA 22: Casos de uso de Usuario Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 64 5.3 Capa de datos La base de datos contiene toda la información dinámica de la página web, desde los datos que se mostrarán en la web hasta los que se utilizan durante la gestión. Esta base de datos como se ha comentado anteriormente es de MySQL y contiene el gestor phpMyAdmin. Esta base no se ha modificado directamente ya que “Joomla” lo hace por sí solo. 5.4 Capa de negocio Con la capa de gestión puedes interactuar con tu diseño y añadir elementos para que se muestren de acorde a tu contenido. Para trabajar esto, “Joomla” dispone de un gestor para la administración del sitio web dónde se diseña toda esta capa. En cuanto a las áreas que dispone esta administración se puede dividir en: - Menú principal - Barra de Herramientas - Barra de información - Área de trabajo. El menú principal es el centro de navegación del panel de administración y dentro de él cada botón posee un menú desplegable con más opciones, los cuales pueden también poseer submenús desplegables con sus propias opciones. La barra de información nos brinda datos sobre: - El nombre del sitio. - La sección o componente actual de trabajo. - El nombre del usuario que ha accedido como administrador. - El número de mensajes que tiene de otros administradores/managers designados. - El número de usuarios con sesiones abiertas. La barra de herramientas provee al administrador de distintos instrumentos para la creación y manipulación de los contenidos. Se debe de tener en cuenta que la barra de herramientas cambia sus botones dependiendo del elemento que se está administrando, ofreciendo opciones específicas para cada uno de ellos. No solamente contenidos sino también cualquier elemento de “Joomla” que podamos editar, crear o configurar, como por ejemplo plantillas, categorías, módulos etc. Los principales elementos en la gestión de contenido de “Joomla” son los siguientes: - Usuarios. Define qué usuarios pueden acceder a la administración o parte pública de tu web y sus permisos específicos. Con la instalación predeterminada, la página web es visible públicamente y solo existe un usuario administrador dado de alta. 65 - Artículos. Los artículos son la fuente principal de información para tu web. Se pueden estructurar en categorías y subcategorías. - Menús. Los menús que se mostrarán en tu web (horizontalmente o verticalmente) y que enlazan a diferentes partes de tu página web. - Componentes. Los componentes son las funcionalidades principales de las que dispone tu instalación “Joomla”. A parte de las que vienen instaladas, puedes conseguir más mediante la instalación de funcionalidades adicionales. - Extensiones. Las extensiones son funcionalidades que no tienen la envergadura de un Componente pero que sirven también para ampliar la funcionalidad de “Joomla”. Éstas de dividen en módulos, plugins, idiomas y plantillas. 5.5 Capa de presentación La capa de presentación consiste en diseñar una interfaz gráfica de usuario (IGU). La interfaz de usuario es el medio de comunicación que permite que un usuario (persona) interaccione con un sistema (ordenador). En esta interfaz de usuario se deben de seguir ciertas reglas para que sea eficiente, el usuario tenga facilidad de manejarla, de recuperar información, se deben de escoger colores que se diferencien bien entre ellos entre otras cosas. En cuanto a la elección de colores se basa en los colores de la empresa que son azul, gris y blanco. Por tanto estos colores en sus diferentes tonalidades aparecen en esta interfaz. El color blanco se elijó para el fondo dónde aparece el contenido para que fuese más limpio éste. El interfaz en sí se compone de un fondo y una hoja en la cual se encuentran todos los menús, contenidos, cabeceras y pie de página. Todas estas conclusiones se llevaron a cabo a través de la creación de plantillas y la siguiente selección de éstas según las características que encontradas en ellas que fueran interesantes para incorporarlas a la plantilla final. Una plantilla no es más que un set de ficheros HTML y CSS preparados para entender las configuraciones que se llevan a cabo en el gestor de Joomla y mostrarlos en tu web de una forma determinada. Se puede instalar diferentes plantillas y activarlas a través del gestor. En este caso se crearon 80 plantillas que se subieron al gestor “Joomla” y a partir de una selección de estas se tomaron todas las decisiones comentadas anteriormente. En cuanto a la estructura de una plantilla puede variar mucho pero en general se respetan estas 3 zonas básicas en su estructura: - Cabecera. - Menú Lateral. - Contenido. En la siguiente figura se muestra dicha interfaz, lo cual hará que quede más claro visualmente junto con los módulos que tiene colocados en las diferentes posiciones: Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 66 FIGURA 27: Intefaz de usuario 5.6 Conclusiones Hay que tener en cuenta que se necesita una fase de aprendizaje para entender una CMS por tanto en los primeros pasos en el diseño son difíciles. En la capa de datos es la única parte en la que el administrador o creador de la aplicación web no tiene que meterse de lleno, ya que “Joomla” maneja la base de datos por sí sola. El administrador se debe de ocupar de manejar los recursos que posee el gestor de “Joomla”, es decir, de contenidos, menús, plantillas, extensiones, plugins, categorías, multimedia y demás contenidos y el propio gestor se encarga de introducirlo, borrarlo o cambiarlo en la base de datos. Esto no quiere decir que el administrador no pueda controlar la base de datos 67 ya que se puede acceder a ella mediante phpMyAdmin correspondiente a la base de datos, sino que no tiene la necesidad de involucrarse tanto en éste aspecto. Sin embargo la parte de la capa de negocio y de presentación está en manos completamente del administrador. Empezando por la capa de negocio, las conclusiones que se sacan es que se debe de aprender la forma de utilizar los diferentes apartados que posee el gestor, como se ha comentado anteriormente, ya que aunque sea muy visual todo, el procedimiento no es evidente. Además correspondiente a dicha capa se necesitan la mayoría de las extensiones creadas para “Joomla”, las cuales son necesarias para poder crear o diseñar ciertos elementos. Hay un gran número de extensiones de “Joomla” que facilitan la labor al diseñador, ya sea proporcionando mejores versiones de WISIWIG para el gestor hasta extensiones que crean un “sitemap” del sitio web. En esta capa falta contenidos que no han sido proporcionados. Por último la capa de presentación, como se ha comentado, llevó un proceso de selección. En un primer momento no había una idea clara de cómo confeccionar dicha interfaz de usuario así que se optó por crear un número de plantillas con diferentes características cada una (diferente tamaño de hoja, cabecera, tonalidades, fondo, gradiente, bordes o formas de los botones entre otros) y a partir de una selección ir moldeando la plantilla final juntando diferentes características destacables para la empresa que tuviesen las seleccionadas. Una ventaja de Joomla es que separa perfectamente contenido con apariencia pues es una ventaja poder instalar diferentes plantillas con el mismo contenido para poder comparar y por tanto mejorar el aspecto de la interfaz de usuario. Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 68 69 6 Implementación 6.1 Introducción En esta parte del documento se va a explicar el soporte físico sobre el cual se desarrolló la propia aplicación, la instalación del software necesario para desarrollar la aplicación, es decir “Joomla”, la evaluación del cliente sobre la aplicación y por último un apartado de conclusiones. Se debe mencionar que la explicación sobre el desarrollo de la aplicación se encuentra en el apartado “7.Conclusiones”. 6.2 Soporte físico El soporte donde se ha realizado esta aplicación es en un equipo portátil, con conexión a Internet para poder acceder al gestor de la aplicación vía Internet. 6.3 Instalación La instalación es sencilla ya que el software “Joomla” presenta la instalación por pasos en los que son sencillos y visuales para el usuario. A la hora de instalar el software “Joomla” puede haber diferentes opciones. Se puede instalar el paquete en un ‘localhost’ o directamente en el servidor dónde se encuentra el host (éste es el caso, el host es proporcionado por una empresa de servicio hosting). En un principio se probó la primera opción para conocer las características de “Joomla” y familiarizarse con dicho entorno. Siguiendo ésta idea la página web se podía crear en el gestor de “Joomla” instalado en el ‘localhost’ y más tarde migrar éste sitio. Para conseguir esto hay dos opciones: - Migrar la base de datos por un lado y los archivos y carpeta por otro: Para migrar la base de datos simplemente hay que ir a “phpMyAdmin” correspondiente a la aplicación web y exportarlo, eligiendo el tipo de compresión que se desee. Por parte de archivos y carpetas hay que utilizar un servidor FTP para subir los archivos y carpetas deseados al nuevo servidor, teniendo en cuenta de que se debe borrar los archivos creados en la instalación del software “Joomla” a excepción del archivo “confuguration.php”, el cual se debe comprobar que éste hace referencia a la base de datos deseada. - Crear una copia de seguridad e instalarla en el nuevo gestor “Joomla”: Para la creción de una copia de seguridad del sitio web necesitamos una extensión de “Joomla” instalada en el gestor. Una de éstas extensiones podría ser “AkeebaBackup” (la cual es utilizada en esta aplicación para crear copias de seguridad cada cierto tiempo con el fin de protegerse frente a pérdidas). De estas extensiones se hablará más adelante. Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 70 Como se ha comentado, finalmente se decidió contratar un servicio de host en el cual se instaló “Joomla” y se desarrollo el trabajo desde aquí. Los avances logrados en el gestor de “Joomla” instalado en el ‘localhost’ no se migraron ya que se prefirió tomar sólo algunas ideas desarrolladas en este y no la totalidad del trabajo avanzado. 6.4 Evaluación En esta fase de evaluación se concluye el ciclo de vida del proyecto y se mide el nivel de calidad que ofrece al usuario la aplicación creada. El cliente ha decidido que la calidad del producto es buena aunque se podría mejorar la presentación de algunos menús que están sin información. Esta información debió ser proporcionada por el propio cliente. 6.5 Conclusiones “Joomla” proporciona multitud de opciones al cliente y desarrollador ya que se pueden migrar el contenido de una página web con mucha facilidad y poder seguir desarrollando desde otro lugar. Además la instalación de dicho software es muy sencilla lo que permite que el desarrollador no gaste demasiado tiempo en dicho aspecto y en el caso de que el desarrollador no tenga conocimiento de dicha CMS no le resulte difícil en pasar en pocos minutos al aprendizaje de como se utiliza “Joomla”. Por otro lado, la aplicación desarrollada ha sido tal y como el cliente quiso y especificó por lo tanto el cliente está satisfecho con el trabajo realizado, aunque hay algunos aspectos que dentro de la opinión como desarrollador de dicha web que podrían mejorarse. En el siguiente apartado se encuentra toda la información sobre el trabajo realizado y se podrán contrastar dichas conclusiones. 71 7 Sistema desarrollado En un primer punto se realizó un estudio sobre las páginas web del mismo mercado. En él se destacaban desde las formas de las hojas, colores, fondos o como estaba distribuida la información. En dicho estudio se empezaron a sacar conclusiones sobre el diseño que debía de tener la web. Las páginas que fueron visitadas para dicho estudio se encuentran en el apartado referencias. El segundo paso fue elegir la tecnología a utilizar para el desarrollo de la web mediante la especificación de requisitos. En un primer momento se empezó a desarrollar una plantilla web con HTML mediante Dreamweaver pero más tarde se decidió de hacerlo con una CMS, en este caso “Joomla”. Se procedió de la instalación de este software en localhost. Una vez instalado se empezó a desarrollar el diseño de la web, cuando se procedió a la contratación de un servicio de hosting. El siguiente movimiento fue crear 80 plantillas para “Joomla” e instalarlas en el gestor de extensiones de “Joomla”. Las plantillas fueron creadas mediante el programa “Artisteer 3”el cuál tiene multitud de opciones de plantilla. Se creó unos pocos menús para poder comparar las plantillas con texto y menús ya que es más gráfico. Se hizo un estudio de estas plantillas para elegir características de diseño de estas y juntarlas en una, es decir, forma de los botones, tamaño de la cabecera, foto de la cabecera, tamaño del pie de página, color de fondo, tamaño de la hoja, escala de colores utilizados, color de los menús y submenús seleccionados y estilo de letra de los menús. Una vez creada la plantilla final se crearon otras parecidas con pequeñas modificaciones como pudiera ser el tamaño de hoja para que hubiese diferentes opciones para diferentes resoluciones de pantalla, en este caso para las resoluciones de 1024x768 y 1280x80, otra con la cabecera más pequeña y otra para que el tamaño de las columnas laterales sean más estrechas. Poco a poco se iba completando la especificación de requisitos que debía de tener esta aplicación mediante reuniones periódicas que se basaban en los servicios que debía de ofrecer la página web, cómo se quería que fuesen los formularios de contacto, qué fotos debían aparecer o por ejemplo cómo distribuir la información dentro de un apartado (en este caso mediante pestañas). Se crearon los menús que más adelante se explicaran cada uno cómo se crearon y qué componentes se utilizaron para ello pero primero se va a explicar cómo se crea un menú sencillo de “Joomla”. En primer lugar hay que ir al apartado ‘Gestor de menús’. En él se encontrará dos pestañas, ‘Menús’ y ‘Elementos del menú’. En el primero se encuentran el menú general y el segundo pertenece a los menús y submenús que contiene el general. En la siguiente figura se muestra el gestor del menú: Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 72 FIGURA 28: Gestor de menús En primer lugar se muestra una sección de “Detalles” a la izquierda y a la derecha diferentes opciones. Se pueden especificar muchas características del menú. La primera que aparece es el tipo del menú el cual posee multitud de opciones como por ejemplo mostrar los artículos archivados, todas las categorías formulario para crear y enviar artículo, categoría en formato lista, mostrar un solo canal electrónico o mostrar los contactos destacados entre otros muchos. Además muchas de las extensiones proporcionan opciones en el tipo de menú como pueden ser las extensiones ”BreezingForms”, “Phoca Download”, “Xmap”, “Stalker”, “K2”, etc. En este caso el elegido es “Categoría de tipo Blog”. Otra de las características que se le puede dar al menú es el título, el alias, el estado(si está publicado o no) , el enlace del menú, el acceso, se le puede asignar el menú general y especificar si es un menú raíz o un submenú dentro de este menú general, el orden, la forma de apertura (nueva ventana, misma ventana, nueva pestaña…), se le puede dar la posibilidad que sea página de inicio, el idioma y el estilo de plantilla. Las opciones de la derecha son muy interesantes. En las “Opciones obligatorias” simplemente se puede asignar una categoría a éste menú (también se puede dejar sin categoría como es el caso de la figura 39). En el siguiente apartado, “Opciones de categoría” se pueden elegir si mostrar en los diferentes componentes de una categoría, es decir, título de esta, descripción o imagen asociada. Los apartados de “Opciones del formato blog o destacados”, “Opciones de artículo” y “Opciones de visionado de página” son opciones para que el usuario muestre el menú a su gusto. También hay opciones del enlace en “Opciones de integración” y Opciones de tipo de enlace”. Además, están las “Opciones a los metadatos” que es una opción muy interesante ya que se pueden introducir aquí las palabras claves y la descripción de esta página para que los robots de los buscadores sepan asociar y encontrar dicha página. Por último, a 73 este menú se le pueden asignar la posición y los módulos que se deseen. Si no se le asigna el menú nunca se publicará. En el caso de los menús de la aplicación web que se está comentando no muestran nombre de categorías o artículos y suelen tener una categoría asociada. En la siguiente figura se muestra los menús dentro del menú general “Oferta formativa”: FIGURA 29: Menú Oferta formativa En total se han creado los siguientes menús y submenús a los que se añaden las siguientes fuguras a algunos de ellos para que sea más visual: - Main Menú - Inicio Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 80 - Certificado de profesionalidad Todos estos menús son del tipo “Artículo”-“Mostrar categoría de tipo Blog” exceptuando el menú Blog que es del tipo “K2”-“Categoría”, el menú Certificados de profesionalidad que es de tipo “Artículo”-“Mostrar sólo un artículo” y el menú Contacta que es de tipo “Proforms”-“Form”. Se han creado más menús pero que son irrelevantes para el resultado ya que no están publicados. Por otra parte, se crearon diferentes categorías. Las categorías sirven en “Joomla” para poder agrupar menús y artículos. Mediante esta agrupación se pueden mostrar los artículos de una misma categoría a la vez. Las categorías que se crearon son: - uncategorised: Categoría que viene por defecto. En ella se encuentran los menús nombrados anteriormente: Secretaría, Admisión de alumnos, Documentación, los dos Ciclos Formativos pertenecientes a Main Menú y Oferta formativa, Prueba de acceso a mayores y Formación Bonificada. - Ciclos DAW: Se encuentran los dos menús Ciclo DAW pertenecientes a Main Menú y Oferta formativa. - Ciclos DAM.: Se encuentran los dos menús Ciclo DAM pertenecientes a Main Menú y Oferta formativa. - Administración y finanzas: Se encuentran los dos menús Administración y finanzas pertenecientes a Main Menú y Oferta formativa. - Alquiler de Aulas: Se encuentra el menú Alquiler de aulas. - Idiomas: Se encuentra el menú Departamento de idiomas. - Formación Técnica de estudio: Se encuentra el menú Formación Técnica de estudio. - Cursos SERVEF: Se encuentra vacío. Es una categoría que albergaba la información que ahora se encuentra en Cursos gratuito y que ha sido mejorada, por lo cual está sin publicar el contenido de ésta. - Certificados de profesionalidad: Corresponde a un artículo el cual está asociado al menú Certificados de profesionalidad. - Presentación: Se encuentra el menú Progresa. - Excelencia de calidad: Se encuentra el menú Excelencia de calidad. 81 - Equipo docente: Se encuentra el menú Equipo Docente. - Preparación de exámenes oficiales: Se encuentra el menú Preparación de exámenes oficiales. - Becas y ayudas: Se encuentra el menú Becas y ayudas, el perteneciente a Main Menú y el de Información General. - Cursos gratuitos: Se encuentra el menú Cursos gratuitos. Existen menús que no pertenecen a ninguna categoría comentada ya que dichos menús son de otro tipo perteneciente a una extensión de “Joomla” lo cual requiere otro procedimiento a través de la extensión. Normalmente dentro de dicha extensión hay un apartado para crear categorías, las cuales son del tipo de la extensión. Un ejemplo es en el menú Blog que está creado con la extensión K2, tiene categoría Blog la cual está almacenada dentro de la extensión y hay que asociarla en el menú. Esto queda más entendible gráficamente mediante la siguiente figura: FIGURA 41: Selección de categoría en extensión desde menú El siguiente paso es crear artículos que se van a vincular con categorías que a su vez se vinculan con menús que en su gran mayoría son del tipo “Mostrar categoría en formato blog”, con lo cual los menús muestran los artículos de las categorías con las que están relacionadas. Estos artículos creados son: - Administración y finanzas - Alquiler de Aulas - Becas y ayudas - Certificados de profesionalidad Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 82 - Ciclos DAM - Ciclos DAW - Cursos gratuitos - Cursos SERVEF - Equipo docente - Excelencia de calidad - Formación Técnica de estudio - Idiomas - Preparación de exámenes oficiales - Presentación Todos estos artículos se relacionan con la categoría que lleva el mismo nombre que estos. En la creación de artículos se encuentran multitud de opciones que se pueden cambiar. En la siguiente imagen aparece el gestor de artículos de “Joomla” con el ejemplo del artículo “Cursos Gratuitos”: FIGURA 42: Gestor de artículos En dicha imagen se ve una parte de características arriba a la izquierda. Son características referentes al alias del artículo, su título, a qué categoría pertenece dicho artículo, el estado (publicado o despublicado), el acceso, los permisos, si es un artículo destacado o no y el idioma. Justo debajo se encuentra el editor de texto con el cual podemos introducir contenido al artículo. También se puede introducir alguna opción de 83 formato como es el caso de las pestañas en este ejemplo. Las sentencias que aparecen hacen que sea posible junto al plugin correspondiente instalado: {tab=Formación continua}//Crea una pestaña llamada Formación continua {article Cursos SERVEF} {text} {/article}//Introduce el artículo Cursos SERVEF dentro de la pestaña {/tabs}//Cierra la pestaña En la parte de la derecha aparecen diferentes opciones más específicas que se pueden configurar. Entre ellas están las opciones de publicación que son aquellas referidas a la creación del artículo, es decir, quién la creado, fecha de creación, de publicación y proporciona la posibilidad de incluir una fecha de finalización de publicación del artículo además de información que da “Joomla” de quién fue el último administrador en modificar el artículo, la fecha de modificación o el número de veces en las que se ha accedido a dicho artículo. En el caso de la aplicación el autor sólo hay uno, llamado “Administrador” y las fechas son correspondientes a la creación o última modificación y ningún artículo posee fecha de finalización. Otra de las opciones son las opciones de artículo en las que se centra en la posibilidad de mostrar información referente a éste como pudiera ser el autor, la categoría a la que pertenece, la fecha o mostrar una serie de iconos como el de imprimir o el del correo. Esta información en la aplicación no se muestra ya que no se consideró irrelevante a excepción de los iconos de imprimir y de correo y el número de veces que ha sido visitado dicho artículo. Después se encuentran las opciones de la pantalla de edición que simplemente sirve para mostrar las diferentes opciones que aparecen en el gestor de artículos, es decir, estas opciones que se están comentando. Por último están las opciones de imágenes y enlaces y las opciones de metadatos. Las primeras son aquellas en las que da opción a introducir imágenes y enlaces y dentro de las imágenes pueden ser de introducción o una imagen para mostrar un artículo completo. En este apartado se ha elegido introducir imágenes y enlaces de otra manera, ya que se instalaron los nuevos editores de texto, comentados en el apartado de ”Tecnologías utilizadas por Joomla”, los cuales proporcionan más opciones en el manejo de enlaces e imágenes. Se han utilizado imágenes en artículos como el de “Presentación” que se encuentra en el menú de “Inicio” o en el artículo “Ciclos Formativos” que corresponde al menú con mismo nombre. En cuanto a los enlaces han sido incluidos en artículos como “Ciclo DAW” que corresponde al menú con mismo nombre y que son enlaces a documentos de tipo PDF que previamente han sido subidos al servidor (en los demás artículos sobre ciclos también se incluyen este tipo de enlaces a documentos PDF) y también hay enlaces que relacionados sobre texto o sobre imágenes como pudiera ser el módulo de “Certificados de profesionalidad” llevan a otra página perteneciente a la aplicación. Las segundas opciones comentadas anteriormente dan la posibilidad de introducir las palabras claves y una metadescripción del artículo al igual que pasara con los menús. Estas opciones están rellenadas tanto en menús como en artículos y más concretamente para introducir las palabras claves se hizo estudio de las palabras que podrían interesar mediante la herramienta proporcionada por Google, “Adwords”. Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 84 El siguiente paso fue crear los módulos correspondientes para situar los menús creados que ya están relacionados con una categoría y con los artículos correspondientes y otro tipo de módulos que no se corresponden con menús y que se comentarán a continuación. En primer lugar los módulos se pueden situar en única y exclusivamente en las posiciones que marca la plantilla. Hay que recalcar que en la creación de la plantilla se pueden manejar éstas posiciones y que una vez creada la plantilla también se pueden agregar, modificar o borrar las posiciones que se consideren necesarias modificando la hoja de estilo. Anteriormente se ha agregado la figura 30, la cual marca las posiciones que contiene la plantilla final utilizada en ésta aplicación y que servirá de quía para explicar dónde se han agregado los módulos. También varios módulos pueden tener la misma posición y para ordenarlos simplemente se deben de enumerar dentro de dicha posición para que salgan en el orden deseado y pueden aparecer en las páginas que se seleccionadas que se consideren, es decir, un módulo puede estar en todas las páginas, ninguna o en las seleccionadas. Para empezar, los módulos que contienen menús son los siguientes y se han situado en las siguientes posiciones: - Main Menú: Corresponde al menú general con mismo nombre y está situado en la posición 1. - Contacta: Corresponde al menú “Contacto” y está situado en la posición 6. FIGURA 43: Contacto a la empresa - Información: Correspondiente al menú “Información general” y ocupa la posición 7. 85 - Oferta formativa: Corresponde al menú general con mismo nombre y está situado en la posición 7. Además de los módulos que albergan los menús hay otros tipos de módulos que van desde la clase de módulos pertenecientes a extensiones a módulos que vienen por defecto en “Joomla” como puede ser por ejemplo de tipo URL embebida, Categorías de artículos o de Anuncio. A continuación se comentarán los que se han utilizado en la aplicación final. En primer lugar están los de tipo HTML Personalizado. Este tipo de módulo permite crear un texto en formato HTML. Entre los módulos que existen de éste tipo están: - Teléfono arriba: Es el módulo que aparece en todas las páginas en la posición 29 y que contiene una imagen con enlace. - Portada Ciclos: Está en la posición 22 y sólo se encuentra en las páginas de los menús Ciclos Formativos. Contiene enlaces en imágenes y en texto además de separación por pestañas. - Portada inicial: Se encuentra en la posición 22 en la página de Inicio. Contiene enlaces a diferentes páginas. - Certificados de profesionalidad: Está en la posición 7 en todas las páginas. Contiene imágenes y texto con enlaces. También en “Joomla” está por defecto el módulo de tipo Buscar el cual se encuentra en la posición 29 y está en todas las páginas. Es un módulo que no hay que configurar nada más que aspectos de diseño como pueda ser el nombre de la etiqueta que le acompaña, que aparezca botón de búsqueda y en qué posición o el ancho del módulo. Por otra parte están los módulos pertenecientes a extensiones los cuales son los siguientes: - BreezingForms: Módulo perteneciente a la extensión con mismo nombre y que se encuentra en Contacta en la posición 22. Corresponde a un formulario creado con dicha extensión. - BreezingFormsTeléfono: es un módulo de la extensión comentada anteriormente que se encarga de mostrar un formulario creado con esta herramienta. Se encuentra en la posición 6 de todas las páginas menos en “Ciclo DAM”, “Ciclo DAW”, “Administración y finanzas” y “Contacta” ya que todas estas contienen un formulario de contacto, en el caso de las 3 primeras dentro de la pestaña Inscripción. -mod_j!analytics: Módulo correspondiente a la extensión J!Analytics que se encuentra en la posición 1 en todas la páginas pero que no es visible. Simplemente se encarga del posicionamiento web para Google. Se debe de introducir el Google ID Analytics y el nombre del dominio para que éste sea efectivo. Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 86 - Etiquetas: Pertenece a la extensión K2 y es de tipo K2 Tools. Se encuentra en Blog en la posición 6 y se encarga de poner las etiquetas que aparecen en las noticias de Blog que ha sido creado con la extensión comentada, en un módulo independiente para que el usuario de la web pueda tener la posibilidad de encontrar las noticias de temas de interés que considere con facilidad. - Comentarios: Pertenece también a la extensión K2 y es de tipo K2 Comments. También se encuentra en Blog en la posición 6 y se encarga de recoger todos los comentarios que hay en el Blog de los usuarios y los ordena a partir del más reciente ya que se ha elegido que fuese de esta manera. - Calendario: Módulo perteneciente a la extensión JEvents. Aparece en todas las páginas en la posición 6. Este módulo dispone de multitud de opciones de diseño del calendario y se han elegido para que el diseño sea como el de la siguiente figura junto a una figura que muestra el calendario: FIGURA 44: Módulo con JEvents FIGURA 45: Calendario 87 - Síguenos en: Este módulo pertenece a la extensión Stalker y se encuentra en todas las páginas en la posición 8. Es un sencillo módulo cuyo objetivo es ofrecer de una manera gráfica enlace a las diferentes redes sociales. En este caso se ha decidido poner solamente Youtube, Google+1 y Twitter pero sin embargo tiene multitud de redes sociales interesantes. - Facebook: Módulo llamado Iyosis Facebook que incluye las opciones de Facebook de “Like Button”, “Like Box”, “Activity Feed” y “Recommendations”. En este caso está la opción “Like Box” como elegida y proporciona un enlace a la cuenta de Facebook de la empresa. Se encuentra en todas las páginas en la posición 8. Se debe de comentar que existen otros módulos, menús, categorías y artículos que están en modo despublicados y que se han ido desechando o bien porque se han encontrado mejores extensiones que proporcionaban ventaja sobre otras que ya existían y por tanto ha habido un cambio o porque se ha tomado la decisión de cambiar algo en el transcurso de la implementación (como pueda ser un menú que se pensó colocarlo en una posición y que finalmente se decidió suprimirlo y crear otro mejorado cambiando la otra posición del menú). Por último se pasa a comentar el trabajo desarrollado con las extensiones, que han sido instaladas y probadas. Muchas de ellas han formado parte del proceso aunque finalmente se ha decidido prescindir de ellas (parecida situación en cuanto a los módulos, menús y artículos despublicados y por causas similares) y ha habido otras de ellas que sí que forman parte de la aplicación final. Por tanto se van a mencionar el trabajo realizado con las extensiones, pero no se van a comentar las instalaciones de estas. - AkeebaBackup: Es una extensión cuyo objetivo es crear copias de seguridad y se ha utilizado en el desarrollo de esta aplicación para hacer copias periódicas de la página web. - BreezingForms: Su objetivo es la creación de formularios. En el caso de la aplicación, se crearon cuatro formularios de los cuales hay tres que están incluidos en la aplicación final, el primero se encuentra en la pestaña de inscripción de todos los ciclos, el segundo en la parte superior derecha y consiste en enviar el teléfono de contacto y el tercero en el apartado Contacta. Dicha extensión posee tres opciones para la creación de formularios y en este caso la elegida en todos ellos ha sido “QuickMode”. Dentro de éste modo simplemente hay que seguir los pasos y rellenando el formulario según los intereses que se tengan. En estos pasos se puede ir añadiendo botones, campos…Cabe destacar que cuando un usuario envía alguna cuestión o su información a través de un formulario de este componente, el mensaje se guardará tanto en la dirección de correo que se indique como en el gestor de la propia extensión, por tanto se un control diario de este gestor para responder a los usuarios interesados. Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 88 - Extplorer: Funciona como una FTP y se ha utilizado para acceder y modificar el contenido del documento “configuration.php”. - JEvents: Extensión para la creación de un calendario. En este caso se creó un calendario de tipo “Default” del cual se ha comentado anteriormente, además de crear eventos de la empresa en la lista que finalmente fueron excluidos del calendario, así como las categorías creadas para estos. -K2: Componente que se vasa en la creación de blogs. Se ha utilizado este para la creación del blog integrado en la aplicación web, además de la utilización de módulos pertenecientes a este componente como se ha comentado en el desarrollo de los módulos de la aplicación. En esta extensión hay creados tres ítems, que son noticias de la empresa. Al crear el ítem es muy parecido en la forma de hacerlo que al crear un artículo, con las únicas modificaciones de que tiene otro diseño el gestor de esta extensión y que se pueden incorporar etiquetas a dicho ítem. Se ha creado también una única categoría para albergar los ítems y seis tipos de etiquetas para poderlas integrar en los ítems adecuados. - PhocaFavicon: Crea favicons para la página web. En este caso se crearon siete favicon distintos utilizando diferentes tamaños del logo de la empresa. Es un proceso sencillo en el que se debe elegir una imagen y esta extensión la transforma al tamaño adecuado. La única pega es que el favicon debe de estar asociado a una plantilla, por tanto si se desea cambiar de plantilla se deberá de crear un nuevo favicon. - Proforms Basic: Se encarga de crear formularios. En el caso de la página web final se ha utilizado en el formulario de Contacta al cual se le ha agregado un reCaptcha para proteger la base de datos. Se crearon durante el proceso de creación de la web siete formularios distintos que fueron reemplazados por formularios de la extensión BreezingForms. Esta extensión funciona de manera diferente que la de BreezingForms ya que en ésta es necesario crear una plantilla al menos y una categoría y después de esto crear un formulario relacionándose con una categoría y con una o varias plantillas. - Xmap: Extensión cuyo objetivo es crear un mapa del sitio web. En este caso se utilizó para crearlo y enviarlo a Google para mejorar el posicionamiento de la web. Finalizando ya están explicados los diferentes contenidos de la aplicación web pero hay que recalcar que no se han nombrado algunas extensiones utilizadas las cuales no han aportado lo que se buscaba. 89 8 Conclusiones 8.1 Aportaciones Desarrollo de web para dicha empresa, lo cual le facilitaría comodidad a la hora de darse a conocer, tener más eficiencia y poder vender su producto. Gestión automatizada de los recursos docentes. Ejemplo de aplicación web orientada a la gestión de recursos docentes. 8.2 Trabajos futuros Como trabajo futuro se podría mejorar esta aplicación incluyendo más información mediante artículos nuevos, además de actualizar contenidos tanto en las redes sociales, como en artículos y el blog. Hay menús sin información a los cuales se les podría añadir o directamente suprimir dicho menú. Aplicación web de gestión de alquiler de aulas, cursos de formación y consultoría 96 http://www.iescanastell.com/ http://www.centroseducacion.com/ http://www.cefe.gva.es/ http://cipfpbatoi.edu.gva.es/ http://www.ausiasmarch.net http://cifpciudaddelaprendiz.edu.gva.es/ http://www.ifps27.net/ http://www.fpmislata.com