Sunteți pe pagina 1din 78

ESCUELA TCNICA SUPERIOR DE INGENIEROS INDUSTRIALES Y DE TELECOMUNICACIN

Titulacin:

INGENIERO EN INFORMTICA

Ttulo del proyecto:

Desarrollo de un mdulo para la gestin deportiva de un


gimnasio dentro de la aplicacin gestora de complejos deportivos Nubapp

Fco Javier Luquin Oroz Jess Villadangos Alonso Pamplona, 5 de Septiembre de 2012
1

Agradecimientos

Me gustara agradecer a todas las personas que de una manera u otra me han apoyado durante este ltimo ao de carrera y en la realizacin de este proyecto. Por compartir mis dudas, preocupaciones, alegras y sobre todo el da a da. A mis padres, por aguantarme en algunos das difciles, por estar siempre ah, por darme la oportunidad de estudiar una carrera universitaria y por creer en m. A mis compaeros de clase, con los que he compartido tantos momentos durante la carrera, por escucharme con los problemas del proyecto y por las alegras vividas juntos. A mis compaeros del departamento de proyectistas, donde a lo largo de este ao he ido realizando el proyecto, por trabajar juntos, por interesarse en mis dudas y por el buen ambiente de trabajo que tenamos. A los profesores de la carrera, por hacer de mi quien soy, por esas asignaturas duras de las que tanto me he quejado y por las que tanto he aprendido. A Jess Villadangos por aceptar ser mi tutor en este proyecto y orientarme cuando era necesario. A Leyre, por aguantarme durante este ltimo ao de carrera, por ser comprensiva con mi carga de trabajo y apoyarme a su manera. A Nubapp, y en especial medida a Sergio Fernndez y Vctor Acn por darme la oportunidad de realizar el proyecto en su empresa. Por resolver mis dudas cuando las tena, por mostrarse siempre pacientes y por dedicar parte de su escaso tiempo libre a orientarme y aconsejarme. A Alberto Imzcoz y Joseba Campos, por prestarse desinteresadamente a leer la memoria, sugerirme cambios lxicos y sealarme faltas ortogrficas.

ndice
1 Introduccin
1.1 Nubapp 1.2 Aplicacin nitro de Nubapp 6 6 6 7 7 7 8 9 10 11 11 11 12 12 12 12 15 18 21 23 24 26 27 29 29 30 31 31 32 35 37 39 40 40 4

2 Estudio inicial del sistema de informacin


2.1 Objetivo de la aplicacin 2.2 Identificacin inicial de funcionalidades 2.3 Magnitudes o caractersticas principales de la aplicacin nitro 2.4 Estructura de la aplicacin y etapas de desarrollo planificadas 2.5 Recursos utilizados para la realizacin del PFC

3 Anlisis del sistema de informacin


3.1 Definicin del sistema 3.1.1 Determinacin del alcance del sistema 3.1.2 Identificacin del entorno tecnolgico 3.1.3 Especificacin de estndares y normas 3.2 Establecimientos de requisitos 3.2.1 Obtencin de requisitos 3.3 Especificacin de casos de uso 3.3.1 Seccin rutinas 3.3.2 Seccin ejercicios 3.3.3 Seccin historial 3.3.4 Seccin trabajo pendiente 3.3.5 Seccin citas 3.3.6 Mensajes 3.3.7 Settings/Configuracin 3.3.8 Usuarios 3.4 Anlisis de requisitos 3.5 Definicin de las interfaces de usuario 3.5.1 Principios generales de la interfaz 3.5.2 Seccin rutinas 3.5.3 Seccin ejercicios 3.5.4 Seccin trabajo pendiente 3.5.5 Seccin historial 3.5.6 Settings 3.5.7 Mensajes

3.5.8 Front-end (usuarios)

41 46 46 48 54 57 58 62 63 64 68 70

4 Diseo del sistema de informacin


4.1 Definicin de la arquitectura del sistema 4.2 Diseo de clases 4.3 Diseo fsico de datos 4.4 Diseo de la migracin y carga inicial de datos 4.5 Diseo del plan de pruebas

5 Conclusiones 6 Lneas futuras Anexo I: Pginas web dinmicas Anexo II: jQuery y Ajax Bibliografa

1. Introduccin
1.1 Nubapp
Nubapp es una start-up radicada en Londres. Surge con la colaboracin entre Sergio Fernndez y su antiguo jefe, quien se encarga de la financiacin. El objetivo de la empresa es el desarrollo, mantenimiento y comercializacin de productos y aplicaciones cloudcomputing.

1.2 Aplicacin Nitro de Nubapp


Nitro es una aplicacin de servicios en la nube desarrollada por Nubapp para la gestin de complejos deportivos de alto nivel. Consta de una serie de mdulos con diferentes funcionalidades tales como reservas online y gestin de reservas, gestin de usuarios, gestin de acceso, pagos de usuarios, aplicacin mvil personalizada, gestin de actividades y de las instalaciones, gestin de la domtica, estadsticas de uso de instalaciones, gestin de personal, programa de gestin del gimnasio por parte del monitor, gestin de torneos entre usuarios, etc. Todo ello desde un enfoque social y basado en la web. De esta manera, se provee al cliente de una interfaz web desde donde poder gestionar su complejo de manera online y segura, y de una pgina front-end desde donde los usuarios del complejo pueden efectuar reservas, pagos o comunicarse entre ellos. Adems, tambin dispone de una aplicacin mvil para Android e iOS desde la cual los usuarios pueden realizar las tareas explicadas anteriormente. Actualmente, dado que hay muchos mdulos en fase de desarrollo, se comercializa el servicio de reservas online, va Facebook, front-end, App mvil o SMS bajo el nombre http://pro.bookpadel.co.uk/, orientado al creciente mundo del pdel en Inglaterra.

2. Estudio inicial del Sistema de Informacin


2.2. Objetivo de la aplicacin
El objetivo principal del presente trabajo fin de carrera es el desarrollo del mdulo de gestin deportiva de un gimnasio, como parte del proyecto de aplicacin modular en la nube Nitro.

2.2. Identificacin inicial de funcionalidades


Las funcionalidades bsicas del mdulo de gestin deportiva del gimnasio que se van a desarrollar son: Desde el punto de vista de la organizacin: La parte de gestin propia de un entrenador personal o monitor. Gestin de citas con los usuarios. Creacin de tablas y rutinas de entrenamiento tanto genricas como personalizadas y asignarlas a los usuarios, creacin y modificacin de nuevos ejercicios que podrn ser utilizados para las tablas de entrenamiento, edicin de rutinas de entrenamiento ya creadas, ver el historial de los entrenamientos seguidos por parte del usuario. Responder va mensaje a las posibles dudas que puedan surgir a los usuarios, etc. De manera ms resumida y esquemtica: Gestin de citas y trabajo pendiente. Gestin de ejercicios. Gestin de usuarios. Gestin de rutinas. Gestin del historial de asignaciones (entrenamiento seguido por los usuarios). Gestin de la comunicacin con los usuarios. Desde el punto de vista del usuario de la instalacin: Al ser una aplicacin en la nube, la aplicacin provee de acceso tanto a la administracin del club e instalaciones de cara a la gestin en general como a los usuarios de dicho club. Desde un navegador web y tras loguearse con sus datos de usuario, se podrn efectuar reservas de instalaciones o por ejemplo crear torneos. La parte correspondiente al mdulo gimnasio a implementar es la siguiente: 7

Ver la rutina de entrenamiento actual, guardarla como pdf o imprimirla, si as lo deseamos. Mandar un mensaje al monitor, comunicndole dudas, pidiendo una cita o una nueva tabla de entrenamiento. Ver los mensajes que nos haya mandado el monitor. Ver informacin sobre los ejercicios de nuestro plan de entrenamiento. Desde el punto de vista de la aplicacin mvil: Como parte del servicio que ofrece Nitro con su aplicacin para smartphones: Se deber crear el API correspondiente para que la aplicacin pueda acceder a las caractersticas propias del mdulo. Se disear la interfaz correspondiente al mdulo gimnasio, el objetivo primordial es el uso del Smartphone para la consulta del entrenamiento a seguir, marcando los ejercicios ya realizados o accediendo a ms informacin sobre los mismos.

2.3. Magnitudes o caractersticas principales de la aplicacin:


Es una aplicacin modular. Se utilizan tanto clases comunes para todos los mdulos como clases propias de cada mdulo. Debido a las primeras es necesario el uso de una herramienta de control de versiones. Evitndose as posibles conflictos y posibilitando que los desarrolladores programen siempre en la ltima versin global y funcional. Para el control de versiones se utilizara el repositorio online de pago Github, que utiliza el sistema de control de versiones Git. Es una aplicacin multidioma. Se dispondr de archivos diccionario, todas y cada una de las variables texto que mostraremos debern corresponderse a una de las variables diccionario de nuestro modulo, dicha variable ser la que contenga el texto. En funcin del idioma de la aplicacin, se cargarn unos diccionarios u otros. En concreto, durante el desarrollo de este proyecto deberemos realizar los archivos diccionario correspondientes a Ingls y Espaol. El cdigo se desarrollar en una versin de repositorios demo con servidor propio, una vez implementada una funcionalidad completa se probar en una versin test almacenada en otro servidor. Una vez testeada se podr aadir a la aplicacin comercial, alojada en nubapp.com. Es una aplicacin en la nube pero trata de ser interactiva como una aplicacin gestora corriendo de manera nativa. Es por ello que la insercin y consulta de 8

datos deber hacerse de una manera dinmica por parte del navegador cliente, es decir, sin salir de la pgina con el objetivo de que quien la utilice no vea ninguna diferencia prctica frente a otros programas (sin navegar de una pgina a otra ni recargando las mismas). Para ello, se utilizara la tecnologa RIA (Rich internet applications), AJAX y jQuery. En relacin con el punto anterior, el cdigo generado deber estar optimizado al mximo, con el objetivo de que el trabajo con la aplicacin sea fluido.

2.4. Estructura de la aplicacin y etapas de desarrollo planificadas


Para la consecucin de los objetivos de este proyecto dividiremos su desarrollo en 4 etapas: Etapa Inicial: Anlisis y diseo global de la aplicacin. Etapa 1: Back - END Diseo del Back - END Gestin de Ejercicios. Gestin de Rutinas. Gestin de usuarios. Gestin de trabajo (rutinas) pendiente. Gestin del historial. Gestin de la comunicacin con los usuarios. Gestin de citas. Testeo y pruebas Etapa 2: Front END Diseo del front - END Consulta y gestin de la rutina de entrenamiento actual. Gestin de la comunicacin con el monitor. Acceso y documentacin de los ejercicios de nuestro plan de entrenamiento. Testeo y pruebas. Etapa 3: Aplicacin Mvil Diseo de la aplicacin mvil. Creacin del API mvil. Testeo y pruebas. Etapa 4: Testeo y pruebas. Resolucin de bugs derivados del uso por parte de clientes.

2.5 Recursos utilizados para la realizacin del PFC


Para la realizacin de este proyecto necesitaremos un ordenador con acceso a internet. Los programas utilizados para el desarrollo de la aplicacin han sido:

Notepad ++ y DreamWeaver, para la edicin de cdigo PHP, HTML, SQL, Ajax y JQuery [2][3][4][5]. MySQLWorkBench, para la gestin de la BBDD [6]. Git-Bash y Tortoise, para el control de versiones y gestin del repositorio comn online [10][11]. Xampp, como servidor web para el desarrollo local de la aplicacin [1][9]. Navegadores web Chrome y Firefox, con sus correspondientes consolas de cdigo. Tanto el estudio inicial del PFC, como la planificacin, el anlisis y el diseo del sistema de informacin han sido elaborados basndose en la metodologa Mtrica v3 [8].

10

3. Anlisis del sistema de informacin


3.1. Definicin del sistema
3.1.1. Determinacin del alcance del sistema
El sistema afectar a todo el club deportivo. En esta seccin describiremos de manera breve cual ser el alcance del sistema y la influencia en los usuarios.
Como podemos ver en la imagen, las entidades que actuarn sobre nuestro sistema sern las siguientes:

Administradores: personas encargadas del mantenimiento y configuracin de la aplicacin. Empleados: personal que utilizar la aplicacin, en nuestro caso, el monitor o monitores del gimnasio/sala fitness. Socios: Los socios utilizarn la aplicacin para acceder a sus datos de entrenamiento y para comunicarse con el monitor.

11

3.1.2 Identificacin del entorno tecnolgico


La aplicacin web est escrita en PHP y JavaScript, por lo tanto es imprescindible un servidor Apache con al menos la versin 5 de PHP. Como se trata de un lenguaje interpretado orientado a la creacin de pginas web no presenta problemas de compatibilidad con las diferentes plataformas existentes en el mercado. Es recomendable para el uso de la aplicacin un equipo con sistema operativo Windows XP o superior y preferentemente los navegadores Safari, Firefox y Chrome pues el cdigo HTML y CSS esta optimizado para dichos navegadores. En lo referente a la App mvil, ser compatible con smartphones, Android e iOS.

3.1.3 Especificacin de estndares y normas


Las funcionalidades que se van a implementar en este PFC vienen englobadas dentro de una aplicacin general, dado que dicha aplicacin va a almacenar informacin personal de los clientes, esta deber ser tratada de manera que cumpla lo dispuesto en las leyes Britnicas y Espaolas, teniendo en cuenta especialmente las siguientes en el caso de Espaa: Ley Orgnica 15/1999 de Proteccin de Datos de Carcter Personal. Real Decreto 994/1999 de reglamento de medidas de seguridad de los ficheros automatizados que contengan datos de carcter personal. En lo dispuesto en tales documentos se entienden que los datos que va a almacenar el sistema son de nivel bsico y como tales, debern cumplir las medidas de seguridad requeridas para tal nivel en el reglamento de medidas de seguridad.

3.2 Establecimiento de requisitos


3.2.1 Obtencin de requisitos
En esta seccin se definen detalladamente los requisitos del sistema, a cada uno de ellos se le asociara un cdigo de identificacin y se establecer su prioridad.
FUNCIONALIDADES Descripcin Ejecucin de la aplicacin La aplicacin se ejecutara en cualquiera de los navegadores ms utilizados. Cumplir con las normas de estilo W3C.

ID R1

Prioridad

Dificultad

Alta

Alta

12

R2

R3

R4

R5

R6

Gimnasio -- Rutinas Se crear una interfaz para ver, imprimir, crear, modificar, asignar y borrar rutinas. Las rutinas constarn de: Ttulo de la rutina Descripcin de la misma Ejercicios de la rutina, se podrn aadir, editar y borrar diferentes ejercicios. Series. Repeticiones. Das, ser posible realizar diferentes planes de entrenamiento para diferentes das dentro de una misma rutina. Gimnasio Ejercicios Se crear una interfaz para ver, editar, crear y borrar ejercicios. De cada ejercicio podremos almacenar la siguiente informacin: Nombre del ejercicio Grupo muscular Descripcin del ejercicio Imagen Video Gimnasio Trabajo pendiente Se crear una interfaz para consultar, almacenar y controlar las peticiones de planes de entrenamiento por parte de los usuarios. Desde aqu el monitor podr asignar directamente rutinas ya creadas a los usuarios. Se quiere almacenar la siguiente informacin: Nombre del usuario Descripcin Gimnasio Historial Para poder documentarse correctamente y preparar un plan de entrenamiento correcto, el monitor podr consultar el historial de entrenamientos realizados por los diferentes usuarios. Se guardaran los siguientes datos: Nombre del usuario que realiza el entrenamiento. Ttulo del entrenamiento asignado Fecha Hora Gimnasio -- Citas Se dispondr de un apartado con calendario en el que el monitor podr gestionar las diferentes citas con los usuarios. Se almacenarn los siguientes datos: Nombre del usuario

Alta

Alta

Alta

Media

Alta

Alta

Alta

Media

Media

Alta

13

R7

R8

R9

R10

R11

R12

R13

R14 R15

R16

Comentarios Da Hora Configuracin de la aplicacin Algunos de los parmetros de nuestra aplicacin podrn ser configurados desde el apartado general de opciones que se encuentra en la aplicacin. Por el momento, se podr configurar: Habilitar/Deshabilitar el acceso de los usuarios al apartado gimnasio del backend. Habilitar/Deshabilitar el uso de ejercicios genricos por parte de la aplicacin. Habilitar/Deshabilitar el uso de rutinas genricas por parte de la aplicacin Carga inicial de datos La aplicacin dispondr de entrenamientos y ejercicios predefinidos. Resultados Una vez finalizada una accin, tanto el monitor como el usuario obtendrn informacin sobre el resultado de dicha accin. Logs La aplicacin escribir en el archivo log de la aplicacin general mostrando el uso dado por los monitores a la aplicacin. Permisos Para el acceso al mdulo gimnasio de la aplicacin, el trabajador deber tener permitido el uso del mismo. Un administrador asignara permisos a los monitores para que puedan acceder. Diseo reutilizable y claridad de cdigo El diseo ha de ser reutilizable y el cdigo debe ser claro y estar debidamente comentado. Se crear un documento explicativo de las diferentes clases que interactan con el modulo, as como de las que han sido creadas para el mismo mdulo. Se intentar optimizar el cdigo tanto como sea posible. Homogeneidad Las pantallas del sistema debern ser homogneas y seguir las normas de estilo y estructuracin del resto de la aplicacin. Facilidad de uso El uso del sistema deber ser fcil e intuitivo Comunicacin usuario monitor Los usuarios y los monitores podrn intercambiar mensajes entre s para resolver dudas, pedir citas o entrenamientos, etc. Front-end

Alta

Media

Media

Media

Alta

Media

Baja

Media

Alta

Media

Alta

Alta

Alta

Media

Alta Alta

Alta Alta

Alta

Alta

14

R17

R18

R19

R20

En la parte front-end fron de la aplicacin se crear un apartado gimnasio desde donde los usuarios podrn ver, imprimir o guardar sus rutinas y contactar con el monitor. API Se creara un API para la aplicacin mvil que provea acceso a la informacin. Aplicacin mvil Se disear una aplicacin mvil para que el usuario pueda ver su tabla desde su Smartphone. El objetivo principal de esta interfaz es su uso a la hora de entrenar, consultando el plan de entrenamiento, marcando los ejercicios realizados, accediendo a informacin de los mismos, etc. Dinamismo Al ser un servicio en la nube, la l aplicacin deber diferenciar qu cliente o entidad est usando la misma y cargar solo la informacin de dicho cliente, mostrando solo los ejercicios, configuraciones y rutinas correspondientes al cliente en cuestin. Diccionarios Todo el texto que muestre la aplicacin sern variables ligadas a un archivo diccionario desde donde se cargara el texto en el idioma correspondiente.

Alta

Media

Alta

Alta

Alta

Media

Alta

Media

3.3 Especificacin de casos de uso


Se ha realizado un anlisis de los casos de uso a partir del siguiente diagrama de casos de uso general:

15

Obteniendo los siguientes diagramas al iterar: Iteracin 1:

16

Iteracin 2:

A continuacin, y como parte de la iteracin final, iremos mostrando los diferentes diagramas de casos de uso por secciones realizadas. Con el objetivo de simplificar los diagramas, se ha omitido en los mismos la figura del administrador que apareca en anteriores iteraciones. Simplemente sera repetir las relaciones del actor Monitor para el Administrador.

17

3.3.1. Seccin Rutinas

ID CU1

RUTINAS Informacin
Borrar rutina Administrador, empleado El administrador o un empleado con privilegios est autentificado. Hay rutinas que puedan ser borradas en el sistema Postcondicin El sistema se ha actualizado correctamente Flujo Bsico I. El administrador o monitor accede a la seccin de rutinas del mdulo gimnasio de la aplicacin. II. Decide la rutina a borrar. Selecciona la opcin borrar. III. IV. Se actualiza la informacin en la BBDD. V. El sistema informa del resultado de la ejecucin (exitosa o fallo).

Descripcin Actor Precondicin

18

ID CU2

RUTINAS Informacin Editar rutina Administrador, empleado El administrador o un empleado con privilegios est autentificado. Hay rutinas que pueden ser editadas en el sistema Postcondicin El sistema se ha actualizado correctamente Flujo Bsico I. El administrador o monitor accede a la seccin de rutinas del mdulo gimnasio de la aplicacin. II. Decide la rutina a editar. Edita los datos y los guarda. III. IV. Se actualiza la informacin en la BBDD. V. El sistema informa del resultado de la ejecucin (exitosa o fallo). RUTINAS Informacin Crear rutina Administrador, empleado El administrador o un empleado con privilegios est autentificado. Postcondicin El sistema se ha actualizado correctamente Flujo Bsico I. El administrador o monitor accede a la seccin de rutinas del mdulo gimnasio de la aplicacin. II. Selecciona la opcin aadir nueva rutina. III. Introduce los datos de la nueva rutina y le da a guardar. IV. Se actualiza la informacin en la BBDD. V. El sistema informa del resultado de la ejecucin (exitosa o fallo). RUTINAS Informacin Descripcin Asignar rutina a usuario Actor Administrador, empleado Precondicin El administrador o un empleado con privilegios est autentificado. Postcondicin El sistema se ha actualizado correctamente Flujo Bsico I. El administrador o monitor accede a la seccin de rutinas del mdulo gimnasio de la aplicacin. II. Selecciona la opcin asignar de alguna rutina. III. Selecciona el usuario a quien la desea asignar. IV. Se actualiza la informacin en la BBDD. V. El sistema informa del resultado de la ejecucin (exitosa o fallo). 19 Descripcin Actor Precondicin Descripcin Actor Precondicin

ID CU3

ID CU4

ID CU5

RUTINAS Informacin Ver rutina Administrador, empleado El administrador o un empleado con privilegios est autentificado. Hay rutinas creadas. Postcondicin El sistema muestra la rutina Flujo Bsico I. El administrador o monitor accede a la seccin de rutinas del mdulo gimnasio de la aplicacin. II. Selecciona la opcin ver rutina de una rutina. Se carga la informacin y se muestra por pantalla. III. IV. El sistema informa del resultado de la ejecucin (exitosa o fallo). RUTINAS Informacin Descripcin Editar ejercicio Actor Administrador, empleado Precondicin El administrador o un empleado con privilegios est autentificado y hay alguna rutina creada. Postcondicin El sistema se ha actualizado correctamente Flujo Bsico I. El administrador o monitor accede a la seccin de rutinas del mdulo gimnasio de la aplicacin. II. Selecciona la opcin editar de alguna de las rutinas. III. Selecciona el ejercicio a editar, introduce los nuevos datos y clica en actualizar. IV. Se actualiza la informacin en la BBDD. V. El sistema informa del resultado de la ejecucin (exitosa o fallo). RUTINAS Informacin Descripcin Insertar ejercicio Actor Administrador, empleado Precondicin El administrador o un empleado con privilegios est autentificado y hay alguna rutina creada. Postcondicin El sistema se ha actualizado correctamente Flujo Bsico I. El administrador o monitor accede a la seccin de rutinas del mdulo gimnasio de la aplicacin. II. Selecciona la opcin editar en alguna de las rutinas. III. Selecciona el da, ejercicio, series y repeticiones y clica en insertar. IV. Se actualiza la informacin en la BBDD. V. El sistema informa del resultado de la ejecucin (exitosa o fallo). 20 Descripcin Actor Precondicin

ID CU6

ID CU7

ID CU8

RUTINAS Informacin
Buscar rutina Administrador, empleado El administrador o un empleado con privilegios est autentificado. Postcondicin El sistema se ha actualizado correctamente Flujo Bsico I. El administrador o monitor accede a la seccin rutinas del mdulo gimnasio de la aplicacin. II. Introduce el nombre de la rutina que desea buscar. III. Se muestran las rutinas cuyo ttulo coincida con el parmetro de bsqueda. IV. El sistema informa del resultado de la ejecucin (exitosa o fallo).

Descripcin Actor Precondicin

3.3.2. Seccin Ejercicios

ID CU9

EJERCICIOS Informacin Descripcin Crear ejercicio Actor Administrador, empleado Precondicin El administrador o un empleado con privilegios est autentificado. Postcondicin El sistema se ha actualizado correctamente Flujo Bsico I. El administrador o monitor accede a la seccin de ejercicios del mdulo gimnasio de la aplicacin. II. Selecciona la opcin crear ejercicio. Introduce los datos correspondientes y clica en III. guardar. 21

IV. V.

Se actualiza la informacin en la BBDD. El sistema informa del resultado de la ejecucin (exitosa o fallo).

ID CU10

EJERCICIOS Informacin Descripcin Editar ejercicio Actor Administrador, empleado Precondicin El administrador o un empleado con privilegios est autentificado y hay algn ejercicio creado. Postcondicin El sistema se ha actualizado correctamente Flujo Bsico I. El administrador o monitor accede a la seccin de ejercicios del mdulo gimnasio de la aplicacin. II. Selecciona la opcin editar de alguno de los ejercicios. III. Cambia los parmetros pertinentes y clica en guardar. IV. Se actualiza la informacin en la BBDD. V. El sistema informa del resultado de la ejecucin (exitosa o fallo). EJERCICIOS Informacin Descripcin Borrar ejercicio Actor Administrador, empleado Precondicin El administrador o un empleado con privilegios est autentificado y hay algn ejercicio creado. Postcondicin El sistema se ha actualizado correctamente Flujo Bsico I. El administrador o monitor accede a la seccin de ejercicios del mdulo gimnasio de la aplicacin. II. Selecciona la opcin borrar de alguno de los ejercicios. III. Se actualiza la informacin en la BBDD. IV. El sistema informa del resultado de la ejecucin (exitosa o fallo). EJERCICIOS Informacin Ver ejercicio Administrador, empleado El administrador o un empleado con privilegios est autentificado y hay algn ejercicio creado. Postcondicin El sistema se ha actualizado correctamente Flujo Bsico I. El administrador o monitor accede a la seccin de ejercicios del mdulo gimnasio de la aplicacin. II. Selecciona la opcin ver informacin de alguno de los ejercicios. III. Se muestra la informacin detallada de dicho 22 Descripcin Actor Precondicin

ID CU11

ID CU12

ejercicio.

3.3.3. Seccin Historial

ID CU13

HISTORIAL Informacin Descripcin Buscar usuario Actor Administrador, empleado Precondicin El administrador o un empleado con privilegios est autentificado. Postcondicin El sistema se ha actualizado correctamente Flujo Bsico V. El administrador o monitor accede a la seccin de Historial del mdulo gimnasio de la aplicacin. VI. Introduce el usuario que desea buscar. VII. Se muestran las rutinas asignadas a dicho usuario. El sistema informa del resultado de la ejecucin VIII. (exitosa o fallo). HISTORIAL Informacin
Ver rutina Administrador, empleado El administrador o un empleado con privilegios est autentificado. Hay rutinas asignadas al usuario. Postcondicin El sistema muestra la rutina Flujo Bsico I. El administrador o monitor accede a la seccin de historial del mdulo gimnasio de la aplicacin. II. (opcional) Realiza una bsqueda. III. Selecciona la opcin ver rutina de una asignacin. IV. Se carga la informacin y se muestra por pantalla. V. El sistema informa del resultado de la ejecucin (exitosa o fallo).

ID CU14

Descripcin Actor Precondicin

23

3.3.4. Seccin Trabajo pendiente

ID CU15

TRABAJO PENDIENTE Informacin Descripcin Aadir trabajo Actor Administrador, empleado Precondicin El administrador o un empleado con privilegios est autentificado. Postcondicin El sistema se ha actualizado correctamente Flujo Bsico I. El administrador o monitor accede a la seccin de trabajo pendiente del mdulo gimnasio de la aplicacin. II. Selecciona la opcin crear trabajo pendiente. III. Introduce los datos del nuevo trabajo pendiente y clica en guardar. IV. Se actualiza la informacin de la BBDD. V. El sistema informa del resultado de la ejecucin (exitosa o fallo). TRABAJO PENDIENTE Informacin Descripcin Borrar trabajo Actor Administrador, empleado Precondicin El administrador o un empleado con privilegios est autentificado. Hay trabajos pendientes Postcondicin El sistema se ha actualizado correctamente Flujo Bsico I. El administrador o monitor accede a la seccin de trabajo pendiente del mdulo gimnasio de la 24

ID CU16

II. III. IV.

aplicacin. Selecciona la opcin borrar de alguno de los trabajos pendientes. Se actualiza la informacin de la BBDD. El sistema informa del resultado de la ejecucin (exitosa o fallo).

ID CU17

TRABAJO PENDIENTE Informacin Descripcin Editar trabajo Actor Administrador, empleado Precondicin El administrador o un empleado con privilegios est autentificado. Hay trabajos pendientes. Postcondicin El sistema se ha actualizado correctamente Flujo Bsico I. El administrador o monitor accede a la seccin de trabajo pendiente del mdulo gimnasio de la aplicacin. II. Selecciona la opcin editar de algn trabajo pendiente. III. Introduce los nuevos datos y clica en guardar. IV. Se actualiza la informacin de la BBDD. V. El sistema informa del resultado de la ejecucin (exitosa o fallo). TRABAJO PENDIENTE Informacin Descripcin Asignar rutina a usuario Actor Administrador, empleado Precondicin El administrador o un empleado con privilegios est autentificado. Postcondicin El sistema se ha actualizado correctamente Flujo Bsico I. El administrador o monitor accede a la seccin de trabajo pendiente del mdulo gimnasio de la aplicacin. II. Selecciona la opcin asignar rutina de algn trabajo pendiente. III. Selecciona la rutina a asignar. IV. Se actualiza la informacin de la BBDD. V. El sistema informa del resultado de la ejecucin (exitosa o fallo).

ID CU18

25

3.3.5. Seccin Citas

ID CU19

CITAS Informacin
Consultar citas Administrador, empleado El administrador o un empleado con privilegios est autentificado. Postcondicin El sistema muestra las citas en el periodo deseado. Flujo Bsico I. El administrador o monitor accede a la seccin calendario de la aplicacin. II. Selecciona la franja en la cual desea consultar las citas. Se muestra la informacin de la BBDD. III. IV. El sistema informa del resultado de la ejecucin (exitosa o fallo).

Descripcin Actor Precondicin

ID CU20

CITAS Informacin
Aadir cita Administrador, empleado El administrador o un empleado con privilegios est autentificado. Postcondicin El sistema se ha actualizado correctamente Flujo Bsico I. El administrador o monitor accede a la seccin calendario de la aplicacin. II. Selecciona la opcin nueva cita. III. Introduce los datos de la nueva cita y clica en guardar. IV. Se actualiza la informacin de la BBDD. V. El sistema informa del resultado de la ejecucin (exitosa o fallo).

Descripcin Actor Precondicin

26

ID CU21

CITAS Informacin Editar cita Administrador, empleado El administrador o un empleado con privilegios est autentificado. Hay citas creadas. Postcondicin El sistema se ha actualizado correctamente Flujo Bsico I. El administrador o monitor accede a la seccin calendario de la aplicacin. II. Selecciona la opcin editar de cita. Introduce los datos y clica en guardar. III. IV. Se actualiza la informacin de la BBDD. V. El sistema informa del resultado de la ejecucin (exitosa o fallo). CITAS Informacin Borrar cita Administrador, empleado El administrador o un empleado con privilegios est autentificado. Hay citas creadas. Postcondicin El sistema se ha actualizado correctamente Flujo Bsico I. El administrador o monitor accede a la seccin calendario de la aplicacin. II. Selecciona la opcin borrar de una cita. III. Se actualiza la informacin de la BBDD. IV. El sistema informa del resultado de la ejecucin (exitosa o fallo). Descripcin Actor Precondicin Descripcin Actor Precondicin

ID CU22

27

3.3.6. Mensajes

ID CU23

MENSAJES Informacin
Ver mensaje Administrador, empleado El administrador o un empleado con privilegios est autentificado. Hay mensajes. Postcondicin El sistema se ha actualizado correctamente Flujo Bsico I. El administrador o monitor accede a la seccin mensajes de la aplicacin. II. Selecciona el mensaje a leer. Se carga la informacin de la BBDD. III. IV. El sistema informa del resultado de la ejecucin (exitosa o fallo).

Descripcin Actor Precondicin

ID CU24

MENSAJES Informacin Descripcin Enviar mensaje Actor Administrador, empleado Precondicin El administrador o un empleado con privilegios esta autentificado. Postcondicin El sistema se ha actualizado correctamente Flujo Bsico I. El administrador o monitor accede a la seccin mensajes de la aplicacin. Selecciona el mensaje al cual responder o selecciona II. la opcin nuevo mensaje (en cuyo caso selecciona el destinatario). III. Introduce los datos del mensaje y le da a enviar. 28

IV. V.

Se actualiza la informacin de la BBDD. El sistema informa del resultado de la ejecucin (exitosa o fallo).

3.3.7. Settings/Configuracin
SETTINGS Informacin Descripcin Configurar los diferentes parmetros del mdulo. Actor Administrador, empleado Precondicin El administrador o un empleado con privilegios esta autentificado. Postcondicin El sistema se ha actualizado correctamente Flujo Bsico I. El administrador o monitor accede a la seccin settings de la aplicacin. II. Selecciona la opcin del mdulo gimnasio. III. Configura algunos parmetros y clica en guardar. IV. Se actualiza la informacin de la BBDD. V. El sistema informa del resultado de la ejecucin (exitosa o fallo).

ID CU25

3.3.8. Usuarios
Tanto en la seccin rutinas como en la seccin mensajes apareca el actor usuario. A continuacin mostramos los casos de uso correspondientes a dichos diagramas (consultar rutina, ver mensaje, enviar mensaje). MENSAJES Informacin Descripcin Enviar mensaje Actor USUARIO Precondicin El usuario est autentificado. Postcondicin El sistema se ha actualizado correctamente Flujo Bsico I. El usuario accede a la seccin mensajes del front-end. II. Selecciona el mensaje al cual responder o selecciona la opcin nuevo mensaje (en cuyo caso selecciona el destinatario). III. Introduce los datos del mensaje y le da a enviar. IV. Se actualiza la informacin de la BBDD. V. El sistema informa del resultado de la ejecucin (exitosa o fallo).

ID CU26

29

ID CU27

MENSAJES Informacin Descripcin Actor Precondicin Postcondicin Flujo Bsico Ver mensaje USUARIO El usuario esta autentificado. Hay algn mensaje El sistema se ha actualizado correctamente I. El usuario accede a la seccin mensajes del front-end. II. Selecciona el mensaje a leer. Se carga la informacin de la BBDD. III. IV. El sistema informa del resultado de la ejecucin (exitosa o fallo). RUTINAS Informacin Ver rutina USUARIO El usuario esta autentificado. El usuario tiene alguna rutina asignada. Postcondicin El sistema muestra la rutina Flujo Bsico I. El usuario accede a la seccin mi rutina del front-end. II. Se carga la informacin y se muestra por pantalla. III. El sistema informa del resultado de la ejecucin (exitosa o fallo). Descripcin Actor Precondicin

ID CU28

3.4 Anlisis de requisitos


En esta tarea se asocian los requisitos con los casos de uso que los implementan. Para ello se ha construido una matriz de trazabilidad entre los casos de uso de realizacin y los requisitos funcionales. R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x 30

CU1 CU2 CU3 CU4 CU5 CU6 CU7 CU8 CU9 CU10 CU11 CU12 CU13

CU14 CU15 CU16 CU17 CU18 CU19 CU20 CU21 CU22 CU23 CU24 CU25 CU26 CU27 CU28

x x x x x x x x x x x x x x x

x x x x x x x x x

x x x x x x x x x x x x x x x

x x x x x x x x x x x x x x x

x x x x x x x x x x x x x x x

x x x x x x x x x x x x x x x

x x x x x x x x x x x x x x x

x x x x x x x x x x x x x x x

x x x x x x x x x x x

x x x x x x x x x x x x x x x

x x x x x x x x x x x x x x x

3.5 Definicin de las interfaces de usuario


3.5.1. Principios generales de la interfaz
A continuacin se describirn normas de diseo utilizadas. En la aplicacin se utilizarn imgenes con formato .png, ya que mantienen el equilibrio entre compresin (tamao) y calidad. Se utilizarn colores primarios y las combinaciones de los colores de fondo y primer plano tendrn suficiente contraste para que sean vistas por personas con dficit de percepcin de color o por pantallas en blanco y negro. No se utilizarn imgenes de fondo que puedan causar distraccin respecto del contenido. Los contenidos estarn estructurados facilitando la lectura y comprensin. Deber existir una completa compatibilidad con todos los sistemas operativos ya que se trata de una aplicacin web que cumple con los estndares y funciona en cualquier navegador. Se mantendr un diseo lgico y uniforme. Los controles que no puedan utilizarse en cada pantalla no estarn presentes, o bien se mostrarn inactivos. Se seguir una estructura de contenidos y diseo similar a la del resto de la aplicacin. A continuacin pasaremos a detallar y explicar los diferentes aspectos de las interfaces implementadas.

31

3.5.2. Seccin Rutinas

Ilustracin 1 Seccin principal

Al acceder al mdulo gimnasio el sistema carga por defecto el apartado rutinas, desde donde podremos ver un listado de las rutinas creadas. Para cada una de las rutinas, podremos editarlas (si no son predefinidas), asignarlas a un usuario o verlas. Las rutinas estn paginadas en una datatable por antigedad, permitiendo al monitor buscar entre las mismas.

Ilustracin 2 Buscar rutinas

32

Ilustracin 3 Ver rutina

Si deseamos asignar una rutina a un usuario, el sistema carga una tabla donde se listan todos los usuarios de la aplicacin. De nuevo y con el objetivo de agilizar el trabajo del monitor, han sido estructurados en una datatable para que el monitor pueda efectuar bsquedas.

Ilustracin 4 Asignar rutina a usuario

33

Ilustracin 5 Asignar rutina a usuario buscado

Para crear una nueva rutina deberemos clicar sobre el botn Add. Cuando lo hagamos, se desplegar un formulario donde introduciremos los datos correspondientes a nuestra rutina y podremos aadir, editar o borrar ejercicios. Tambin es posible aadir, editar o borrar ejercicios en rutinas ya creadas si clicamos en su correspondiente botn editar.

Ilustracin 6 Nueva rutina

A la hora de aadir una lnea, seleccionamos el ejercicio e introducimos las series, las repeticiones y el descanso. La lnea se insertara en el da que se encuentre seleccionado en ese momento.

34

Ilustracin 7 Insertar lnea

Ilustracin 8 Editar lnea

3.5.3. Seccin ejercicios


Si accedemos a la seccin ejercicios veremos los ejercicios de los que dispone nuestra aplicacin agrupados por grupos musculares. Desde aqu podremos consultar la informacin correspondiente a los ejercicios y editar los mismos. Al igual que en la seccin rutinas, solo podremos editar los ejercicios creados por nuestra aplicacin.

35

Ilustracin 9 Seccin ejercicios

Ilustracin 10 Consultar ejercicio

Si el ejercicio seleccionado para consultar su informacin dispone de un vdeo explicativo podremos cargarlo para verlo.

36

Ilustracin 11 Ejercicio con video

Si clicamos en aadir un nuevo ejercicio, aparecer un formulario donde introduciremos la informacin del mismo. Tambin podremos cargar una imagen para dicho ejercicio desde nuestro ordenador o aadir un vdeo explicativo del mismo.

Ilustracin 12 Aadir ejercicio

3.5.4. Seccin Trabajo pendiente


Al acceder a la seccin trabajo pendiente, veremos una tabla con un listado de rutinas por hacer. Estarn ordenadas de mayor a menor antigedad y el monitor podr editarlas o asignarlas. Cuando realizamos una asignacin, el trabajo pendiente correspondiente desaparece de la lista al haber sido realizado. 37

Ilustracin 13 Trabajo pendiente

Al elegir un usuario cuando editamos o aadimos un trabajo pendiente, el sistema despliega una datatable con los usuarios de la aplicacin. De nuevo, podremos efectuar bsquedas para agilizar el proceso.

Ilustracin 14Seleccin de usuario para el trabajo pendiente

Ilustracin 15 Editar trabajo pendiente

A la hora de asignar una rutina a un trabajo pendiente, el sistema desplegara una datatable similar a la de la seccin rutinas, donde se mostraran las diferentes rutinas y la descripcin de las mismas. Asimismo, el monitor podr buscar la rutina a 38

asignar al usuario o consultar una rutina en concreto para comprobar si es la que ms se adecua a la peticin del usuario.

Ilustracin 16 Asignar rutina a usuario

3.5.5. Seccin Historial


En esta seccin, el monitor podr consultar las rutinas que han sido asignadas a los usuarios. Siguiendo la idea de secciones anteriores, las asignaciones estn estructuradas en una datatable. El monitor podr buscar un usuario y listar todas y cada una de las asignaciones que han sido realizadas a dicho usuario. Para cada asignacin, dispondr de un botn para ver la rutina en cuestin.

Ilustracin 17 Seccin historial

39

Ilustracin 18 Buscar asignaciones a usuario

3.5.6. Settings
Al acceder al apartado settings de la aplicacin y seleccionar el apartado gimnasio, aparecern los tres parmetros que pueden ser configurados de nuestro modulo.

Ilustracin 19 Settings

Podremos elegir si activamos la seccin gimnasio en el front-end para los usuarios (la entidad cliente puede no disponer de gimnasio as que no le interesara mostrar la informacin relativa al mismo a los usuarios) y si usamos o no las rutinas y ejercicios que vienen predefinidos con la aplicacin.

3.5.7. Mensajes
El monitor puede intercambiar mensajes con los usuarios. Para crear y consultar los mensajes deber acceder a la seccin mensajes de la aplicacin. Desde all, el monitor podr seleccionar el usuario al que desea remitir un mensaje (si se trata de un mensaje nuevo) o responder a un mensaje.

40

Ilustracin 20 Mensajes, seleccionar destinatario

Ilustracin 21 Enviar mensaje

Ilustracin 22 Cadena de mensajes

41

3.5.8. Front-end (usuarios)


El apartado front-end es el correspondiente a los usuarios. Desde la pgina web que nitro provee a la entidad cliente los usuarios de dicha entidad pueden interactuar con las instalaciones de la misma. Una vez logueados con sus datos de usuario, si acceden a la seccin rutinas y ya tienen alguna rutina asignada vern lo siguiente.

Ilustracin 23 Usuario con rutina asignada

Desde aqu, los usuarios podrn contactar con el monitor (el sistema crear una nueva conversacin con el monitor y redirigir al usuario a la seccin mensajes) o ver e imprimir su rutina.

42

Ilustracin 24 Mi rutina

Y consultar la informacin disponible sobre los diferentes ejercicios.

Ilustracin 25 Mi rutina, ver informacin

43

Los usuarios podrn imprimir y guardar sus rutinas de dos maneras diferentes, con y sin imgenes.

Por ltimo, si el usuario que accede al front-en no dispone de ninguna rutina asignada, dispondr de un formulario para pedir una directamente. Una vez enviada, la informacin de dicho cuestionario aparecer directamente en la seccin trabajo pendiente del monitor. Cabe destacar que esto no suple la posibilidad de un intercambio de mensajes entre el usuario y el monitor. Se trata de una funcionalidad diferente cuyo objetivo es agilizar el proceso en s.

Ilustracin 26 Pedir rutina

44

Ilustracin 27 Pedir rutina enviada a trabajos pendientes

45

4. Diseo del sistema de informacin


4.1 Definicin de la arquitectura del sistema
Nitro es una aplicacin modular. Se utilizan tanto clases comunes para todos los mdulos como clases propias de cada mdulo. Como ya se coment en la introduccin, es una aplicacin multidioma. Debido a ello se dispondr de archivos diccionario, y todas y cada una de las variables de texto que mostraremos debern corresponderse a una de las variables diccionario de nuestro modulo, siendo dicha variable ser la que contenga el texto. En funcin del idioma de la aplicacin, se cargarn unos diccionarios u otros. El cdigo se desarrollar en una versin de repositorios demo con servidor propio, una vez implementada una funcionalidad completa se probar en una versin test almacenada en otro servidor. Una vez testeada en test se podr aadir a la aplicacin comercial, alojada en nubapp.com A continuacin se muestra un rbol con la estructura de directorios y archivos del programa. Al ser parte de una aplicacin con mas funcionalidades a parte de la implementada, se muestran solo las creadas o modificadas de manera significativa por nuestro mdulo.

46

Web es la parte correspondiente al front-end mientras que App es la parte correspondiente a la aplicacin en si o back-end. No es nuestro objetivo explicar que hace cada uno de los archivos implementados, sin embargo, embargo, comentaremos algunos detalles que pueden no quedar claros a simple vista. En Nubapp->App->applications habr una carpeta por cada una de las aplicaciones cliente que han contratado los servicios de la aplicacin, dentro de dicha carpeta nuestro mdulo guardar las imgenes que hayan sido creadas por dicha entidad cliente. En Nubapp->App->images->modules->gym se guardan todas las imgenes que utiliza nuestro programa para las rutinas y ejercicios que vienen predefinidos en el sistema. Las ramificaciones Nubapp->App->modules->gym y Nubapp->web->wp-content no se han mostrado por motivos de espacio, las detallamos a continuacin:

47

4.2 Diseo de clases


A continuacin se muestra un diagrama con el diseo detallado de cada una de las clases que forman parte de nuestro mdulo, mdulo, sus atributos, operaciones, relaciones y mtodos, y la relacin jerrquica del mismo. Son clases finales y han sido obtenidas a partir de las especificaciones y casos de uso.

48

49

Clase application
Application id_application; name_application; logo = array(); time_zone; current_time; current_datetime; default_language; allow_front_signup; allow_front_view_gym; allow_exercises_gym; allow_routines_gym; modules = array(); languages = array(); users = array(); logs = array(); mgym; function __construct($id_application) function get_application() function set_value($var,$value) function save() function get_gym($lang)

La aplicacin general dispone nada ms loguearse de un objeto application que carga toda la informacin relativa al sistema. Mediante dicho objeto sabremos la hora y fecha local de dicha aplicacin, el logo y nombre del cliente que debe ser mostrado, el lenguaje utilizado por el cliente o los mdulos contratados (permitiendo o no el acceso a los mismos). Este objeto dispone asimismo de un array de objetos de la clase user, desde donde podremos acceder y manejar todos los usuarios de dicha aplicacin. Entre las funciones, y por su relacin con nuestro modulo, cabe destacar la funcin get_gym, encargada de crear un objeto de clase mgym con toda la informacin de nuestro mdulo gimnasio (la carga de datos se realiza en base a los atributos id_application y default_languaje de la clase application) de la entidad cliente que se ha logueado. Clase Mgym
Mgym exercises = array(); routines = array(); user_routine = array(); outstanding_routines = array(); current_language; last_routine; this_routine; last_user_routine; id_application; app;

50

function __construct($id_application=NULL, $lang=NULL,$app=NULL) get_info() function get_exercises() function get_routines() function get_last_routine() function get_this_routine($id_routine) function get_outstanding_routines() function get_user_routines()

La clase Mgym permite acceder y cargar toda la informacin correspondiente al mdulo gimnasio de una aplicacin dada. De manera general cargando toda la informacin (get_info) o de manera ms especfica para los diferentes apartados del mismo (get_routines(), get_exercises().), estando enfocadas estas ltimas funciones en la recarga dinmica de datos de los diferentes apartados, por ejemplo, si introducimos una nueva rutina, no har falta recargar toda la informacin del mdulo, sino que recargaremos la informacin correspondiente a las rutinas. Para almacenar la informacin relativa a rutinas, ejercicios, trabajo pendiente, etc., se han declarado diferentes arrays de objetos. De esta manera por ejemplo, en el atributo routines tendremos un array con objetos rutinas de la clase routine. La clase tambin dispone de otras funciones como por ejemplo acceder a la informacin de una rutina en concreto (get_this_routine). Clase outstandingroutine
Outstanding_routine id_outstanding_routine_gym; user_gym; user_name_gym; description_gym; date_gym; id_application; function __construct($id_outstanding_routine_gym=NULL) function get_info() function save() function delete() function set_value($var,$value)

Esta clase permite acceder, modificar, guardar o borrar objetos de la seccin trabajo pendiente. Clase exercise
Exercise

51

id_exercise; name_gym; group_gym; image_gym; description_gym; url_video; id_application; function__construct($id_exercise=NULL,$lang=NULL) function get_info($l) function save() function delete() function set_value($var,$value)

Esta clase permite acceder, modificar, guardar o borrar objetos de la seccin ejercicios Clase Routine
Routine id_routine_gym; title_gym; comments_gym; lines = array(); current_language_routine; id_application; function __construct($id_routine_gym=NULL,$lang=NULL) function get_info($l) function save() function delete() function set_value($var,$value) function get_lines() function get_lines_normal()

Esta clase permite acceder, modificar, guardar o borrar objetos de la seccin rutinas. Entre sus atributos debemos destacar el atributo lines, se trata de un array que contiene las lneas de la rutina, el array est formado por objetos de la clase line. En relacin con esto se dispone de dos funciones (get_lines() y get_lines_normal()) que cargan las lneas de la rutina en orden ascendente o descendente. Este ltimo aspecto es necesario dado que al crear la rutina vemos las lneas que hemos insertado recientemente las primeras, mientras que al mostrar una rutina se cargan en el orden en que han sido insertadas.

52

Clase Line
Line line_gym; id_routine_gym; id_exercise_gym; group_gym; name_gym; series_gym; reps_gym; image_gym; day_line_gym; description_gym; url_video; line_rest; id_application; function __construct($line_gym,$id_routine_gym,$id_exercise_gym,$day_line_gym,$lang) function get_info($l) function save() function update() function delete() function set_value($var,$value)

Esta clase permite acceder, modificar, guardar o borrar objetos lnea que forman parte de distintas rutinas. Clase UserRoutine
UserRoutine id_routine_gym; id_user_routine; id_user_gym; date_gym; time_gym; id_coach; id_application; function __construct($id_user_routine=NULL) function get_info() function delete() Function get_last_user_routine()

Esta clase permite acceder, modificar, guardar o borrar objetos de la seccin historial.

53

Clase user
User id_application; id_user; name; surname; username; password; pass; random_pass; id_language; language = array(); modules = array(); routine = array(); settings = array(); conversations = array(); function __construct($id_user=NULL,$id_application=NULL) function get_user() function get_language_info() //Get the modules that the user can reach function get_user_modules() //Get the last routine of the user function get_my_routine($id_user,$id_application)

Esta clase permite acceder, modificar, guardar o borrar objetos usuario que forman parte de la aplicacin de una entidad que haya contratado los servicios de Nubapp. El sistema considera usuarios tanto a trabajadores (monitor) como a clientes de las instalaciones. La diferencia entre usuarios radica en los privilegios de los mismos. Es por ello que disponemos de una funcin get_user_modules que nos determinar a que secciones tiene acceso el usuario. Por otro lado, si se trata de un usuario de tipo cliente, en el atributo routine tendr almacenada la rutina que le ha sido asignada (este atributo es usado en el front-end para mostrar la rutina asignada al mismo).

4.3 Diseo fsico de datos


En el siguiente esquema podemos ver el modelo fsico de datos de nuestro sistema, para simplificarlo, se ha omitido la estructura correspondiente a los mensajes, que se mostrar posteriormente:

54

Como podemos observar, basndonos en el diseo de clases realizado, hemos optado por un mapeado del tipo una clase, una tabla, implementando de esta manera una tabla por cada una de las clases utilizadas en el sistema. En lo referente a rutinas, podramos haberlas agrupado en una tabla en lugar de utilizar dos (lnea rutina y rutina). No obstante, dado que se decidi que el usuario del sistema podra crear rutinas sin lneas, y considerando el trfico de datos correspondiente a insertar y editar lneas sucesivamente en una misma rutina y sus posteriores cargas para refrescar el sistema, se ha optado por la utilizacin de dos tablas en lugar de una. De esta manera, dado que no tendremos necesidad de enlazar las tablas rutina y lnea rutina muy a menudo, optimizamos la actualizacin de datos desde la propia BD al acceder siempre a una tabla con menos atributos. Como se ha comentado en apartados anteriores, deberemos diferenciar entre diferentes tipos de aplicaciones en funcin de la entidad cliente que use el mismo, es por ello que todas las tablas creadas tienen un atributo id_application, que referencia a la tabla core_applicacion.

55

En esta vista podemos ver el modelo fsico de datos simplificado, pues hemos omitido la referencia a core_applications:

Por ltimo, el modelo fsico de datos correspondiente al mdulo mensajes es el siguiente:

56

4.4 Diseo de la migracin y carga inicial de datos


En el apartado de especificacin de requisitos, vimos como uno de ellos estableca que la aplicacin deba contar con rutinas y ejercicios predefinidos:

57

R8

Carga inicial de datos La aplicacin dispondr de entrenamientos y ejercicios predefinidos.

Dicho de otra manera, un usuario futuro de la aplicacin dispondr de suficiente informacin como para realizar sus tareas sin necesidad de introducir l mismo ninguna informacin. Para ello, se han cargado rutinas y ejercicios predefinidos. Dado que el sistema trabaja con archivos diccionario, se ha creado un programa que carga la informacin relativa a rutinas y ejercicios predefinidos desde dichos archivos en funcin del idioma de la aplicacin. Asimismo, se han creado los scripts SQL correspondientes a la insercin inicial de datos con la informacin relativa a los ejercicios y rutinas predefinidas. Los ejercicios predefinidos que vienen con la aplicacin son 100 y su informacin ha sido obtenida de la Gua de movimientos de musculacin de Charles Delavier. Los correspondientes a otros idiomas (ingls y francs) han sido obtenidos de la correspondiente versin idiomtica de dicho libro. Por ltimo, el sistema tambin incorpora 20 rutinas de entrenamiento predefinidas.

4.5 Diseo del plan de pruebas


Una vez realizada nuestra aplicacin, es necesario definir un plan de pruebas para la misma con el objetivo de encontrar posibles errores. A continuacin, se detallarn esquemticamente las pruebas realizadas.
Requisito Descripcin R1 Ejecucin de la aplicacin Pruebas: Se realizaran todas las posibles ejecuciones del programa en los tres navegadores comprobando su correcto funcionamiento en los mismos y solucionando los problemas en caso de haberlos. R2 Gimnasio -- Rutinas Pruebas: Para todos y cada uno de los formularios de la seccin, se comprobar que no se pueden meter datos incorrectos, y que no se pueda enviar informacin inconclusa o que no cumpla con los requisitos de funcionalidad del sistema (por ejemplo, en el campo series solo se permiten enteros, mientras que en el campo repeticiones se permiten caracteres). Prueba P1

P2.1 P2.2 P2.3

Se comprobar que el despliegue y ocultacin de las diferentes ventanas se hace de la manera correcta. Ocultando las antiguas siempre que accedamos a una nueva.

58

R3

La carga y actualizacin de las tablas y datos se realiza de manera correcta tanto en la base de datos como en la aplicacin. Mostrando correctamente la nueva entrada en caso de que hayamos introducido los datos correctamente. Se comprobara que el SGBD se actualiza de manera correcta. Gimnasio Ejercicios Pruebas: Para todos y cada uno de los formularios de la seccin, se comprobar que no se pueden meter datos incorrectos, y que no se pueda enviar informacin inconclusa o que no cumpla con los requisitos de funcionalidad del sistema. Se comprobar que el despliegue y ocultacin de las diferentes ventanas se hace de la manera correcta. Ocultando las antiguas siempre que accedamos a una nueva. La carga y actualizacin de las tablas y datos se realiza de manera correcta tanto en la base de datos como en la aplicacin. Mostrando correctamente la nueva entrada en caso de que hayamos introducido los datos correctamente. Se comprobar que el SGBD se actualiza de manera correcta. Gimnasio Trabajo pendiente Pruebas: Para todos y cada uno de los formularios de la seccin, se comprobar que no se pueden meter datos incorrectos, y que no se pueda enviar informacin inconclusa o que no cumpla con los requisitos de funcionalidad del sistema. Se comprobar que el despliegue y ocultacin de las diferentes ventanas se hace de la manera correcta. Ocultando las antiguas siempre que accedamos a una nueva. La carga y actualizacin de las tablas y datos se realiza de manera correcta tanto en la base de datos como en la aplicacin. Mostrando correctamente la nueva entrada en caso de que hayamos introducido los datos correctamente. Se comprobar que el SGBD se actualiza de manera correcta. Gimnasio Historial Pruebas: Se comprobar que el despliegue y ocultacin de las diferentes ventanas se hace de la manera correcta. Ocultando las antiguas siempre que accedamos a una nueva. La carga y actualizacin de las tablas y datos se realiza de manera correcta tanto en la base de datos como en la aplicacin. Mostrando correctamente la nueva entrada en caso de que hayamos introducido los datos correctamente. Se comprobar que el SGBD se actualiza de manera correcta. Gimnasio -- Citas Pruebas:

P3.1 P3.2 P3.3

R4

P4.1 P4.2 P4.3

R5

P5.1 P5.2 P5.3

R6

P6.1 P6.2

59

Para todos y cada uno de los formularios de la seccin, se comprobar que no se pueden meter datos incorrectos, y que no se pueda enviar informacin inconclusa o que no cumpla con los requisitos de funcionalidad del sistema.

P6.3

Se comprobar que el despliegue y ocultacin de las diferentes ventanas se hace de la manera correcta. Ocultando las antiguas siempre que accedamos a una nueva. La carga y actualizacin de las tablas y datos se realiza de manera correcta tanto en la base de datos como en la aplicacin. Mostrando correctamente la nueva entrada en caso de que hayamos introducido los datos correctamente. Se comprobar que el SGBD se actualiza de manera correcta. Configuracin de la aplicacin Pruebas: Se comprobar que la aplicacin carga los datos en funcin de los parmetros de configuracin seleccionados en el apartado settings. Carga inicial de datos Pruebas: La aplicacin carga, muestra y utiliza los ejercicios y rutinas predefinidas de manera correcta y en el lenguaje correspondiente a la aplicacin. Resultados Pruebas: Comprobaremos que se obtiene informacin tanto de xito como de error en las diferentes acciones que actualicen la BBDD (a excepcin de la insercin de lneas). Logs Pruebas: Se comprobar en el archivo log que el modulo ha escrito sus entradas de manera correcta cuando era necesario. Permisos Pruebas: Comprobaremos que no es posible acceder a apartados que nos son restringidos. Intentaremos, logueados como monitor acceder a otros mdulos. Como usuario y de manera externa intentaremos acceder a nuestro modulo. Diseo reutilizable y claridad de cdigo Pruebas: Revisaremos el cdigo comprobando que est debidamente comentado y clarificado. Homogeneidad Pruebas: Comprobaremos que todas y cada una de las interfaces siguen el esquema de estilos desarrollado por Nubapp. Comprobaremos que los elementos y botones comunes a otras partes de la aplicacin siguen las mismas normas de estilo, situacin y accin que los del resto de la aplicacin. Facilidad de uso

R7

P7

R8

P8

R9

P9

R10

P10

R11

P11

R12

P12

R13

P13.1 P13.2

R14

P14

60

R15

R16

Pruebas: Tanto nosotros como alguien ajeno a la empresa comprobaremos el funcionamiento del programa y si el mismo es intuitivo o no por medio de una valoracin personal. Comunicacin usuario monitor Pruebas: Comprobaremos que el envo de los mensajes se realiza de manera correcta. No dejaremos enviar un mensaje sin contenido o sin destinatario. La carga y respuesta a mensajes anteriores se realizar de manera correcta y comprobaremos que se informa al usuario del xito o fracaso de la operacin. Se comprobar que no se puede aadir un usuario que no est registrado. Front-end Pruebas: Para el formulario de contacto con el monitor, se redirigir al usuario a la seccin mensajes. Es por ello que nos remitiremos a las pruebas de la seccin anterior.

P15

P16.1 P16.2 P16.3

Se comprobar que el despliegue y ocultacin de las diferentes ventanas se hace de la manera correcta. Ocultando las antiguas siempre que accedamos a una nueva. La carga y vista de la rutina se efecta de manera correcta. El contenido multimedia no presenta errores si la informacin sobre el mismo se encuentra vaca o incompleta API Pruebas: Se comprobar que el API funciona correctamente ante llamadas al mismo autorizadas y que los datos son devueltos de manera correcta. Aplicacin mvil Pruebas: No se han diseado ni realizado pruebas para este requisito al tratarse de un diseo no implementado todava. Dinamismo Pruebas: Se comprobar que la aplicacin carga toda la informacin relativa a la entidad cliente. Los elementos predefinidos y creados por dicho cliente sern los nicos datos a mostrar. No se podr acceder a la informacin creada por otra entidad cliente. Diccionarios Pruebas: Se comprobar que en funcin del idioma de la aplicacin cargamos un diccionario u otro de manera correcta. Las variables y textos del diccionario se revisarn para que no presenten faltas de ortografa ni de gramtica.

R17

P17

R18

P18

R19

P19

R20

P20

61

5. Conclusiones
Esta ha sido mi primera experiencia laboral dentro del mundo de la informtica. Cuando Sergio Fernndez me propuso realizar el PFC con Nubapp durante el curso acadmico me mostr reticente a compaginar las asignaturas de 5 y el PFC. Al final acept su propuesta y la experiencia ha merecido la pena pues durante todo este ao he aprendido mucho. El desarrollo de esta aplicacin ha sido complejo, pues al tratarse de una aplicacin en la nube que suple la utilizacin de un software local, nuestro sistema deba ser dinmico y no tratarse de una serie de formularios que se van cargando pgina tras pgina. Gracias al uso de Ajax y jQuery, la interaccin usuariosistema es fluida y esttica (siempre nos encontramos en la misma pgina) y la aplicacin carga y enva datos sin que el usuario lo note. El desarrollo de esta aplicacin en la nube ha sido desde luego una experiencia muy enriquecedora que me ha permitido poner en prctica algunos de los conocimientos adquiridos durante estos aos en la universidad y adems hacerlo en el entorno laboral real de la empresa. Como es lgico, durante todo este tiempo y en cuanto a conocimientos tcnicos, he mejorado notablemente el nivel de conocimientos en PHP, AJAX y JavaScript. A la par que he mejorado mis habilidades de comunicacin y he adquirido experiencia en un entorno real de desarrollo joven y con muchas ganas de trabajar. Por otro lado, durante la realizacin del PFC he constatado que para desarrollar un proyecto, la aplicacin de una metodologa no implica la desaparicin de los impedimentos, simplemente permite detectarlos lo antes posible y gestionarlos de la mejor manera. La computacin en la nube uno de los conceptos ms repetidos en el mundo de la informtica de los ltimos tiempos, siendo ya una realidad muy atractiva para las empresas como un mtodo para mejorar su infraestructura por su versatilidad, disponibilidad, facilidad de uso y por la reduccin de costes e inversin. Es por ello en definitiva que considero este proyecto enriquecedor en el plano profesional al haberme permitido adquirir experiencia en un campo en auge que tiende a expandirse.

62

6. Lneas futuras
Durante el desarrollo de la aplicacin han surgido muchos y variados aspectos que no tenan cabida en el desarrollo del PFC, ya sea por prioridades temporales o por cuestin de establecer un lmite de finalizacin del mismo. A continuacin listaremos los ms importantes: Se ha desarrollado un API mvil y se ha ideado y diseado la interfaz correspondiente a la aplicacin mvil de la aplicacin. A fecha de entrega de la documentacin de este proyecto, Nubapp tiene intencin de aadir dicha funcionalidad a su aplicacin mvil a pesar de no haber iniciado su desarrollo todava por motivos de personal y prioridades. La interfaz general desarrollada ha sido testeada por numerosos usuarios de mi entorno y por el personal de Nubapp. Nos parece un interfaz atractivo, funcional y dinmico. No obstante es normal que durante el uso del mismo que hagan los diferentes clientes del servicio Nitro de Nubapp surjan nuevas sugerencias, dudas y cambios. En un futuro y si como parece, sigue teniendo inters comercial, se desea implementar un mdulo para la asignacin de planes dietticos junto con las rutinas. Por ltimo, actualmente estamos trabajando con el API de google para generacin y lectura de cdigos QR con el objetivo de utilizarlos en el gimnasio. De esta manera y gracias a la codificacin QR, el monitor instalara los cdigos en las diferentes maquinas deportivas, brindando a los usuarios la posibilidad de acceder a la informacin de los mismos a travs de su aplicacin mvil.

63

Anexo I: Pginas web dinmicas


Una de las caractersticas ms interesantes de Internet es la facilidad para publicar informacin. Sin embargo, esta facilidad es relativa. En los inicios del www y de las pginas HTML, cada vez que se cambiaba la informacin de una pgina, lo que se haca era editar el fichero HTML, modificando el texto pero procurando no tocar los tags que daban forma a la pgina. Sin embargo, este sistema (que an utilizan muchos webmasters) es engorroso y poco prctico. Adems si el contenido (textos, banners, imgenes) depende del trabajo de varias personas el coste de realizacin y publicacin puede ser muy alto en tiempo, dinero y organizacin. Cuando nos encontramos con una pgina de estas caractersticas decimos que es una pgina esttica, porque el contenido no se actualiza con una cierta frecuencia, sino que pueden pasar meses de una actualizacin a la siguiente. Las pginas estticas suelen tener una utilidad relativa. Una pgina web con la informacin de un Club Deportivo donde se explican cuatro reglas sobre el deporte y una direccin de contacto ser til para algunas personas, pero una vez visiten la pgina no volvern a ella. Sin embargo, si adems de la informacin sobre el deporte se explica cundo sern las prximas competiciones, la clasificacin de la liga, etc. se da un valor aadido a la pgina que facilita que los visitantes vuelvan, y dado el caso a la hora de escoger club escojan aqul que ms conocen. De alguna manera podramos decir que aqu la clave es el servicio que se presta al usuario. Las bases de datos, sin duda, estn entre las herramientas informticas ms usadas hoy en da. En una pgina web dinmica la base de datos proporciona la informacin que se presentar al usuario, con la gran ventaja de que la informacin puede variar segn el usuario, segn la hora del da o segn lo que se desee. La forma de presentar los datos es indiferente, es ms, podemos tener diferentes plantillas que nos permitan presentar los mismos datos, de manera que el usuario pueda ver la pgina como ms le guste sin perder por ello nada de informacin. Hoy en da existen muchas maneras de crear pginas web dinmicas. Como ejemplos podramos decir que Microsoft tiene su plataforma .NET, que soporta diferentes lenguajes con la tecnologa ASP, Macromedia tiene su servidor ColdFusion que permite trabajar con aplicaciones ASP, PHP y JSP, y de software libre tenemos Apache con PHP o Apache con Java y JSP son slo ejemplos incompletos. Tecnologas y posibilidades hay muchas, slo hay que escoger la que ms nos guste o nos interese.

64

Pero para crear una pgina web dinmica no nos podemos quedar slo con la tecnologa del servidor de Internet. Existe una segunda parte muy importante que es el gestor de bases de datos. De nuevo tenemos numerosas opciones a escoger dependiendo de nuestros intereses. Podemos hablar de Oracle, PostgreSQL, Microsoft SQL Server o MySQL, por hablar de los ms conocidos. Todos ellos pueden usarse para pginas webs dinmicas o aplicaciones en Internet, aunque dependiendo de la plataforma y del lenguaje utilizado se usa ms una u otra. As, en los servidores Windows se acostumbra a usar Microsoft SQL Server, aunque tambin se usa MySQL como alternativa de bajo coste. En entornos Apache con programacin en PHP la base de datos ms utilizada, sin duda, es MySQL. De hecho se habla de la tecnologa LAMP (Linux Apache MySQL PHP) como una de las tecnologas con ms futuro en la Red. En entornos de programacin JSP (generalmente sobre Apache y Tomcat), se suele utilizar PostgreSQL o MySQL. Finalmente, una combinacin clsica es la de Sun Solaris con iPlanet y Oracle, usando OC4J (Oracle Containerfor Java) como servidor de aplicaciones Java. La creacin de pginas web con contenido dinmico exige la utilizacin de bases de datos (que sern las encargadas de almacenar la informacin) y programacin. Por tanto, a la hora de realizar un sitio es necesario tener claro qu queremos hacer con l para poder decidir si ser dinmico o esttico. Una vez tengamos claro que nos interesa un sitio dinmico (y acostumbra a ser lo ms conveniente), deberemos definir qu tecnologa usar y qu base de datos. En general la tecnologa Microsoft es suficientemente fiable, la programacin en ASP tiene la gran ventaja de permitir la utilizacin de muchos lenguajes diferentes (C, Visual BASIC, Pascal, Cobol,), y SQL Server es un gestor de bases de datos potente, flexible y fiable. En cambio, es una tecnologa cara. Por otro lado, la tecnologa LAMP es gratuita y Linux y Apache son posiblemente de lo mejor en sus correspondientes mbitos. Sin embargo, MySQL tiene algunas limitaciones (no tiene algunas funcionalidades que s tienen SQL Server o PostgreSQL), aunque resulta muy potente y til para prcticamente cualquier tipo de aplicacin. Y en cuanto a PHP, como lenguaje de programacin es un lenguaje especfico para Internet (a diferencia de los lenguajes que comentaba de ASP.NET) que cada vez est teniendo ms aceptacin, y del que podemos encontrar numerosas aplicaciones gratuitas fcilmente adaptables a nuestras necesidades. Finalmente, la arquitectura Java (que incluye JSP, servlets, aplicaciones Java y J2EE) con la combinacin de Linux, Apache, Tomcat o Jboss (para J2EE) y PostgreSQL es potente y robusta, al mismo precio que LAMP, y se usa mucho en desarrollos profesionales. Tal vez la dificultad en este caso sea que Java es un lenguaje 65

menos conocido y algo ms complejo que los usados por los otros dos grandes sistemas. W3C El Consorcio World Wide Web (W3C) es una comunidad internacional donde las organizaciones miembro, personal a tiempo completo y el pblico en general trabajan conjuntamente para desarrollar estndares Web. Liderado por el inventor de la Web Tim Berners-Lee y el Director Ejecutivo (CEO) Jeffrey Jaffe, la misin del W3C es guiar la Web hacia su mximo potencial. La principal actividad del W3C es desarrollar protocolos y directrices que aseguren el crecimiento de la Web a largo plazo. Los estndares del W3C definen las partes claves que hacen que la World Wide Web funcione. El equipo del W3C est distribuido por todo el mundo, pero muchas de estas personas se concentran en Cambridge, Massachusetts, Sophia-Antipolis y Tokio. El W3C desarrolla especificaciones tcnicas y directrices a travs de un proceso que ha sido diseado para maximizar el consenso sobre el contenido de un informe tcnico, de forma que se pueda asegurar la alta calidad tcnica y editorial, as como obtener un mayor apoyo desde el W3C y desde la comunidad en general. Diseo y Aplicaciones Web Incluye a los estndares para la construccin y representacin de las pginas Web, incluyendo HTML5, CSS, SVG, Ajax y otras tecnologas para las Aplicaciones Web (WebApps). Esta seccin tambin incluye informacin sobre cmo hacer pginas accesibles para personas con discapacidades (WCAG), aplicar internacionalizacin y trabajar sobre dispositivos mviles. Arquitectura Web Se centra en las tecnologas y principios fundamentales sobre los que se sostiene la Web, incluyendo URIs y HTTP. Los siguientes principios guan el trabajo del W3C: Web para todo el mundo: El valor social que aporta la Web, es que sta hace posible la comunicacin humana, el comercio y las oportunidades para compartir conocimiento. Uno de los objetivos principales del W3C es hacer que estos beneficios estn disponibles para todo el mundo, independientemente del hardware, software, infraestructura de red, idioma, cultura, localizacin geogrfica, o habilidad fsica o mental.

66

Web desde cualquier dispositivo: La cantidad de dispositivos diferentes para acceder a la Web ha crecido exponencialmente. Actualmente, los telfonos mviles, telfonos inteligentes, PDAs, sistemas de televisin interactiva, sistemas de respuesta de voz, puntos de informacin e incluso algunos pequeos electrodomsticos pueden acceder a la Web. Visin: La visin del W3C para la Web incluye la participacin, compartir conocimiento y, de esta forma, construir confianza a gran escala. Web de los Autores y Consumidores: La Web fue creada como una herramienta de comunicacin para permitir el intercambio de informacin entre todo el mundo y desde cualquier lugar. Durante muchos aos, para muchas personas la Web fue una herramienta de "solo lectura". Los blogs y wikis trajeron ms autores a la Web y las redes sociales emergieron del prspero mercado para crear contenido y personalizar las experiencias en la Web. Los estndares del W3C han apoyado esta evolucin gracias a la robusta arquitectura y a los principios de diseo. Web de los Datos y Servicios: Algunas personas ven la Web como un repositorio gigante de datos enlazados mientras otros como un conjunto enorme de servicios que intercambian mensajes. Ambas vistas son complementarias y los requisitos de cada aplicacin pueden ser los mejores determinantes para decidir que aproximacin elegir para solucionar progresivamente los problemas complejos mediante tecnologa Web. Web de Confianza: La Web ha cambiado la forma en la que nos comunicamos. Al ocurrir esto, la naturaleza de nuestras relaciones sociales ha cambiado tambin. En la actualidad, las personas se "conocen en Internet", y llevan a cabo relaciones personales y comerciales sin haberse visto en persona anteriormente. El W3C reconoce que la confianza es un fenmeno social, pero el diseo de las tecnologas puede fomentar la confianza y la responsabilidad. A medida que cualquier actividad se hace a travs de la Web, cada vez es ms importante apoyar las interacciones complejas entre distintas partes alrededor del mundo.

67

Anexo II: JQuery y Ajax


jQuery es una biblioteca de JavaScript, creada inicialmente por John Resig, que permite simplificar la manera de interactuar con los documentos HTML, manipular el rbol DOM, manejar eventos, desarrollar animaciones y agregar interaccin con la tcnica AJAX a pginas web. Fue presentada el 14 de enero de 2006 en el BarCamp NYC. jQuery es software libre y de cdigo abierto, posee un doble licenciamiento bajo la Licencia MIT y la Licencia Pblica General de GNU v2, permitiendo su uso en proyectos libres y privativos. jQuery, al igual que otras bibliotecas, ofrece una serie de funcionalidades basadas en JavaScript que de otra manera requeriran de mucho ms cdigo, es decir, con las funciones propias de esta biblioteca se logran grandes resultados en menos tiempo y espacio. Caractersticas Seleccin de elementos DOM. Interactividad y modificaciones del rbol DOM, incluyendo soporte para CSS 1-3 y un plugin bsico de XPath. Eventos. Manipulacin de la hoja de estilos CSS. Efectos y animaciones. Animaciones personalizadas. AJAX. Soporta extensiones. Utilidades varias como obtener informacin del navegador, operar con objetos y vectores, funciones para rutinas comunes, etc. Compatible con los navegadores Mozilla Firefox 2.0+, Internet Explorer 6+, Safari 3+, Opera 10.6+ y Google Chrome 8+. La caracterstica principal de la biblioteca es que permite cambiar el contenido de una pgina web sin necesidad de recargarla, mediante la manipulacin del rbol DOM y peticiones AJAX. Para ello utiliza las funciones $() o jQuery(). Ajax AJAX, acrnimo de Asynchronous Java Script And XML (JavaScript asncrono y XML), es una tcnica de desarrollo web para crear aplicaciones interactivas o RIA (Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente, es decir, en el navegador de los usuarios mientras se mantiene la comunicacin asncrona con el servidor en segundo plano. De esta forma es posible realizar cambios sobre las pginas sin necesidad de recargarlas, lo que significa aumentar la interactividad, velocidad y usabilidad en las aplicaciones. 68

Ajax es una tecnologa asncrona, en el sentido de que los datos adicionales se solicitan al servidor y se cargan en segundo plano sin interferir con la visualizacin ni el comportamiento de la pgina. JavaScript es el lenguaje interpretado (scripting language) en el que normalmente se efectan 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 asncrono est formateado en XML. Ajax es una tcnica vlida para mltiples plataformas y utilizable en muchos sistemas operativos y navegadores dado que est basado en estndares abiertos como JavaScript y DocumentObjectModel (DOM).

Tecnologas incluidas en Ajax Ajax es una combinacin de cuatro tecnologas ya existentes: XHTML (o HTML) y hojas de estilos en cascada (CSS) para el diseo que acompaa a la informacin. DocumentObjectModel (DOM) accedido con un lenguaje de scripting por parte del usuario, especialmente implementaciones ECMAScript como JavaScript y JScript, para mostrar e interactuar dinmicamente con la informacin presentada. El objeto XMLHttpRequest para intercambiar datos de forma asncrona con el servidor web. En algunos frameworks y en algunas situaciones concretas, se usa un objeto iframe en lugar del XMLHttpRequest para realizar dichos intercambios. XML es el formato usado generalmente para la transferencia de datos solicitados al servidor, aunque cualquier formato puede funcionar, incluyendo HTML preformateado, texto plano, JSON y hasta EBML. Como el DHTML, LAMP o SPA, Ajax no constituye una tecnologa en s, sino que es un trmino que engloba a un grupo de stas que trabajan conjuntamente.

69

Bibliografa
[1] Documentacin relativa a XAMPP: http://www.apachefriends.org/es/faq-xampp.html [2] Manuales PHP: http://php.net/manual/es/index.php y http://www.php.net/ [3] jQuery TOOLS: http://jquerytools.org/documentation/ [4] jQuery: http://docs.jquery.com/Main_Page [5] W3C: http://www.w3c.es/Divulgacion/ [6] MySQL: http://dev.mysql.com/doc/refman/5.0/es/index.html [7] Pginas web dinmicas: http://www.desarrolloweb.com/manuales/7/ [8] Mtrica v3: http://administracionelectronica.gob.es/?_nfpb=true&_pageLabel=P6008590127420158 0632&langPae=es [9] Configuracin de subdominios y workspace: http://www.tildemark.com/setting-upvirtual-hosts-with-xampp-running-on-windows-xp/ [10] Git para Windows: http://msysgit.github.com/ [11] Repositorio online Github: https://help.github.com/

70

Javier Luquin Jess Villadangos

Introduccin
Empresa: Nubapp
Centrada en el desarrollo de aplicaciones en la nube.

Aplicacin: Nitro
Gestin de complejos polideportivos. Reservas, usuarios, acceso, instalaciones, actividades, gimnasio, torneos, etc. Tres interfaces: aplicacin, pgina web, app mvil.

Introduccin
Mdulo gimnasio
Aplicacin:
Creacin y edicin de rutinas y ejercicios. Gestin de usuarios del modulo. Control del trabajo pendiente y rutinas por hacer. Citas con los usuarios. Comunicacin con los usuarios.

Pgina web:
Consulta del entrenamiento por los usuarios. Contacto con el monitor.

App mvil:
Desarrollo de la API del mdulo

Herramientas utilizadas para el desarrollo de la aplicacin.


PHP, HTML, CSS y JQUERY MySQL GIT

Metodologa utilizada
Mtrica v3 Estudio, anlisis y diseo del sistema de informacin. Planificacin, establecimiento inicial de requisitos, casos de uso, diagramas de clases, modelo fsico de datos

Aplicacin
Video presentacin de la aplicacin realizada Settings Ejercicios Crear una rutina Asignar una rutina Aadir trabajo pendiente Historial Front end y comunicacin usuario monitor.

Lneas futuras
Desarrollo de la aplicacin mvil.
Nuevas sugerencias, dudas y cambios provenientes del uso comercial de la aplicacin.

Planes dietticos. Generacin de cdigos QR con informacin sobre los ejercicios.

Conclusiones
Primera experiencia laboral dentro del mundo de la informtica.
Puesta en prctica de algunos de los conocimientos adquiridos en la carrera. Adquisicin de conocimientos tcnicos en lenguajes web.

Adquisicin de experiencia en un campo (aplicaciones en la nube) en auge que tiende a expandirse.

Muchas gracias

S-ar putea să vă placă și