• No se han encontrado resultados

App de control de personal de J Pretelt Ingeniería Hidráulica EU

N/A
N/A
Protected

Academic year: 2020

Share "App de control de personal de J Pretelt Ingeniería Hidráulica EU"

Copied!
56
0
0

Texto completo

(1)

APP DE CONTROL DE PERSONAL DE J PRETELT INGENIERÍA HIDRÁULICA EU

JESSICA ANDREA MENDOZA ROMERO MIGUEL ANTONIO CABEZAS GARCÍA

UNIVERSIDAD FRANCISCO JOSÉ DE CALDAS FACULTAD TECNOLÓGICA

INGENIERÍA EN TELECOMUNICACIONES BOGOTÁ

(2)

APP DE CONTROL DE PERSONAL DE J PRETELT INGENIERÍA HIDRÁULICA EU

JESSICA ANDREA MENDOZA ROMERO MIGUEL ANTONIIO CABEZAS GARCÍA

Trabajo de tesis para optar por el título de Ingeniero en Telecomunicaciones

JOSÉ DAVID CELY CALLEJAS INGENIERO

DIRECTOR DE TESIS

UNIVERSIDAD FRANCISCO JOSÉ DE CALDAS FACULTAD TECNOLÓGICA

INGENIERÍA EN TELECOMUNICACIONES BOGOTÁ

(3)

Nota de Aceptación

Director de Tesis:

Ing. José David Cely Callejas

Jurado

(4)

Dedicatoria

Primero a Dios, a nuestras familias y a nuestro director de tesis.

AGRADECIMIENTOS

Agradecemos principalmente a Dios, que es ese ser maravilloso y todo poderoso que todos los días guía nuestros pasos, cuidándonos y orientándonos para ser unas personas que sean útiles para su gran propósito.

A nuestra gran institución, Universidad Distrital Francisco José de Caldas, por brindarnos los parámetros de una educación integral, punto de partida de nuestra vida profesional, teniendo un gran nombre que honrar y enorgullecer.

(5)

GLOSARIO

• HTML5: por las siglas en ingles Hyper Text Markup Lenguage, en español lenguaje de marcas de hipertexto, en su quinta versión, en donde hay desarrollo paralelo de HTML y XHML.

• HTML: (Hyper Text Markup Lenguage) Lenguaje de marcado para elaboración de páginas web.

• XHTML: (eXtensible HyperText Markup Language) Versión más estricta y limpia de HTML con uso de las herramientas XML.

• XML: (eXtensible Markup Language o "lenguaje de marcas Extensible") meta-lenguaje que permite definir etiquetas personalizadas para descripción y organización de datos.

• CSS: (cascading style sheet o Hoja de estilo en cascada) Mecanismo simple que describe la forma de presentación de un documento en pantalla con todas sus características.

• JSP: (JavaServer Pages) Herramienta para la creación de páginas web dinámicas basadas en HTML, XHTML, XML, entre otras.

• Java PHP: Lenguaje de programación para la conexión a un servidor de datos MySql.

• Java Script: Lenguaje de programación de vista al usuario.

(6)

Tabla de contenido

1 INTRODUCCIÓN ... 11

2 OBJETIVOS ... 12

2.1 OBJETIVOGENERAL ... 12

2.2 OBJETIVOSESPECÍFICOS ... 12

3 PLANTEAMIENTO DEL PROBLEMA ... 13

3.1 DEFINICIÓNDELPROBLEMA ... 13

3.2 JUSTIFICACIÓN ... 13

4 MARCO TEÓRICO ... 14

4.1 DESARROLLO DE APLICACIONES PARA DISPOSITIVOS MÓVILES CON ANDROID ... 14

4.1.1 Sistema operativo Android... 14

4.1.2 Ventajas:... 17

4.1.3 Desventajas: ... 17

4.1.4 Anatomía de las aplicaciones Android ... 17

4.2 GPS ... 19

4.3 GEOLOCALIZACIÓN CON APIGOOGLE MAPS ... 21

4.4 BASES DE DATOS MYSQL ... 22

4.5 APACHE TOMCAT ... 23

4.6 ZPANEL ... 23

5 DESARROLLO DEL PROYECTO ... 24

5.1 INTERFAZ DE ADMINISTRACIÓN ... 24

5.2 INTERFAZ DE OPERARIO ... 27

5.3 GEOLOCALIZACIÓN ... 28

5.4 CHAT ... 30

5.5 DIAGRAMAS ... 31

5.5.1 Diagrama de bloques ... 31

5.5.2 Modelo físico ... 33

5.5.3 Diagrama de Estados ... 33

5.5.4 Diagrama de Actividades ... 34

5.5.5 Diagrama de Secuencia ... 34

5.5.6 Casos de Uso ... 35

6 INTERFAZ DE ADMINISTRADOR ... 41

(7)

8 PRUEBAS DE CARGA BÁSICA DE LA INTERFAZ WEB ... 48

9 RESULTADOS ... 52

10 CONCLUSIONES ... 54

(8)

Tabla de ilustraciones

Ilustración 1. Arquitectura Sistema Operativo Android [17] ... 15

Ilustración 2. Segmento de control GPS [11] ... 20

Ilustración 3. Retorno del API de Google Maps [19] ... 22

Ilustración 4. Diagrama de solución inicial ... 25

Ilustración 5. Interfaz administrador ... 26

Ilustración 6. Tabla empresas - Base de datos MYSQL ... 27

Ilustración 7. Interfaz de operario ... 27

Ilustración 8. Tabla registro - Base de datos MYSQL ... 30

Ilustración 9. Diagrama de bloques final ... 32

Ilustración 10. Modelo Físico ... 33

Ilustración 11. Diagrama de estados ... 33

Ilustración 12. Diagrama de actividades ... 34

Ilustración 13. Diagrama de secuencias ... 35

Ilustración 14. Casos de Uso - Inicio de la aplicación ... 36

Ilustración 15. Icono Gestor Operarios ... 36

Ilustración 16. URL Gestor administrador ... 36

Ilustración 17. URL Gestor Operarios Administrador con login ... 37

Ilustración 18. Casos de uso – Principales... 37

Ilustración 19. Casos de uso – Agendamiento ... 38

Ilustración 20. Casos de uso – Empresas ... 39

Ilustración 21. Casos de uso – Operarios ... 40

Ilustración 22. Casos de uso - Chat ... 40

Ilustración 23. Interfaz de administrador ... 41

Ilustración 24. Interfaz de administrador - Agendamiento ... 42

Ilustración 25. Interfaz de administrador - Empresas ... 43

Ilustración 26. Interfaz de administrador - Operarios ... 44

Ilustración 27. Interfaz de operario ... 45

Ilustración 28. Interfaz de Operario – Cronograma de Trabajo... 46

Ilustración 29. Interfaz de operario - Chat ... 47

Ilustración 30. Configuración de Pruebas - Carga ... 48

Ilustración 31. Configuración de pruebas - Host ... 49

Ilustración 32. Árbol de Resultados ... 49

Ilustración 33. Resultado en Tablas ... 50

(9)

Tabla de Anexos

Manual de Uso de APP Gestor

Manual de Uso de APP gestor agenda operarios

(10)

RESUMEN

J Pretelt Ingeniería Hidráulica EU es un empresa especializada en el diseño y construcción de redes hidrosanitarias, redes contra incendio, redes de gas, acueductos, y alcantarillado cuyo lugar de trabajo es diverso, cambiante constantemente y puede estar distanciado entre sí. Es allí donde se requiere una planeación estratégica asertiva, en donde la logística de manejo de personal operativo y comunicación eficiente genera una ventaja considerable. En este proyecto se pretende desarrollar una aplicación móvil en Android que permita tener el control y manejo del personal, mediante la ubicación por GPS que permita la comunicación entre la empresa y los operarios para de esta manera tener un registro de tiempos de llegada y salida en el lugar donde ellos estén trabajando almacenando esta información en una base de datos en MYSQL. Todo esto permitirá tener un manejo eficiente del personal permitiendo a la compañía ser más competitiva, reduciendo costos en nómina y mejorando los tiempos de entrega de los proyectos a sus clientes.

Ya con la aplicación implementada la empresa podrá reducir costo en personal de control y movilización entre las obras, teniendo la comunicación rápida y eficiente desde la oficina de las tareas necesarias para cada uno de los operarios, y por medio del chat se puede resolver las dudas que se tengan en tiempo real, además de poder verificar que efectivamente se cumplan los tiempos y funciones de trabajo. En general se convierte en parte fundamental del sistema operativo.

Palabras Claves:

(11)

11

1 INTRODUCCIÓN

El trabajo descentralizado de las empresas contratistas generan un alto costo de personal al recurrir como entes de control y mejora en la eficiencia a más personal del realmente requerido para un trabajo en específico, es de allí que se observa una solución tecnológica en donde con pocos recursos se puede tener el manejo integral del personal operativo.

Como primera instancia se requiere un control en el horario de los operarios, con ello unas horas laborales completas y un mejor desempeño del personal. En este punto se propone un marcado de llegada y salida por medio de los dispositivos móviles, en donde se puede verificar su posición geográfica por medio de la tecnología GPS.

Además de tener claridad en las horas trabajadas por el personal, también se requiere de una planeación clara según cada tarea, en donde se muestra al operario unas metas a corto plazo y un estimado de su realización. De allí la importancia de tener informado a cada uno de los empleados constantemente de sus funciones, tareas y metas. Se propone tener en la misma aplicación de dispositivo móvil un medio informativo que puede ser administrado por el personal en la oficina central sin tener que hacer desplazamientos.

(12)

12

2 OBJETIVOS

2.1 OBJETIVO GENERAL

Desarrollar una aplicación para dispositivos móviles con base en las necesidades de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación en Android Studio con plataforma en Eclipse, basándonos en algoritmos de triangulación de GPS y almacenando la información constantemente en una base de datos MySQL.

2.2 OBJETIVOS ESPECÍFICOS

• Programar un algoritmo de triangulación basado en el sistema GPS dentro del lenguaje de programación de Android Studio con el fin de controlar los horarios de los operarios en las diferentes obras.

• Implementar un chat que permita a los operarios comunicarse con su jefe directo o jefe de obra.

• Desarrollar una interfaz que permita a la empresa hacer el Agendamiento de sus operarios en las distintas obras en las que opera.

(13)

13

3 PLANTEAMIENTO DEL PROBLEMA

3.1 DEFINICIÓN DEL PROBLEMA

J Pretelt Ingeniería Hidráulica EU es una empresa descentralizada en la parte operativa, y este es un factor que requiere mucha organización y planeación pues cada lugar donde se realizan labores tiene diferentes necesidades y atenderlas a tiempo es muy importante.

Por ser una empresa pequeña las funciones se dividen en pocas personas, y en ocasiones una sola persona puede estar a cargo de diferentes áreas; esto sumado a que se manejan varias obras a la vez, crece el riesgo de un manejo de personal desorganizado, no controlado e ineficiente.

3.2 JUSTIFICACIÓN

En estas mismas condiciones se encuentran muchas empresas del sector de la construcción y en un mundo competitivo en donde hay un gran mercado de empresas para el mismo servicio es de vital importancia generar un plan estratégico con pilares que puedan ser diferenciadores y dar una ventaja considerable.

(14)

14

4 MARCO TEÓRICO

En el desarrollo del proyecto es necesaria la revisión de muchos conceptos que si bien no son nuevos, se requiere de profundización y su total entendimiento, los cuales se encuentran especificados a continuación:

4.1 Desarrollo de aplicaciones para dispositivos móviles con Android

Para el desarrollo de las aplicaciones en Android es importante saber muy bien el funcionamiento del sistema operativo y en dónde se aloja cada uno de sus componentes, para así saber cómo diseñar e implementar cada uno de estos.

4.1.1 Sistema operativo Android

Android más que un sistema operativo es una plataforma de software para dispositivos móviles, la cual contiene un sistema operativo basado en el núcleo Linux pero también aplicaciones base.

La plataforma de Android es de código abierto y desarrollada por la Open Handset Alliance, liderada por Google. La estructura del sistema se construye de aplicaciones que se ejecutan en un framework Java de aplicaciones orientadas a objetos, la cual se encuentra sobre el núcleo de las bibliotecas igualmente de Java en una máquina virtual Dalvik. La compilación en tiempo de ejecución hasta la versión 5.0 ya que después de allí cambió al entorno Android Runtime (ART).

Android está construido sobre el kernel de Linux. Además, se utiliza una máquina personalizada virtual que fue diseñada para optimizarlos recursos de memoria y de hardware en un entorno móvil.

Arquitectura

(15)

15

Ilustración 1.Arquitectura Sistema Operativo Android [17]

• Kernel de Linux

El Kernel 2.6 de Linux es la base de Android por su robustez demostrada y por la implementación de funciones básicas para cualquier sistema operativo.

Android utiliza como base el kernel de Linux pero los dos sistemas no son lo mismo, Android no cuenta con un sistema nativo de ventanas de Linux ni tiene soporte para Glibc (librería estándar de C) y no es posible utilizar la mayoría de aplicaciones de GNU de Linux.

El kernel de Linux, Android agrega algunos atributos específicos para plataformas móviles como: la comunicación entre procesos (lograda a través del Binder), la forma de manejar la memoria compartida (ashmem) y la administración de energía (con wakelocks). [17]

• Runtime de Android

(16)

16

Cada aplicación Android corre su propio proceso, con su propia instancia en la máquina virtual Dalvik.

Ejecutable (.dex), el cual está optimizado para memoria mínima, en donde la máquina virtual corre compilaciones de java transformadas en formato .dex incluida en la herramienta. [17]

• Librerías

Android incluye un conjunto de librerías C/C++ usadas por varios componentes del sistema Android las cuales se exponen a través del framework. Algunos ejemplos son: Maps (usada para el GPS), Bundle (usar funcionalidades de terceros), etc. [17]

• Framework de aplicaciones

La arquitectura está diseñada para simplificar la reutilización de componentes con la facultad que cualquier aplicación puede publicar sus capacidades para que se puedan utilizar en cualquier otra aplicación todo sujeto a reglas de seguridad del framework. Dado de esta forma Android expone todos sus APIs para ser utilizados por los programadores y poder reemplazar cualquier componente. [17]

• Máquina virtual Dalvik

Máquina virtual es un software que emula a un ordenador y puede ejecutar programas de la misma forma. Android contiene la máquina virtual Dalvik, la cual es un entorno de programación completo que ha sido escrita de forma que un dispositivo puede correr en múltiples máquinas virtuales de forma eficiente, es decir con poca memoria, y además ejecuta archivos en el formato Dalvik

Las principales características del sistema operativo de Android además de las ya descritas son:

• Adaptable a muchas pantallas y resoluciones • SQLite para el almacenamiento de datos • Diferentes formas de mensajería

• Navegador web basado en WebKit incluido • Soporte de Java y muchos formatos multimedia

• Soporte de HTML, HTML5, Adobe Flash Player, entre otros • Herramientas para depuración de memoria

(17)

17 • Multitarea real de aplicaciones [17]

El sistema operativo está compuesto por 12 millones de líneas de código, incluyendo 3 millones de líneas de XML, 2,8 millones de líneas de lenguaje C, 2,1 millones de líneas de Java y 1,75 millones de líneas de C++. [19]

4.1.2 Ventajas:

La principal ventaja de Android es su código abierto que permite programar el SDK en todos los sistemas operativos, esto gracias a que Google liberó la licencia bajo Apache. Este plus permite que aproximadamente dos tercios de las aplicaciones que estén en la red sean gratuitas y que los equipos con este sistema operativo sean de menor costo.

Es un sistema multitarea, es decir, permite realizar varias tareas al mismo tiempo, dejando algunas inactivas o cerrando otras en el momento que la memoria o batería así lo requieran. [19]

4.1.3 Desventajas:

El código abierto al mismo tiempo de llamar a programadores para una retroalimentación benéfica, es muy interesante para los cibercriminales que hacen que tenga mayor vulnerabilidad a software malicioso.

Lo que es una ventaja al imponerse como un sistema multitarea también puede generarse como desventaja en el momento de mirar la batería en donde dura mucho menos, en algunas referencias de teléfonos la duración puede ser de 6 horas.

También tiene como desventaja la dependencia de la cuenta Google para su configuración. [19]

4.1.4 Anatomía de las aplicaciones Android

Una aplicación Android está compuesta por sus actividades, las cuales, por lo general, son pantallas que permiten la implementación de las clases, los Intent e Intenfilters, el Broadcast Intent Receiver, los servicios y el Content Provider.

A continuación se detalla cada una de estos componentes:

(18)

18

los distintos eventos que se produzcan. La mayoría de las aplicaciones están compuestas por varias pantallas, por lo que éstas, a su vez estarán compuestas por varias actividades. Las Activities deben estar declaradas en el archivo Android Manifiest de la siguiente manera:

<manifest ... > <application ... >

<activity android:name=".ExampleActivity" /> ...

</application ... > ...

</manifest > [8]

• Intent e IntentFilters: son clases especiales para moverse de una pantalla a otra. Describe lo que una aplicación quiere hacer. Lo más importante de esta estructura es la acción y los datos para llevarla a cabo. La navegación entre pantallas se logra mediante la resolución de Intents. Este tipo de aplicaciones usan un mecanismo asíncrono de mensajería mediante el cual, se logra relacionar cada solicitud del sistema a una actividad adecuada.

Cuando la aplicación genera esa Intención (muchas están pre-definidas), Android busca la más adecuada para manejar la misma. Si no está registrada, el usuario debe definirla en el fichero AndroidManifest.xml para que se lance la actividad correspondiente. Este fichero es requerido por todas las aplicaciones. Contiene los valores globales del paquete que se está usando, incluyendo los componentes de aplicación, la implementación de las clases para cada componente, qué tipo de datos puede manejar y cuándo pueden ser lanzados.

• Broadcast Intent Receiver: se puede usar cuando se requiere que se ejecute algo como reacción a un evento externo. No usan la interfaz de usuario. Usan Notification Manager para alertar de que algo ha pasado.

• Service: es un código que se ejecuta sin ninguna interfaz de usuario, en segundo plano, para permitir así la ejecución de otras actividades. Es importante notar que es posible conectarse a un servicio mediante la interfaz que la actividad pone a disposición del usuario.

(19)

19 4.2 GPS

El GPS o Sistema de Posicionamiento Global, cuyo nombre correcto es NAVSTAR-GPS1 ya que técnicamente es el sistema que hoy está en funcionamiento, es un sistema global de navegación por satélite que permite determinar en todo el mundo la posición de un dispositivo ubicado en un objeto, persona, vehículo, nave, o cualquier cosa que sea dispuesto por los medios tecnológicos. Se puede alcanzar una precisión hasta de centímetros usando el GPS diferencial, aunque esta precisión es usada en medios específicos, lo habitual es unos pocos metros.

Aunque su invención se atribuye a los gobiernos de Francia y Bélgica, el sistema fue desarrollado e instalado por el Departamento de Defensa de los Estados Unidos, del que actualmente se encarga.

El GPS consta de una red de 27 satélites, de los cuales 24 son operativos y 3 se encuentran como respaldo, los cuales orbitan a 20.200 km de la superficie terrestre, con trayectorias sincronizadas para cubrir toda la superficie de la Tierra.

Para determinar una posición, el receptor utiliza automáticamente como mínimo tres satélites de la red, lo que realiza una triangulación con respecto a la señal y al reloj de cada uno de ellos. La triangulación en el caso del sistema de posicionamiento global se basa en determinar la distancia de cada satélite respecto al punto de medición y el reloj es importante para determinar el retraso de la señal para determinar la distancia al satélite, además de poder sincronizar el sistema de posicionamiento. Con respecto a la posición en la que se encuentre los tres satélites de referencia y las distancias tomadas de las señales se genera la posición real del objeto.

Para mayor exactitud en la medición se requiere de un reloj con bastante precisión similar a los relojes atómicos de los cuales están provistos los satélites.

El sistema GPS está constituido por tres segmentos fundamentales:

Espacial:

El segmento espacial consiste en una constelación nominal formada por 24 satélites operativos que transmiten señales unidireccionales en las cuales se proporcionan la posición y la hora de cada satélite del GPS.

(20)

20

Las órbitas son casi circulares y de forma tal que el satélite pasa por el mismo punto de la tierra en el mismo momento todos los días, quedan situados sobre 6 planos orbitales, en donde cada uno de los planos contiene 4 satélites, espaciados equidistantes a 60 grados e inclinados unos 15 grados respecto al plano ecuatorial. La disposición en la que se plantean actualmente permite que desde cualquier punto de la superficie terrestre sean visibles entre cinco y ocho satélites.

Segmento de control:

El segmento de control está formado por estaciones de seguimiento y control, las cuales se encuentran distribuidas por todo el mundo a fin de mantener los satélites en la órbita apropiada, esto lo logra mediante maniobras de mando y ajustes de los relojes satelitales. Dichas estaciones también realizan el seguimiento de los satélites, cargan información de navegación actualizada y garantizan el funcionamiento adecuado del sistema tal como se muestra en la Ilustración 3.

Ilustración 2. Segmento de control GPS [11]

Segmento de usuario:

El segmento de usuario lo forman los receptores y la comunidad de usuarios. Los receptores que analizan las señales recibidas de los satélites y los convierten en datos de posición, velocidad y tiempo estimados.

(21)

21

La navegación en tres dimensiones es la función principal del GPS. Se construyen receptores GPS para aeroplanos, embarcaciones, vehículos terrestres y equipos portátiles de pequeño tamaño.

El posicionamiento preciso es posible usando receptores en posiciones de referencia en donde se proporciona datos de corrección y posicionamiento relativo a receptores remotos. Este tipo de posicionamiento se utiliza en aplicaciones de vigilancia, control geodésico y estudios de las placas tectónicas.

Las aplicaciones de tiempo y estabilización de frecuencia se basan en la precisión de los relojes que incorporan los satélites y que son monitorizados continuamente por las estaciones de control. Para ello los satélites actuales incorporan cuatro relojes atómicos (2 de Rubidio y 2 de Cesio) que ofrecen una estabilidad de frecuencia muy baja la cual equivale a un error de un segundo cada 30.000 años. Los observatorios astronómicos, sistemas de telecomunicaciones, sincronización de centrales eléctricas y laboratorios de certificación pueden obtener señales de tiempo y frecuencia de alta precisión mediante receptores especiales de GPS y sincronización adecuada de sus relojes en tierra.

4.3 Geolocalización con API Google Maps

(22)

22

Ilustración 3. Retorno del API de Google Maps [19]

Dentro de las propiedades que se pueden encontrar en el API de Google Maps se encuentra la posibilidad de retornar la ubicación y radios de precisión del desarrollo que se realice, la cual se encuentra como Google Maps Geolocation API. En esta interfaz se toma la información de torres celulares y nodos Wi-Fi que el cliente móvil pueda identificar para así mismo retornar la información de geolocalización.

Ya para la implementación se debe tener en cuenta que la conexión se realiza mediante lenguaje HTTPS usando POST y el formato de los archivos que se reciben o envían para realizar la consulta se encuentran en JSON, además que se requiere una clave solicitada directamente a Google, y esta Key identifica la aplicación desarrollada a los fines de la administración de la cuota. [18]

4.4 Bases de Datos MySQL

(23)

23

De las principales características de las bases de datos MySQL se encuentran: Desarrollado en C/C++.

Disponibilidad en ejecutables para diferentes plataformas, y la API está disponible en C, C++, Eiffel, Java, Perl, PHP, Python, Ruby y TCL.

Óptimo para equipos de múltiples procesadores. Veloz en respuesta.

Versátil ya que se puede utilizar como cliente-servidor o incrustado en aplicaciones.

Contiene múltiples tipos de datos y soporta múltiples métodos de almacenamiento de las tablas, con prestaciones y rendimiento diferentes. La administración se basa en usuarios y privilegios.

Manejo de gran cantidad de datos sin errores.

Conectividad que abarcan TCP/IP, sockets UNIX y sockets NT, además de soportar completamente ODBC.

Confiable en cuanto a estabilidad se refiere/C++.[14]

4.5 Apache Tomcat

Tomcat es un contenedor Web con soporte de Serviets (Programas ejecutados en el contexto de navegador web), e incluye el compilador Jasper que compila JSP convirtiéndolas en Serviets. [23]

Su desarrollo se realizó por parte de miembros de Apache Software Fundations y voluntarios independientes.

Tomcat puede ser usado como servidor web tanto en nivel de desarrollo como para manejo de alto tráfico y disponibilidad desde sus últimas versiones.

4.6 Zpanel

Zpanel es un panel de control gratuito para la gestión de hosting Web, que se recomienda para ambientes de desarrollo. Se caracteriza por la facilidad de uso de automatización de alojamientos web y gestión de servidores web de dominio, cuentas de correo, base de datos, etc.

(24)

24

5 DESARROLLO DEL PROYECTO

Para el proyecto de diseño de la aplicación de control del personal para J Pretelt Ingeniería Hidráulica EU se necesitaba implementar una interfaz sencilla y amigable que les permitiera a los usuarios interactuar de manera eficiente en el programa. Para ello se dividió en dos partes el desarrollo de la aplicación:

• La interfaz de administración:

La cual se realiza en ambiente web por cuestiones de implementación-

• La interfaz del operario:

Desarrollado en un API de Android 6.0 (Marshmallow) con compatibilidad a versiones anteriores.

Se modificó el diseño inicial de la solución planteada en algunos puntos no esenciales para el funcionamiento ni para el cumplimiento tanto de los objetivos del proyecto como los objetivos que se tenían para la empresa.

5.1 Interfaz de administración

(25)

25

Ilustración 4.Diagrama de solución inicial

(26)

26

Ilustración 5. Interfaz administrador

Esta interfaz se desarrolló un entorno web basado en el lenguaje HTML5 y los estilos CSS, el cual es compatible y contiene servicios en lenguaje Java orientado a web, Java Server Pages que funcionan en un servidor Apache Tomcat 7, por otro lado la gestión central del sitio se hace con ZPanel, un panel de control de sitios web gratuito, que permite configurar los DNS para la IP publica donde se encuentra el servidor asociando esta IP a un dominio que para este caso es opmanager.tk saliendo por el puerto 8083 (opmanager.tk:8083), las bases de datos en MYSQL y la gestión de ficheros por FTP y Filezilla.

(27)

27

Ilustración 6. Tabla empresas - Base de datos MYSQL

También se desarrolló sobre este entorno web un chat que permite a los usuarios que usen esta interfaz la comunicación con cada uno de los operarios.

5.2 Interfaz de operario

Esta interfaz se mantuvo como lo que se planteó inicialmente, la aplicación se desarrolla directamente en Android Studio con un nivel 23 de API compatible con Android 6 y todas sus subversiones, se constituye de piezas visuales en XML que manejan textos, botones, vistas, entre otros. Además de una capa lógica en lenguaje java que administra la conexión al servidor, enviando y recibiendo datos del mismo.

Ilustración 7. Interfaz de operario

(28)

28

el administrador en la interfaz de administración, allí encontrarán información de las tareas que deben realizar, la hora, fecha, dirección y nombre de la empresa donde deben presentarse para realizar sus labores, a través de esta aplicación el operario debe registrar su llegada a la obra como si se tratara de un sistema para marcar tarjeta, la aplicación está en capacidad de validar que el operario se encuentre en el lugar programado y solo podrá registrar su ingreso si se encuentra en el lugar correcto. Haciendo uso del API de Google Maps y del GPS del teléfono móvil es posible obtener las coordenadas de latitud y longitud, estas son comparadas con las que se almacenaron en base de datos al realizar el registro de la empresa en la interfaz de administración.

Se incorporó en la interfaz un chat que le permite al operario comunicarse con el administrador por texto.

Para esta interfaz se planteó la necesidad de adicionar una opción de seguridad que impidiera que este registro se realizara desde cualquier móvil para ello se implementó la validación por MAC. Cuando el operario se registra por primera vez en esta interfaz se hace uso de una herramienta del Api de Google que permite obtener la dirección MAC del dispositivo móvil, esta queda registrada en base de datos, cada vez que el operario inicia sesión en la aplicación se valida este parámetro si no coincide con el registrado en base de datos el operario no podrá iniciar la sesión. Esto obliga al operario a iniciar sesión solo desde su móvil y no desde el móvil de otro operario.

5.3 Geolocalización

La configuración de un algoritmo de triangulación basado en el sistema GPS, el cual se apoya en el API de Google Maps con sus diferentes funcionalidades.

Google Maps Geolocation API es la aplicación que permite al dispositivo móvil Android generar su ubicación y radios de precisión basándose en torres celulares y nodos Wi-Fi que pueda detectar. Al realizarse una solicitud de geoposicionamiento se obtiene una latitud, una longitud, en este proyecto el proceso de ubicación se genera en dos partes:

• Registro de empresa

• Validación de ingreso y salida de obra del empleado

(29)

29

Este es un proceso que se lleva a cabo en la interfaz de administración por el administrador. El registro de la empresa se implementó para tener los datos de ubicación de la misma usando el API de Google Maps, al momento de ingresar la dirección de ubicación de la empresa el API de Google Maps entrega las coordenadas de latitud y longitud las cuales son almacenadas en base de datos, estas servirán para realizar la validación de ingreso y salida de obra del empleado.

function codeAddress() {

geocoder = new google.maps.Geocoder();

var address = document.getElementById("my-address").value; geocoder.geocode( { 'address': address}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) {

var lati = (document.getElementById('lat'));

var longi= (document.getElementById('long')); // saca los valores de latitud y longitud lati.value="Latitude: "+results[0].geometry.location.lat(); longi.value="Longitude: "+results[0].geometry.location.lng(); alert("Latitude: "+results[0].geometry.location.lat()); alert("Longitude: "+results[0].geometry.location.lng()); } else {

alert("Geocode was not successful for the following reason: " + status); }

});

Validación de ingreso y salida de obra del empleado:

(30)

30

datos MSQL guardando los datos de longitud y latitud del operario y la hora en que se generó el registro.

Ilustración 8. Tabla registro - Base de datos MYSQL

5.4 Chat

Se implementar un chat para permitir una comunicación entre los integrantes de la empresa.

(31)

31

conectando los usuarios según sea necesario, una de ellas para ‘soporte técnico’ considerada más para la comunicación y verificación de requerimientos propias del trabajo y otra de ‘soporte ubicación’ para temas considerados con los horarios o incapacidad de realizar registros por no estar en sitio.

5.5 Diagramas

Se consideran los siguientes diagramas para plasmar y contextualizar el diseño e implementación realizado en el proyecto en un ambiente de pruebas.

5.5.1 Diagrama de bloques

(32)

32 LOGUEO REGISTRO HORARIO VERIFICACIÓN DE INFORMACION LABORAL CHAT REGISTRO ENTRADA REGISTRO SALIDA DISPOSITIVO MOVIL WEB ADMINISTRADOR LOGUEO EMPRESA OBRA OPERARIO CHAT SERVIDOR ALMACENAMIENTO DE INFORMACION PROCESAMIENTO DE DATOS TRANSMISION DE DATOS TRANSMISION DE DATOS REGISTRO LISTADO REGISTRO ESTADO REGISTRO CONSULTA REG TAREAS

(33)

33 5.5.2 Modelo físico

El modelo físico necesario para su funcionamiento de la solución propuesta es:

Web Service Servidor de MySQL Aplicación

Administrador

App

Ilustración 10. Modelo Físico

5.5.3 Diagrama de Estados

Según el estado de la aplicación y de los datos ingresados a ella para su funcionamiento se pueden encontrar los siguientes estados:

INACTIVO EMPRESA CREADA OPERARIO CREADO OBRA CREADA LABOR REGISTRADA CONSULTA

Evento / Acción

Evento / Acción

E v e n to / A c ci ó n

Evento / Acción

E v e n to / A c ci ó n REGISTRO OPERARIO Evento / Acción

(34)

34 5.5.4 Diagrama de Actividades

Con base al planteamiento de la solución para J Pretelt Ingeniería Hidráulica EU se contemplan el siguiente diagrama de actividades:

Ilustración 12. Diagrama de actividades

5.5.5 Diagrama de Secuencia

(35)

35 Admin Administrador Portal Web Base de Datos

Creació n empresa

Visualización

Creación Obra Visualización

Creación Operario

Visualización

Creació n Tarea

Visualización

Login Autenticación

Datos Correcto s Datos Incorrectos APP Operario Validacion tarea Registro Entrada Registro Salida Chat Chat Chat Chat Visualización Logout Validacion Login API Google Maps

Peticion de Ubicación

Geolocalización

Geolocalización

Ilustración 13. Diagrama de secuencias

5.5.6 Casos de Uso

Para la aplicación de J Pretelt Ingeniería Hidráulica EU de control de personal por medio de geolocalización se contemplan los siguientes casos de uso:

(36)

36

• El actor ingresará su usuario (N° documento) • El actor ingresará contraseña

• El actor tiene acceso al menú principal

Ilustración 14. Casos de Uso - Inicio de la aplicación

El actor inicia la aplicación desde el acceso en el escritorio del computador

Ilustración 15. Icono Gestor Operarios

El cual abre la aplicación la siguiente ruta

(37)

37

Ingresa los datos de usuario (documento de identidad) y contraseña y se habilitan las opciones del menú principal

Ilustración 17. URL Gestor Operarios Administrador con login

En interfaz administrativa se definieron los casos de uso principales así: • El actor accede para crear agenda

• El actor accede para crear empresa • El actor accede para crear operario • El actor accede al chat

Ilustración 18. Casos de uso – Principales

A continuación se presenta cada uno de los casos de uso principales:

(38)

38 • El Actor accede al menú Agendamiento

• El actor debe seleccionar la empresa a la que se prestarán los servicios • El actor programa la fecha y hora en que se realizará la prestación de los

servicios

• El actor selecciona los operarios que intervendrán en la obra

• El actor asigna las tareas que desempeñarán los operarios seleccionados • El actor guardará los datos del Agendamiento y estos se guardarán en base

de datos

Ilustración 19. Casos de uso – Agendamiento

Caso de uso Empresas permite registrar las empresas a las que se prestarán los servicios.

• El Actor accede al menú Empresas

• El actor ingresa los datos de la nueva empresa

• El actor ingresa la dirección de la empresa donde se prestarán los servicios • El actor puede ubicar el mapa la empresa y marcar la ubicación exacta

donde se prestarán los servicios

(39)

39

• El actor guardará los datos de la empresa y estos se guardarán en base de datos

Ilustración 20. Casos de uso – Empresas

Caso de uso Operario permite registrar a los operarios que realizarán las labores en las obras.

• El Actor accede al menú Operario • El actor ingresa los datos del operario

(40)

40

Ilustración 21. Casos de uso – Operarios

Caso de uso Chat permite al administrador Chatear con los operarios • El actor accede al menú CHAT

• El actor inicia sesión

• El actor se comunica con los operarios por texto • El actor cierra sesión

(41)

41

6 INTERFAZ DE ADMINISTRADOR

Para la interfaz de administrador de la solución planteada a J Pretelt Ingeniería hidráulica EU. Se desarrolla un servicio web que funciona de la siguiente forma:

Ilustración 23. Interfaz de administrador

Para el detalle de cada uno de los procesos se representa tiene unos procesos que a continuación se especifican.

(42)

42

Ilustración 24.Interfaz de administrador - Agendamiento

(43)

43

Ilustración 25.Interfaz de administrador - Empresas

(44)

44

(45)

45

7 INTERFAZ DE OPERARIO

Esta es la interfaz utilizada por el operario en su teléfono móvil Smartphone. Esta interfaz fue desarrollada para dispositivos que funcionan en la plataforma Android y se conecta al servicio web que a su vez almacena los datos en la base de datos MYSQL. Los siguientes diagramas de flujo muestran su funcionamiento.

Ilustración 27. Interfaz de operario

(46)

46

(47)

47

(48)

48

8 PRUEBAS DE CARGA BÁSICA DE LA INTERFAZ WEB

Para el desarrollo de estas pruebas se implementó un software llamado Apache JMeter, el cual se considera adecuado según las características del servidor implementado en el ambiente de pruebas.

El Apache JMeter es un software de código abierto, una aplicación diseñada totalmente en JAVA para medir el rendimiento y comportamiento de servidores mediante pruebas. Originalmente se diseñó para probar aplicaciones Web, pero se ha ampliado desde entonces a otras funciones. Se utilizar para probar el rendimiento tanto de los recursos estáticos y dinámicos (archivos, Servlets, scripts de Perl, objetos Java, bases de datos - consultas, servidores FTP y mucho más). Se puede utilizar para simular una carga pesada en un servidor, la red o un objeto para poner a prueba su resistencia o para analizar el rendimiento global en diferentes tipos de carga. Puede usarlo para hacer un análisis gráfico de rendimiento o para probar el comportamiento de diferentes elementos con un gran volumen de carga y concurrencia. [24]

En esta prueba se simula una conexión de 50 usuarios con un periodo de 5 segundos lo que significa que se conectarán 10 usuarios por segundo. Dichos parámetros se consideran ya que la empresa es pequeña y tiene un estimado de crecimiento inferior al propuesto en la prueba.

Ilustración 30. Configuración de Pruebas - Carga

(49)

49

Ilustración 31. Configuración de pruebas - Host

Al iniciar correctamente la simulación los resultados obtenidos son los siguientes: • Árbol de resultados:

Ilustración 32. Árbol de Resultados

(50)

50 • Resultados en tablas:

Ilustración 33. Resultado en Tablas

Se pueden observar los resultados en forma de tabla donde se listan cada una de las muestras y cada columna indica el tiempo de carga, el estado, el tamaño en bytes la latencia y el tiempo de la conexión.

• Informe resumido:

Ilustración 34. Informe resumido

(51)

51

(52)

52

9 RESULTADOS

En la implementación del ambiente de pruebas de la aplicación se obtuvo como interfaz de administrador un acceso por web en donde se puede realizar los procesos:

• Con lo que respecta a las empresas en donde se realizan los contratos para iniciar labores se cuenta con un formulario de registro de empresa y visualización del listado de estas.

• Un Agendamiento que valida tanto la creación de obra como el estado de ellas con respecto a cada uno de los operarios. En el momento de la creación de una obra se requiere el ingreso de la geolocalización en donde se encuentra esta, para realizar el punto en el cual el operario puede registrar su ingreso o salida.

• Una administración de operario en donde se realiza el registro del personal, registro de tareas y consulta de los registros de entrada y salida de cada uno. El operario solo se podrá registrar si se encuentra en su lugar de trabajo, que en este caso es la obra, para lo cual se tiene un rango establecido para considerar el error de la triangulación GPS recibida del API de Google, pero sin ser tan extenso para poder están en lugares cercanos. Es por ello que se debe considerar que si la obra se encuentra en un lugar muy extenso es necesario especificar en el registro de la obra y a los operarios que el registro se debe efectuar en un lugar en específico, que suele ser la entrada.

• Un chat en donde se valida los mensajes que los operarios registran desde sus dispositivos móviles. La transmisión de datos es correcta.

Todos los datos que se registran en las bases de datos son validados, dando como parte una validación de la base de datos confiable.

La aplicación para dispositivos móviles implementados en los móviles de pruebas para el control de los operarios de J Pretelt Ingeniería Hidráulica EU contiene:

(53)

53

• Una visualización de tareas registradas en la interfaz de administrador rápida y veraz.

• Un registro de horario tanto de entrada como de salida con su geoposicionamiento correcto con un rango de error aceptable para su funcionamiento.

• Con el fin de evitar el registro de compañeros en el lugar de trabajo, se dispuso una regla de verificación en el momento de registrarse e ingresar a la APP en donde debe ser con la MAC o mismo dispositivo que el usuario uso en su primer ingreso.

(54)

54

10 CONCLUSIONES

Se desarrolló una aplicación para dispositivos móviles en la plataforma Android con base en las necesidades de control de personal de J Pretelt Ingeniería Hidráulica EU, haciendo uso de los API de Google Maps y GPS del móvil, almacenando la información en un servidor de base de datos MySQL con Apache Tomcat 7.

El uso del GPS del equipo móvil junto con el API de Google Maps son una herramienta poderosa para poder determinar la ubicación de un individuo, gracias a estas herramientas fue posible desarrollar esta aplicación permitiendo validar la ubicación de los operarios en su lugar de labores de una manera precisa.

Se implementa un chat en la aplicación que da una ventaja estratégica para la empresa J Pretelt Ingeniería Hidráulica EU, pues permite a los operarios y al administrador comunicar de manera oportuna problemas o situaciones que se presenten en cada una de las obras en las que opera la empresa.

Se desarrolla una interfaz web de administrador que posee las funcionalidades de creación de operario, empresa, Agendamiento de obra, verificación de la información ingresada, comunicación con los empleados a través de chat y la interfaz de operario que permite verificar la agenda que tiene programada, la validación de registro de entrada y salida de los operarios y chat.

Toda la información que es registrada en los formularios de la interfaz de administración queda almacenada en un servidor de base de datos MYSQL con Apache Tomcat 7, junto con la información de registro de entrada y salida de obra generada en la interfaz de operario.

(55)

55

11 BIBLIOGRAFÍA

[1] Tomado del sitio web SESAME "Sistema de gestión de horarios laborales", www.sesametime.com

[2] C. Grange García, " desarrollo de una aplicación Android para el control automático de la asistencia a clase" p. 76. 2014.

[3] Tomado del sitio web SEAT " Sistema de Control de Asistencia y tiempo para Personal", http://seguridadseat.com/Control-de-asistencia-y-tiempo-para-personal.html

[4] Tomado del sitio web Universidad Carlos III de Madrid. "Programación en dispositivos móviles portables".

http://sites.google.com/site/swcuc3m/home/android/portada. [5] Tomado del sitio web Open Handset Alliance.

http://www.openhandsetalliance.com/android_overview.html [6] Tomado del sitio web "Desarrollo de Aplicaciones Móviles",

http://comunidad.udistrital.edu.co/sintel/files/2014/05/Guia-android.pdf [7] C. A. Rafael, G. M. Lilibeth, L. L. Iván, " Investigación sobre ANDROID”,

Universidad Tecnológica De La Mixteca, May 2008. Disponible en: http://www.utm.mx/~caff/poo/AndroidIntro.pdf

[8] J. D. Benedik, "Descubriendo la anatomía de una aplicación sobre Android”, Nexo, Vol. 25, No. 02, pp. 47-53/Diciembre 2012

[9] P. O. Jaume, " Introducción a Android y sus aplicaciones", Universidad de Sevilla, 2009

[10] J. R. Tamara, R. B. María, "Sistema de posicionamiento global (GPS)", Disponible en: http://webs.um.es/bussons/GPSresumen_TamaraElena.pdf [11] "El Sistema de Posicionamiento Global".

<http://www.gps.gov/systems/gps/spanish.php> [citado el 10 de Febrero de 2016]

[12] " Descripción del Sistema GPS"

<http://www.alsitel.com/tecnico/gps/sistema.htm> [consultado el 16 de Marzo de 2016]

[13] C. S. Luis, G. G. Marc, "Bases de datos en MySQL", UOC, www.UOC.com, Disponible en:

http://ocw.uoc.edu/computer-science-technology-and-multimedia/bases-de-datos/bases-de-datos/P06_M2109_02151.pdf [14] " MySQL 5.0 Reference Manual",

<http://downloads.mysql.com/docs/refman-5.0-es.pdf> [consultado 8 de Febrero de 2016]

[15] T. Converse, J. Park, C. Morgan, PHP5 and MySQL® Bible, Indianapolis: Wiley Publishing, Inc., 2004, p.3.

(56)

56

[17] Ángel J. Vico, “Arquitectura de Android”, La columna 80, disponible en: https: //columna80.wordpress.com/2011/02/17/arquitectura-de-android/, 17 de Febrero de 2011.

[18] Rubén Montero Vásquez, “Localización y seguimiento por GPS con Android”, Universidad Rey Juan Carlos, España, 2010.

[19] Google Maps.

<https://www.google.es/maps/place/Bogotá,+Colombia/@4.6880626,-74.0791528,13z> {Citado el 13 de Septiembre de 2016].

[20] Luis Alberto Casillas Santillán, Marc Gibert Ginestà, Óscar Pérez Mora. “Bases de datos en MySQL”. P06/M2109/02151.

<http://ocw.uoc.edu/computer-science-technology-and-multimedia/bases-de-datos/bases-de-datos/P06_M2109_02151.pdf>

[21] Manual de Zpanel en español <http://www.blogin.com.es/zpanel-tutorial> [consultado el 14 de Septiembre de 2016]

[22] Zpanlecp.<http://www.zpanelcp.com>[citado el 14 de septiembre de 2016] [23] Developer Labs. Configuración de Apache Tomcat

<http://palmor.softmedia.com.mx/tutoriales/configuracion-de-apache-tomcat/> [citado el 15 de Septiembre de 2016]

[24] JMeter. < https://senaintro.blackboard.com/bbcswebdav/pid-52987640-dt-

Figure

Ilustración 1. Arquitectura Sistema Operativo Android [17]
Ilustración 2. Segmento de control GPS [11]
Ilustración 3. Retorno del API de Google Maps [19]
Ilustración 4. Diagrama de solución inicial
+7

Referencias

Documento similar

D) El equipamiento constitucional para la recepción de las Comisiones Reguladoras: a) La estructura de la administración nacional, b) La su- prema autoridad administrativa

La aplicación de las Buenas Prácticas de Producción de Miel en el Manejo Integral en l Manejo Integral de los Apiarios y de las Colonias de abejas aplicada por los

&#34;No porque las dos, que vinieron de Valencia, no merecieran ese favor, pues eran entrambas de tan grande espíritu […] La razón porque no vió Coronas para ellas, sería

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas

En primer lugar, como ya se ha señalado, debe precisarse que ambas categorías acce- den a sus puestos de trabajo a través de cauces más flexibles que el personal permanente, pero

Como posible resultado se pretende que, al concluir la investigación, en Cuba se cuente con una aplicación para dispositivos móviles con el sistema operativo Android que