Sie sind auf Seite 1von 72

2/5/2018 Aplicación móvil

para la búsqueda y
contacto de
personal de
enfermería basado
en
georreferenciación

Juan Camilo Camacho Ferreira


UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS

0
APLICACIÓN MÓVIL PARA LA BÚSQUEDA Y CONTACTO DE PERSONAL DE
ENFERMERÍA BASADO EN GEOLOCALIZACIÓN

JUAN CAMILO CAMACHO FERREIRA

UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS

FACULTAD TECNOLOGICA

TECNOLOGIA EN SISTEMATIZACION DE DATOS

BOGOTA D.C. 2018

1
APLICACIÓN MÓVIL PARA LA BÚSQUEDA Y CONTACTO DE PERSONAL DE
ENFERMERÍA BASADO EN GEOLOCALIZACIÓN

JUAN CAMILO CAMACHO FERREIRA

TRABAJO DE MONOGRAFIA PARA OPTAR POR EL TÍTULO DE TECNÓLOGOS


EN SISTEMATIZACIÓN DE DATOS

TUTOR

ING. SONIA ALEXANDRA PINZON NUÑEZ

UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS

FACULTAD TECNOLOGICA

TECNOLOGIA EN SISTEMATIZACION DE DATOS

BOGOTA D.C. 2018

2
Tabla de contenidos
1. RESUMEN...................................................................................................................... 5
2. INTRODUCCION ............................................................................................................ 6
3. ABSTRACT .................................................................................................................... 7
4. PLANTEAMIENTO ......................................................................................................... 1
4.1. Titulo .......................................................................................................................... 1
4.2. Tema .......................................................................................................................... 1
4.3. Planteamiento del problema..................................................................................... 1
4.4. Objetivos.................................................................................................................... 2
4.4.1. General ................................................................................................................... 2
4.4.2. Objetivos Específicos ........................................................................................... 2
4.5. Justificación .............................................................................................................. 2
4.6. Alcances y Limitaciones ........................................................................................... 2
4.6.1. Alcances ................................................................................................................. 2
4.6.2. Limitaciones........................................................................................................... 3
4.7. Descripción de los módulos ..................................................................................... 3
4.8. Antecedentes............................................................................................................. 4
4.9. MARCO TEORICO ..................................................................................................... 6
4.9.1. GEOREFERENCIACION......................................................................................... 6
4.9.2. APLICACIONES MOVILES ..................................................................................... 8
4.9.3. APLICACIÓN WEB ................................................................................................. 9
4.9.4. FRAMEWORKS .................................................................................................... 12
4.9.5. Metodología para el desarrollo de software. ..................................................... 15
5. FASE PLANEACIÓN.................................................................................................... 18
5.1. REQUISITOS ............................................................................................................ 18
5.2. REQUISITOS INFORMALES .................................................................................... 18
5.3. Descripciones de las funcionalidades:.................................................................. 18
5.4. Definición de actores .............................................................................................. 19
5.5. HISTORIAS DE USUARIO ....................................................................................... 20
5.6. SPRINT PLANNING ................................................................................................. 22
5.7. DESARROLLO ......................................................................................................... 23
5.8. Sprint 1..................................................................................................................... 23
5.8.1. Objetivos del SPRINT .......................................................................................... 24
5.8.2. Funcionamiento ................................................................................................... 24

3
5.8.3. Implementación ................................................................................................... 25
5.9. Sprint 2..................................................................................................................... 28
5.9.1. Objetivos .............................................................................................................. 29
5.9.2. Diagrama contexto .............................................................................................. 29
5.9.3. Implementación ................................................................................................... 30
5.10. Sprint 3 ................................................................................................................. 31
5.10.1. Objetivos........................................................................................................... 32
5.10.2. Diagrama contexto ........................................................................................... 32
5.10.3. Implementación ................................................................................................ 34
5.11. Sprint 4 ................................................................................................................. 36
5.11.1. Objetivos........................................................................................................... 37
5.11.2. DIAGRAMA ....................................................................................................... 37
5.11.3. Implementación ................................................................................................ 38
5.12. Sprint .................................................................................................................... 41
5.12.1. Objetivos........................................................................................................... 42
5.12.2. Diagrama y descripción ................................................................................... 42
5.12.3. Implementación ................................................................................................ 43
5.13. IMPLEMENTACIÓN HERRAMIENTAS DE DESARROLLO ................................. 44
5.13.1. Plataforma web................................................................................................. 44
6. PRUEBAS UNITARIAS Y DE INTEGRACIÓN. ............................................................ 53
7. Conclusiones .............................................................................................................. 62
8. Recomendaciones ...................................................................................................... 63

Tabla Figuras

4
1. RESUMEN
NurceApp es una aplicación móvil que permite realizar la búsqueda de profesionales
en salud, que pueden prestar servicios básicos tales como inyectologia cuidados
paliativos o acompañamiento y al mismo tiempo facilita el registro de profesionales
que quieren ofrecer sus servicios. Lo anterior se realiza a través de tecnologías de
geolocalización permitiendo ubicar los profesionales que se encuentras en la misma
zona o cerca a la persona que hace la solicitud.

El sistema integra diferentes herramientas de desarrollo web que incluyen HTML5,


CSS3 y el lenguaje de programación Php, además de los frameworks que pudieran
ayudar a que se garantice un mayor rendimiento de este, como el framework de
desarrollo llamado Laravel en su versión 5.5, además se usó el entorno nativo de
Android y todas las funcionalidades propias de los dispositivos móviles. Finalmente,
para el manejo de las notificaciones se utilizó Firebase una herramienta de google que
facilita la comunicación entre dispositivos.

El sistema permite generar notificaciones push con el objeto de informar al usuario


eventos tales como la solicitud de información, el inicio de un servicio, un mensaje
nuevo, entre otros.

También se facilita calificar el servicio de los profesionales generando un ranking que


puede ser consultado por los usuarios para tener referencias de los servicios.

5
2. INTRODUCCION

Actualmente la prestación de servicios médicos tales como inyectologia, cuidados


paleativos o acompañamiento, son atendidos como servicios domiciliarios y en
muchos casos quienes requieren de estos servicios deben contratar a entidades
privadas, cuya respuesta no es inmediata. Ejemplos de este tipo de servicios en
entidades privadas son MEDYMAX, EMI y también se pueden encontrar servicios de
acompañamiento que se ofrecen en internet como PRODIGIOS APP y MEDYCARE.

En muchos casos el sistema de salud no ofrece este tipo de servicios, por lo cual las
personas que tienen necesidades de cuidados especiales se ven obligados a buscar
profesionales en salud que puedan ayudarles con estos cuidados, esperando tener un
servicio de calidad y preciso, según las necesidades. Esto no siempre resulta bien,
pues en ocasiones las personas contratadas no cuentan con los conocimientos
necesarios para realizar su trabajo de forma correcta o puede que el trato personal de
este no sea el adecuado frente al paciente.

A través de este proyecto se pretende generar una aplicación móvil que permita la
interacción de profesionales y personas que requieren los servicios de salud.
Adicionalmente, se pretende que quienes se registren en la aplicación cuenten con
los certificados necesarios y que además tengan calificaciones por parte de otros
usuarios que ya los hubiesen contratado. De esta manera brindar un nivel de calidad
cada vez mejor.

En el campo de la salud el uso de tecnologías tiene un alto impacto ya que permite a


las personas tener acceso y comunicación con los profesionales de la salud, pensando
en esto se propone realizar una aplicación móvil que cumpla con este objetivo, Para
ello el proyecto hace uso de tecnologías de geolocalización, mensajería y
notificaciones propias de Google y sus librerías para Android incorporadas en los
teléfonos móviles que cualquier persona puede tener.

Para el desarrollo del proyecto se siguió la metodoliga Scrumm con la cual se


definieron las actividades y se diseñaron los módulos propuestos en la aplicación, los
cuales se evidencian en cada capítulo del documento.

6
3. ABSTRACT

NurceApp is a mobile application that allows the search of health professionals, who
can provide basic services such as palliative care or accompaniment injection and at
the same time facilitates the registration of professionals who want to offer their
services. The above is done through geolocation technologies allowing locating
professionals who are in the same area or close to the person making the request.

The system integrates different web development tools that include HTML5, CSS3 and
the Php programming language, as well as the frameworks that could help guarantee
greater performance, such as the development framework called Laravel in version
5.5, as well as the native Android environment and all the features of mobile devices
were used. Finally, for the handling of notifications Firebase was used a google tool
that facilitates communication between devices.

The system allows generating push notifications in order to inform the user about
events such as the request for information, the start of a service, a new message,
among others.

It is also easier to qualify the service of professionals by generating a ranking that can
be consulted by users to have references of services.

7
4. PLANTEAMIENTO

4.1. Titulo
Aplicación móvil para la búsqueda y contacto de personal de enfermería basado en
geolocalización.

4.2. Tema
Desarrollar una aplicación móvil para la búsqueda y contacto de personal de enfermería
basado en geolocalización.

4.3. Planteamiento del problema


A continuación, se presentan los elementos relacionados a la problemática que se plantea
resolver.

 Descripción
En Colombia la hospitalización a domicilio y la atención médica domiciliaria tiene
ejes potenciales de desarrollo, ya que se ha conocido su costo efectividad y
seguridad en el manejo no solo de enfermos crónicos si no agudos, para lo cual, es
necesario aumentar los esfuerzos para trabajar en esto debido a que hasta el
momento aún no se le presta la atención necesaria para su correcto crecimiento. [1]

Las personas que tienen problemas de salud como presión alta o que necesitan de
cuidados especiales como inyecciones o tratamientos que requieran manejo y
control de un especialista, al igual que las familias que tienen personas delicadas
de salud en sus hogares, por lo general se pueden encontrar con bastantes
dificultades cuando se ven en la necesidad de localizar personal adecuado con el
cual puedan confiar su salud o puedan dejar un paciente.

Aun cuando ya existen servicios de cuidado domiciliario, se debe trabajar en


Colombia por potenciar el desarrollo de estos, garantizar el manejo seguro de los
usuarios [2], hoy en día, para poder encontrar un especialista adecuado estas
personas como primera instancia irán a una farmacia donde se encontrarán con
personas que “dicen” ser especialistas, pero, los cuales pueden o no tener un
certificado que avala su conocimiento, poniendo en peligro la integridad de sus
clientes. Además de esto, si las personas con estas necesidades, no encuentran
una droguería cerca, se remitirán a un centro hospitalario donde tendrán que
esperar a ser atendidos o que algún especialista esté disponible para que los
puedan chequear. Todo esto implica un traslado, la incomodidad, los tiempos de
espera, la seguridad de si realmente son los profesionales capacitados que dicen
ser y otros factores que pueden complicar el estado de salud del paciente.

En algunos casos se puede dar que algunas aplicaciones, páginas web o grupos
de Facebook, personas ofrezcan sus servicios sin aval alguno de que sus
conocimientos sean reales o que la calidad de su trabajo sea buena, provocando
esto que la integridad de los usuarios se vea severamente afectada.

 Formulación del problema


¿La implementación de un sistema de información para la localización de personal
capacitado en el área de enfermería puede apoyar el bienestar y la calidad de vida
de las personas que requieran este tipo de servicios?

1
4.4. Objetivos
A continuación, se presentan los objetivos correspondientes al presente proyecto.

4.4.1. General
Desarrollar una aplicación móvil para la búsqueda y contacto de personal de
enfermería basado en geolocalización.

4.4.2. Objetivos Específicos


 Realizar el levantamiento de la información necesaria para el correcto
funcionamiento de la aplicación.
 Analizar el tipo de información que se deberá tomar en cuenta para la realización
del aplicativo, los protocolos de seguridad para el manejo de esta información y los
roles que tendrán acceso a ellos.
 Diseñar el módulo de registro de usuarios y personal de enfermería que se
encuentren interesadas obtener o prestar servicios de enfermería.
 Diseñar un módulo para la calificación del personal que prestan su servicio, con el
objeto de crear un ranking de profesionales que les dé opciones a los usuarios
respecto a la prestación del servicio.
 Implementar un componente móvil de notificaciones y Geo posicionamiento para
obtener información en tiempo real del personal de enfermería más cercano a la
ubicación.
 Implementar un sistema web que permita el almacenamiento y manejo de los datos
ayudando en el procesamiento y el almacenamiento de estos.

4.5. Justificación
El proyecto a desarrollar, se realiza por la necesidad que tienen las personas con
dificultades de salud o familias con este tipo de personas debido a que no cuentan con un
sistema eficiente para ubicar personal especializado en el área de la salud, gastando así
tiempo y recursos personales.

El desarrollo de un software de localización a la medida para las personas que presentan


estas necesidades, dará mayor facilidad al momento de buscar respuestas rápidas y
apropiadas. También será un apoyo para las personas que prestan un servicio de
enfermería ayudando esto a obtener una mejor experiencia frente a su área de desarrollo
profesional y así poder acceder a mejores oportunidades laborales, además de, mejorar
sus ingresos.

Teniendo una información más detallada del personal de enfermería, como su historial de
cumplimiento, puntualidad, calificación de usuarios previos, el usuario podrá tomar
decisiones frente a esto y así mejorar la experiencia que espera recibir. Se debe considerar
además que la utilización de tecnologías web da al personal de enfermería más cercanía
a sus usuarios, permitiendo mejorar falencias que se puedan tener.

4.6. Alcances y Limitaciones


Se presenta los alcances y limitaciones del proyecto como forma de entender la magnitud
e impacto que este tendrá en los ámbitos mencionados.

4.6.1. Alcances
 Se definirá un método de registro del personal de enfermería, teniendo en cuenta
especialidad, horarios de trabajo y lugares de disponibilidad para trabajo.

2
 El aplicativo móvil estará disponible inicialmente para el dispositivo Android.
 La plataforma brindará la posibilidad de acceder desde cualquier dispositivo que
tenga conexión a internet.
 El aplicativo móvil dará un posicionamiento en tiempo real cuando se le solicite.
 La información de los profesionales en enfermería en general será visible por parte
de los roles Administrador y Cliente.
 El sistema permitirá subir la documentación correspondiente al perfil de quien
desea prestar sus servicios.

4.6.2. Limitaciones
 El aplicativo móvil solo estará disponible para dispositivos Android, desde la
versión 4.0 con acceso a datos de navegación.
 El acceso a la plataforma sólo se logrará por medio de un usuario y una contraseña
asignados en el momento del registro.
 el aplicativo móvil tendrá la opción de deshabilitar posicionamiento, si el personal
de enfermería así lo deseara, perdiendo la posibilidad de ser localizado y
posteriormente contratado.
 La información personal del personal de enfermería, será administrada única y
directamente por este.
 Los personales de enfermería podrán llevar un registro de sus servicios mediante
el aplicativo solo de los últimos 60 días.
 El prestador del servicio está planteado únicamente para personal de enfermería,
debido a que los costos y facilidades de contratación son más sencillas y
económicas que con otros profesionales en esta área.

4.7. Descripción de los módulos


El sistema contara con los siguientes módulos para poder tener un funcionamiento
correcto:

 Módulo de gestión de usuarios: En módulo permitirá gestionar la información de


los usuarios que utilizaran la plataforma, Nombre, Email, Contraseña, Imagen de
perfil, Etc.

 Módulo de certificación profesional para el personal de enfermería: En este


módulo se podrá realizar la verificación del personal de enfermería con sus
respectivos certificados; Para realizar dicha validación se debe tener en cuenta
que datos como: cédula de ciudadanía, nombre completo, correo electrónico,
número celular y datos completos de sus estudios. Todos los datos anteriores
serán obligatorios.

 Módulo de georreferenciación: En este módulo se podrán registrar, eliminar o


actualizar lugares, como puntos de referencia, que el personal de enfermería podrá
usar para que los ubiquen mediante búsquedas con coordenadas geoespaciales.

 Módulo de mensajería: En este módulo se podrá realizar comunicación constante


con el personal de enfermería con el que esté interesado adquirir un servicio, esto
buscando que la comunicación sea más asertiva para ambas partes.

 Módulo de eventos: En este módulo se podrán agendar eventos entre los


usuarios evitando que pudiesen olvidar alguna cita. Contará con un calendario y
un identificador de los usuarios implicados en cada evento, haciendo así más clara

3
y sencilla la documentación de estos.

 Módulo de calificación: Luego de que el trabajo se haya realizado y ambas partes


estén de acuerdo en que el servicio terminó, el usuario Cliente podrá realizar una
calificación al personal de enfermería, dejando un comentario si lo considera
pertinente, esto buscando que entre los usuarios tengan un control de calidad
frente a las personas que contratan.

 Módulo de ranking: En este módulo los usuarios podrán acceder a la información


almacenada para generar reportes sobre, historiales de trabajo y categorización y
reputación del desempeño de los profesionales en el servicio de enfermería que
se encuentran registrados.

4.8. Antecedentes
A continuación, se describen los antecedentes de algunos de los proyectos o
aplicativos que se relacionan con la propuesta, teniendo en cuenta parámetros
como, geolocalización, contratación, seguimiento, calificación y utilizados en
ámbitos familiares:

 DreamJobs: “Dream Jobs es una app 100% colombiana, creada por el abogado
Andrés García, que ca hacerle más fácil encontrar empleo a todos los colombianos,
que por diferentes circunstancias se les ha dificultado encontrar trabajo que se
ajuste a sus necesidades. Esta aplicación reúne una base de datos de empresas
que tienen ofertas laborales en todos los campos, así que los usuarios de Dream
Jobs pueden aplicar a estas vacantes desde su casa y con total seguridad de que
sus hojas de vida serán recibidas. La aplicación ubica las vacantes disponibles de
las más de 2 mil empresas que actualmente están ofertando en la plataforma en
todo Colombia”
URL: https://dreamjobs.com.co/

 Doctoralia Internet S.L.: “Es una web nacida en 2007 como directorio médico que
permite reservar de forma online citas con profesionales sanitarios y ofrece la
posibilidad de incluir una valoración de los pacientes sobre estos y/o los centros
sanitarios donde han sido atendidos. El sitio web de doctoralita permite buscar los
profesionales por ciudades, especialidades o compañía aseguradora. Los
resultados de la búsqueda muestran el centro donde realizan sus actividades
profesionales, datos de contacto y en algunos casos, aparecen datos sobre su
ámbito y experiencias de formación.”.
URL: https://www.doctoralia.co/

 Glympse: “Esta aplicación es gratuita y multiplataforma, disponible para Android,


iPhone y Windows Mobile que permite compartir nuestra ubicación con otras
personas de una forma segura sencilla y eficiente. ¿Cómo funciona Glympse? En
primer lugar, necesitamos tener instalado Glympse en nuestro móvil y activar la
función GPS, luego encontramos a Glympse y por medio del menú elegimos la
opción “Send Glympse”, seguido a esto nos pide una serie de datos que debemos
completar para poder enviar nuestra ubicación, Básicamente “Send Glympse to ”
es el mail o móvil por el cual queremos compartir nuestra ubicación. En “Set how
long this glympse will last” debemos colocar durante cuánto tiempo queremos
compartir nuestra ubicación. Una vez que tenemos todos los datos cargados, mail
de la persona a quien queremos enviar y tiempo de transmisión de la ubicación,
hacemos un touch en “Send Glympse” y de esta forma, la persona que nosotros

4
designamos a estar recibiendo un mail que contiene un link hacia la web oficial de
Glympse, Una vez que nuestro “seguidor” ingresa a la página, podrá ver un mapa
marcando exactamente el recorrido que nosotros estamos haciendo”.
URL: https://www.glympse.com/

 Life360: “Es una aplicación para la localización de personas correspondientes a


nuestro núcleo familiar, por lo tanto, la cantidad de cuentas asociadas es poca y
cada personas debe tener su propio dispositivo, además de que el único que puede
ver la posición de los demás es el jefe de familia.”.
URL: https://www.life360.com

 LocMovil: “Aplicativo móvil para el control en tiempo real de procesos, localización


y gestión de los activos móviles Está dirigido a empresas y pymes que cuenten con
vehículos o personal en campo y que tengan procesos logísticos asociados a su
actividad económica.
URL: https://apps.co/comunidad/ver/1116/locmovil-sas/

 Prodigios APP: “Acompañamiento flexible: Dentro y fuera de casa, nuestros


pródigos estarán disponibles para actividades desde acompañar y ayudar al adulto
mayor con sus actividades cotidianas dentro de casa hasta llevarlos a visitar sus
sitios favoritos de la ciudad como museos, centros comerciales o actividades de
entretenimiento como juegos de mesa, lectura y tertulias.”
URL:https://www.prodigosapp.com/historia-origen-prodigos-companamiento

 Medycare: “Medycare SAS tiene como objetivo, mejorar la calidad de vida de


aquellas personas que padecen enfermedades crónicas o bien que afrontan de
manera temporal o permanente una limitación tanto de su capacidad para auto
cuidarse, como para desplazarse de manera autónoma, por lo que han de
permanecer en su domicilio.”
URL: http://medycare.com.co/nosotros.html

5
4.9. MARCO TEORICO
A continuación, se presentan todos los elementos que se deben tener en cuenta para
lograr llevar el proyecto hasta la fase final de producción:

4.9.1. GEOREFERENCIACION1
Es el uso de coordenadas de mapa para asignar una ubicación espacial a entidades
cartográficas. Todos los elementos de una capa de mapa tienen una ubicación
geográfica y una extensión específicas que permiten situarlos en la superficie de la
Tierra o cerca de ella. La capacidad de localizar de manera precisa las entidades
geográficas es fundamental tanto en la representación cartográfica como en SIG.

La correcta descripción de la ubicación y la forma de entidades requiere un marco para


definir ubicaciones del mundo real. Un sistema de coordenadas geográficas se utiliza
para asignar ubicaciones geográficas a los objetos. Un sistema de coordenadas de
latitud-longitud global es uno de esos marcos. Otro marco es un sistema de coordenadas
cartesianas o planas que surge a partir del marco global.

Los mapas representan ubicaciones en la superficie de la Tierra que utilizan cuadrículas,


gratículas y marcas de graduación con etiquetas de diversas ubicaciones terrestres
(tanto en medidas de latitud-longitud como en sistemas de coordenadas proyectadas
[como metros de UTM]). Los elementos geográficos incluidos en diversas capas de
mapa se trazan en un orden específico (uno sobre otro) para la extensión del mapa
determinada.

Los datasets SIG incluyen ubicaciones de coordenadas dentro de un sistema de


coordenadas cartesianas o globales para registrar ubicaciones y formas geográficas. De
este modo, es posible superponer capas de datos SIG sobre la superficie de la Tierra.

 SIG2: (Sistema de Información Geográfica) El SIG funciona como una base de


datos con información geográfica (datos alfanuméricos) que se encuentra asociada
por un identificador común a los objetos gráficos de un mapa digital. De esta forma,
señalando un objeto se conocen sus atributos e, inversamente, preguntando por
un registro de la base de datos se puede saber su localización en la cartografía.
La razón fundamental para utilizar un SIG es la gestión de información espacial. El
sistema permite separar la información en diferentes capas temáticas y las
almacena independientemente, permitiendo trabajar con ellas de manera rápida y
sencilla, y facilitando al profesional la posibilidad de relacionar la información
existente a través de la topología de los objetos, con el fin de generar otra nueva
que no podríamos obtener de otra forma.
Las principales cuestiones que puede resolver un Sistema de Información
Geográfica, ordenadas de menor a mayor complejidad, son:

o Localización: preguntar por las características de un lugar concreto.


o Condición: el cumplimiento o no de unas condiciones impuestas al
sistema.
o Tendencia: comparación entre situaciones temporales o espaciales
distintas de alguna característica.

1
Esri, 2013, http://resources.arcgis.com/es/help/getting-started/articles/026n0000000s000000.htm
2Laboratorio Unidad Pacífico Sur, CIESAS, 5 agosto 2012
https://langleruben.wordpress.com/%C2%BFque-es-un-sig/

6
o Rutas: cálculo de rutas óptimas entre dos o más puntos.
o Pautas: detección de pautas espaciales.
o Modelos: generación de modelos a partir de fenómenos o actuaciones
simuladas.

 GEOCERCAS3:(Geo-fences): Una Geocerca es un perímetro virtual en un mapa.


Cuando un sistema de rastreo por GPS utiliza la geocerca, el software puede
determinar si el dispositivo de GPS está dentro o fuera del perímetro determinado,
así como notificarte cuando un dispositivo entra o sale de ese perímetro. El método
de definición de áreas en el mapa aporta resultados bastante más prácticos. Por
ejemplo, si una empresa de alquiler de Jet Ski quiere asegurarse que los clientes
mantengan los equipos dentro de una zona designada, pueden dibujar una
geocerca en la zona del agua aprobada y recibir alertas si el Jet Ski se encuentra
fuera del agua o sale de los límites establecidos. La geocerca es una tecnología
útil y flexible que puede tener múltiples y valiosas aplicaciones.

 GPS4: (Global Positioning System): Sistema de Posicionamiento Global (GPS) es


un sistema de radionavegación de los Estados Unidos de América, basado en el
espacio, que proporciona servicios fiables de posicionamiento, navegación, y
cronometría gratuita e ininterrumpidamente a usuarios civiles en todo el mundo. A
todo el que cuente con un receptor del GPS, el sistema le proporcionará su
localización y la hora exacta en cualesquiera condiciones atmosféricas, de día o
de noche, en cualquier lugar del mundo y sin límite al número de usuarios
simultáneos. El GPS se compone de tres elementos: los satélites en órbita
alrededor de la Tierra, las estaciones terrestres de seguimiento y control, y los
receptores del GPS propiedad de los usuarios. Desde el espacio, los satélites del
GPS transmiten señales que reciben e identifican los receptores del GPS; ellos, a
su vez, proporcionan por separado sus coordenadas tridimensionales de latitud,
longitud y altitud, así como la hora local precisa.

No es el único sistema que existe para localizarnos en la Tierra, dado que el GPS
es un desarrollo del Departamento de Defensa de los EEUU: GLONASS es el
actual nombre del comenzado por la Unión Soviética y continuado por Rusia,
Galileo es la alternativa europea y el único destinado al uso civil, y Beidou-barra-
Compass es el proyecto de la República Popular de China que da servicio a China
y países vecinos. [ANDROIDGPS]

 GPS EN CELULARES5: La red GPS emplea una red de 24 satélites -32 en total,
contando los satélites adicionales que mejoran la precisión- en órbita que cubren
toda la superficie de nuestro planeta, de tal forma que, desde cualquier punto en
el que podamos estar, podamos tener línea de visión directa con un mínimo de
seis satélites.

3
KORE Wireless Group, 29 Julio 2013https://www.positionlogic.com/es/el-blog-news/es/manejando-
su-negocio-de-rastreo-de-gps/nueve-sorprendentes-formas-de-utilizar-geo
4 Oficina de Coordinación Nacional de Posicionamiento, Navegación, y Cronometría por Satélite,

https://www.gps.gov/spanish.php
5 David Pérez, 28 octubre 2015 https://elandroidelibre.elespanol.com/2015/10/todo-sobre-el-gps-en-

android-como-funciona-y-como-desactivarlo.html

7
A partir de esa base, cuando nuestro smartphone quiera localizarnos, se conectará
a esta red y conectará con la mayor cantidad de satélites posibles, obteniendo una
serie de datos, y utiliza la triangulación inversa -averiguar la distancia de cada
satélite respecto a nuestra posición- para situarnos en el mapa.

4.9.2. APLICACIONES MOVILES6


Las aplicaciones (también llamadas apps) están presentes en los teléfonos desde hace
tiempo; de hecho, ya estaban incluidas en los sistemas operativos de Nokia o Blackberry
años atrás. Los móviles de esa época, contaban con pantallas reducidas y muchas veces
no táctiles, y son los que ahora llamamos feature phones, en contraposición a
los smartphones, más actuales.

En esencia, una aplicación no deja de ser un software. Para entender un poco mejor el
concepto, se puede decir que las aplicaciones son para los móviles lo que los programas
son para los ordenadores de escritorio.

Hubo un cambio grande con el ingreso de iPhone al mercado, ya que con él se generaron
nuevos modelos de negocio que hicieron de las aplicaciones algo rentable, tanto para
desarrolladores como para los mercados de aplicaciones, como App Store, Google Play
y Windows Phone Store. Al mismo tiempo, también mejoraron las herramientas de las
que disponían diseñadores y programadores para desarrollar apps, facilitando la tarea de
producir una aplicación y lanzarla al mercado, incluso por cuenta propia.

 ANDROID7: Sistema operativo líder en el mercado, el único que ha logrado


satisfacer las necesidades multimedia y de socialización tanto de personas con
alto poder adquisitivo, como de aquellas con menos opciones económicas. Android
ha hecho posible el impulso del teléfono inteligente hasta el punto que
prácticamente toda la comunicación entre las personas tiene lugar desde la
pequeña pantalla del terminal: Facebook y WhatsApp son las formas más comunes
para interactuar con amigos, conocidos y familia. Gracias a Android, prácticamente
cualquier persona puede, no sólo comunicarse, sino disfrutar de su terminal para
llenar el tiempo libre con juegos móviles de calidad, navegar por páginas web y
subir fotografías a Instagram. Si Volkswagen fue en su momento el “coche del
pueblo”, Android es hoy en día el “sistema operativo del pueblo”, el único capaz de
satisfacer las necesidades de cualquier tipo de usuario: desde el menos exigente,
que solo necesita el teléfono para llamar y enviar mensajes por WhatsApp; hasta
el más avanzado, que pretende navegar por Internet, mandar correo electrónico,
ver películas DivX o tomar fotografías de calidad.

 Android Studio8: Android Studio es el entorno de desarrollo integrado (IDE) oficial


para el desarrollo de aplicaciones para Android y se basa en IntelliJ IDEA. Además
del potente editor de códigos y las herramientas para desarrolladores de IntelliJ,
Android Studio ofrece aún más funciones que aumentan la productividad durante
la compilación de apps para Android, como las siguientes:

6 La importancia de una aplicación móvil, Juanjo, 20 marzo 2015, http://blog.filmultimedia.com/la-importancia-de-


una-aplicacion-movil /
7 La importancia de Android, Antonio Gutiérrez, 23 agosto 2013, https://prezi.com/h8yj4esuo_s-/la-importancia-

del-android/
8
Android Google developers, https://developer.android.com/studio/intro/index.html?hl=es-419

8
o Un sistema de compilación basado en Gradle flexible
o Un emulador rápido con varias funciones
o Un entorno unificado en el que se puede realizar desarrollos para todos los
dispositivos Android
o Instant Run para aplicar cambios mientras tu app se ejecuta sin la necesidad
de compilar un nuevo APK
o Integración de plantillas de código y GitHub para ayudar a compilar funciones
comunes de las apps e importar ejemplos de código
o Gran cantidad de herramientas y frameworks de prueba
o Herramientas Lint para detectar problemas de rendimiento, usabilidad,
compatibilidad de versión, etc.
o Compatibilidad con C++ y NDK
o Soporte incorporado para Google Cloud Platform, lo que facilita la integración
de Google Cloud Messaging y App Engine

 FIREBASE9: Es un conjunto de herramientas orientadas a la creación de


aplicaciones de alta calidad, al crecimiento de los usuarios y a ganar más dinero.
Sus características fundamentales están divididas en varios grupos, las cuales
podemos agrupar en:
o Analíticas: Provee una solución gratuita para tener todo tipo de medidas
(hasta 500 tipos de eventos), para gestionarlo todo desde un único panel.
o Desarrollo: Permite construir mejores apps, permitiendo delegar
determinadas operaciones en Firebase, para poder ahorrar tiempo, evitar
bugs y obtener un aceptable nivel de calidad. Entre sus características
destacan el almacenamiento, testeo, configuración remota, mensajería en
la nube o autenticación, entre otras.
o Crecimiento: Permite gestionar los usuarios de las aplicaciones, pudiendo
además captar nuevos. Para ello dispondremos de funcionalidades como
las de invitaciones, indexación o notificaciones.
o Monetización: Permite ganar dinero gracias a AdMob.

4.9.3. APLICACIÓN WEB10


Una aplicación Web es una aplicación informática que se ejecuta en un entorno Web. La
arquitectura Web permite a múltiples clientes o usuarios establecer una comunicación a
través de Internet con un servidor Web. Los clientes mediante un navegador emiten
peticiones vía HTTP a un servidor Web que responde a cada una de las solicitudes. El
servidor aloja una serie de aplicaciones Web que ofrecen diferentes servicios a los
usuarios conectados. Es en el servidor Web donde se centraliza la carga de trabajo. En
la mayoría de los casos, el navegador suele ser un mero presentador de información
(modelo de cliente ligero), y no lleva a cabo ningún procesamiento relacionado con la
lógica de negocio.11

9 Jose Angel Zamora, 19 mayo 2016, https://elandroidelibre.elespanol.com/2016/05/firebase-


plataforma-desarrollo-android-ios-web.html
10 La importancia del diseño web, Kristine, 2016, http://www.open-ideas.es/cascading-style-sheets-de-

vitar-importancia-para-el-diseno-web/
11 Boiza, V. M. (10 de 2012). http://e-archivo.uc3m.es/. Obtenido de

http://earchivo.uc3m.es/bitstream/handle/10016/16046/PFCVanesaMorenoBoiza.p df?sequence=1

9
En la arquitectura Web el modelo de comunicación entre cliente y servidor se establece
mediante una conexión a Internet o intranet. El intercambio de información desde el
navegador al Servidor se efectúa mediante el uso del protocolo HTTP (Hipertext Transfer
Protocol) protocolo para el intercambio de información en Web.12 El navegador Web
interpreta las páginas dinámicas generadas por el servidor Web.
El usuario interacciona con las aplicaciones Web a través del navegador. Como
consecuencia de la actividad del usuario, se envían peticiones al servidor, donde se aloja
la aplicación Web y que normalmente hace uso de una base de datos que almacena toda
la información relacionada con la misma. El servidor procesa la petición y devuelve la
respuesta al navegador que la presenta al usuario.

 HTML513: Se define como un lenguaje con el que se escriben las páginas web las
cuales pueden ser vistas por usuarios mediante un tipo de aplicación denominada
navegador, se puede decir por lo tanto que el HTML es el lenguaje usado por los
navegadores para mostrar las páginas web al usuario, siendo hoy en día la
interface más extendida en la red. || Más aún, cuando en estos tiempos son
millones las personas que acceden a internet desde dispositivos móviles como
iPhones, iPads, Palms, Smartphones, netBooks, Pocket Pc, y demás. Aquí se
vuelve imperioso y fundamental que el código HTML está bien realizado y sea
100% compatible con todos los navegadores del mercado. Entre las
funcionalidades que encontramos con HTML están:

 Colocar imágenes, audios, videos y animaciones.


 Colocar opciones para compartir y difundir documentos.
 Permitir que ciertos tipos de documentos puedan ser leídos
descargados o editados desde la misma página web.
 Replicar contenidos desde otras páginas web.
 Agregar opciones para ampliar las informaciones y permitir consultas
en otros sitios web.
 Colocar enlaces a redes sociales.
 Agregar hipervínculos y funcionalidades asociadas a estos como:
dirigirse a otro sitio web, descargar algún recurso, editar un documento,
etc.

 CSS314: Es un acrónimo de Cascading Style Sheets, que tiene un apoyo distintivo


en los navegadores web de hoy en día. CSS modula los sitios web en la misma
forma que los programadores modulan el código del software. CSS es un lenguaje
en parte nuevo pero que ya durante los últimos años se va utilizando para mejorar
la presentación de los contenidos dentro de las etiquetas HTML. Ahora debemos
dividir la estructura de HTML y la presentación CSS. Éstos son algunos de los
beneficios de la CSS:

 Mayor facilidad para actualizar y dar soporte.

12 Boiza, V. M. (10 de 2012). http://e-archivo.uc3m.es/. Obtenido de


http://earchivo.uc3m.es/bitstream/handle/10016/16046/PFCVanesaMorenoBoiza.p df?sequence=1
13 La importancia del diseño web, Kristine, 2016, http://www.open-ideas.es/cascading-style-sheets-de-vitar-
importancia-para-el-diseno-web/
14
Importancia del código html, 2014, https://sites.google.com/site/sitiodellenguajehtmlinam/events

10
 Mayores y más detalladas opciones de formato.
 Menos codificación
 El tiempo de carga más rápida.
 Mayor consistencia en el diseño web.
 Mayor accesibilidad.
 Beneficios para las arañas de búsqueda.

 PHP15: Según el sitio oficial de PHP el acrónimo PHP “PHP: Hypertext pre-
processor” es un lenguaje “Open source” interpretado de alto nivel, especialmente
pensado para desarrollos web, y el cual puede ser incrustado en páginas HTML.
La mayoría de sus sintaxis es similar a C, Java y Perl es fácil de aprender, La meta
de este lenguaje es permitir a sus creadores de páginas web, páginas dinámicas
de una manera rápida y fácil. PHP es un lenguaje totalmente libre y abierto, Tiene
una curva de aprendizaje muy baja, su sintaxis es simple y cumple estándares
básicos de la programación orientada a objetos. No son necesarios complejos
entornos de desarrollo, que incluso necesitan su propio periodo de aprendizaje.
Se puede programar en PHP sin más ayuda que el bloc de notas, todos los IDEs
disponibles son gratuitos y los entornos de desarrollo son de rápida y fácil
configuración. Es fácil desplegar un proyecto en PHP porque se dispone de
paquetes totalmente autoinstalables que integran PHP: Apache y MySQL, tanto
para UNIX (LAMPP), como para Windows (XAMPP). Ambos fáciles de instalar y
configurar, como si de una aplicación cualquiera de escritorio se tratara.
Obteniendo así en el ordenador un servidor local con acceso a base de datos,
preparado desarrollar fácilmente cualquier proyecto, sin perder el tiempo en
problemas de compatibilidades o instalando herramientas extra que pudieran
necesitar. Además, PHP ofrece un fácil acceso a bases de datos y soporta muchas
de ellas, no únicamente MySQL.16

 MYSQL17]: Es un sistema de gestión de bases de datos relacional, fue creada por


la empresa sueca MySQL AB, la cual tiene el copyright del código fuente del
servidor SQL, así como también de la marca. MySQL es un software de código
abierto, licenciado bajo la GPL de la GNU, aunque MySQL AB distribuye una
versión comercial, en lo único que se diferencia de la versión libre, es en el soporte
técnico que se ofrece, y la posibilidad de integrar este gestor en un software
propietario, ya que, de otra manera, se vulneraría la licencia GPL. El lenguaje de
programación que utiliza MySQL es Structured Query Language (SQL) que fue
desarrollado por IBM en 1981 y desde entonces es utilizado de forma generalizada
en las bases de datos relacionales. El principal objetivo de MySQL es velocidad y
robustez. Soporta gran cantidad de tipos de datos para las columnas. Gran
portabilidad entre sistemas, puede trabajar en distintas plataformas y sistemas
operativos. Cada base de datos cuenta con 3 archivos: Uno de estructura, uno de
datos y uno de índice y soporta hasta 32 índices por tabla. Aprovecha la potencia
de sistemas multiproceso, gracias a su implementación multi-hilo. Flexible sistema
de contraseñas (passwords) y gestión de usuarios, con un muy buen nivel de
seguridad en los datos.

15
Que es php, Php Team, php.net
16Motivos para trabajar con php, Maria paz brezo, 2013, https://www.lancetalent.com/blog/6-buenos-motivos-
para-trabajar-con-php/
17 MYSQL historia e importancia, Uckerr, 11 agosto de 2015 https://miprimersitiowebuck.wordpress.com/2015/08/11/mysql-
historia-e-importancia/

11
 JSON18: (JavaScript Object Notation) es un formato para el intercambio de datos,
básicamente JSON describe los datos con una sintaxis dedicada que se usa para
identificar y gestionar los datos. JSON nació como una alternativa a XML, el fácil
uso en javascript ha generado un gran número de seguidores de esta alternativa.
Una de las mayores ventajas que tiene el uso de JSON es que puede ser leído
por cualquier lenguaje de programación. Por lo tanto, puede ser usado para el
intercambio de información entre distintas tecnologías.

 WEB SERVICE19: Un Web Service, o Servicio Web, es un método de


comunicación entre dos aparatos electrónicos en una red. Es una colección de
protocolos abiertos y estándares usados para intercambiar datos entre
aplicaciones o sistemas. Las aplicaciones escritas en varios lenguajes de
programación que funcionan en plataformas diferentes pueden utilizar web
services para intercambiar información a través de una red. La interoperabilidad,
por ejemplo, entre Java y Python o Windows y Linux se debe al uso
de estándares abiertos. Como sistema de mensajes se utiliza XML estandarizado.
El protocolo más simple para el intercambio de información entre ordenadores
es XML-RPC, que emplea XML para llevar a cabo RPCs. RPC, Remote Procedure
Call, es un protocolo de red que permite a un programa a ejecutar código en una
máquina remota. Los XML-RPC requests son una combinación entre contenido
XML y headers HTTP. La simpleza de los XML-RPC hizo que el estándar
evolucionase a SOAP, uno de los componentes básicos de los Web Services.

4.9.4. FRAMEWORKS20
Es una estructura de software con un conjunto de bibliotecas y componentes
personalizables que por lo general se usa como base para poder acelerar el proceso de
desarrollo de una aplicación. Debido a su estructura base bien organizada, estos permiten
su reutilización.

Al momento de iniciar un proyecto en el cual se desea desarrollar un sistema, debemos


tener en cuenta varios factores que van a determinar el crecimiento del mismo, como por
ejemplo su estructura, y que por lo general toma parte del tiempo que puede ser enfocado
en el avance del desarrollo de los requerimientos del sistema. Acá es donde entra en
juego la importancia de usar un Framework, ya que estos te proporcionan de una
estructura base que te permite agilizar estos procesos y orientar el tiempo y esfuerzo en
lógica de la aplicación.

 Laravel21: Laravel es un framework de código abierto para el desarrollo de


aplicaciones web en PHP 5 que posee una sintaxis simple, expresiva y elegante.
Fue creado en 2011 por Taylor Otwell, inspirándose en Ruby on Rails y Symfony,
de los cuales ha adoptado sus principales ventajas. 14 Laravel facilita el desarrollo
simplificando el trabajo con tareas comunes como la autenticación, el
enrutamiento, gestión sesiones, el almacenamiento en caché, etc. Algunas de las
principales características y ventajas de Laravel son15:

18
Json, que es y para qué sirve, Alejandro Rodriguez, 20176 https://geekytheory.com/json-i-que-es-y-para-que-sirve-json/
19 https://diego.com.es/introduccion-a-los-web-services
20 Framework y su importancia, TuArtDecors, 2015 http://frameworkmvc.blogspot.com.co/2015/06/concepto-de-
framework-y-su-importancia.html
21 Que framework me conviene utilizar, Andres, 10 febrero 2014, https://guiadev.com/que-framework-php-me-

conviene-utilizar/

12
o Está diseñado para trabajar bajo el patrón MVC (Modelo – Vista -
Controlador), centrándose en la popularización del código. Facilitando el
trabajo en equipo, claridad, mantenimiento y la reutilización de código.
o Usa un sistema ORM llamado Eloquent facilitando el mapeado de datos
relacional, asi mismo usa herramientas como Query Builder para
construcción de consultas directas a la base de datos.
o Usa versionamiento en el sistema de base de datos y fácil acoplacion a
diferentes motores de bases de datos mediante su sistema de migraciones.
o Usa un sistema de plantillas llamado Blade, el cual hace uso de cache para
mayor velocidad de la misma forma facilita la creación de vistas mediante
layouts, herencia y secciones.
o Facilita la extensión de funcionalidad mediante paquetes o librerías
externas ahorrando tiempo en programación.
o Maneja un intérprete de línea de comandos llamado Artisan que nos
ayudara con tareas repetitivas como la creación de distintos componentes
de código, trabajo en base de datos, rutas entre otras.
o MVC(Modelo-Vista-Controlador): El modelo vista controlador (MVC) es un
patrón de arquitectura de software que separa los datos y la lógica de
negocio de una aplicación de la interfaz de usuario y el módulo encargado
de gestionar los eventos y las comunicaciones. Para ellos MVC propone a
construcción de tres componentes distintos que son el modelo, la vista y el
controlador, es decir, por un lado, define componentes para la
representación de la información, y por otro lado para la interacción del
usuario. Este patrón de arquitectura de software se basa en la idea de
reutilización de código y la separación de conceptos, características que
buscan facilitar la tarea de desarrollo de aplicaciones y su posterior
mantenimiento16
[Figura]

Los elementos que conformas esta arquitectura son:

o Modelo: Es la representación de la información con la cual el sistema


opera, por lo tanto, gestiona todos los accesos a dicha información, tantas
consultas como actualizaciones. Las peticiones de acceso o manipulación
de información llegan al ‘modelo’ a través del ‘controlador’ 17

o Controlador: Responde a eventos (usualmente acciones del usuario) e


invoca peticiones al ‘modelo’ cuando se hace alguna solicitud de
información (por ejemplo, editar un documento o un registro en una base
de datos). Por tanto, se podría decir que el ‘controlador’ hace de
intermediario entre la ‘vista’ el ‘modelo’ 18

o Vista: Presente le ‘modelo’ y los datos preparados por el controlador al


usuario de forma visual. El usuario podrá interactuar con la vista y realizar
otras peticiones que se enviaran al controlador19.

El funcionamiento general de la arquitectura de MVC se da de la siguiente


manera:
 El usuario realiza una petición a través de la interfaz de usuario.

13
 El controlador captura el evento.
 El controlador hace la llamada al modelo/modelos correspondientes
efectuando las modificaciones pertinentes sobre el modelo.
 El controlador recibe la información y la envía a la vista.
 La vista, recibe datos del modelo y los muestra al usuario.

 BOOTSTRAP22: Bootstrap es un framework HTML, CSS y JavaScript creado


originalmente por Twitter. Su código liberado en 2011 y poco tiempo después se
convirtió en uno de los repositorios más populares de GitHub. Entre las muchas
ventajas y facilidades que nos aporta se pueden destacar:

● Rápido e intuitivo: Ahorra mucho tiempo una vez se aprende a utilizar


Bootstrap, nuestro código será fácilmente legible. Además de funciones ya
prediseñadas.
● Pensado para móviles: Sigue la filosofía mobile first, por lo que ya no existirá
problema alguno a la hora de desarrollar para dispositivos móviles.
● Diseño responsive: se logra hacer que los diseños se adaptan
automáticamente a las diferentes resoluciones de diferentes dispositivos.

22Que es Bootstrap y cómo funciona, Aitor Rodríguez, 21 de Julio 2015, http://www.frontendfactory.es/que-es-bootstrap-y-


como-funciona/

14
4.9.5. Metodología para el desarrollo de software.23
En este ítem se presentan las posibles metodologías que pudieron llegarse a utilizar teniendo
en cuenta la efectividad, rapidez y comodidad para los desarrolladores. Al final se decidió
utilizar la metodología SCRUM debido a su facilidad de uso y mayores casos de éxito.

4.9.5.1. Waterfall Process. Esta es una metodología que se caracteriza por el hecho
de que se queda en una fase, hasta que esta está totalmente terminada y es
ahí donde pasa a la siguiente, su principal inconveniente es que ante cualquier
error se pierde tiempo muy valioso porque toca devolverse tanto en el proceso
de desarrollo como en el de la documentación.

4.9.5.2. Rational Unified Process. Es un proceso de software iterativo, es adaptable


y entallado para satisfacer las necesidades del equipo de desarrollo, pero es
una metodología muy pesada, es muy completo pero muy complejo para los
proyectos de desarrollo ágil por lo que pierde mucho tiempo en la
documentación de los procesos.

4.9.5.3. Essential Unified Process. Esta es una mejora del Rational Unified Process,
consiste en la integración de prácticas eficaces de los 3 campos de proceso: el
proceso unificado, los métodos ágiles y el proceso de madurez, respecto a su
usabilidad en el desarrollo de videojuegos hay que decir que por su
escalabilidad y la posibilidad de separar prácticas lo hace adaptable para este
fin.

4.9.5.4. MOBILE D24: El objetivo de este método es conseguir ciclos de desarrollo muy
rápidos en equipos muy pequeños. Fue creado en un proyecto finlandés en
2005, pero sigue estando vigente. Basado en metodologías conocidas pero
aplicadas de forma estricta como: extreme programming, Crystal
Methodologies y Rational Unified Process. Se compone de distintas fases:
exploración, inicialización, fase de producto, fase de estabilización y la fase de
pruebas. Cada una tiene un día de planificación y otro de entrega.

En la fase de exploración se centra la atención en la planificación y a los


conceptos básicos del proyecto. Aquí es donde hacemos una definición del
alcance del proyecto y su establecimiento con las funcionalidades donde
queremos llegar. En la iniciación configuramos el proyecto identificando y
preparando todos los recursos necesarios como hemos comentado
anteriormente en esta fase la dedicaremos un día a la planificación y el resto
al trabajo y publicación. En la fase de producto se repiten interactivamente las
sub-fases. Se usa el desarrollo dirigido por pruebas (TDD), antes de iniciar el
desarrollo de una funcionalidad debe existir una prueba que verifique su
funcionamiento. En esta fase podemos decir que se lleva a acabo toda la
implementación.

Después de la fase de producto llega la fase de estabilización en la que se


realizan las acciones de integración para enganchar los posibles módulos
separados en una única aplicación.

23 Camacho, J. D. (04 de 2013). northware.mx. Obtenido de http://www.northware.mx/wp-


content/uploads/2013/04/Desarrollo-cascadavs-Desarrollo-Agile.pdf
24 Txema rodriguez, 29 septiembre 2011, https://www.genbetadev.com/desarrollo-aplicaciones-

moviles/metodos-aplicables-para-el-desarrollo-de-aplicaciones-moviles

15
Fase de pruebas. Una vez parado totalmente el desarrollo se pasa una fase de
testeo hasta llegar a una versión estable según lo establecido en las primeras
fases por el cliente. Si es necesario se reparan los errores, pero no se
desarrolla nada nuevo.

Una vez acabada todas las fases deberíamos tener una aplicación publicable
y entregable al cliente.

4.9.5.5. Modelo Waterfall. Clásico. Sólo aplicable cuando están totalmente cerrados
los requisitos y no van a cambiar. No hay retroalimentación entre las fases en
que se divide el proyecto. Por lo que cada fase se va cerrando de forma
secuencial. Todo el proceso está fijado por fechas límites y presupuestos. Este
modelo sólo es aconsejable para proyectos móviles muy controlados y
previsibles, no existe incertidumbre por lo que se quiere hacer ni influyen los
cambios en la industria. [MOBILES METODOLOGIAS]

4.9.5.6. Scrum Framework. Es una metodología de desarrollo de software iterativo


incremental muy usada en el desarrollo de software ágil. El trabajo está
estructurado en ciclos conocidos como sprints. Durante cada sprint los equipos
toman los requerimientos de una lista ordenada por prioridades conocidas
como historias de usuario. Al terminar cada sprint, se tiene una versión
potencialmente final del producto. Su fortaleza es que sus iteraciones facilitan
la entrega de características pulidas para ir probando las características de las
aplicaciones e ir haciendo mejoras a partir de la retroalimentación realizada por
los clientes y usuarios, esta metodología no incluye solo a programadores, sino
que también incluye usuarios finales y personas de otras disciplinas que
cooperan para realizar mejores desarrollos. En el desarrollo del portal web
usaremos la metodología de desarrollo ágil Scrum porque nos permite tener
funcionalidades en el proyecto a corto plazo, así mismo nos facilita la tarea de
despejar riesgos de manera anticipada con la respectiva documentación para
un desarrollo eficiente, además permite centrarse en cada módulo muy
específicamente, desplazadamente y nos permite mostrar los resultados de
cada iteración tanto al cliente como al director. Para entender el ciclo de
desarrollo de Scrum es necesario conocer las 5 fases que definen el ciclo de
desarrollo ágil:
4.9.5.6.1. Etapas de la metodología Scrum
A continuación, se presentan las etapas necesarias para poder llevar a cabo un
desarrollo con la metodología Scrum:
o Concepto: Se define de forma general las características del producto y se
asigna el equipo que se encargará de su desarrollo.
o Especulación: En esta fase se hacen disposiciones con la información
obtenida y se establecen los límites que marcarán el desarrollo del
producto, tales como costes y agendas. Se construirá el producto a partir
de las ideas principales y se comprueban las partes realizadas y su impacto
en el entorno. Esta fase se repite en cada iteración y consiste, en rasgos
generales, en:
 Desarrollar y revisar los requisitos generales.
 Mantener la lista de las funcionalidades que se esperan.
 Plan de entrega. Se establecen las fechas de las versiones, hitos e
iteraciones. Medirá el esfuerzo realizado en el proyecto.

o Exploración: Se incrementa el producto en el que se añaden las

16
funcionalidades de la fase de especulación.
o Revisión: El equipo revisa todo lo que se ha construido y se contrasta con
el objetivo deseado.
o Cierre: Se entregará en la fecha acordada una versión del producto
deseado. Al tratarse de una versión, el cierre no indica que se ha finalizado
el proyecto, sino que seguirá habiendo cambios, denominados
“mantenimiento”, que hará que el producto final se acerque al producto final
deseado.

17
5. FASE PLANEACIÓN
En esta fase se describirán los elementos iniciales del proyecto, como lo son el equipo de
trabajo, requerimientos candidatos e historias de usuario.

Scrum Master: Juan camilo Camacho

Debido a la naturaleza del proyecto siendo un proyecto realizado bajo el formato de


monografía no se requiere un Scrum Owner, ya que el proyecto va a ser de libre acceso para
cualquiera que pudiera ser el usuario.

5.1. REQUISITOS
En las primeras entrevistas y levantamientos de información se reunieron los
requerimientos principales, con el fin de tener una visión del producto y entrar a
priorizar sobre algunos aspectos.

5.2. REQUISITOS INFORMALES


Se desarrollará una aplicación móvil para la búsqueda y contacto de personal de
enfermería basado en geolocalización, el cual debe contar con:
 Un módulo de registro de usuarios y personal de enfermería que se encuentren
interesadas obtener o prestar servicios de enfermería.
 Un módulo para la calificación del personal que prestan su servicio, con el objeto
de crear un ranking de profesionales que les dé opciones a los usuarios respecto
a la prestación del servicio.
 Un componente móvil de notificaciones y Geo posicionamiento para obtener
información en tiempo real del personal de enfermería más cercano a la ubicación.
 Un sistema web que permita el almacenamiento y manejo de los datos ayudando
en el procesamiento y el almacenamiento de estos.

5.3. Descripciones de las funcionalidades: Según los requerimientos obtenidos


se buscó profundizar más en cada aspecto, tanto en equipo como el cliente,
obteniendo una mejor descripción de las funcionalidades, con el fin de tener las
Historias de usuario.

18
Tabla 1. REQUERIMIENTOS CANDIDATOS.

REQUISITO CANDIDATO DESCRIPCION


Registro de Usuario El usuario debe poder hacer el registro desde la aplicación Android,
elegir su usuario y contraseña.
Editar información El usuario debe poder editar su información personal en cualquier
momento.
Alertas La aplicación Android, debe mostrar una notificación al recibir un
nuevo mensaje o cuando se dé por finalizado un servicio.
Guardado de la información La aplicación debe realizar el guardado de la información en una
base de datos remota.
Seguridad La aplicación Android debe contar con un servicio de logeo o
autentificación de usuarios que permita conectar solo en un
dispositivo a cada usuario.
Realizar Consultas El usuario debe poder realizar la consulta de sus servicios por
medio de la aplicación Android o por medio del acceso web.
Realizar Estadísticas La aplicación debe permitir la calificación de un servicio por medio
de la aplicación Android.
Ranking de usuarios La plataforma debe permitir generar un ranking para que los
usuarios sepan la calidad de servicio que contrataran.
Geo posicionamiento La aplicación móvil deberá contar con un componente móvil de
notificaciones y Geo posicionamiento para obtener información en
tiempo real del personal de enfermería más cercano a la ubicación.

5.4. Definición de actores


Tabla 2, actores principales del sistema
ROLES Descripción
Administrador Sera el rol que tenga la capacidad de realizar
cualquier operación en la plataforma como ver
los perfiles de los demás usuarios, gestionar
sus servicios, gestionar usuarios y permisos de
estos, bloquear accesos y responder a
peticiones específicas de los usuarios.
Usuario persona Sera el rol de un usuario común que desea
contactar a un prestador de servicios por medio
de la plataforma.
Usuario prestador de servicio Sera el rol de los prestadores de servicios de
enfermería que tendrán la capacidad de
agendar eventos, comenzar servicios,

19
terminarlos y actualizar su documentación
correspondiente.

5.5. HISTORIAS DE USUARIO


En esta parte del proyecto se decidió usar un solo formato para realizar las historias
de usuario, se tuvieron en cuenta los requerimientos del proyecto y el grupo de
trabajo

Tabla 3, Historias de usuario

Necesito buscar a usuarios Con la finalidad de poner en contacto a


Como usuario que presten servicios los usuarios particulares con los Seccion de busqueda
1 1
particular relacionados con profesionales registrados en la de personal
enfermeria plataforma

Con la finalidad de permitir a los usuarios


como usuario Necesito registrarme en a tener un contacto rapido y Seccion de registro de
2 1
perticular plataforma personalizados con el personal que nuevos usuarios
encuentra.

como usuario Olvido contraseña de


1
particular acceso
Necesito reestablecer mi Con la finalidad de dar acceso a usuarios
3
contraseña que hayan olvidado sus datos de acceso
Olvido usuario Olvido usuario de
2
de acceso acceso

Con la finalidad de dar diferentes


Necesito configurar los Seccion de
Como funcionalidades a los tipos de usuario
4 roles de los usuarios que 1 asignacion de rol para
administrador que se encuentran registrados en la
acceden a la plataforma los usuarios.
plataforma.

Como usuario Con el objetivo de permitir a los usuarios


1 Usuario particulas
particular editar sus datos personales

5 Necesito editar mi perfil


Con el objetivo de permitir a los usuarios
Usuario
editar sus datos personales y los Usuario prestador de
prestador de 2
documentos necesarios para prestar sus servicios
servicios
servicios de enfermero

Con el objetivo de permitir a un usuario


Seccion de
Como usuario Necesito contactar a un particular ver las credenciales que
6 1 informacion de
particular prestador de servicio acreditan a un prestador de servicios
usuarios
como tal.

Con la finalidad de compartir la ubicación


Necesito poder almacenar
Como prestador de lugares recurrentes para que se Seccion de gestion de
7 mis ubicaciones para que 1
de servicios pueda localizar a un prestador de localizaciones.
me ubiquen
servicios.

20
Con el objetivo de poder gestionar los
Necesito poder almacenar
Como Prestador eventos con los usuarios particulares, Seccion de gestion de
8 eventos en fechas 1
de servicio organizandolos por fechas y colores evento
especificas
especificos

Con el objetivo de contactar a otros


Como usuario Necesito poder enviar Seccion de
9 usuarios para aclarar detalles frente a los 1
particular mensajes a otros usuarios mensajeria
servicios que se buscan contratar

Como usuario Ser usuario


1
particular administrador

ser usuario Necesito acceso a un Con la finalidad de dar acceso a un portal


10 2 ser usuario particular
particular portal unico acuerdo mi rol personalizado acuerdo el rol

Ser prestador de Ser prestador de


3
servicio servicio

Con la finalidad de depurar la plataforma


Como Necesito poder eliminar
11 de usuarios mal intencionados o 1 Ser administrador
administrador usuarios
inactivos

Buscando poder tener un control sobre


Como Necesito revisar usuarios
12 que usuarios ya estan en el sistema y 1 Ser administrador
administrador existentes
cuales no

Como usuario Necesito acceder a mi Buscando poder tener todos mis datos de
13 1 ser Usuario
particular perfil forma organizada y simple

Como prestador Necesito iniciar un servicio Buscando poder iniciar un servicio ser prestador de
14 1
de servicio con un usuario programado previamente. servicio

Buscando poder calificar a un prestador


Como prestador necesito poder calificar un de servicio para poder dar una
15 1 ser usuario
de servicio servicio retroalimentación y que otros usuarios
sepan el tipo de servicio que presta.

Buscando poder actualizar los


Como prestador Necesito gestionar mis Ser prestador de
16 documentos de mis certificaciones 1
de servicios documentos servicio
facilmente

Con la finalidad de que la búsqueda de


Como usuario Necesito filtrar mi
17 personal se realice de una forma más 1 ser usuario
particular búsqueda
precisa frente a lo que se necesita

Necesito contactar al
Con la finalidad de tener un contacto
Como usuario prestador que tiene mi
18 constante frente al servicio actual que se 1 ser usuario
particular servicio activo en este
tiene
momento

21
Con la finalidad de asegurar que los
Como Necesito establecer
19 datos se encuentren protegidos en caso 1 Ser prestador
Administrador estándares de seguridad
de cualquier incidente.

5.6. SPRINT PLANNING


En esta parte se busca organizar y estimar cuántas historias deben ir por sprint, cuanto
se tardarán y la prioridad de cada una. Según el Sprint Planning se evidencio que
serían 5 Sprint para desarrollar el producto y que historias irían en cada uno. Además,
a cada historia se le dio una prioridad y un tiempo estimado de desarrollo, con el cual
se podrá calcular el tiempo estimado de cada sprint.

Se dará por “terminada” una tarea cuando esta se encuentre completamente funcional
y no dependa de otros pendientes para que trabaje 100% de su funcionalidad.

Tabla 4, sprint 1
SPRINT 1
Para lograr completar la primera fase de los Sprints se tendrá en cuenta lo siguientes
elementos.
Historias asignadas: Login para usuarios, Restablecimiento de
contraseña, Registro de usuarios, Modulo
edición de datos.
Tiempo estimado: 10 días lunes a viernes.

Tabla 5, sprint 2
SPRINT 2
Para lograr completar la primera fase de los Sprints se tendrá en cuenta lo siguientes
elementos.
Historias asignadas: Eliminación de usuarios, Control total de
eventos en Calendario, Revisión de
usuarios existentes.
Tiempo estimado: 6 días lunes a viernes.

Tabla 6, sprint 3
SPRINT 3
Para lograr completar la primera fase de los Sprints se tendrá en cuenta lo siguientes
elementos.
Historias asignadas: Asignación de roles, Gestión de
documentos, gestión de ubicaciones,
Vista según roles, establecer estándares
seguridad.
Tiempo estimado: 8 días lunes a viernes.

Tabla 7, sprint 4
SPRINT 4
Para lograr completar la primera fase de los Sprints se tendrá en cuenta lo siguientes
elementos.

22
Historias asignadas: Buscador de personal, perfil de contacto,
Gestión de mensajería.
Tiempo estimado: 8 días lunes a viernes.

Tabla 8, sprint 5
SPRINT 5
Para lograr completar la primera fase de los Sprints se tendrá en cuenta lo siguientes
elementos.
Historias asignadas: Gestión de calificación, filtros de
búsqueda, Modulo de chat móvil, inicio
servicio.

Tiempo estimado: 10 días lunes a viernes.

5.7. DESARROLLO
A continuación, se enumeran los procesos de desarrollo relacionados con Scrum.

5.8. Sprint 1
Para este Sprint se atendieron las historias de usuario 13,2,3 y 5, con ellas se construyó la
pila del Sprint que conformara la primera parte de la aplicación al final de esta iteración como
se observa a continuación.

Tabla 9, BACKLOG 1
BACKLOG ID: 01
Id Historia
Tarea Prioridad Esfuerzo
de usuario
Definición de la vista que servirá de guía visual
para que el usuario entienda con qué tipo de datos
1 10
debe contar para poder registrarse en la
plataforma.
Creación del controlador que recibe la información
2 1 20
realizando las validaciones pertinentes.
Creación del módulo de almacenamiento que
permitirá agregar al sistema los datos
1 20
proporcionados por el usuario después de ser
validados.
Definición de la vista que servirá de guía visual
para que el usuario pueda ingresar sus datos de 2 10
restablecimiento de contraseña.
Creación del controlador que recibe la información
3 2 20
realizando las validaciones pertinentes.
Creación del módulo de actualización, donde con
los datos proporcionados se podrá reestablecer la 2 20
contraseña olvidada por una nueva.
Definición de la vista que servirá de guía visual
para que el usuario entienda con qué tipo de datos
5 1 10
debe contar para poder actualizar su perfil en la
plataforma.

23
Creación del controlador que recibe la información
1 20
realizando las validaciones pertinentes.
Creación del módulo de almacenamiento que
permitirá actualizar en el sistema los datos
1 20
proporcionados por el usuario después de ser
validados.
Definición de la vista que servirá de guía visual
para que el usuario entienda con qué tipo de datos
1 10
debe contar para poder acceder su perfil en la
plataforma.
13
Creación del controlador que recibe la información
1 20
realizando las validaciones pertinentes.
Creación del módulo de almacenamiento que
1 20
permitirá acceder al sistema.

5.8.1. Objetivos del SPRINT


o Realizar un levantamiento objetivo de la información que permita el correcto
funcionamiento del sistema.
o Crear un módulo de registro que sea intuitivo para el usuario.
o Permitir al usuario acceder al sistema con los datos cargados previamente.
o Crear un sistema intuitivo y simple para el restablecimiento de la
contraseña.
o Crear un sistema intuitivo y simple para el restablecimiento de la
contraseña.

5.8.2. Funcionamiento
A continuación, se presenta el diagrama de contexto el cual explica la funcionalidad real de la
aplicación en esta fase, seguido de la explicación del funcionamiento de los puntos planteados
en esta.

24
Figura 1, Diagrama de contexto Sprint 1

 Registro: Cuando se de click en el boton de registro, El sistema mostrara un


formulario de registro, con campos validados frente a formato y cantidad de
caracteres, todo esto de forma muy intuitiva para los usuarios.
 Login: Desde la vista principal se dara click en el boton Login, Si las credenciales
son correctas se dara acceso a la plataforma y a la informacion dependiendo del
perfil de usuario.
 Reestablecer contraseña: cuando se oprima link "¿olvido su contraseña?"
contraseña el sistema solicitara correo electronico registrado en el usuario donde
se le enviara un link para reestablecer la contraseña, despues del cambio se
redirecciona al portal home.
 Editar perfil: Desde el panel de administracion se dara click sobre el icono de
perfil, se desplegara la opcion de editar perfil. Se vera un formulario donde
apareceran datos como nombre, telefono, correo electronico, contraseña ademas
de la foto de perfil.

5.8.3. Implementación
Para este Spring se realizó el desarrollo completo de sus actividades y como resultado se
encuentran las siguientes vistas.

25
Pantalla de Login con respectivas validaciones y
complementos para hacer más intuitivo su uso.

Figura 2. Pantalla Login Aplicación

Pantalla de registro con respectivas validaciones


y complementos para hacer más intuitivo su uso.

Figura 3, Pantalla registro App.

26
Pantalla de registro con respectivas validaciones
y complementos para hacer más intuitivo su uso.

Figura 4, Pantalla Edición App.

Pantalla de registro con respectivas


validaciones y complementos para hacer
más intuitivo su uso.

Figura 5, Pantalla login plataforma web

Pantalla de registro con respectivas


validaciones y complementos para hacer
más intuitivo su uso.

Figura 6, Pantalla Registro plataforma web

27
Pantalla de registro con respectivas
validaciones y complementos para hacer
más intuitivo su uso.

Figura 7, Pantalla reestablecer contraseña

5.9. Sprint 2
Para este Sprint se atendieron las historias de usuario 11,8 y 12, con ellas se construyó la
pila del Sprint que conformara la primera parte de la aplicación al final de esta iteración como
se observa a continuación.

Tabla 10, BACKLOG 2


BACKLOG ID: 02
Id Historia
Tarea Prioridad Esfuerzo
de usuario
Definición de la vista que servirá de guía visual
para que el usuario entienda con qué tipo de datos 1 20
se están obteniendo.
Creación del controlador que recibe la información
12 1 10
realizando las validaciones pertinentes.
Creación del módulo de listado que permitirá al
sistema obtener todos los datos frente a todos los 1 20
usuarios registrados hasta el momento
Definición de la vista que servirá de guía visual
para que el usuario entienda la implicación que 1 10
tiene esta opción de eliminar.
Creación del controlador que recibe la información
11 1 20
realizando las validaciones pertinentes.
Creación del módulo de eliminación que permitirá
al sistema eliminar usuarios específicos de forma 1 20
sencilla.
Definición de la vista que servirá de guía visual
para que el usuario entienda con qué tipo de datos
1 10
debe contar para poder agregar o actualizar una
fecha de su calendario
Creación del controlador que recibe la información
8 1 20
realizando las validaciones pertinentes.
Creación del módulo de almacenamiento que
permitirá agregar o actualizar en el sistema las
1 20
fechas proporcionadas por el usuario después de
ser validados.

28
5.9.1. Objetivos
o Crear una vista donde se listen todos los usuarios registrados en el sistema.
o Permitir al usuario gestionar eventos de sus servicios programados.
o Crear una vista que sea intuitiva para el usuario en el momento de cargar
sus documentos.
o Crear sistema de eliminación de usuarios para poder realizar depuraciones
de estos cuando sean necesarias.

5.9.2. Diagrama contexto


A continuación, se presenta el diagrama de contexto el cual explica la funcionalidad real de la
aplicación en esta fase, seguido de la explicación del funcionamiento de los puntos planteados
en esta.

Figura 8, Diagrama contexto Sprint 2

 Listar usuarios: Desde el panel de administración se dará click sobre el botón


"Usuarios" se mostrará una vista donde se podrán ver todos los usuarios
registrados con su respectivo perfil, correo y las opciones, "Editar" y "Eliminar".
 Eliminación: Desde la vista principal de los usuarios se dará click en el Botón
"Eliminar" El sistema arrojara un aviso donde se pregunta si está seguro de
eliminar este usuario, al responder que si el sistema lo eliminara de los usuarios.
 Eventos calendario: Desde el panel de administración dará click sobre el botón
"Mis eventos" Se desplegará una vista donde se podrá ver un formulario y un
calendario donde se podrá visualizar los eventos previamente programados.

29
5.9.3. Implementación
Para este Spring se realizó el desarrollo completo de sus actividades y como resultado se
encuentran las siguientes vistas.

Vista listado de usuarios, con


opciones de eliminación, edición
o gestión de ubicaciones para
cada uno.

Figura 9, Pantalla usuarios

Vista mensaje de confirmación


de eliminación de usuario.

Figura 10, mensaje confirmar eliminación

Vista de calendario con eventos


cargados previamente que se
muestran y permiten la gestión
de estos desde la plataforma
web.

Figura 11, pantalla calendario de eventos cargados.

30
Vista de calendario con eventos
cargados previamente que se
muestran y permiten la gestión
de estos desde la Aplicación
web.

Figura 12, pantalla APP calendario de eventos cargados

5.10. Sprint 3
Para este Sprint se atendieron las historias de usuario 4,16,7 y 10, con ellas se construyó la
pila del Sprint que conformara la primera parte de la aplicación al final de esta iteración como
se observa a continuación.

Tabla 11, BACKLOG 3


BACKLOG ID: 03
Id Historia
Tarea Prioridad Esfuerzo
de usuario
Definición de la vista que servirá de guía visual
para que el usuario que cantidad y tipos de 1 20
documentos podrá cargar al sistema.
16 Creación del controlador que recibe la información
1 10
realizando las validaciones pertinentes.
Creación del módulo de gestión para los
1 20
documentos cargados por el usuario.
Definición de la vista que servirá de guía visual
para que el usuario pueda agregar sus ubicaciones 1 10
recurrentes.
7
Creación del controlador que recibe la información
1 20
realizando las validaciones pertinentes.
Creación del módulo de gestión de ubicaciones. 1 20
Definición de vista que ayudara a la asignación de
roles para los usuarios registrados previamente en 2 10
el sistema.
4 Creación del controlador que recibe la información
2 20
realizando las validaciones pertinentes.
Creación del controlador de asignación de roles a
2 20
los usuarios registrados en la plataforma
Definición de vistas y funciones a las que se podrá
10 2 10
acceder dependiendo del rol asignado.

31
Creación del controlador que recibe la información
2 20
realizando las validaciones pertinentes.
Creación de filtro que dará acceso a las funciones
dependiendo del rol con el que se encuentre 2 20
logueado.
Análisis de los estándares necesarios para el
2 20
almacenamiento de la información
18
Implementación de sistema de encriptación
2 20
seleccionado con base en las necesidades.

5.10.1. Objetivos
o Definir el modelo que se tendrá para la asignación de roles.
o Permitir al usuario gestiona las ubicaciones para poder realizar filtros con
base a estos datos.
o Permitir al usuario gestiona los documentos que garantizan sus
conocimientos y experiencia a la plataforma.
o Definir funciones y acciones que tendrán los roles definidos previamente.
o Definir el modelo de seguridad que se utilizara para el procesamiento de la
información.

5.10.2. Diagrama contexto


A continuación, se presenta el diagrama de contexto el cual explica la funcionalidad real de la
aplicación en esta fase, seguido de la explicación del funcionamiento de los puntos planteados
en esta.

Figura 13, Diagrama contexto Sprint 3

32
 Asignación de roles: Desde el panel de administración se tendrá acceso a todos
los usuarios con sus respectivos datos, desde aquí se podrá hacer la actualización
y control de los roles que estos presentan.
 Gestión ubicaciones: Desde el panel de administración se dará click sobre un
botón que dirá "Localización", Se desplegará una vista donde se encontrará un
mapa que permitirá ubicar un marcador en las ubicaciones que quisiera guardar,
al igual que guardarlas con un nombre o un identificador.
 Gestión de documentos: Desde la vista donde se seleccionará “Mi Perfil” Se
desplegará una vista donde se podrán cargar los documentos que se desean.
 Vistas según perfil:
o En caso que el usuario posea permisos y rol de administración cuando sea
re direccionado al panel Administrativo después de ingresar usuario y
contraseña el usuario accederá al home con un panel de control de
administración completa del sistema
o En caso que el usuario sea usuario particular cuando sea re direccionado
al panel Administrativo después de ingresar usuario y contraseña el usuario
accederá al home con un panel de control básico de solo lectura y edición
sobre su propio perfil.
o En caso que el usuario sea Prestador de servicio cuando sea re
direccionado al panel Administrativo después de ingresar usuario y
contraseña el usuario accederá al home con un panel de control de lectura
sobre información general de lugares, eventos y mensajes
 Modelos de seguridad candidatos:
Frente a los modelos de almacenamiento de datos se plantea varios modelos de
encriptación de los datos de los usuarios buscando siempre tener un modelo
seguro pero que no comprometa el modelo de funcionamiento de la plataforma, los
sistemas de encriptación candidatos son

Tabla 12, Compartido modelos encriptación


Modelo Descripción
Es un algoritmo que proporciona un código asociado a un archivo o un
texto concretos. De esta forma, a la hora de descargar un determinado
MD5
archivo, como puede ser un instalador, el código generado por el
algoritmo, también llamado hash, viene “unido” al archivo. 25
Se usa por defecto en sistemas OpenBSD y algunas distribuciones Linux
y SUSE. Lleva incorporado un valor llamado salt, que es un fragmento
aleatorio que se usará para generar el hash asociado a la password, y
se guardará junto con ella en la base de datos. Así se evita que dos
Bcrypt passwords iguales generen el mismo hash y los problemas que ello
conlleva, por ejemplo, ataque por fuerza bruta a todas las passwords del
sistema a la vez. Otro ataque relacionado es el de Rainbow table (tabla
arcoíris), que son tablas de asociaciones entre textos y su hash
asociado, para evitar su cálculo y acelerar la búsqueda de la password.

25 Ivan Martinez, 28/09/2013 https://rootear.com/seguridad/md5-como-funciona-usos

33
Con el salt, se añade un grado de complejidad que evita que el hash
asociado a una password sea único.26
Estas funciones permiten encriptar y desencriptar datos usando el
algoritmo oficial AES (Advanced Encryption Standard), conocido
previamente como Rijndael. Se usa una codificación con una clave de
128 bits de longitud, pero se puede extender a 256 modificando la fuente.
Se ha seleccionado 128 bits porque es mucho más rápido y
normalmente es proporciona suficiente seguridad. Los argumentos de
AES_ENCRYPT
entrada pueden ser de cualquier longitud. Si cualquier argumento es
NULL, el resultado de la función es también NULL.
Si AES_DECRYPT() detecta datos inválidos o un relleno incorrecto,
devuelve NULL. Además, es posible que AES_DECRYPT() devuelva
una valor no NULL (seguramente basura) si los datos de entrada o la
clave son inválidos. Se pueden usar la funciones AES para almacenar
datos en un formato encriptado modificando las consultas.27

Después del análisis de estos datos se determinó que para el objetivo principal de la aplicación
se utilizaran los modelos Bcrypt para la seguridad frente las contraseñas y los documentos
almacenados en la plataforma y AES_ENCRYPT para el almacenamiento de las coordenadas
de los prestadores de servicio, debido a que con este modelo es más práctico y dinámico las
consultas y filtros necesarios para el sistema.

5.10.3. Implementación
Para este Spring se realizó el desarrollo completo de sus actividades y como resultado se
encuentran las siguientes vistas.

Vista del administrador que


permite editar datos y roles
asignados a un usuario.

Figura 14, Pantalla edición de usuario para asignación de roles.

26 David vicente 9/03/2017 https://solidgeargroup.com/password-nodejs-mongodb-bcrypt?lang=es


27 Salvador pozo Coronado 10/12/2003 http://mysql.conclase.net/curso/?sqlfun=AES_ENCRYPT

34
Formulario de gestión de
documentos que será visible
solo por prestadores de
servicios.

Figura 15, Formulario de gestión de documentos

Vista para la gestión de


ubicaciones accesible solo
para los usuarios
administradores o prestadores
de servicios.

Figura 16, Pantalla de gestion de ubicaciones.

Vista de gestión de
ubicaciones desde la APP.

Figura 17, Pantalla gestion de ubicaciones APP.

35
Vista eliminación de
ubicaciones almacenadas
previamente.

Figura 18, Pantalla gestion de ubicaciones APP.

Figura 19, Ruta de documentos encriptada

Vista de datos almacenados en


la base de datos después del
Figura 20, Campo password encriptado
procesamiento para su
encriptación.

Figura 21, Coordenadas encriptadas

5.11. Sprint 4
Para este Sprint se atendieron las historias de usuario 1,6 y 9 con ellas se construyó la pila
del Sprint que conformara la primera parte de la aplicación al final de esta iteración como se
observa a continuación.
Tabla 12, BACKLOG 4
BACKLOG ID: 04
Id Historia
Tarea Prioridad Esfuerzo
de usuario
Definición de la vista que servirá de guía visual
para que el usuario pueda búsquedas en lugares 1 20
específicos de la ciudad.
Creación del controlador que recibe la información
1 1 10
realizando las validaciones pertinentes.
Creación del modelo que se utilizara en la
plataforma y en la aplicación para la búsqueda de 1 20
personal de enfermería.

36
Definición de la vista que servirá de guía visual
para que el usuario pueda contactar a un prestador 1 10
de servicio con el que se encuentre interesado.
6 Creación del controlador que recibe la información
1 20
realizando las validaciones pertinentes.
Creación de la funcionalidad que permite al usuario
1 20
ver el perfil de los usuarios que sean de su interés.
Definición de la vista que ayudara al usuario a
ponerse en contacto con un usuario especifico que 2 10
sea prestador de servicios de enfermería.
Creación del controlador que recibe la información
9 2 20
realizando las validaciones pertinentes.
Creación de vista con funcionalidad frente a los
mensajes que se pudieran recibir o enviar por parte 2 20
de otro usuario de la plataforma.

5.11.1. Objetivos
 Diseñar el modelo de filtros que tendrá el sistema para la búsqueda del personal
que se requiere.
 Crear el sistema de mensajería para el contacto entre el usuario prestador y el
usuario particular.
 Crear la vista con su respectiva funcionalidad de la sección de ver perfil y posterior
contacto entre usuarios.

5.11.2. DIAGRAMA
A continuación, se presenta el diagrama de contexto el cual explica la funcionalidad real de la
aplicación en esta fase, seguido de la explicación del funcionamiento de los puntos planteados
en esta.

37
Figura 19, Sprint 4

 Búsqueda: Cuando se seleccione el radio de búsqueda y el punto central de la


misma el sistema filtrara los usuarios registrados con sus posiciones y los mostrara
respecto a su cercanía
 Perfil contacto: Desde el mapa de búsqueda el usuario podrá clicar sobre el
marcador de un prestador de servicios que se encuentre cerca al área
seleccionada se mostrara una vista donde se verán los datos principales del
prestador, sus datos de contacto, su ranking de calificaciones y sus credenciales
que garantizan su conocimiento sobre el tema relacionado.
 Enviar mensajes: Desde el panel lateral se dará click sobre el botón de
"Mensajes" se desplegará una vista donde se podrá ver un historial de usuarios
contactados.

5.11.3. Implementación
Para este Spring se realizó el desarrollo completo de sus actividades y como resultado se
encuentran las siguientes vistas.

38
Vista de búsqueda para los usuarios,
filtrando por radio de búsqueda.

Figura 20, Pantalla de búsqueda.

Vista de la ficha informativa del usuario


que se desea contactar

Figura 21, vista tarjeta presentación.

Vista para ver el historial completo del


usuario y realizar un posible contacto.

Figura 22, pantalla informacion usuario.

Vista de formato para realizar el primer


mensaje de contacto.

Figura 23, Pantalla envio de mensaje contacto.


Vista de búsqueda para los usuarios,
filtrando por radio de búsqueda.

39
Figura 24, Pantalla busqueda APP.

Vista de la ficha informativa del usuario


que se desea contactar

Figura 25, Pantalla tarjeta presentaicon APP.

Vista para ver el historial completo del


usuario y realizar un posible contacto.

Figura 26, Pantalla informacion de usuario.

40
Vista de mensajería para conectarse
desde la APP.

Figura 27, Pantalla de mensajeria.

5.12. Sprint 5
Para este Sprint se atendieron las historias de usuario 14,15,17 y 18 con ellas se construyó
la pila del Sprint que conformara la primera parte de la aplicación al final de esta iteración
como se observa a continuación.
Tabla 13, BACKLOG 5
BACKLOG ID: 05
Id Historia
Tarea Prioridad Esfuerzo
de usuario
Definición de la vista que servirá de guía visual
para que el usuario prestador de servicio puede 1 20
iniciar un servicio con un usuario.
14 Creación del controlador que recibe la información
1 10
realizando las validaciones pertinentes.
Implementación del sistema que guardara un
1 20
registro el servicio Iniciado además de sus actores.
Definición de la vista que servirá de guía visual
para que el usuario al finalizar el servicio pueda 1 10
realizar una calificación del servicio prestado.
Creación del controlador que recibe la información
1 20
15 realizando las validaciones pertinentes.
Creación de la funcionalidad que permitirá al
sistema darle un ranking a los usuarios que
1 20
prestaron sus servicios, ayudando a auto gestionar
la plataforma.
Definición de la vista que servirá de guía visual
para que el usuario pueda realizar filtros de sus 2 10
17 búsquedas.
Creación del controlador que recibe la información
2 20
realizando las validaciones pertinentes.

41
Creación del modelo de filtros que se utilizara en la
plataforma y en la aplicación para la búsqueda de 2 20
personal de enfermería.
Definición de la vista que ayudara al usuario a
ponerse en contacto con el usuario especifico que 2 10
este atendiendo su servicio en ese momento.
Creación del controlador que recibe la información
18 2 20
realizando las validaciones pertinentes.
Creación de vista con funcionalidad frente a los
mensajes que se pudieran recibir o enviar por parte 2 20
del usuario que está atendiendo un servicio.

5.12.1. Objetivos
 Diseñar el modelo de filtros que tendrá el sistema para la búsqueda del personal
que se requiere.
 Definir el sistema de calificación que usara el sistema para lograr un ranking de
usuarios.
 Crear el modelo de iniciación de un servicio específico agendado por un usuario.
 Implementar el sistema de chat que permitirá a los usuarios estar en contacto en
tiempo real frente a un servicio en curso.

5.12.2. Diagrama y descripción


A continuación, se presenta el diagrama de contexto el cual explica la funcionalidad real de la
aplicación en esta fase, seguido de la explicación del funcionamiento de los puntos planteados
en esta.

Figura 28, Diagrama contexto Sprint 5

42
 Calificación: Al finalizar el servicio se recibirá una notificación que solicitará una
calificación en una nueva vista. El sistema almacenara la calificación asignada y
la ponderara con el prestador de servicio ligado a ese servicio específico.
 Filtros: Desde la vista de búsqueda de personal se podrá filtrar el tipo de servicio
que se busca se realizará la búsqueda con base a los parámetros establecidos.
 Chat: Desde la sección de información del servicio se dará en el botón Chat. Se
desplegará una vista de mensajes que solo existirá mientras exista el servicio.
 Iniciar Servicio: Desde el calendario donde se encuentra agendado el servicio se
desplegará un botón que dirá Iniciar servicio el sistema notificara al usuario
particular de que su servicio ya fue iniciado.

5.12.3. Implementación
Para este Spring e realizo el desarrollo completo de sus actividades y como resultado
encontramos las siguientes vistas.

Vista de servicio con los datos


agendados previamente con el botón de
inicio de servicio

Figura 29, Pantalla de servicio.

Vista de la notificación que se recibe al


momento de recibir un mensaje nuevo.

Figura 30, vista notificación recibida por mensaje nuevo.

43
pantalla mensajes a partir de la
notificacion.

Figura 31, Vista de mensajería.

PopUp de calificacion que se genera


despues de finalizar un servicio.

Figura 32, formulario de calificacion.

5.13. IMPLEMENTACIÓN HERRAMIENTAS DE DESARROLLO


Para el desarrollo del aplicativo se plantea en dos entornos el primero sea la plataforma web
que ayudara en el almacenamiento y la gestión de datos de los usuarios registrados, el
segundo será la aplicación móvil que lograra conectarse con este web service y que mostrara
y ayudara a gestionar los datos cargados previamente.

5.13.1. Plataforma web


Para poder trabajar correctamente frente al desarrollo de la plataforma web se utilizará
un framework de desarrollo llamado Laravel. Para poder realizar la instalación y
configuración de este lo primero que se debe hacer es realizar la instalación de un
gestor de dependencias especial para PHP. Para poder realizar esta instalación se
debe dirigir a la página web https://getcomposer.org/ desde aquí entramos a la sección
Download.(Figura 33)

44
Figura 33, plataforma Composer

Seguido a esto, depende de cada sistema operativo la sección de pasos para la configuración
de composer. Después de instalado Composer, se debe acceder a la terminal de comandos
del equipo y escribir:

Composer créate-project laravel/laravel “nombre_proyecto”

Después de esto composer comenzara a realizar una serie de descargas de paquetes que
conforman el framework Laravel, al terminar la descarga se verá un mensaje de instalación
completa y un Key de seguridad.

Laravel trabaja con una arquitectura de desarrollo de MVC, A continuación, se muestra el


esquema de carpetas y archivos que maneja este framework. (Figura 34)

45
Figura 34, esquema carpetas laravel

En laravel se trabaja con una herramienta propia de él la llamada artisan la cual ayuda a
automatizar procesos, como la creación de modelos, controladores, migraciones, etc. Para
este desarrollo se trabajará solo con algunas de estas carpetas que serán las que nos
ayudarán a que sea más fácil la navegación y con las cuales se explicarán algunos comandos
de laravel

Modelos: para crear un modelo en laravel desde la consola se debe posicionar en la raíz del
proyecto y digitar en la consola:

Php artisan make:model “nombre_modelo”

De esta manera se creará un archivo dentro de la carpeta app el cual tendrá por nombre el
que seleccionamos al crearlo. (Figura 35)

46
Figura 35, Esquema carpetas laravel en la ruta App/

Para este sistema se configuraron los modelos que se ven en la imagen, dentro de los
modelos se debe especificar a qué tabla de la base de datos va a hacer referencia y si se
desea crear algunas funciones propias de ese modelo. (Figura 36)

Figura 36, Esquema de modelo Laravel

Vista: en laravel las vistas se pueden trabajar de varias formas, pero la más recomendada es
trabajar con Blade, un motor de creación de plantillas que viene incorporado con laravel, estas
se almacenan en la carpeta resources > views. (Figura 37)

47
Figura 37, Esquema de carpetas laravel en la ruta Resource/

Controladores: Para este sistema los controladores son parte vital del funcionamiento pues
son quienes hacen el puente entre la información proporcionada desde la vista y el modelo
que administra las bases de datos, para crear un controlador se debe usar nuevamente artisan
desde la terminal de comandos.

Php artisan make:controller “nombre_controlador” –resource

La palabra –resource que se escribe al final del comando es opcional, pues sin ella no se crea
ningún método propio de los controladores, mientras que si se escribe se crearan los métodos,
index, créate, store, edit, update y delete los cuales son los principales pilares de cualquier
controlador. Al crear un controlador se encontrará en la ruta App/Http/Controllers (Figura 38)

48
Figura 38, Esquema de archivos controladores

Rutas: En el sistema es importante la navegación entre vistas y funcionalidades para los


usuarios por esto, laravel contiene una sección específica para las rutas. En la carpeta routes
encontraremos 4 archivos. (Figura 39)

Figura 39, Esquema archivos carpeta Routes/

Para este proyecto se centrará solo en el archivo Api y en el archivo web.

En el archivo web se podrá configurar toda la navegación concerniente a la navegación web,


dando la facilidad de trabajar con cualquier método que se necesite POST, GET, PUT,

49
DELETE o si se desea se puede trabajar con el atributo Resource el cual permitirá que,
dependiendo del método definido en el controlador, el framework identificara que método de
transferencia es el indicado para cada método. (Figura 40)

Figura 40, Modelo de configuración archivo web.php en routes

El archivo api cuenta con el mismo esquema, con la diferencia que a todas las rutas cargadas
en este archivo se le antecede la palabra “Api”, esto para poder segmentar la plataforma en
las secciones que se necesiten. (Figura 41)

50
Figura 41, Modelo de configuración archivo Apli.php en routes

Para este desarrollo se planteó el siguiente esquema para la base de datos

51
Figura 42, Esquema base de datos relacional

52
6. PRUEBAS UNITARIAS Y DE INTEGRACIÓN.
Para conocer el impacto que pudo tener el sistema frente a los usuarios prestadores de
servicios como los usuarios particulares, se realizó un test con 4 personas de cada rol,
entregándoles la aplicación y explicando la funcionalidad básica del aplicativo.

Como resultado se obtuvo que todas las funcionalidades trabajan de forma correcta, se
presentaron solicitudes que se tendrán en cuenta para la siguiente versión por la implicación
que trae por cuestiones de licencias y costos de desarrollo, entre estas se encuentra:

 Poder realizar la búsqueda de direcciones desde la aplicación: Este requerimiento


presenta varios inconvenientes debido a las políticas de uso de google y google
places
 Poder realizar llamadas desde el aplicativo: en este caso solo 2 de los 6
participantes mencionaron esto, pero argumentaron que era solo por el hecho de
que no estaban acostumbrados a chatear.
 Poder subir los documentos de certificaciones desde la aplicación: Esto se tenía
planteado desde un principio, pero para los prestadores era un tanto incomodo por
el hecho de que no todos los documentos tenían el mismo formato ni la misma
calidad, algunos pesaban más que otros, por esto se dejó la carga de documentos
solo desde la plataforma web, siendo una forma más estable de subir documentos
pesados.

Se obtuvo una buena aceptación por parte de los prestadores de servicio los cuales quedaron
muy complacidos con el proyecto, sin embargo, es necesario realizar pruebas con un volumen
de usuarios más grande, buscando en esto una retroalimentación que pueda ayudar a
encontrar fallos o a tener mejoras continuas para el sistema.
Después de esto se revisó cada una de las historias de usuario validando su funcionalidad.

Tabla 14, Revisión historia de usuario 1

REGISTRO DE USUARIO

ID: 1 USUARIO: Usuario

PRIORIDAD: Alta RIESGO EN DESARROLLO: Bajo

PUNTOS ESTIMADOS: 1 INTERACCIÓN ASIGNADA:1

PROGRAMADOR RESPONSABLE: Juan Camacho

DESCRIPCIÓN:
Necesito registrarme en la plataforma

VALIDACIÓN: El sistema mostrara un formulario de registro, con campos validados


frente a formato y cantidad de caracteres, todo esto de forma muy intuitiva para los
usuarios

53
Tabla 15, Revisión historia de usuario 2

búsqueda de personal

ID: 2 USUARIO: Usuario

PRIORIDAD: Alta RIESGO EN DESARROLLO: Bajo

PUNTOS ESTIMADOS: 3 INTERACCIÓN ASIGNADA:2

PROGRAMADOR RESPONSABLE: Juan Camacho

DESCRIPCIÓN:
Con la finalidad de poner en contacto a los usuarios particulares con los profesionales
registrados en la plataforma

VALIDACIÓN: Cuando se seleccione el radio de búsqueda y el punto central de la


misma el sistema filtrara los usuarios registrados con sus posiciones y los mostrara
respecto a su cercanía

Tabla 16, Revisión historia de usuario 3

reestablecer mi contraseña

ID: 3 USUARIO: Usuario

PRIORIDAD: Alta RIESGO EN DESARROLLO: Bajo

PUNTOS ESTIMADOS: 1 INTERACCIÓN ASIGNADA:1

PROGRAMADOR RESPONSABLE: Juan Camacho

DESCRIPCIÓN: Con la finalidad de dar acceso a usuarios que hayan olvidado sus
datos de acceso.

VALIDACIÓN: el sistema solicitara correo electrónico registrado en el usuario donde


se le enviara un link para reestablecer la contraseña, después del cambio se
redirección al portal home.

54
Tabla 17, Revisión historia de usuario 4

Roles de los usuarios que acceden a la plataforma

ID: 4 USUARIO: administrador

PRIORIDAD: Alta RIESGO EN DESARROLLO: Medio

PUNTOS ESTIMADOS: 3 INTERACCIÓN ASIGNADA:2

PROGRAMADOR RESPONSABLE: Juan Camacho

DESCRIPCIÓN: Con la finalidad de dar diferentes funcionalidades a los tipos de


usuario que se encuentran registrados en la plataforma..

VALIDACIÓN: Desde el panel de administración se tendrá acceso a todos los


usuarios con sus respectivos datos, desde aquí se podrá hacer la actualización y
control de los roles que estos presentan.
Tabla 18, Revisión historia de usuario 5

Editar perfil usuario

ID: 5 USUARIO: Usuario

PRIORIDAD: Alta RIESGO EN DESARROLLO: bajo

PUNTOS ESTIMADOS: 2 INTERACCIÓN ASIGNADA:2

PROGRAMADOR RESPONSABLE: Juan Camacho

DESCRIPCIÓN: Con el objetivo de permitir a los usuarios editar sus datos personales
y los documentos necesarios para prestar sus servicios de enfermero.

VALIDACIÓN: Se verá un formulario donde aparecerán datos como Nombre,


teléfono, correo electrónico, contraseña además de la foto de perfil.

55
Tabla 19, Revisión historia de usuario 6

Editar perfil prestador de servicio

ID: 6 USUARIO: Prestador de servicio

PRIORIDAD: Alta RIESGO EN DESARROLLO: bajo

PUNTOS ESTIMADOS: 2 INTERACCIÓN ASIGNADA:2

PROGRAMADOR RESPONSABLE: Juan Camacho

DESCRIPCIÓN: En caso de que el usuario requiera actualizar datos personales,


documentos, fotos de perfil, Etc.

VALIDACIÓN: Se verá un formulario donde aparecerán datos como Nombre,


teléfono, correo electrónico, contraseña, foto de perfil además de los documentos que
acreditan que tiene los conocimientos necesarios para prestar sus servicios como
enfermeros
Tabla 20, Revisión historia de usuario 7

contactar a un prestador de servicio

ID: 7 USUARIO: Usuario

PRIORIDAD: Alta RIESGO EN DESARROLLO: Medio

PUNTOS ESTIMADOS: 2 INTERACCIÓN ASIGNADA:2

PROGRAMADOR RESPONSABLE: Juan Camacho

DESCRIPCIÓN: Con el objetivo de permitir a un usuario particular ver las credenciales


que acreditan a un prestador de servicios como tal.

VALIDACIÓN: Se mostrara una vista donde se verán los datos principales del
prestador, sus datos de contacto, su ranking de calificaciones y sus credenciales que
garantizan su conocimiento sobre el tema relacionado.

56
Tabla 21, Revisión historia de usuario 8

almacenar mis ubicaciones para que me ubiquen

ID: 8 USUARIO: Prestador de servicio

PRIORIDAD: Alta RIESGO EN DESARROLLO: Medio

PUNTOS ESTIMADOS: 3 INTERACCIÓN ASIGNADA:1

PROGRAMADOR RESPONSABLE: Juan Camacho

DESCRIPCIÓN: Con la finalidad de compartir la ubicación de lugares recurrentes para


que se pueda localizar a un prestador de servicios.

VALIDACIÓN: Se desplegara una vista donde se encontrara un mapa que permitirá


ubicar un marcador en las ubicaciones que quisiera guardar, al igual que guardarlas
con un nombre o un identificador.
Tabla 22, Revisión historia de usuario 9

almacenar eventos en fechas especificas

ID: 9 USUARIO: Prestador de servicio

PRIORIDAD: Alta RIESGO EN DESARROLLO: Medio

PUNTOS ESTIMADOS: 3 INTERACCIÓN ASIGNADA:1

PROGRAMADOR RESPONSABLE: Juan Camacho

DESCRIPCIÓN: Con el objetivo de poder gestionar los eventos con los usuarios
particulares, organizándolos por fechas y colores específicos

VALIDACIÓN: Se desplegara una vista donde se podrá ver un formulario y un


calendario donde se podrá visualizar los eventos previamente programados.
Tabla 23, Revisión historia de usuario 10

poder contactarme con otros usuarios

ID: 10 USUARIO: Usuario

PRIORIDAD: Baja RIESGO EN DESARROLLO: Bajo

PUNTOS ESTIMADOS: 1 INTERACCIÓN ASIGNADA:1

PROGRAMADOR RESPONSABLE: Juan Camacho

DESCRIPCIÓN: Con el objetivo de contactar a otros usuarios para aclarar detalles


frente a los servicios que se buscan contratar.

VALIDACIÓN: Se desplegara una vista donde se podrá ver un historial de usuarios


contactados.

57
Tabla 24, Revisión historia de usuario 11

poder actualizar mi foto de perfil

ID: 11 USUARIO: Usuario

PRIORIDAD: Baja RIESGO EN DESARROLLO: Bajo

PUNTOS ESTIMADOS: 1 INTERACCIÓN ASIGNADA:1

PROGRAMADOR RESPONSABLE: Juan Camacho

DESCRIPCIÓN: Con la finalidad de subir fotos de perfil al servidor dándole mayor


pertenencia sobre la plataforma.

VALIDACIÓN: Se mostrara la vista donde se seleccionará la fotografía deseada para


subirla al servidor

Tabla 25, Revisión historia de usuario 12

acceso a un portal de acuerdo mi rol

ID: 12 USUARIO: Administrador

PRIORIDAD: Alta RIESGO EN DESARROLLO: Alto

PUNTOS ESTIMADOS: 2 INTERACCIÓN ASIGNADA:2

PROGRAMADOR RESPONSABLE: Juan Camacho

DESCRIPCIÓN: Con la finalidad de dar acceso a un portal personalizado acuerdo el


rol

VALIDACIÓN: el sistema re direccionara al usuario al home con un panel de control


de administración completa del sistema.
Tabla 26, Revisión historia de usuario 13

58
acceso a un portal de acuerdo mi rol

ID: 13 USUARIO: Usuario

PRIORIDAD: Alta RIESGO EN DESARROLLO: Alto

PUNTOS ESTIMADOS: 2 INTERACCIÓN ASIGNADA:2

PROGRAMADOR RESPONSABLE: Juan Camacho

DESCRIPCIÓN: Con la finalidad de dar acceso a un portal personalizado acuerdo el


rol

VALIDACIÓN: el sistema re direccionara al usuario al home con un panel de control


básico de solo lectura y edición sobre su propio perfil.
Tabla 27, Revisión historia de usuario 14

acceso a un portal de acuerdo mi rol

ID: 14 USUARIO: Prestador de servicio

PRIORIDAD: Alta RIESGO EN DESARROLLO: Alto

PUNTOS ESTIMADOS: 2 INTERACCIÓN ASIGNADA:2

PROGRAMADOR RESPONSABLE: Juan Camacho

DESCRIPCIÓN: Con la finalidad de dar acceso a un portal personalizado acuerdo el


rol

VALIDACIÓN: el sistema re direccionara al usuario al home con un panel de control


de lectura sobre información general de lugares, eventos y mensajes

Tabla 28, Revisión historia de usuario 15

eliminar usuarios

ID: 15 USUARIO: Administrador

PRIORIDAD: Alta RIESGO EN DESARROLLO: Alto

PUNTOS ESTIMADOS: 2 INTERACCIÓN ASIGNADA:2

PROGRAMADOR RESPONSABLE: Juan Camacho

DESCRIPCIÓN: Con la finalidad de depurar la plataforma de usuarios mal


intencionados o inactivos

VALIDACIÓN: El sistema arrojara un aviso donde se pregunta si está seguro de


eliminar este usuario, al responder que si el sistema lo eliminara de los usuarios.

59
Tabla 29, Revisión historia de usuario 16

revisar usuarios existentes

ID: 16 USUARIO: Administrador

PRIORIDAD: Alta RIESGO EN DESARROLLO: Alto

PUNTOS ESTIMADOS: 2 INTERACCIÓN ASIGNADA:1

PROGRAMADOR RESPONSABLE: Juan Camacho

DESCRIPCIÓN: Buscando poder tener un control sobre que usuarios ya están en el


sistema y cuáles no.

VALIDACIÓN: Se mostrara una vista donde se podrán ver todos los usuarios
registrados con su respectivo perfil, correo y las opciones, "Editar" y "Eliminar".
Tabla 30, Revisión historia de usuario 17

acceder a mi perfil

ID: 17 USUARIO: Usuario

PRIORIDAD: Baja RIESGO EN DESARROLLO: Bajo

PUNTOS ESTIMADOS: 2 INTERACCIÓN ASIGNADA:1

PROGRAMADOR RESPONSABLE: Juan Camacho

DESCRIPCIÓN: Buscando poder tener todos mis datos de forma organizada y simple

VALIDACIÓN: Si las credenciales son correctas se dará acceso a la plataforma, y a


la información dependiendo del perfil de usuario.
Tabla 31, Revisión historia de usuario 18

Agendar servicios con usuarios

ID: 18 USUARIO: Prestador de servicios

PRIORIDAD: Alta RIESGO EN DESARROLLO: Media

PUNTOS ESTIMADOS: 2 INTERACCIÓN ASIGNADA:1

PROGRAMADOR RESPONSABLE: Juan Camacho

DESCRIPCIÓN: Buscando poder agendar citar frente a usuarios que llegasen a


necesitar un servicio.

VALIDACIÓN: Al acceder a una sección específica del aplicativo se podrá cargar una
fecha con una descripción del servicio si se desea, esto seguido de su
almacenamiento.

60
Tabla 32, Revisión historia de usuario 19

Iniciar servicio

ID: 19 USUARIO: Prestador de servicios

PRIORIDAD: Alta RIESGO EN DESARROLLO: Baja

PUNTOS ESTIMADOS: 2 INTERACCIÓN ASIGNADA:1

PROGRAMADOR RESPONSABLE: Juan Camacho

DESCRIPCIÓN: Buscando poder iniciar un servicio programado previamente.

VALIDACIÓN: Al acceder a la sección de los eventos programados, se podrá dar


inicio a un evento especifico, convirtiendo así a este en su evento activo en ese
momento.

Tabla 33, Revisión historia de usuario 20

Calificar un servicio

ID: 20 USUARIO: Usuario

PRIORIDAD: Alta RIESGO EN DESARROLLO: Baja

PUNTOS ESTIMADOS: 2 INTERACCIÓN ASIGNADA:1

PROGRAMADOR RESPONSABLE: Juan Camacho

DESCRIPCIÓN: Buscando poder calificar a un prestador de servicio para poder dar


una retroalimentación y que otros usuarios sepan el tipo de servicio que presta.

VALIDACIÓN: Al terminar un servicio a ambos roles les llegara una notificación que
solicitara una calificación del servicio.

61
7. Conclusiones
Se consideró que el proyecto de localización de personal de enfermería con base en geo
posicionamiento plantea una solución para los usuarios que pudieran requerir de ella, es
una herramienta con la cual los prestadores de servicios y los usuarios particulares pueden
obtener un beneficio ya sea económico o personal, garantizando que el mismo sistema
permitirá evaluar la prestación de servicios a través del ranking. Con lo cual se demuestra
que las tecnologías de la información y la comunicación (TIC) son de gran ayuda para el
ámbito social y que el desarrollo de herramientas que faciliten la comunicación y gestión
de procesos para los pacientes siempre serán muy útiles.
Cabe resaltar que tecnologías móviles, Android principalmente, al estar respaldadas por
grupos de desarrollo mundiales como Google Developer Team y al ser una tecnología de
fácil acceso, abre las puertas a oportunidades de avance constante y significativo. Estos
avances fueron los que hicieron posible la configuración tecnológica necesaria para el
reporte GPS y las notificaciones a partir de dispositivos móviles con bajo costo frente a
batería y envió de información, así como el uso de los protocolos de seguridad para el
manejo de esta información.
La construcción del módulo de georreferenciación fue un elemento determinante en el
desarrollo del proyecto, fue un reto el entender todo lo que implica esta tecnología y como
cada vez avanza más en los diferentes dispositivos. Gracias a que se hizo con un esquema
de desarrollo tan organizado y sólido como lo propone Android studio, Google Developers
brindó toda la documentación necesaria para poder tener un entendimiento detallado de
los procesos y tareas que esta herramienta posee.

62
8. Recomendaciones

Debido a la magnitud del proyecto se abren las posibilidades de realizar adecuaciones para
el mejoramiento constante, una de las recomendaciones más llamativas es el hecho de poder
realizar llamadas desde el aplicativo con los datos de usuario cargados previamente.

Además, se recomienda que el aplicativo sea ampliado a otros ámbitos laborales, como
contacto de empleadas domésticas, electricistas, contadores, etc. Esto ayudando a la
diversificación del segmento al que está dirigido el aplicativo actual. Otra posible funcionalidad
que se le podría dar al aplicativo es el de búsqueda de inmuebles que se encuentren en zonas
específicas dando los datos de contacto y del propietario o la finca raíz.

Finalmente se sugiere que a la aplicación se le pueda hacer una vista de entrenamiento justo
al momento de iniciar sesión, antes de poder hacer uso de ella plena mente, pues la idea es
que sea intuitiva para el usuario y que se desenvuelva de una forma sencilla y practica para
él.

63

Das könnte Ihnen auch gefallen