scieee AI-readable full text Open interactive document viewer

Portal web de gestión de competiciones deportivas

Palmer Camps, Carlos

Abstract

En éste proyecto se expondrá detalladamente el proceso de desarrollo de un portal web de eventos deportivos de futbol que se llamará AfterGoal. El objetivo de éste proyecto es que los usuarios registrados puedan crear, gestionar sus propias ligas así como poder vincularse a una competición y a un equipo y ver el seguimiento durante la duración de la competición. Por otro lado tendremos el administrador que será capaz de gestionar cualquier competición que haya sido creada con anterioridad.

Full text

Portal web de gestión de competiciones deportivas (DISCA-49) Proyecto Final de Carrera [Ingeniería Técnica Informática de Sistemas] Autor: Carlos Palmer Camps Director: Sergio Sáez Barona Septiembre/2012 Portal web de gestión de competiciones deportivas (DISCA-49) 2 3 RESUMEN En éste proyecto se expondrá detalladamente el proceso de desarrollo de un portal web de eventos deportivos de futbol que se llamará AfterGoal. El objetivo de éste proyecto es que los usuarios registrados puedan crear, gestionar sus propias ligas así como poder vincularse a una competición y a un equipo y ver el seguimiento durante la duración de la competición. Por otro lado tendremos el administrador que será capaz de gestionar cualquier competición que haya sido creada con anterioridad. Portal web de gestión de competiciones deportivas (DISCA-49) 4 5 TABLA DE CONTENIDOS CONTENIDO 1.1. OBJETIVOS ..................................................................................... 9 1.2. MOTIVACION ................................................................................. 9 1.3. ESTRUCTURA ............................................................................... 11 2. ESPECIFICACIÓN DE REQUISITOS DEL SOFTWARE ............... 12 2.1. PROPÓSITO ................................................................................... 12 2.2. AMBITO ......................................................................................... 12 2.3. DEFINICIÓN, SIGLAS Y ABREVIATURAS ................................ 12 2.4. REFERENCIAS .............................................................................. 14 2.5. VISIÓN GLOBAL ........................................................................... 14 2.6. DESCRIPCIÓN GENERAL ............................................................ 14 2.6.1. PERSPECTIVA DEL PRODUCTO .......................................... 14 2.6.2. FUNCIONES DEL PRODUCTO .............................................. 15 2.6.3. CARACTERISTICAS DE LOS USUARIOS ............................ 16 2.6.4. RESTRICCIONES .................................................................... 17 2.6.5. SUPUESTOS Y DEPENDENCIAS ........................................... 17 2.7. REQUISITOS ESPECÍFICOS ........................................................ 17 2.7.1. REQUISITOS DE INTERFACES EXTERNAS........................ 17 2.8. REQUISITOS FUNCIONALES ................................................... 18 2.9. RENDIMIENTO Y ATRIBUTOS ................................................ 21 3. ANÁLISIS .......................................................................................... 22 3.1. CASOS DE USO .............................................................................. 22 3.1.1. GESTIONAR RESULTADOS .................................................. 23 Portal web de gestión de competiciones deportivas (DISCA-49) 6 3.1.2. MODIFICAR CALENDARIO .................................................. 24 3.1.3. INSCRIBIR EQUIPO ............................................................... 25 3.1.4. MODIFICAR EQUIPO ............................................................. 25 3.1.5. BORRAR EQUIPOS ................................................................. 26 3.1.6. INSCRIBIR JUGADOR ............................................................ 27 3.1.7. MODIFICAR JUGADOR ......................................................... 27 3.1.8. BORRAR JUGADORES ........................................................... 28 3.1.9. GESTIONAR ESTADISTICAS ................................................ 28 3.1.10. REGISTRAR USUARIO .......................................................... 29 3.2. DIAGRAMA E-R ............................................................................ 30 4. DISEÑO.............................................................................................. 31 4.1. CAPA PRESENTACIÓN ................................................................ 32 4.1.1. DISEÑO DE LA INTERFAZ .................................................... 33 4.1.2. INTERFAZ PÚBLICA .............................................................. 35 4.1.2.1. BUSCAR EQUIPO ................................................................ 35 4.1.2.1.1. VER DATOS DE EQUIPO .................................................... 36 4.1.2.2. BUSCAR JUGADOR ............................................................. 37 4.1.2.2.1. FICHA TÉCNICA DEL JUGADOR ...................................... 37 4.1.3. INTERFAZ PRIVADA ............................................................. 38 4.1.3.1. USUARIO REGISTRADO Y/O PROPIETARIO DE ALGUNA COMPETICIÓN .................................................................................... 38 4.1.3.1.1. CREAR UNA NUEVA COMPETICIÓN ............................... 38 4.1.3.1.2. ADMINISTRAR UNA COMPETICION ............................... 39 4.1.3.1.3. GESTIONAR ESTADISTICAS ............................................. 40 4.1.3.2. USUARIO ADMINISTRADOR ............................................. 40 4.2. CAPA LÓGICA .............................................................................. 41 7 4.3. CAPA PERSISTENCIA .................................................................. 43 5. IMPLEMENTACIÓN ........................................................................ 46 5.1. TECNOLOGIAS UTILIZADAS ..................................................... 46 5.1.1. HTML ....................................................................................... 47 5.1.2. CSS ........................................................................................... 47 5.1.3. JAVASCRIPT ........................................................................... 47 5.1.4. PHP ........................................................................................... 48 5.1.5. MYSQL ..................................................................................... 48 5.1.6. DRUPAL ................................................................................... 48 5.1.7. AJAX ........................................................................................ 49 5.2. HERRAMIENTAS .......................................................................... 49 5.2.1. PHPMYADMIN ........................................................................ 49 5.2.2. DREAMVIEWER ..................................................................... 49 5.2.3. ADOBE PHOTOSHOP ............................................................. 49 5.3. DETALLES DE LA IMPLEMENTACIÓN ..................................... 50 5.3.1. IMPLEMENTACIÓN DE LAS FUNCIONALIDADES ............ 50 5.3.1.1. CODIGO JAVASCRIPT+PHP: COMPROBACIONES. ...... 50 5.3.1.2. SCRIPTS DESTACADOS ..................................................... 50 5.3.2. ESTRUCTURA DE FICHEROS ............................................... 52 6. EVALUACIÓN Y PRUEBAS ............................................................. 53 6.1. PRUEBAS ....................................................................................... 53 6.1.1. PRUEBA DE RESOLUCIONES ............................................... 53 6.2. VALIDACIONES ......................................................................... 55 6.3. PRUEBAS DE CASOS DE USO ................................................. 56 7. CONCLUSIONES .............................................................................. 60 Portal web de gestión de competiciones deportivas (DISCA-49) 8 7.1. FUTURAS AMPLIACIONES ...................................................... 61 8. BIBLIOGRAFÍA ................................................................................ 62 8.1. LIBROS CONSULTADOS .............................................................. 62 8.2. PAGINAS WEB VISITADAS ......................................................... 62 9 1. INTRODUCCIÓN La siguiente memoria describe el trabajo realizado en el desarrollo de un portal web de gestión deportiva de ligas de futbol. 1.1. OBJETIVOS El objetivo principal es crear un portal web donde se permita a los usuarios crear y gestionar sus propias competiciones del tipo liga de una manera más cómoda. Cada competición no tendrá una duración fija sino que dependerá del número de equipos inscritos en la competición, y por tanto con el número de enfrentamientos del calendario. Una vez finalizada la competición se podrá eliminar el calendario para poder reutilizarlo para una nueva competición o si no se desea reutilizarlo, se podrá borrar la competición. Ofrecerá la opción de vincularse a una liga y a un equipo para que al usuario le sea más fácil consultar y tener un seguimiento de una determinada competición. 1.2. MOTIVACION La motivación que me lleva a la realización de este proyecto es la de aprender a desarrollar por completo un portal Web que interactúa con los usuarios y no se limita a ofrecer solamente información. Este proyecto me ha motivado aprender un lenguaje nuevo como PHP que hasta ahora aun no sabía utilizarlo y ahora tengo algo más de soltura para programar con él, por otro lado el manejo de bases de datos MySQL, con las que ya había realizado algún otro trabajo anterior de la carrera pero a modo de consultas, y por ultimo he aprendido a usar un gestor de contenidos, como es Drupal para realizar el desarrollo de dicho proyecto. Para coger ideas he visitado algunas páginas Web de gestión de torneos como son www.todotorneos.com, www.esportalia.com, www.konkuri.com entre otras que me han ayudado a ver qué funcionalidades son las más comunes a las cuales yo he añadido algunas otras. Algunos de los ejemplos de portales que se han consultado: Portal web de gestión de competiciones deportivas (DISCA-49) 16 -Para los usuarios con privilegios pueden administrar todas las competiciones.  Crear calendario/Borrar calendario  Crear competición/Borrar competición  Inscribir equipos  Modificar equipos  Borrar equipos  Añadir resultados  Modificar calendario  Inscribir jugadores  Modificar jugadores  Borrar jugadores  Añadir contenido al portal Web 2.6.3. CARACTERISTICAS DE LOS USUARIOS Este producto va dirigido para todo el público, aunque principalmente a los usuarios interesados en deportes y en especial y la gestión de competiciones de liga. Tenemos tres tipos de usuarios:  Usuario anónimo o no registrado: Este usuario solo podrá ver los contenidos que publique en el sitio Web el administrador, así como buscar información sobre equipos y jugadores.  Usuario registrado: Aparte de poder ver el contenido publicado por el administrador del sitio y buscar información de los equipos y los jugadores inscritos, también puede vincularse a un equipo para tener un seguimiento más cómodo de la competición y por otro lado puede crear sus propias competiciones y gestionarlas.  Administrador: Es el usuario que tiene todos los privilegios sobre el sitio web y será capaz de dar privilegios a otros usuarios, de publicar contenido y de crear ligas y gestionar las propias y las del resto. 17 2.6.4. RESTRICCIONES Para poder acceder al portal, se deberá utilizar un navegador Web. Ciertas secciones de la Web deben ser de acceso restringido y se le exigirá al usuario su registro si aun no lo ha hecho y su posterior autentificación. De esta forma el usuario accederá a determinados contenidos según el usuario que sea. Los módulos de administrar la propia competición están restringidos de manera que solo el propietario de dicha competición o el administrador son capaces de gestionarla. 2.6.5. SUPUESTOS Y DEPENDENCIAS En este caso, el sistema operativo utilizado para acceder al portal es indiferente, por lo tanto podríamos que es un producto multiplataforma. Así mismo el navegador utilizado también puede ser cualquiera de los disponibles en el mercado actual. Aunque este producto está optimizado y ha sido probado en los navegadores Mozilla Firefox y Google Chrome. 2.7. REQUISITOS ESPECÍFICOS 2.7.1. REQUISITOS DE INTERFACES EXTERNAS El portal Web tiene varias secciones:  Área de información y servicios que ofrece el portal: Los usuarios podrán consultar cualquier tipo de información.  Área de registro de usuarios: Donde cualquier usuario puede registrarse gratuitamente para acceder a las zonas que son de contenido restringido.  Área de administración: Donde los administradores del sitio Web pueden acceder mediante el login correspondiente para manejar la parte interna de la Web. El usuario "admin" tendrá permisos para poder realizar cualquier operación. Portal web de gestión de competiciones deportivas (DISCA-49) 18 Boceto de la interfaz: 2.8. REQUISITOS FUNCIONALES Usuarios sin registrar:  Registro de usuarios: Cualquier visitante que entre en el portal puede registrarse para poder acceder a aquellos servicios que están restringidos a los usuarios anónimos. Los campos requeridos serán el nombre de usuario, dirección correo electrónico y la contraseña. Todo esto se encarga el propio sistema de gestión de contenidos Drupal.  Consultar información: Los visitantes podrán ver la información aportada por el administrador de la página en la página principal, así como los widgets que no estén restringidos. 19  Buscar equipo: Los visitantes podrán buscar información sobre todos los equipos que existen en la web, teniendo acceso a una especie de ficha donde se puede ver la clasificación del equipo, los jugadores que pertenecen a cada equipo, estadísticas, etc.  Buscar jugador: Los visitantes podrán buscar a jugadores por nombre, por país o por fecha de nacimiento, y tendrán acceso una vez listados los jugadores a una ficha técnica de cada jugador donde podemos ver los datos de cada jugador, así como las estadísticas totales de la temporada de dicho jugador y los goles anotados en cada partido Usuarios registrados: Podrán realizar todas las acciones de los usuarios sin registrar además de las siguientes operaciones.  Editar su perfil: Los usuarios podrán modificar algunos de sus datos de la cuenta que introdujeron cuando se registraron en nuestro portal, como su correo electrónico, cambiar el idioma, subir una foto a su perfil, aportando su clave antes de hacer cualquier modificación.  Crear nueva competición: Los usuarios registrados podrán ver todas las competiciones de las cuales sean propietarios y crear nuevas competiciones para futuras gestiones.  Crear calendario: Una vez creada la competición tendremos la opción de crear el calendario si hay inscritos un mínimo de equipos inscritos y de indicar la fecha de inicio de dicho calendario. Una vez comprobadas estas opciones, se generará automáticamente un calendario de ida y vuelta con el número correspondiente de jornadas a jugarse. Portal web de gestión de competiciones deportivas (DISCA-49) 20  Inscribir equipos: Podrán inscribirse los equipos a una competición siempre y cuando el calendario todavía no haya sido generado. Una vez generado el calendario, la opción de inscribir equipos quedará bloqueada.  Modificar equipos: Se podrán modificar la información de todos los equipos inscritos en una determinada competición en todo momento, sin importar si se ha generado el calendario o no.  Borrar equipos: Solo se podrán borrar los equipos si el calendario no ha sido generado, si ya ha sido generado la opción quedará bloqueada hasta que se elimine el calendario actual.  Inscribir jugadores: Siempre se podrán inscribir jugadores a lo largo de la competición a modo de nuevos fichajes.  Modificar jugadores: Solo se podrán modificar algunos datos de los jugadores una vez iniciado el calendario, como el nombre, apellidos, fecha de nacimiento, imagen del jugador, apodo para mantener la consistencia de los datos estadísticos de cada resultado. Si el calendario no ha sido generado, se podrá además de poder modificar los campos anteriores, cambiar el dorsal del jugador, el equipo al que pertenece y la posición en la que juega.  Borrar jugadores: Solo se podrán eliminar los jugadores si el calendario no ha sido generado, una vez generado los jugadores no se podrán eliminar para mantener las estadísticas insertadas en cada resultado.  Añadir resultados: Esta opción solo aparecerá si el calendario ya ha sido generado, y nos permitirá asignar un resultado y si el resultado ya está asignado, nos permitirá asignar las 21 estadísticas del partido, como por ejemplo, los minutos jugados de cada jugador, las tarjetas amarillas, las tarjetas rojas o los goles anotados o encajados.  Modificar calendario: Esta opción, como la opción anterior solo aparecerá si se ha generado el calendario, nos muestra los horarios de los encuentros de cada jornada y nos permitirá si el partido no se ha jugado todavía, cambiar la hora y fecha de dicho encuentro.  Añadir estadísticas: Esta opción aparecerá una vez se haya añadido el resultado a un encuentro, y nos permite asignar las estadísticas de los jugadores durante el encuentro disputado. Usuario administrador Además de poder realizar las opciones de los usuarios registrados para todas las competiciones, será el encargado de administrar el sitio Web y de agregar nuevo contenido al portal. 2.9. RENDIMIENTO Y ATRIBUTOS La eficiencia del portal Web, dependerá en gran medida de la capacidad de proceso del servidor donde se aloje, y del ancho de banda de la red que disponga el servidor y el cliente. El sistema operativo que utilice el servidor no se trata de un factor importante con respecto a la eficiencia ya que el portal Web puede trabajar correctamente sobre cualquiera de ellos. Para realizar las tareas de mantenimiento o actualización del sitio Web, el administrador o cualquier usuario con derechos necesarios para realizarlo podrá acceder desde cualquier sitio que disponga de conexión a Internet. Portal web de gestión de competiciones deportivas (DISCA-49) 22 Ver noticias Buscar equipo Buscar jugador Añadir noticias Gestión sitio web Crear calendario Inscribir equipo Inscribir jugador Modificar equipo Borrar equipos Modificar jugador Borrar jugadores Gestión jornada Modificar horario 3. ANÁLISIS 3.1. CASOS DE USO Los casos de uso son una técnica que se utiliza para obtener los requisitos de un nuevo sistema y las acciones que pueden realizar los usuarios con los escenarios que proporciona el sistema. En el sistema intervienen tres tipos de usuario: el usuario invitado o no registrado, el usuario registrado y el administrador del sistema, que tendrá permiso para administrar todo el sitio. A continuación se muestran los casos de uso del sistema: usuario no registrado Registrarse Modificar General usuario registrado usuario registrado (administrador) Admin Gestión 23 3.1.1. GESTIONAR RESULTADOS CASOS DE USO Gestionar resultados de la jornada ACTORES Usuario registrado y Administrador PROPÓSITO Gestionar cada encuentro disputado en la jornada. RESUMEN Se selecciona la jornada a gestionar y se selecciona el encuentro para asignarle el resultado. PRECONDICIONES El usuario esta registrado y es propietario del torneo si no es el usuario administrador. El calendario debe estar iniciado para poder gestionar los resultados. POSCONDICIONES Los resultados quedan almacenados en la base de datos y se actualiza la clasificación una vez insertado un resultado. Portal web de gestión de competiciones deportivas (DISCA-49) 24 3.1.2. MODIFICAR CALENDARIO CASOS DE USO Modificar calendario ACTORES Usuario registrado y Administrador PROPÓSITO Modificar los horarios de cada jornada. RESUMEN Se selecciona la jornada a modificar y se selecciona el encuentro para asignarle una nuevo horario. PRECONDICIONES El usuario esta registrado y es propietario del torneo si no es el usuario administrador. El calendario debe estar iniciado para poder gestionar los resultados. POSCONDICIONES Los resultados quedan almacenados en la base de datos y se actualiza la fecha y la hora del encuentro seleccionado. 25 3.1.3. INSCRIBIR EQUIPO CASOS DE USO Inscribir equipos ACTORES Usuario registrado y Administrador PROPÓSITO Inscribir un equipo a la competición RESUMEN Se rellenan los campos de información siguientes: identificador de equipo, el nombre, estadio, entrenador y la competición. PRECONDICIONES El usuario esta registrado y es propietario del torneo si no es el usuario administrador. El calendario no tiene que estar creado todavía POSCONDICIONES Los resultados quedan almacenados en la base de datos . 3.1.4. MODIFICAR EQUIPO CASOS DE USO Modificar equipo ACTORES Usuario registrado y Administrador PROPÓSITO Modificar los datos de un equipo RESUMEN Se modifican los campos de información que se deseen cambiar. PRECONDICIONES El usuario esta registrado y es propietario del torneo si no es el usuario administrador. POSCONDICIONES Los resultados del equipo modificado quedan actualizados en la base de datos . Portal web de gestión de competiciones deportivas (DISCA-49) 32 4.1. CAPA PRESENTACIÓN El portal Web dispondrá de una interfaz web que se ejecutará en cada uno de los ordenadores de los usuarios a través del navegador. La interfaz que se usará para la comunicación con la capa del nivel de negocio se define mediante el estándar del código XHTML para lo que es el contenido de las páginas web y el protocolo HTTP para la transferencia de las páginas a través de la red. Como todos los navegadores web conocen HTTP y saben interpretar el lenguaje XHTML, podrán mostrar en pantalla la interfaz gráfica. 33 4.1.1. DISEÑO DE LA INTERFAZ Para realizar el diseño de la interfaz se ha utilizado un gestor de contenidos para agilizar la fase de diseño. El tema que se ha utilizado ha sido el "Kanji" y ha sido descargado de la siguiente página web: http://drupal.org/project/kanji. Una vez descargado el modulo, se procede a la instalación del modulo en nuestro servidor web. La instalación del modulo consiste en descomprimir el archivo descargado e añadirlo en la ruta \sites\all\themes y una vez añadido solo nos queda activarlo en el sitio web. Para activar el tema descargado, necesitaremos ser usuario administrador del sitio e ir a la opción apariencia y activar dicho tema. Portal web de gestión de competiciones deportivas (DISCA-49) 34 Una vez activado el tema la interfaz gráfica será la siguiente: Este tema definirá el estilo visual de todas las páginas de nuestro sitio web. Se ha optado por utilizar colores azulados ya que el tema venia con ese tipo de estilo y era más fácil y cómodo adaptar nuevos contenidos a los estilos previamente definidos y a los nuevos estilos creados. LOGO MENU BLOQUES CONTENIDO INFORMATIVO 35 4.1.2. INTERFAZ PÚBLICA Tendremos en la mayoría de los casos una página para cada sección que aparece en la barra de menú. En todas las páginas se nos mostrara la barra de menú correspondiente y por tanto nos permitirá acceder a unas secciones u otras. A continuación vemos el diseño de las principales secciones de la interfaz pública, aparte de la página de bienvenida que es visible para todo el mundo. 4.1.2.1. BUSCAR EQUIPO Nos permite buscar cualquier equipo que este dado de alta en alguna liga. Portal web de gestión de competiciones deportivas (DISCA-49) 36 4.1.2.1.1. VER DATOS DE EQUIPO En la opción anterior una vez listados los equipos existentes, aparece un enlace para ver más información del equipo seleccionado. Pues bien, haciendo click en el enlace, no muestra toda la información de dicho equipo, con los jugadores que lo forman, la clasificación si esta iniciado el calendario y una serie de estadísticas generales del equipo y el máximo goleador del equipo. 37 4.1.2.2. BUSCAR JUGADOR Nos muestra unos formularios para buscar a un jugador ya sea por nombre, país o año de nacimiento. Una vez introducida la búsqueda aparece aquellos jugadores que cumplen las condiciones de dicha búsqueda y nos aparece la información general de cada jugador como es el nombre, una foto, el equipo al que pertenece y un enlace a su ficha técnica. 4.1.2.2.1. FICHA TÉCNICA DEL JUGADOR Nos muestra con más detalle los datos estadísticos del jugador seleccionado así como más información sobre el jugador, como es la fecha de nacimiento, dorsal que lleva, apodo o nombre deportivo. Portal web de gestión de competiciones deportivas (DISCA-49) 38 4.1.3. INTERFAZ PRIVADA En esta parte veremos las opciones que nos da si somos usuarios registrados y por tanto diferenciamos en dos partes: Usuario registrado y/o propietario de algún torneo y por otro lado tenemos el Usuario registrado y administrador del sitio. 4.1.3.1. USUARIO REGISTRADO Y/O PROPIETARIO DE ALGUNA COMPETICIÓN Si entramos un usuario registrado nos aparecen dos opciones nuevas, ya sea para crear ligas nuevas o simplemente para vincularse a un equipo y una competición. 4.1.3.1.1. CREAR UNA NUEVA COMPETICIÓN Nos aparece información de todas las competiciones que tiene creadas cada usuario y que por tanto podrá administrar o borrarlas. Y por otro lado nos muestra un formulario para que cada usuario pueda añadir más competiciones. 39 4.1.3.1.2. ADMINISTRAR UNA COMPETICION Esta sección lo que nos permite es una vez creada la competición, inscribir, modificar y borrar equipos, inscribir, modificar y borrar jugadores así como generar un calendario aleatoriamente con los equipos inscritos, añadir los resultados y las estadísticas de cada encuentro o modificar los horarios de cada encuentro. Portal web de gestión de competiciones deportivas (DISCA-49) 40 4.1.3.1.3. GESTIONAR ESTADISTICAS Esta sección nos permite añadir las estadísticas, ya sean los goles, tarjetas amarillas o rojas y minutos jugados durante el encuentro a cada jugador cumpliendo una serie de restricciones como por ejemplo que no se pueden sacar más de dos amarillas o rojas o las asistencias no pueden ser mayor que el número de goles. 4.1.3.2. USUARIO ADMINISTRADOR Este usuario además de poder hacer todo lo de las capturas anteriores puede gestionar el sitio y instalar nuevos módulos, modificar la configuración del sitio, dar permisos a determinados usuarios como administradores, crear grupos y asignar permisos a roles, etc. 41 4.2. CAPA LÓGICA La capa de lógica de negocio se ejecutará en una máquina que actuará de servidor web, que será el que se encargue de interpretar el código de la aplicación, solicitándole a la capa de persistencia los datos necesarios en cada operación y generando las páginas web, enviándoselas por HTTP al navegador del ordenador del cliente. La lógica puede variar en cada página, pero en general se siguen las siguientes pautas:  En aquellas páginas que muestran información(ya sean la de buscar equipo o jugador por ejemplo) lo que se hace es conectar a la base de datos, realizar las consultas correspondientes sobre las tablas que contienen la información que queremos visualizar, se almacena en la memoria y se completa con ella el contenido de la página web.  En aquellas páginas de introducción de datos(como en la página de vincularse a alguna competición o modificar algún jugador o equipo) se accede también a la base de datos para consultar información que se tenga que mostrar, por ejemplo rellenar listas desplegables en donde el usuario elige la opción que desee. Conforme el usuario introduce datos en el navegador, es decir, en la capa de presentación, se hará una validación de los datos y una vez validados se le pasaran al servidor, el cual generara los resultados correspondientes y se los enviará al usuario.  En aquellas páginas de resultados(como por ejemplo añadir un resultado de un encuentro en una jornada), se accede a la base de datos para realizar operaciones de inserción, actualización o borrado en las tablas que corresponda y una vez realizadas dichas operaciones se nos mostrará los resultados que devuelve el gestor de la base de datos. A continuación veremos la lógica de algunas páginas características en este aspecto: Portal web de gestión de competiciones deportivas (DISCA-49) 48 5.1.4. PHP Es un lenguaje de programación interpretado en la parte del servidor. Su sintaxis es similar a la de C. Hoy en día es uno de los más usados en la programación web. Este lenguaje se encuentra bajo licencia 'PHP License' que es de carácter libre. Su uso nos permite conectarnos a la base de datos para realizar funciones de consulta, inserción, actualización o borrado. También nos permite hacer una tarea muy útil, que es la de generar código HTML de forma dinámica. 5.1.5. MYSQL Es el sistema gestor de bases de datos que hemos utilizado en el proyecto. Se distribuye bajo licencia del software libre, y además es multiplataforma. Esas son algunas de las razones por las que es uno de los más utilizados. La utilidad de la base de datos en el proyecto ha sido la de poder almacenar información y datos, como pueden ser los equipos o jugadores inscritos o el de las jornadas del calendario, resultados o las estadísticas de cada encuentro entre otras. 5.1.6. DRUPAL Drupal es un software de código abierto mantenido y desarrollado por una comunidad de usuarios y desarrolladores. Se distribuye bajo los términos de la GNU (General Public License), es decir, que es libre para descargar y compartir con los demás. Se trata de un paquete de software gratuito que permite organizar, gestionar y publicar su contenido, con una infinita variedad de personalización. En concreto, en este proyecto se ha utilizado la versión 7, así que para futuras ampliaciones habrá que tener en cuenta si se descarga algún modulo nuevo que sea compatible con esta versión. 49 5.1.7. AJAX 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 paginas sin necesidad de recargarlas, lo que significa aumentar la interactividad, velocidad y usabilidad en las aplicaciones. 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 pagina. Javascrip es el lenguaje interpretado en el que normalmente se efectúan las funciones de llamada 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. 5.2. HERRAMIENTAS 5.2.1. PHPMYADMIN Se trata de una herramienta escrita en PHP que se usa en un navegador web, y nos ayuda en la administración de una base de datos MySQL. En este proyecto ha sido muy útil para crear las tablas en la base de datos, crear clave primarias y ajena y relacionar las tablas entre sí. 5.2.2. DREAMVIEWER Programa con el que se ha hecho gran parte del proyecto en el que se ha programado en HTML, Javascript, CSS y PHP. 5.2.3. ADOBE PHOTOSHOP Programa de retoque y edición de imágenes de gran potencia, el cual ha sido utilizado para modificar ciertas cosas del portal referentes a imágenes y para crear el logo del proyecto. Portal web de gestión de competiciones deportivas (DISCA-49) 50 5.3. DETALLES DE LA IMPLEMENTACIÓN En este apartado se explicará el contenido de las partes más importantes de la implementación, como es la administración de las competiciones. La implementación se realiza con el programa Dreamviewer, y los lenguajes de programación PHP, HTML, JAVASCRIPT y AJAX. Hay algún código que se repite y es usado en varios apartados solo modificando ciertas partes. 5.3.1. IMPLEMENTACIÓN DE LAS FUNCIONALIDADES 5.3.1.1. CODIGO JAVASCRIPT+PHP: COMPROBACIONES. En este apartado veremos todas las comprobaciones para cuando insertamos un dorsal o un identificador de equipo o un identificador de competición a la hora de inscribir usuarios o equipos o crear competiciones, lo valide antes de añadirlas a la base de datos.Todas estas funciones se encuentran en el directorio de ficheros /misfunciones/validar.js. Por otro lado tenemos los scripts que realizan las diferentes funciones como añadir, modificar o eliminar jugadores, equipos o competiciones en el directorio de ficheros /misfunciones/regisuser/. 5.3.1.2. SCRIPTS DESTACADOS 5.3.1.2.1. CONEXION A LA BD. Es la función fundamental para poder conectar y comunicarnos con la base de datos que se ha creado anteriormente. Esta función la encontramos en /misfunciones/conexionbd.php. $conexion = mysql_connect("localhost","root","")or die ("Fallo en el establecimiento de la conexión"); mysql_select_db("projecte",$conexion)or die("Error en la selección de la base de datos"); 51 5.3.1.2.2. GENERAR EL CALENDARIO Esta función se encarga de generar un calendario de liga de futbol de ida y vuelta. El funcionamiento de la generación de jornadas es el siguiente: Para determinar el calendario del torneo, se realiza un simple algoritmo de selección. A cada uno de los competidores se le asigna un número y se van rotando los números, dejando uno fijo. Por ejemplo, en un torneo con 14 equipos: 1ª ronda: (1 contra 14, 2 contra 13, … ) 1 2 3 4 5 6 7 14 13 12 11 10 9 8 2ª ronda: (1 contra 13, 14 contra 12, … ) 1 14 2 3 4 5 6 13 12 11 10 9 8 7 3ª ronda: (1 contra 12, 13 contra 11, … ) 1 13 14 2 3 4 5 12 11 10 9 8 7 6 … 13ª ronda: (1 contra 2, 3 contra 14, … ) 1 3 4 5 6 7 8 2 14 13 12 11 10 9 Si hay un número impar, se puede asignar un número especial (para totalizar los pares) para designar al equipo que quedará libre. Para dobles rondas, simplemente se repite el sistema anterior, pero cambiando local por visitante y viceversa. El código de generar el calendario lo podemos encontrar en el directorio de ficheros /misfunciones/regisuser/generar_calendario.php Portal web de gestión de competiciones deportivas (DISCA-49) 52 5.3.2. ESTRUCTURA DE FICHEROS El sistema de ficheros en Drupal utiliza un sistema de archivos público, esto significa que cualquier archivo puede descargarse desde el servidor, sin ninguna restricción. Estamos hablando de aquellos archivos que pueden ser descargados, como los módulos, parches o imágenes o otro tipo de archivo que sea accesible. Existe también el método privado de descarga de archivos. En este caso, antes de poder descargar el archivo, un proceso se dispara para controlar que efectivamente tengamos las credenciales necesarias para acceder al archivo. Drupal permite elegir el sistema de archivos desde Administrar -> Configuración del Sitio -> Sistema de archivos. Internamente, la solicitud de descarga de un archivo puede graficarse de la siguiente forma: 53 6. EVALUACIÓN Y PRUEBAS Ya terminada la implementación de código y de la interfaz gráfica, es el momento de evaluar y comprobar su funcionamiento, que sea el correcto y cumpla los estándares de la World Wide Web. 6.1. PRUEBAS Se ha pasado por el depurador de Dreamviewer para encontrar posibles links rotos, alguna etiqueta mal cerrada, etc. El depurador no detecta errores de programación ya que eso depende del propio programador. 6.1.1. PRUEBA DE RESOLUCIONES En cuanto a las resoluciones, se ha usado una herramienta Web gratuita http://www.testsize.com donde se le puede indicar que tipo de resolución queremos probar. He probado varias resoluciones de las más comunes siendo la más óptima a partir de 1024x768, en el supuesto de usar una resolución más alta no habría problemas pero en caso de usarla más baja aparecerían las flechas de desplazamiento. Portal web de gestión de competiciones deportivas (DISCA-49) 54 A continuación se muestran varias de las resoluciones probadas: Resolución 800x600 Resolución 1024x600 55 Resolución 1280x1024 6.2. VALIDACIONES Para este fin, quería utilizar la página Web de la W3C para asegurarnos que la página pasa todos los estándares y no contiene ningún tipo de error sintáctico, pero al trabajar de manera local, he tenido que bajarme validador en local, y nos han salido los siguientes errores: Si hubiese sido correcto, nos permite añadir a nuestra página un código propuesto por ellos para demostrar que nuestro portal cumple todos los requisitos del HTML. Portal web de gestión de competiciones deportivas (DISCA-49) 56 Por otro lado hemos validado el CSS también y este sí que no nos ha dado ningún problema. 6.3. PRUEBAS DE CASOS DE USO 6.3.1. CREAR UNA NUEVA COMPETICION Para crear una nueva competición, en primer lugar el usuario deberá estar registrado y entrar con su login a la página. Una vez realizado el paso anterior, le aparecerá una nueva pestaña en el menú superior que le dará la opción de crear una nueva competición. Simplemente el usuario deberá rellenar el formulario para ver si el ID de la competición nueva está disponible y si no da ningún problema se creará la competición, donde más adelante el usuario podrá añadir, modificar o borrar los equipos, jugadores o generar el calendario si ya ha añadido como mínimo dos equipos. 57 Una vez se ha creado simplemente daremos al icono de administrar que aparece al lado de la competición y ahí se procederá a la gestión de la competición creada.