2/5/2018 aplicación móvilrepository.udistrital.edu.co/bitstream/11349/8808/1/camacho...
Post on 14-Jul-2020
7 Views
Preview:
TRANSCRIPT
0
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
1
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
2
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
3
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
4
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
5
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.
6
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.
7
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.
1
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?
2
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.
3
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
4
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
5
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
6
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 2 Laboratorio Unidad Pacífico Sur, CIESAS, 5 agosto 2012 https://langleruben.wordpress.com/%C2%BFque-es-un-sig/
7
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
8
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
9
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
10
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
11
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 16 Motivos 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/
12
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/
13
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.
14
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.
22 Que es Bootstrap y cómo funciona, Aitor Rodríguez, 21 de Julio 2015, http://www.frontendfactory.es/que-es-bootstrap-y-
como-funciona/
15
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
16
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
17
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.
18
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.
19
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,
20
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
1 Como usuario particular
Necesito buscar a usuarios que presten servicios relacionados con enfermeria
Con la finalidad de poner en contacto a los usuarios particulares con los profesionales registrados en la plataforma
1 Seccion de busqueda de personal
2 como usuario perticular
Necesito registrarme en a plataforma
Con la finalidad de permitir a los usuarios tener un contacto rapido y personalizados con el personal que encuentra.
1 Seccion de registro de nuevos usuarios
3
como usuario particular
Necesito reestablecer mi contraseña
Con la finalidad de dar acceso a usuarios que hayan olvidado sus datos de acceso
1 Olvido contraseña de acceso
Olvido usuario de acceso
2 Olvido usuario de acceso
4 Como administrador
Necesito configurar los roles de los usuarios que acceden a la plataforma
Con la finalidad de dar diferentes funcionalidades a los tipos de usuario que se encuentran registrados en la plataforma.
1 Seccion de asignacion de rol para los usuarios.
5
Como usuario particular
Necesito editar mi perfil
Con el objetivo de permitir a los usuarios editar sus datos personales
1 Usuario particulas
Usuario prestador de servicios
Con el objetivo de permitir a los usuarios editar sus datos personales y los documentos necesarios para prestar sus servicios de enfermero
2 Usuario prestador de servicios
6 Como usuario particular
Necesito contactar a un prestador de servicio
Con el objetivo de permitir a un usuario particular ver las credenciales que acreditan a un prestador de servicios como tal.
1 Seccion de informacion de usuarios
7 Como prestador de servicios
Necesito poder almacenar mis ubicaciones para que me ubiquen
Con la finalidad de compartir la ubicación de lugares recurrentes para que se pueda localizar a un prestador de servicios.
1 Seccion de gestion de localizaciones.
21
8 Como Prestador de servicio
Necesito poder almacenar eventos en fechas especificas
Con el objetivo de poder gestionar los eventos con los usuarios particulares, organizandolos por fechas y colores especificos
1 Seccion de gestion de evento
9 Como usuario particular
Necesito poder enviar mensajes a otros usuarios
Con el objetivo de contactar a otros usuarios para aclarar detalles frente a los servicios que se buscan contratar
1 Seccion de mensajeria
10
Como usuario particular
Necesito acceso a un portal unico acuerdo mi rol
Con la finalidad de dar acceso a un portal personalizado acuerdo el rol
1 Ser usuario administrador
ser usuario particular
2 ser usuario particular
Ser prestador de servicio
3 Ser prestador de servicio
11 Como administrador
Necesito poder eliminar usuarios
Con la finalidad de depurar la plataforma de usuarios mal intencionados o inactivos
1 Ser administrador
12 Como administrador
Necesito revisar usuarios existentes
Buscando poder tener un control sobre que usuarios ya estan en el sistema y cuales no
1 Ser administrador
13 Como usuario particular
Necesito acceder a mi perfil
Buscando poder tener todos mis datos de forma organizada y simple
1 ser Usuario
14 Como prestador de servicio
Necesito iniciar un servicio con un usuario
Buscando poder iniciar un servicio programado previamente.
1 ser prestador de servicio
15 Como prestador de servicio
necesito poder calificar un servicio
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.
1 ser usuario
16 Como prestador de servicios
Necesito gestionar mis documentos
Buscando poder actualizar los documentos de mis certificaciones facilmente
1 Ser prestador de servicio
17 Como usuario particular
Necesito filtrar mi búsqueda
Con la finalidad de que la búsqueda de personal se realice de una forma más precisa frente a lo que se necesita
1 ser usuario
18 Como usuario particular
Necesito contactar al prestador que tiene mi servicio activo en este momento
Con la finalidad de tener un contacto constante frente al servicio actual que se tiene
1 ser usuario
22
19 Como Administrador
Necesito establecer estándares de seguridad
Con la finalidad de asegurar que los datos se encuentren protegidos en caso de cualquier incidente.
1 Ser prestador
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.
23
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
de usuario Tarea Prioridad Esfuerzo
2
Definición de la vista que servirá de guía visual
para que el usuario entienda con qué tipo de datos
debe contar para poder registrarse en la
plataforma.
1 10
Creación del controlador que recibe la información
realizando las validaciones pertinentes. 1 20
Creación del módulo de almacenamiento que
permitirá agregar al sistema los datos
proporcionados por el usuario después de ser
validados.
1 20
3
Definición de la vista que servirá de guía visual
para que el usuario pueda ingresar sus datos de
restablecimiento de contraseña.
2 10
Creación del controlador que recibe la información
realizando las validaciones pertinentes. 2 20
Creación del módulo de actualización, donde con
los datos proporcionados se podrá reestablecer la
contraseña olvidada por una nueva.
2 20
5
Definición de la vista que servirá de guía visual
para que el usuario entienda con qué tipo de datos
debe contar para poder actualizar su perfil en la
plataforma.
1 10
24
Creación del controlador que recibe la información
realizando las validaciones pertinentes. 1 20
Creación del módulo de almacenamiento que
permitirá actualizar en el sistema los datos
proporcionados por el usuario después de ser
validados.
1 20
13
Definición de la vista que servirá de guía visual
para que el usuario entienda con qué tipo de datos
debe contar para poder acceder su perfil en la
plataforma.
1 10
Creación del controlador que recibe la información
realizando las validaciones pertinentes. 1 20
Creación del módulo de almacenamiento que
permitirá acceder al sistema. 1 20
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.
25
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.
26
Figura 2. Pantalla Login Aplicación
Pantalla de Login con respectivas validaciones y
complementos para hacer más intuitivo su uso.
Figura 3, Pantalla registro App.
Pantalla de registro con respectivas validaciones
y complementos para hacer más intuitivo su uso.
27
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
Pantalla de registro con respectivas
validaciones y complementos para hacer
más intuitivo su uso.
28
Figura 7, Pantalla reestablecer contraseña
Pantalla de registro con respectivas
validaciones y complementos para hacer
más intuitivo su uso.
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
de usuario Tarea Prioridad Esfuerzo
12
Definición de la vista que servirá de guía visual
para que el usuario entienda con qué tipo de datos
se están obteniendo.
1 20
Creación del controlador que recibe la información
realizando las validaciones pertinentes. 1 10
Creación del módulo de listado que permitirá al
sistema obtener todos los datos frente a todos los
usuarios registrados hasta el momento
1 20
11
Definición de la vista que servirá de guía visual
para que el usuario entienda la implicación que
tiene esta opción de eliminar.
1 10
Creación del controlador que recibe la información
realizando las validaciones pertinentes. 1 20
Creación del módulo de eliminación que permitirá
al sistema eliminar usuarios específicos de forma
sencilla.
1 20
8
Definición de la vista que servirá de guía visual
para que el usuario entienda con qué tipo de datos
debe contar para poder agregar o actualizar una
fecha de su calendario
1 10
Creación del controlador que recibe la información
realizando las validaciones pertinentes. 1 20
Creación del módulo de almacenamiento que
permitirá agregar o actualizar en el sistema las
fechas proporcionadas por el usuario después de
ser validados.
1 20
29
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.
30
5.9.3. Implementación
Para este Spring se realizó el desarrollo completo de sus actividades y como resultado se
encuentran las siguientes vistas.
Figura 9, Pantalla usuarios
Vista listado de usuarios, con
opciones de eliminación, edición
o gestión de ubicaciones para
cada uno.
Figura 10, mensaje confirmar eliminación
Vista mensaje de confirmación
de eliminación de usuario.
Figura 11, pantalla calendario de eventos cargados.
Vista de calendario con eventos
cargados previamente que se
muestran y permiten la gestión
de estos desde la plataforma
web.
31
Figura 12, pantalla APP calendario de eventos cargados
Vista de calendario con eventos
cargados previamente que se
muestran y permiten la gestión
de estos desde la Aplicación
web.
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
de usuario Tarea Prioridad Esfuerzo
16
Definición de la vista que servirá de guía visual
para que el usuario que cantidad y tipos de
documentos podrá cargar al sistema.
1 20
Creación del controlador que recibe la información
realizando las validaciones pertinentes. 1 10
Creación del módulo de gestión para los
documentos cargados por el usuario. 1 20
7
Definición de la vista que servirá de guía visual
para que el usuario pueda agregar sus ubicaciones
recurrentes.
1 10
Creación del controlador que recibe la información
realizando las validaciones pertinentes. 1 20
Creación del módulo de gestión de ubicaciones. 1 20
4
Definición de vista que ayudara a la asignación de
roles para los usuarios registrados previamente en
el sistema.
2 10
Creación del controlador que recibe la información
realizando las validaciones pertinentes. 2 20
Creación del controlador de asignación de roles a
los usuarios registrados en la plataforma 2 20
10 Definición de vistas y funciones a las que se podrá
acceder dependiendo del rol asignado. 2 10
32
Creación del controlador que recibe la información
realizando las validaciones pertinentes. 2 20
Creación de filtro que dará acceso a las funciones
dependiendo del rol con el que se encuentre
logueado.
2 20
18
Análisis de los estándares necesarios para el
almacenamiento de la información 2 20
Implementación de sistema de encriptación
seleccionado con base en las necesidades. 2 20
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
33
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
MD5
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
archivo, como puede ser un instalador, el código generado por el
algoritmo, también llamado hash, viene “unido” al archivo. 25
Bcrypt
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
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
34
Con el salt, se añade un grado de complejidad que evita que el hash
asociado a una password sea único.26
AES_ENCRYPT
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
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.
Figura 14, Pantalla edición de usuario para asignación de roles.
Vista del administrador que
permite editar datos y roles
asignados a un usuario.
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
35
Figura 15, Formulario de gestión de documentos
Formulario de gestión de
documentos que será visible
solo por prestadores de
servicios.
Figura 16, Pantalla de gestion de ubicaciones.
Vista para la gestión de
ubicaciones accesible solo
para los usuarios
administradores o prestadores
de servicios.
Figura 17, Pantalla gestion de ubicaciones APP.
Vista de gestión de
ubicaciones desde la APP.
36
Figura 18, Pantalla gestion de ubicaciones APP.
Vista eliminación de
ubicaciones almacenadas
previamente.
Figura 19, Ruta de documentos encriptada
Figura 20, Campo password encriptado
Figura 21, Coordenadas encriptadas
Vista de datos almacenados en
la base de datos después del
procesamiento para su
encriptación.
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
de usuario Tarea Prioridad Esfuerzo
1
Definición de la vista que servirá de guía visual
para que el usuario pueda búsquedas en lugares
específicos de la ciudad.
1 20
Creación del controlador que recibe la información
realizando las validaciones pertinentes. 1 10
Creación del modelo que se utilizara en la
plataforma y en la aplicación para la búsqueda de
personal de enfermería.
1 20
37
6
Definición de la vista que servirá de guía visual
para que el usuario pueda contactar a un prestador
de servicio con el que se encuentre interesado.
1 10
Creación del controlador que recibe la información
realizando las validaciones pertinentes. 1 20
Creación de la funcionalidad que permite al usuario
ver el perfil de los usuarios que sean de su interés. 1 20
9
Definición de la vista que ayudara al usuario a
ponerse en contacto con un usuario especifico que
sea prestador de servicios de enfermería.
2 10
Creación del controlador que recibe la información
realizando las validaciones pertinentes. 2 20
Creación de vista con funcionalidad frente a los
mensajes que se pudieran recibir o enviar por parte
de otro usuario de la plataforma.
2 20
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.
38
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.
39
Figura 20, Pantalla de búsqueda.
Vista de búsqueda para los usuarios,
filtrando por radio de búsqueda.
Figura 21, vista tarjeta presentación.
Vista de la ficha informativa del usuario
que se desea contactar
Figura 22, pantalla informacion usuario.
Vista para ver el historial completo del
usuario y realizar un posible contacto.
Figura 23, Pantalla envio de mensaje contacto.
Vista de formato para realizar el primer
mensaje de contacto.
Vista de búsqueda para los usuarios,
filtrando por radio de búsqueda.
40
Figura 24, Pantalla busqueda APP.
Figura 25, Pantalla tarjeta presentaicon APP.
Vista de la ficha informativa del usuario
que se desea contactar
Figura 26, Pantalla informacion de usuario.
Vista para ver el historial completo del
usuario y realizar un posible contacto.
41
Figura 27, Pantalla de mensajeria.
Vista de mensajería para conectarse
desde la APP.
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
de usuario Tarea Prioridad Esfuerzo
14
Definición de la vista que servirá de guía visual
para que el usuario prestador de servicio puede
iniciar un servicio con un usuario.
1 20
Creación del controlador que recibe la información
realizando las validaciones pertinentes. 1 10
Implementación del sistema que guardara un
registro el servicio Iniciado además de sus actores. 1 20
15
Definición de la vista que servirá de guía visual
para que el usuario al finalizar el servicio pueda
realizar una calificación del servicio prestado.
1 10
Creación del controlador que recibe la información
realizando las validaciones pertinentes. 1 20
Creación de la funcionalidad que permitirá al
sistema darle un ranking a los usuarios que
prestaron sus servicios, ayudando a auto gestionar
la plataforma.
1 20
17
Definición de la vista que servirá de guía visual
para que el usuario pueda realizar filtros de sus
búsquedas.
2 10
Creación del controlador que recibe la información
realizando las validaciones pertinentes. 2 20
42
Creación del modelo de filtros que se utilizara en la
plataforma y en la aplicación para la búsqueda de
personal de enfermería.
2 20
18
Definición de la vista que ayudara al usuario a
ponerse en contacto con el usuario especifico que
este atendiendo su servicio en ese momento.
2 10
Creación del controlador que recibe la información
realizando las validaciones pertinentes. 2 20
Creación de vista con funcionalidad frente a los
mensajes que se pudieran recibir o enviar por parte
del usuario que está atendiendo un servicio.
2 20
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
43
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.
Figura 29, Pantalla de servicio.
Vista de servicio con los datos
agendados previamente con el botón de
inicio de servicio
Figura 30, vista notificación recibida por mensaje nuevo.
Vista de la notificación que se recibe al
momento de recibir un mensaje nuevo.
44
Figura 31, Vista de mensajería.
pantalla mensajes a partir de la
notificacion.
Figura 32, formulario de calificacion.
PopUp de calificacion que se genera
despues de finalizar un servicio.
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)
45
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)
46
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)
47
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)
48
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)
49
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,
50
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)
51
Figura 41, Modelo de configuración archivo Apli.php en routes
Para este desarrollo se planteó el siguiente esquema para la base de datos
52
Figura 42, Esquema base de datos relacional
53
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
54
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.
55
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.
56
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.
57
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.
58
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
59
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.
60
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.
61
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.
62
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.
63
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.
top related