1. David Abril Pérez
Jéssica Caraballo Silgado
CPIFP Bajo Aragón
19/12/2018
Aplicación de Taekwondo
Proyecto Fin de Ciclo DAM
Desarrollo de Aplicaciones Multiplataforma
CPIFP BAJO ARAGÓN de Alcañiz
2. 1
Índice
1. Justificación..................................................................................................... 2
2. Objetivos ......................................................................................................... 3
3. Metodología Desarrollo ................................................................................... 4
1. Análisis de Requisitos.................................................................................. 4
2. Diseño del Sistema...................................................................................... 4
3. Diseño del Programa. .................................................................................. 4
4. Codificación................................................................................................. 4
5. Ejecución de Pruebas.................................................................................. 8
6. Verificación.................................................................................................. 8
7. Mantenimiento. ............................................................................................ 9
4. Tecnologías................................................................................................... 10
5. Planificación del proyecto.............................................................................. 11
6. Desarrollo y ejecución del proyecto............................................................... 13
7. Conclusiones................................................................................................. 14
8. Líneas de investigación y desarrollo futuras.................................................. 15
9. Bibliografía. ................................................................................................... 16
ANEXO - Documentación del API Rest ............................................................ 17
Recuperar todos los usuarios ........................................................................ 17
Recupera usuario por Id ................................................................................ 17
Recuperar todas las fotografías..................................................................... 17
Recuperar todas las técnicas......................................................................... 17
Recuperar técnica por id................................................................................ 18
Recuperar login usuario................................................................................. 18
Registrar usuario ........................................................................................... 18
Modificar usuario ........................................................................................... 19
Recuperar email ............................................................................................ 19
3. 2
1. Justificación
Somos David Abril y Jéssica Caraballo, estudiantes de segundo de grado
superior, Desarrollo de Aplicaciones Multiplataforma, también conocido como
DAM. Dicho grado se estudia a distancia en CPIFP Bajo Aragón, situado en
Alcañiz.
Durante el transcurso del ciclo, nos hemos lanzado a desarrollar, con los
conocimientos adquiridos, una aplicación de Taekwondo. Ambos somos
conocedores de dicho arte marcial, ya sea como practicante o de dicho entorno,
y nos habíamos dado cuenta del vacío de mercado existente para los
practicantes de dicho arte marcial.
Ante dicha situación, comenzamos el desarrollo de la aplicación, basándonos
en la entrega de una aplicación de Android Studio para una asignatura del ciclo,
impartida por Ángel Lacueva. Esta aplicación ha sido ampliada y mejorada
desde entonces, con el objetivo de fomentar la interacción en la comunidad
dentro del Taekwondo.
4. 3
2. Objetivos
Nuestra aplicación de Taekwondo es una aplicación de Android, que pretende
llegar a todos los usuarios practicantes del Taekwondo.
Esta aplicación fomenta el intercambio de información actualizada y utilizada
por distintos gimnasios localizados en Zaragoza, permitiendo el aprendizaje de
algo tan complejo como una técnica (las cuales, a fecha de hoy, comienzan a
estandarizarse por ser un deporte olímpico, razón por la que sufren continuos
pequeños cambios).
De este modo, los practicantes de dicho arte marcial, solo necesitarán tener la
APP instalada en su móvil para poder acceder a dicha información, cosa que
hasta ahora se ha realizado vía libros y grupos Wassap.
5. 4
3. Metodología Desarrollo
1. Análisis de Requisitos.
Aplicación de Taekwondo que permitirá al usuario informarse y aprender las
diferentes técnicas existentes en dicho arte marcial a través tanto de detallados
textos, ilustraciones e vídeos.
En resumen, el software permite la interactividad entre los diferentes
practicantes de Taekwondo, de diferentes gimnasios y localidades, sin
necesidad de que éstos se conozcan entre ellos.
2. Diseño del Sistema.
Se ha procedido a realizar una aplicación de Android, la cual recibirá los datos
a través de diferentes peticiones a una API Rest.
Todos los datos son mantenidos a través de un mantenimiento web
personalizado el cual permite la gestión de diferentes datos, mediante un login
de administradores.
3. Diseño del Programa.
4. Codificación.
El código perteneciente a todo el desarrollo de la aplicación de Taekwondo,
su API Rest, así como su mantenimeinto persoanlizado, se encuentra en los
enlaces que se comentan a continuación:
o Aplicación de Android:
- https://github.com/JessicaCaraballo/TAE_
6. 5
o API Rest:
- https://github.com/davidabrilperez/TAE_API_Rest
o Mantenimiento web: es un módulo dentro del API Rest
Para sincronizar la API Rest con el software de Android se ha utilizado
Ksoap2, componente que permite mapear las peticiones Json a objetos de
Android.
Para almacenar el manteniendo y el API Rest se ha utilizado un hosting, por
ahora gratuito, que permite alojar NetCore 2.2.0.
7. 6
El diseño del mantenimiento web, así como la página principal, ha sido
realizado con Bootstrap para que éstas sean responsivas.
A continuación se la página de Login:
Una vez logeado el administrador, accede a la página principal:
Dicha página principal permite al administrador gestionar los diferentes datos,
como por ejemplo los usuarios:
8. 7
Crear nuevos usuarios, editarlos y borrarlos:
La página principal anteriormente comentada, posee dos códigos QR, uno
que permite el envío de email a los desarrolladores y otro la descarga de la APP
(la cual todavía no está disponible en Google Play).
9. 8
5. Ejecución de Pruebas.
o Revisión cada una de las Activities de la aplicación a través de sus
enlaces, en busca de posibles fallos.
o Debuger de la aplicación utilizando un emulador de PC, revisando
el log del mismo, para evitar hilos de la aplicación perdidos.
o Prueba de la aplicación en otros dispositivos, como varias tablets,
y diferentes teléfonos móviles, comprobando que los cambios de
responsividad realizados surtían efecto.
o Emulación de un sistema de peticiones para realizar 60 llamadas
por minuto a la API Rest y comprobar su respuesta ante un posible
desbordamiento.
o Creación, edición y borrado de usuarios en el mantenimiento para
comprobar su correcta funcionalidad.
o Estresamiento del login del mantenimiento para evitar que se
logee personal no autorizado.
o Los datos que recibe el usuario para acceder a la API Rest, a
través su email cuando se da de alta, van encriptados, y se ha intentado
falsificar dicha dirección url sin éxito.
6. Verificación.
Se ha realizado una batería de pruebas, así como una verificación del
contenido de la aplicación, a través de diferentes practicantes de Taekwondo.
Dichas pruebas han sido realizadas instalando personalmente la apk en modo
debug en los diferentes dispositivos de los siguientes usuarios:
o Maestro del gimnasio Kumgan, en Zaragoza.
o Cinturones negros, los cuales imparten clases en diferentes
lugares de Zaragoza
o Cinturones de color, los cuales han probado y aprobado las
técnicas relatadas en la aplicación
o Practicante del taekwondo, personal cualificado de Holanda, que
trabaja como traductor en España
o Cinturones blancos, sin conocimiento del taekwondo, pero
estudiantes un, universitarios
Una vez superadas estás pruebas, se ha procedido a probar los requisitos
técnicos de la aplicación en un entorno externo al equipo de desarrollo, entre los
cuales se pueden destacar varios usuarios:
10. 9
o Profesor de FP y estudiante de Desarrollo de Aplicaciones Web,
en CPIFP Los Enlaces.
o Estudiante de ingeniería informática en Zaragoza, practicante del
Taekwondo.
o Desarrollador junior, que trabaja en Everis.
o Desarrollador Senior, que trabaja en Zimaltec.
o Desarrollador Senior, tutor de las prácticas de Jéssica, que trabaja
en K-Tuin.
7. Mantenimiento.
Nuestra aplicación de taekwondo está orientada a los usuarios y por este
motivo queremos recibir y utilizar el 100% del feedback.
Bajo petición de los usuarios, se ha mejorado tanto el menú como diferentes
botones de cada cinturón, de modo que sea más intuitivo. A su vez, se ha
aceptado, generar una comunidad, para que los usuarios con más
conocimientos, puedan completas el contenido de cinturón negro (a falta de
conocimientos propios por parte del equipo desarrollador).
Se han rechazado varias peticiones respecto a la aplicación, por no
considerarlas acorde con ésta, como por ejemplo la vinculación de los usuarios a
sus cuentas de redes sociales, y la creación de una red social taekwondista
(punto de encuentro donde los practicantes del Taekwondo puede quedar
personalmente con otros) ya que dichas peticiones, violaban la privacidad del
usuario (los cuales, si así lo desean, pueden proceder a ponerse en contacto vía
email).
Tanto la aplicación como su mantenimiento permiten a un administrador
realizar los ajustes necesarios, bien sea a través de la configuración del sitio que
controla el API Rest o a través del mantenimiento, donde podemos editar los
datos que se reflejan en la aplicación.
11. 10
4. Tecnologías
o Para nuestra aplicación de Android hemos utilizado Android Studio.
Android Studio nos permite actualizar sin dificultad alguna nuestra
aplicación al mantenerse continuamente actualizada.
o Para nuestra API Rest hemos utilizado NET CORE 2.2, la cual realiza la
conectividad con Android a través de la librería KSOAP2. NET CORE 2.2
es la última versión de NET CORE y nos permite realizar escalabilidad,
para poder hacer crecer nuestra aplicación en modulos que realicen
futuras tareas como tienda web, nuevos servicios de actualización de
datos, etc..
Vease anexo 1 documentacion del API Rest.
o Para el mantenimiento web hemos utilizado NET CORE 2.2
o La base de datos utilizada es MySQL, dadas su facilidad para poder
alojar dicha base de datos en cualquier otro hosting (gratuito o de pago)
12. 11
5. Planificación del proyecto.
El proyecto fue planificado para permitir su desarrollo en el tiempo del que
disponíamos, teniendo en cuenta que ambos miembros del equipo poseen un
horario laboral y Jéssica Caraballo unas prácticas que realizar, situaciones que
dificultan la disponibilidad de tiempo.
Fecha de inicio Duración Fecha final
Desarrollo 24/12/2018 12 25/12/2018
Mapa programación 29/12/2018 4 30/12/2018
Mapa diseño 29/12/2018 4 30/12/2018
Idiomas 01/12/2018 20 07/12/2018
Galería Programación 01/12/2018 20 04/12/2018
Galería diseño 08/12/2018 20 10/12/2018
API Rest 05/12/2018 40 12/12/2018
Mantenimiento 13/12/2018 20 16/12/2018
Responsividad 11/12/2018 16 13/12/2018
Imágenes 14/12/2018 10 14/12/2018
Estilos App 15/12/2018 8 15/12/2018
Maquetación web 16/12/2018 4 16/12/2018
Revisión App 16/12/2018 2 16/12/2018
Revisión API Rest 16/12/2018 2 16/12/2018
Revisión MTO 16/12/2018 2 16/12/2018
Documentación 17/12/2018 10 17/12/2018
A continuación se pasa a explicar gráficamente la planificación comentada a
través de varios Diagrama de Gantt:
o Diagrama de Gantt de Jéssica Caraballo Silgado
6-11 16-11 26-11 6-12 16-12 26-12 5-1 15-1
Desarrollo
Mapa programación
Mapa diseño
Idiomas
Galeria programacion
Galeria diseño
API Rest
Mantenimiento
Responsividad
Imágenes
Estilos app
Fecha de inicio
Duracion
13. 12
o Diagrama de Gantt de David Abril Pérez
Recalcar que la aplicación ha requerido de una gran cantidad de horas en
concepto de desarrollo, para poder planificar los requerimientos del sistema por
parte del equipo. Tener en cuenta que la base de ésta ya estaba realizada y no
se comenzaba desde cero, provocando no poder realizar cambios estructurales.
Adicionalmente se han llevado a cabo pruebas y reuniones varias con
practicantes de dicha arte marcial, así como de pruebas realizadas por personal
con conocimientos técnico, y reuniones con personal fotográfico.
6-11 16-11 26-11 6-12 16-12 26-12 5-1 15-1 25-1
Desarrollo
Mapa programación
Mapa diseño
Idiomas
Galeria programacion
Galeria diseño
API Rest
Fecha de inicio
Duracion
14. 13
6. Desarrollo y ejecución del proyecto.
El desarrollo del
proyecto se ha llevado a
cabo en un lugar
seleccionado por el
equipo, en el cual se
disponían de los recursos
necesarios, como silencio,
ordenadores e internet, en
el que poder desarrollar,
comunicarnos y mantener
la concentración.
El feedback entre los miembros del equipo ha sido continuo y de gran
eficiencia, al estar ambos miembros juntos en todo momento, evitando
estancamientos innecesarios y facilitando la interacción.
15. 14
7. Conclusiones.
Principalmente ha sido un privilegio poder desarrollar una aplicación para
Android de un tema tan importante como el taekwondo, el cual es un deporte
olímpico y en crecimiento.
Hemos tenido la inestimable ayuda de amigos y familiares para guiarnos y
aconsejarnos en cuanto a lo que se refiere al contenido, ya que aunque parezca
contenido sencillo, es un algo muy objetivo.
El contenido (salvo los videos por falta de personal) todo el contenido
multimedia es propio, agradecerlo a la fotógrafa, así como a todos los
desarrolladores que han intervenido en la batería de pruebas de la aplicación.
Agradecemos también la oportunidad a Ángel Lacueva por darnos la
oportunidad de realizar el trabajo en equipo, para poder presentar una aplicación
que haga frente a una necesidad existente en el mercado.
16. 15
8. Líneas de investigación y desarrollo
futuras.
Tanto la aplicación de taekwondo, como su API Rest y su mantenimiento,
seguirán creciendo dado el increíble feedback que hemos recibido de la
comunidad de dicho arte marcial.
Tenemos pendientes de implementar los siguientes cambios:
o Respecto al contenido de la app (el material utilizado):
- Creación de vídeos propios para cada pumse
o Respecto a los usuarios:
- Desde la opción de ajustes, podrán cambiar sus datos personales
e imagen de perfil.
- Desde la galería de cada técnica, podrán subir imágenes a la
galería de dicha técnica.
- Con dichas imágenes, se crearán muros de cada galería por
técnicas y usuarios.
o Respecto a los gimnasios:
- Dar de alta gimnasios
o Respecto a la funcionalidad de la aplicación:
- Calendario de eventos relacionados con Taekwondo
- Nuevos puntos de menú para ejercicios relacionados con fuerza,
resistencia y velocidad, centrados en el arte marcial.
o Respecto al mantenimiento web:
- Funcionalidad de administradores
- Funcionalidad de cinturones
- Funcionalidad de técnicas
- Funcionalidad de tipo de técnicas
Una vez desarrollado y cumplimentado todo el proceso en Android, se tratará
de desarrollar la misma aplicación para dispositivos IOS.
17. 16
9. Bibliografía.
Libro de Taekwondo - Título: Fundamentos, básica y pumse
Autor: Lee Kyu Hong
Editorial: 2ª edición, 1997- NovoPrint, SA
Páginas: 243 paginas
18. 17
ANEXO - Documentación del API Rest
Todas las llamadas que no se indique explícitamente son del tipo GET.
Todas las respuestas tienen:
- Código devuelvo de la petición (numérico)
- Mensaje (texto) descripción
- Función (texto) función que se ha llamado
- Fecha (fecha) Timestamp
- Información Varia tipo según petición
Recuperar todos los usuarios
http://taekwondo-001-site1.dtempurl.com/api/usuariosrecuperar
Devuelve un JSON de datos incluyendo un array de usuarios.
Recupera usuario por Id
PRE: Requiere un id de usuario numérico.
http://taekwondo-001-site1.dtempurl.com/api/usuariorecuperar/1
Devuelve un JSON de datos incluyendo el usuario si existe o un usuario vacio si
no existe.
Recuperar todas las fotografías
http://taekwondo-001-site1.dtempurl.com/api/fotografiasrecuperar
Devuelve un JSON de datos incluyendo todas las fotografías.
Recuperar todas las técnicas
http://taekwondo-001-site1.dtempurl.com/api/tecnicasrecuperar
Devuelve un JSON de datos incluyendo todas las técnicas con el idcinturon,
nombre del cinturón, idtipo técnica, nombre del tipo de técnica, id de la técnica y
nombre de la técnica.
19. 18
Nota: No todos los cinturones tienen todos los tipos de técnicas y por
consiguiente tampoco tienen técnicas.
Recuperar técnica por id
PRE: Requiere un id de técnica numérico.
http://taekwondo-001-site1.dtempurl.com/api/tecnicarecuperar/1
Devuelve un JSON de datos incluyendo las técnica perteneciente con sus
correspondientes datos (idcinturon, nombre del cinturón, idtipo técnica, nombre
del tipo de técnica, id de la técnica y nombre de la técnica).
Recuperar login usuario
METODO POST
PRE: Requiere un email tipo cadena y un password tipo cadena encriptado con
SHA1.
http://taekwondo-001-
site1.dtempurl.com/api/usuariorecuperarlogin/1@1.com/356a192b7913b04c54574d18c2
8d46e6395428ab
Recibe el email y su password encriptado con SHA1
Devuelve un JSON de datos incluyendo los datos del usuario solicitado si existe
o un usuario vacío.
Registrar usuario
METODO POST
PRE: Requiere un email tipo cadena, un password tipo cadena encriptado con
SHA1, un idioma tipo numérico y una foto tipo cadena.
http://taekwondo-001-
site1.dtempurl.com/api/usuarioregistrar/alumnodam1davidabril@gmail.com/356a192b791
3b04c54574d18c28d46e6395428ab/1/1.jpg
Devuelve un JSON con los datos del usuario insertado y procede al envío de un
email al correo de dicho usuario si existe.
20. 19
Modificar usuario
METODO POST
PRE: Requiere un id tipo numérico, un email tipo cadena, un password tipo
cadena encriptado con SHA1, un activo tipo boolean (1 ó 0), un idioma tipo
numérico y una foto tipo cadena.
http://taekwondo-001-
site1.dtempurl.com/api/usuariomodificar/1/alumnodam1davidabril@gmail.com/356a192b
7913b04c54574d18c28d46e6395428ab/1/1/1.jpg
Devuelve un JSON con los datos del usuario actualizado.
Recuperar email
METODO POST
PRE: Requiere un email tipo cadena.
http://taekwondo-001-
site1.dtempurl.com/api/usuariorecuperarEmail/alumnodam1davidabril@gmail.com
Devuelve un JSON con los datos del usuario y procede al envío de un email al
correo de dicho usuario si existe.