UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS
CARRERA DE INGENIERIA EN SISTEMAS
COMPUTACIONALES
APLICACIÓN MÓVIL PARA CONTROL DE ACCESO Y ASISTENCIA EN LA EMPRESA ECUADOR ON RAILS MEDIANTE RECONOCIMIENTO
FACIAL Y CÓDIGOS QR UTILIZANDO EL FRAMEWORK REACT NATIVE CAMERA Y TECNOLOGÍA NUMATO.
PROYECTO DE TITULACIÓN
Previa a la obtención del Título de:
INGENIERO EN SISTEMAS COMPUTACIONALES
AUTORES:
PAZMIÑO LA ROSA KERLY ESTEFANY
RAMÍREZ MURRIETA GUILLERMO ANDRÉS
TUTOR:
Ing. KARLA YADIRA ABAD SACOTO Msc.
GUAYAQUIL – ECUADOR
REPOSITORIO NACIONAL EN CIENCIA Y TECNOLOGÍA
FICHA DE REGISTRO DE TESIS
TÌTULO: “APLICACIÓN MÓVIL PARA CONTROL DE ACCESO Y ASISTENCIA EN LA EMPRESA ECUADOR ON RAILS MEDIANTE RECONOCIMIENTO FACIAL Y CÓDIGOS QR UTILIZANDO EL FRAMEWORK REACT NATIVE CAMERA Y TECNOLOGÍA NUMATO”
AUTOR/ES: KERLY ESTEFANY PAZMIÑO LA ROSA
GUILLERMO ANDRÉS RAMÍREZ MURRIETA REVISORES:
INSTITUCIÓN:
UNIVERSIDAD DE GUAYAQUIL FACULTADFÍSICAS : DE CIENCIAS MATEMÁTICAS Y
CARRERA: INGENIERÍA EN SISTEMAS COMPUTACIONALES
FECHADEPUBLICACIÓN: Octubre de 2019 No. DE PÁGS: 129 páginas
ÁREA TEMÁTICA: DESARROLLO DE SOFTWARE
PALABRAS CLAVE: Reconocimiento facial, Código QR, aplicación móvil, framework, OpenCV.
RESUMEN: El presente trabajo de titulación consiste en el desarrollo de una aplicación móvil para el control de acceso de cliente mediante la lectura de códigos QR y asistencia de empleados con la ayuda del reconocimiento facial como método de identificación en el ingreso a la empresa Ecuador on Rails, para esto se hará uso del framework React Native Camera con la verificación del código QR y la detección del rostro, además del algoritmo de identificación de patrones faciales en la librería OpenCV, con el cual se busca garantizar la identidad de la persona que ingresa a la empresa y disminuir el riesgo que le puede ocasionar el acceso de un intruso, adicional permite mantener un mejor control de la jornada laboral de sus empleados y de esta forma garantizar su productividad.
No. DE REGISTRO(en base de datos): No. DE CLASIFICACIÓN:
DIRECCIÓN URL (tesis en la web):
NOMBRE: AB. JUAN CHÁVEZ ATOCHA
Teléfono: 2307729
III
APROBACIÓN DEL TUTOR
En mi calidad de Tutor del trabajo de titulación, “APLICACIÓN MÓVIL PARA CONTROL DE ACCESO Y ASISTENCIA EN LA EMPRESA ECUADOR ON RAILS MEDIANTE RECONOCIMIENTO FACIAL Y CÓDIGOS QR UTILIZANDO EL FRAMEWORK REACT NATIVE CAMERA Y TECNOLOGÍA NUMATO“ elaborado por la Srta. KERLY ESTEFANY PAZMIÑO LA ROSA y el Sr. GUILLERMO ANDRÉS RAMÍREZ MURRIETA, Alumnos no titulados de la Carrera de Ingeniería en Sistemas Computacionales, Facultad de Ciencias Matemáticas y Físicas de la Universidad de Guayaquil, previo a la obtención del Título de Ingeniero en Sistemas Computacionales, me permito declarar que luego de haber orientado, estudiado y revisado, la Apruebo en todas sus partes.
Atentamente
IV
DEDICATORIA
Este trabajo se lo dedico a mis padres Maritza La Rosa y Jorge León por brindarme siempre su apoyo incondicional, y haberme enseñarme a ser una mejor persona cada día.
A mis hermanas por compartir conmigo todo este camino llamado vida y demostrarme que con esfuerzo y dedicación se cumplen todas las metas.
V
DEDICATORIA
Dedico este trabajo de manera muy especial a mi madre, por su apoyo incondicional y a mi pequeña Mila, por traer alegría a mi vida al compartir las travesuras de su niñez conmigo.
VI
AGRADECIMIENTO
Agradezco a Dios por darme salud y sabiduría para poder culminar mis estudios. A mi madre por enseñarme a nunca darme por vencida, a mi padre por su apoyo incondicional, a mis hermanas por todos los desvelos en que me acompañaron durante este proceso,
A mis amigos por siempre aconsejarme y estar presente cuando su apoyo necesite. A la institución y cada uno de los profesores que me brindaron sus
conocimientos y
experiencias para llegar a esta meta,
VII
AGRADECIMIENTO
Agradezco a toda persona que me ha apoyado y ha compartido conmigo este proceso, en particular a mi madre Verónica Murrieta, a mis mentores y amigos Marco Hernández y Leonardo Gavidia.
VIII
TRIBUNAL PROYECTO DE TITULACIÓN
Ing. Fausto Cabrera Montes, M.Sc. DECANO DE LA FACULTAD CIENCIAS MATEMATICAS Y
FISICAS
Ing. Gary Reyes Zambrano, Mgs. DIRECTOR DE LA CARRERA DE INGENIERIA EN SISTEMAS
COMPUTACIONALES
Ing.Karla Yadira Abad Sacoto, M.Sc. PROFESOR TUTOR DEL PROYECTO DE TITULACION
Ing. Ángel Cuenca Ortega, M. Sc. PROFESOR REVISOR DEL
PROYECTO DE TITULACION
IX
DECLARACIÓN EXPRESA
“La responsabilidad del contenido de este Proyecto de Titulación, nos corresponde exclusivamente; y el patrimonio intelectual de la misma a la UNIVERSIDAD DE GUAYAQUIL”
_________________________
Kerly Estefany Pazmiño La Rosa
_______________________________
X
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERIA EN SISTEMAS
COMPUTACIONALES
APLICACIÓN MÓVIL PARA CONTROL DE ACCESO Y ASISTENCIA EN LA EMPRESA ECUADOR ON RAILS MEDIANTE RECONOCIMIENTO FACIAL Y CÓDIGOS QR UTILIZANDO EL FRAMEWORK REACT NATIVE CAMERA
Y TECNOLOGÍA NUMATO.
Proyecto de Titulación que se presenta como requisito para optar por el título de INGENIERO EN SISTEMAS COMPUTACIONALES
AUTOR (ES):
PAZMIÑO LA ROSA KERLY ESTEFANY C.I. 094135789-9 RAMÍREZ MURRIETA GUILLERMO ANDRÉS C.I. 1206134122
TUTOR: ING. KARLA YADIRA ABAD SACOTO M. SC.
XI
CERTIFICADO DE ACEPTACIÓN DEL TUTOR
En mi calidad de Tutor del proyecto de titulación, nombrado por el Consejo Directivo de la Facultad de Ciencias Matemáticas y Físicas de la Universidad de Guayaquil.
CERTIFICO:
Que he analizado el Proyecto de Titulación presentado por los estudiantes Kerly Estefany Pazmiño La Rosa y Guillermo Andrés Ramírez Murrieta, como requisito previo para optar por el título de Ingeniero en Sistemas Computacionales cuyo problema es:
APLICACIÓN MÓVIL PARA CONTROL DE ACCESO Y ASISTENCIA EN LA EMPRESA ECUADOR ON RAILS MEDIANTE RECONOCIMIENTO FACIAL Y CÓDIGOS QR UTILIZANDO EL FRAMEWORK REACT NATIVE CAMERA Y TECNOLOGÍA NUMATO.
Considero aprobado el trabajo en su totalidad.
Presentado por:
Pazmiño La Rosa Kerly Estefany C.I. 0941357899 Ramírez Murrieta Guillermo Andrés C.I. 1206134122
Tutor: Ing. Karla Yadira Abad Sacoto M. Sc.
XII
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS CARRERA DE INGENIERIA EN SISTEMAS COMPUTACIONALES
Autorización para Publicación de Proyecto de Titulación en Formato Digital 1. Identificación del Proyecto de Titulación
Nombre Alumno: Kerly Estefany Pazmiño La Rosa
Dirección: Pascuales Coop. 21 de Noviembre Mz. 111 Sl.2 L
Teléfono: 2985875-0986555422 E-mail: [email protected]
Nombre Alumno: Guillermo Andrés Ramírez Murrieta Dirección: Cdla. Simón Bolívar Mz.1 Villa 53
Teléfono: 0995270616 E-mail: [email protected]
Facultad: Ciencias Matemáticas y Físicas
Carrera: Ingeniería en Sistemas Computacionales
Proyecto de titulación al que opta: Ingeniero en Sistemas Computacionales Profesor tutor: Ing. Karla Yadira Abad Sacoto M.Sc.
Título del Proyecto de titulación: Aplicación móvil para control de acceso y asistencia en la empresa Ecuador on Rails mediante reconocimiento facial y códigos QR utilizando el framework React Native Camera y tecnología Numato
Tema del Proyecto de Titulación: Aplicación móvil para control de acceso y asistencia.
2. Autorización de Publicación de Versión Electrónica del Proyecto de Titulación
A través de este medio autorizo a la Biblioteca de la Universidad de Guayaquil y a la Facultad de Ciencias Matemáticas y Físicas a publicar la versión electrónica de este Proyecto de titulación.
Publicación electrónica:
Inmediata X Después de 1 año
Firma Alumno:
Kerly Estefany Pazmiño La Rosa Guillermo Andrés Ramírez Murrieta
3. Forma de envío:
El texto del proyecto de titulación debe ser enviado en formato Word, como archivo .Doc. O .RTF y. Puf para PC. Las imágenes que la acompañen pueden ser: .gif, .jpg o .TIFF.
XIII
ÍNDICE GENERAL
APROBACIÓN DEL TUTOR ... III DEDICATORIA ... IV DEDICATORIA ... V AGRADECIMIENTO... VI AGRADECIMIENTO... VII DECLARACIÓN EXPRESA ... IX CERTIFICADO DE ACEPTACIÓN DEL TUTOR... XI ÍNDICE GENERAL... XIII ABREVIATURAS ...XVII ÍNDICE DE CUADROS ... XVIII ÍNDICE DE GRÁFICOS ... XX
PLANTEAMIENTO DEL PROBLEMA ... 4
Ubicación del Problema en un Contexto ... 4
Situación Conflicto Nudos Críticos ... 6
Causas y consecuencias del problema... 7
Delimitación del problema ... 8
Formulación del problema ... 8
Evaluación del problema ... 9
OBJETIVOS ... 10
Objetivo General ... 10
Objetivos Específicos ... 10
ALCANCE DEL PROBLEMA ... 11
XIV
METODOLOGÍA DEL PROYECTO ... 13
CAPÍTULO II ... 16
MARCO TEÓRICO ... 16
ANTECEDENTES DE ESTUDIO ... 16
FUNDAMENTACIÓN TEÓRICA ... 18
Jornada laboral ... 18
Control de asistencia del personal ... 19
Control de acceso ... 20
Tipos de controles de acceso ... 20
Sistemas biométricos ... 21
Sistema automatizado... 22
Reconocimiento facial ... 23
Códigos QR ... 24
Aplicación móvil ... 25
Sistema operativo Android ... 25
Tipos de aplicaciones móviles ... 26
Aplicación móvil nativa ... 27
Aplicación móvil Hibrida ... 27
Aplicación móvil Web ... 27
Framework ... 28
React Native ... 28
Bibliotecas y componentes de React Native ... 29
XV
Pregunta científica a contestar ... 44
Definiciones Conceptuales ... 44
CAPÍTULO III ... 46
PROPUESTA TECNOLÓGICA ... 46
Análisis de factibilidad ... 46
Factibilidad operacional ... 46
Factibilidad técnica ... 47
Factibilidad legal ... 50
Factibilidad económica ... 50
Diagramas de flujos de procesos ... 54
Metodología de Investigación ... 56
Tipo de investigación ... 56
Población y muestra ... 56
Población ... 56
Muestra ... 57
Instrumentos de recolección de datos ... 57
Técnica ... 57
Instrumento ... 57
Procesamiento y Análisis ... 58
Análisis de la Encuesta... 64
Etapas de la Metodología de Desarrollo del Proyecto ... 70
Comunicación ... 71
Plan rápido ... 73
Modelado, diseño rápido ... 82
XVI
Entrega y retroalimentación ... 106
Entrega del desarrollo final ... 112
Entregables del proyecto ... 114
Código fuente de la aplicación móvil... 114
Manual de usuario. ... 115
Manual técnico. ... 115
Criterio de validación de la propuesta ... 115
CAPÍTULO IV ... 119
Criterios de aceptación del producto o servicio ... 119
CONCLUSIONES ... 121
RECOMENDACIONES ... 123
Bibliografía ... 124
XVII
ABREVIATURAS
API Interfaz de Programación de Aplicaciones
BD Base de Datos
HTML Lenguaje de Marca de salida de Hyper Texto HTTP Protocolo de transferencia de Hyper Texto IDE Entorno de Desarrollo Integrado
ISP Proveedor de Servicio de Internet
QR Quick Response
TCP/IP Protocolo de Control de Transmisión/Protocolo de Internet TI Tecnología de Información
XVIII
ÍNDICE DE CUADROS
Cuadro N. 1 Causas y consecuencias del problema ... 8
Cuadro N. 2 Delimitación del problema de la Investigación ... 8
Cuadro N. 3 Ventajas y desventajas de los sistemas biométricos fisiológicos ... 22
Cuadro N. 4 Cuadro comparativo de los tipos de aplicaciones ... 28
Cuadro N. 5 Características de OpenCV... 35
Cuadro N. 6 Requerimientos del dispositivo móvil ... 48
Cuadro N. 7 Requerimientos del módulo Numato ... 49
Cuadro N. 8 Requerimientos de hardware para el desarrollo de la App móvil ... 49
Cuadro N. 9 Requerimientos de software ... 50
Cuadro N. 10 Presupuesto del proyecto ... 52
Cuadro N. 11 Presupuesto de mercado ... 53
Cuadro N. 12 Costos de implementación del proyecto ... 53
Cuadro N. 13 Total de la población ... 56
Cuadro N. 14 Resultados de la pregunta N° 1 de la encuesta. ... 65
Cuadro N. 15 Resultados de la pregunta N° 2 de la encuesta ... 66
Cuadro N. 16 Resultados de la pregunta N° 3 de la encuesta ... 67
Cuadro N. 17 Resultados de la pregunta N° 4 de la encuesta ... 68
Cuadro N. 18 Resultados de la pregunta N° 5 de la encuesta ... 69
Cuadro N. 19 Interfaz aplicación móvil ... 74
Cuadro N. 20 Requerimiento funcional del módulo de acceso empleados... 75
Cuadro N. 21 Requerimiento funcional módulo clientes ... 75
Cuadro N. 22 Requerimiento funcional datos de clientes ... 76
Cuadro N. 23 Requerimiento funcional restricción de acceso empleados no registrados. ... 77
Cuadro N. 24 Requerimiento funcional restricción de acceso a visita no agendada. . 78
Cuadro N. 25 Requerimiento funcional apertura de puertas ... 78
XIX Cuadro N. 27 Requerimiento funcional de reportes de acceso de clientes o empleados
mediante módulo Web. ... 80
Cuadro N. 28 Requerimiento funcional de módulo administrador ... 80
Cuadro N. 29 Cronograma del plan de prototipo de aplicación de control de acceso y asistencia ... 82
Cuadro N. 30 Hoja de control del plan de pruebas ... 107
Cuadro N. 31 Historial de versiones ... 107
Cuadro N. 32 Prueba de interfaz de usuario ... 109
Cuadro N. 33 Prueba de integración ... 109
Cuadro N. 34 Prueba de integridad de datos ... 110
Cuadro N. 35 Resultado de pruebas ... 111
Cuadro N. 36 Información de expertos a realizar la evaluación ... 116
Cuadro N. 37 Escala de evaluación... 116
Cuadro N. 38 Resultado de juicio de expertos ... 117
XX
ÍNDICE DE GRÁFICOS
Gráfico 1 Elementos de un sistema de reconocimiento de rostros... 24
Gráfico 2 Código QR con nombre de los autores ... 25
Gráfico 3 Cuota de mercado global del sistema operativo móvil ... 26
Gráfico 4 Obtención de recursos con REST frente GraphQL ... 32
Gráfico 5 Ejemplo de obtención de datos con REST ... 33
Gráfico 6 Ejemplo de obtención de datos con GraphQL ... 34
Gráfico 7 Funcionamiento general de AWS AppSync ... 36
Gráfico 8 Lenguajes más queridos por desarrolladores ... 39
Gráfico 9 Diagrama de flujo de Procesos de la Aplicación Móvil ... 55
Gráfico 10 Ciudades con el mayor número de robos a unidades económicas en Ecuador ... 59
Gráfico 11 Encuesta pregunta N° 1 ... 65
Gráfico 12 Encuesta pregunta N° 2 ... 66
Gráfico 13 Encuesta pregunta N° 3 ... 67
Gráfico 14 Encuesta pregunta N° 4 ... 68
Gráfico 15 Encuesta pregunta N° 5 ... 69
Gráfico 16 Etapas del Modelo de Prototipado ... 71
Gráfico 17 Prototipo de pantalla de inicio en la aplicación móvil ... 83
Gráfico 18 Prototipo de pantalla de identificación clientes ... 84
Gráfico 19 Diseño Inicial de Módulo Empleado ... 85
Gráfico 20 Esquema de apertura de puertas ... 86
Gráfico 21 Diagrama de Base de Datos ... 86
Gráfico 22 Esquema de Diseño del prototipo ... 89
Gráfico 23 Diagrama de actores ... 90
Gráfico 24 Diagrama de caso de uso cliente ... 91
Gráfico 25 Diagrama de caso de uso empleado ... 92
Gráfico 26 Diagrama de casos de uso administrador ... 93
XXI
Gráfico 28 Diagrama de actividades del sistema ... 95
Gráfico 29 Diseño de la aplicación móvil-módulo empleados ... 112
Gráfico 30 Diseño de la Aplicación móvil-módulo clientes ... 113
Gráfico 31 Diseño de proceso de registro de empleados ... 113
XXII
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS CARRERA DE INGENIERIA EN SISTEMAS COMPUTACIONALES
Aplicación móvil para control de acceso y asistencia en la empresa Ecuador on Rails mediante reconocimiento facial y códigos QR utilizando el framework
React Native Camera y tecnología Numato.
Autores: Pazmiño La Rosa Kerly Estefany
Ramírez Murrieta Guillermo Andrés
Tutor: Ing. Karla Yadira Abad Sacoto Msc.
Resumen
El presente trabajo de titulación consiste en el desarrollo de una aplicación móvil para el control de acceso y asistencia en la empresa Ecuador on Rails, mediante la lectura de códigos QR para clientes y el manejo de la asistencia de empleados con la ayuda del reconocimiento facial como método de identificación. La verificación de códigos QR y detección del rostro, es realizada haciendo uso del framework React Native Camera. Además se usó el algoritmo de identificación de patrones faciales de la librería OpenCV, con el cual se busca garantizar la identidad del trabajador que ingresa a la empresa y disminuir el riesgo que le puede ocasionar el acceso de un intruso. Adicionalmente permite mantener un mejor control de la jornada laboral de sus empleados y garantizar su productividad. El estudio fue elaborado desde una metodología descriptiva, que permitió conocer el entorno en el que se encuentra ubicada la empresa, describir los altos niveles de inseguridad de la ciudad de Guayaquil, como los delitos que se han cometido en su lugar de ubicación. En la construcción de la aplicación se usó la metodología del modelo de prototipado, cuyas etapas empiezan con la comunicación entre el cliente, esto se llevó a cabo con una entrevista para definir los requerimientos del sistema, luego se definió un cronograma de actividades a desarrollar. Posteriormente, se elaboró un diseño de la aplicación, de esta forma empezar la construcción y codificación del proyecto. Este prototipo se encontraba en constante revisión con el usuario para al final poder entregar una aplicación que cumpla con todos los requisitos especificados. Finalmente, los resultados concluyen que la aplicación proporcionará un mayor nivel de seguridad en la empresa y una mejor gestión del tiempo de sus empleados y organización de sus clientes.
XXIII
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS CARRERA DE INGENIERIA EN SISTEMAS COMPUTACIONALES
Mobile application for access control and assistance in the company Ecuador on Rails by face recognition and QR codes using the React
Native Camera framework and Numato technology.
Autores: Pazmiño La Rosa Kerly Estefany
Ramírez Murrieta Guillermo Andrés
Tutor: Ing. Karla Yadira Abad Sacoto Msc
Abstract
This degree work consists in the development of a mobile application for access control and assistance in the Ecuador on Rails Company, by reading QR codes for clients and managing employee assistance with the help of facial recognition such as identification method. QR code verification and face detection is done using the React Native Camera framework. In addition, the algorithm for identifying facial patterns of the OpenCV library was used, which seeks to guarantee the identity of the worker entering the company and reduce the risk that an intruder can access. Additionally, it allows maintaining a better control of the working hours of its employees and guaranteeing their productivity. The study was prepared using a descriptive methodology, which allowed us to know the environment in which the company is located, to describe the high levels of insecurity in the city of Guayaquil, such as the crimes that have been committed in their location. In the construction of the application, the prototyping model methodology was used, whose stages begin with the communication between the client, this was carried out with an interview to define the system requirements, then a schedule of activities to be developed was defined. Subsequently, an application design was developed, thus starting the construction and coding of the project. This prototype was in constant review with the user to finally be able to deliver an application that meets all the specified requirements. Finally, the results conclude that the application will provide a higher level of security in the company and better time management of its employees and organization of its customers.
1
INTRODUCCIÓN
Los robos y asaltos en la ciudad de Guayaquil han aumentado en los últimos años. De acuerdo al Ministerio del Interior del Ecuador (2019) se registraron 617 denuncias de robos a negocios y locales comerciales, en el sistema integrados de administración de fiscalías durante el año 2018, por lo cual es considerada la segunda ciudad con el mayor número de este tipo de delitos en el Ecuador, esto hace que sean cada vez más las personas que implementen controles de seguridad en sus instalaciones para de esta forma evitar ser víctimas de asaltos y robos por parte de delincuentes que ingresen sin ser vistos a sus viviendas o locales comerciales.
Sin embargo, no todas las empresas cuentan con los recursos para implementar estos controles, de ahí surge la propuesta de ofrecer una aplicación móvil para el control de acceso en la empresa Ecuador on Rails, la cual permite no solo verificar el acceso de terceros como son los clientes mediante la lectura de un código QR, sino que mantiene un mejor manejo de la asistencia de sus empleados. Además de contar con la garantía que ofrece una identificación con reconocimiento facial, lo cual le permitirá evitar riesgos como la suplantación de identidad y garantiza que cada empleado cumpla con su jornada laboral y la misma se encuentre registrada para una posterior consulta.
2
En el desarrollo de esta propuesta se implementó una metodología descriptiva, la cual permitió describir los principales sucesos que se pueden generar por la falta de un control de acceso. Además de los robos y asaltos, se puede generar un ausentismo laboral como incumplimiento de la jornada de labores por parte de los trabajadores. Todos los problemas existentes en la empresa debido a la ausencia de un control de acceso y asistencia pudieron describirse a través de una entrevista al dueño de la organización objeto de estudio, en los cuales se mencionaron interrogantes para conocer la problemática que vive este negocio al no contar con ningún sistema de seguridad de acceso y control.
El principal objetivo de esta propuesta es desarrollar una aplicación móvil para el control de acceso de clientes mediante lectura de códigos QR, e identificación y manejo de asistencia de empleados a través del reconocimiento facial, de esta forma tener un mejor manejo de las personas que ingresan a la empresa. Además, se busca proporcionar de un reporte de asistencia de empleados y visita de cliente, de acuerdo a los parámetros que solicite la empresa Ecuador on Rails.
El presente trabajo de titulación se divide en cuatro capítulos:
En el Capítulo I, se analiza la problemática que surge alrededor de la ausencia de un control de acceso y asistencia, así como los objetivos que debe cumplir nuestra aplicación para resolver estas novedades, también se establece la metodología a implementar para el estudio de la propuesta.
3
En el Capítulo III, se realiza un análisis de la investigación mediante la técnica de entrevista, además de evaluar la factibilidad del proyecto de lo cual se puede deducir si es factible su realización de manera operacional, técnica, legal y económica. En este apartado también se desarrolla la metodología de la propuesta tecnológica de la propuesta, en este caso la seleccionada fue el modelo de prototipado.
4
CAPÍTULO I
EL PROBLEMA
PLANTEAMIENTO DEL PROBLEMA
Ubicación del Problema en un Contexto
Ecuador on Rails es una pequeña empresa ubicada en la ciudadela “La Saiba”, en el sur de la ciudad de Guayaquil, dedicada a la consultoría y desarrollo de software, siendo miembro de una industria en auge y constante crecimiento. Debido a que, tal como lo menciona el último pronóstico de Gartner Inc. (2019) se espera un aumento del 8.2% en 2020, en los productos de software empresariales, dado que se ha incrementado el número de organizaciones que almacenan su información en la nube. Es así que son cada día más las empresas que visitan sus instalaciones interesadas en algunos de sus servicios.
Los proyectos de desarrollo de software, así como las consultorías ofrecidas por esta empresa, cuentan con capacitaciones que se brindan a los usuarios del producto. No obstante, en Ecuador on Rails también se cuadran reuniones adicionales para cualquier duda que surge del producto de software cuando este ya se encuentra en producción de la empresa que lo adquirió.
5
de seguridad en las entradas a las mismas, de esta manera evitar el robo o sustracción de los activos de la empresa.
Sin embargo, este tipo de medidas no suelen garantizar la protección de las instalaciones, dado que, así como las medidas de seguridad aumentan, también lo realizan los métodos utilizados por los delincuentes. El constante avance tecnológico brinda la oportunidad de idear nuevas soluciones que garanticen el control de acceso de las personas y así poder salvaguardar los bienes de la empresa y asegurar la productividad del personal.
La empresa Ecuador on Rails no cuenta con un control de las personas que acceden a las oficinas de esta organización, lo cual la convierte en vulnerable a robos o sustracción de equipos de oficina, cómputo, así como de la información de la empresa y sus clientes por partes de desconocidos, lo que hace necesario se lleve una comparación y verificación con las visitas coordinadas de los usuarios y así evitar el ingreso de intrusos.
6
Situación Conflicto Nudos Críticos
De acuerdo al informe de rendición de cuentas de la Policía Nacional, durante el 2018, en el Ecuador se registraron 5.097 robos a unidades económicas, el cual se refiera a la sustracción de bienes y dineros de una entidad dedicada a una actividad en particular, de los cuales 728 de estos delitos fueron cometidos en la Zona 8 que corresponde a las ciudades de Guayaquil, Durán y Samborondón (Ministerio del Interior del Ecuador, 2019).
El alto nivel de inseguridad que se evidencia en la ciudad de Guayaquil hace necesario que muchas empresas implementen controles y medidas de seguridad para el acceso a sus instalaciones. Sin embargo, como se ha dado a conocer por los diferentes medios de comunicación, las medidas de seguridad tales como las cámaras de vigilancia, cerraduras tradicionales entre otros no logran frenar el acceso a los delincuentes.
En el 2018, cuatro viviendas del sector en el que se encuentra ubicada la empresa, La Saiba, fueron saqueadas por los ladrones quienes sustrajeron joyas, dinero de las cajas fuertes, equipos de computación entre otros. El subteniente Marco Novillo, de la Unidad de Policía Comunitaria (UPC) de la ciudadela, confirma lo poco seguro de este lugar, donde entre las principales denuncias se encuentran los robos a domicilios (Robles, 2018).
7
Los empleados que incumplen su jornada laboral brindan un menor desempeño laboral, lo que hace que las actividades ya establecidas y planificadas se aplacen, dando como resultado final el retraso de los entregables de los diferentes proyectos concretados con sus clientes, de ahí surge la necesidad de un registro de asistencia, así como de un control de visitas de terceros para de esta forma no alterar el cumplimiento de la agenda de actividades de la empresa.
La ausencia de un reporte de visitas de clientes evita estar al tanto del motivo de ingreso de usuarios ajenos a la empresa, cuyas razones de acceso pueden ser consultas sobre los servicios que ofrecen o citas coordinadas para la capacitación del producto ya adquirido, con este informe se pueden conocer las horas que se dictan en la empresa evitando excederse de las horas acordadas en el contrato del producto de software.
La empresa Ecuador on Rails no cuenta con un sistema de control de acceso y asistencia, ya sea de manera manual o automático, lo que hace necesario una herramienta que garantice la identidad de la persona que ingresa a las oficinas de manera automática. Además, que brinde un registro de las mismas, de esta forma garantizar no solo la seguridad de las instalaciones, sino también la productividad de la empresa, así como el cumplimiento de la agenda laboral.
Causas y consecuencias del problema
8
Cuadro N. 1 Causas y consecuencias del problema
Causas Consecuencias
Escasez de medidas y políticas de seguridad de ingreso.
Accesos a personas no autorizadas. Inexistencia de sistema de acceso
automatizado en puertas.
Interrupción y distracción de personal de otras áreas que deben vigilar las puertas, sin pertenecer al personal de seguridad.
Falta de registro de asistencia de empleados.
Dificultad en control de asistencia.
Atrasos, ausencia laboral y baja
Dificultad en el control de cantidad de horas de capacitación a los clientes.
Elaboración: Kerly Pazmiño La Rosa, Guillermo Ramírez Murrieta Fuente: Datos de la Investigación
Delimitación del problema
En el Cuadro N. 2, se expresa el problema del presente proyecto en diferentes aspectos.
Cuadro N. 2 Delimitación del problema de la Investigación
Campo Informática.
Area Medidas y controles de seguridad, asistencia y jornada laboral.
Aspecto Desarrollo de una aplicación móvil.
Tema Aplicación móvil para control de acceso y asistencia en la empresa Ecuador on Rails mediante reconocimiento facial y códigos QR utilizando el framework React Native Camera y tecnología Numato.
Elaboración: Kerly Pazmiño La Rosa, Guillermo Ramírez Murrieta Fuente: Datos de la Investigación
Formulación del problema
9
permita llevar un registro de los ingresos de los clientes de manera automática?
En respuesta a la problemática formulada en la pregunta anterior, el presente proyecto de titulación propone diseñar y desarrollar una aplicación móvil para control de acceso de clientes mediante lectura de códigos QR e identificación y manejo de asistencia de empleados a través del reconocimiento facial, utilizando el framework React Native Camera y tecnología Numato.
Evaluación del problema
Delimitado: La presente investigación se lleva a cabo en la empresa de consultoría y desarrollo de software Ecuador on Rails que está ubicada en la ciudad de Guayaquil, cuyo enfoque de estudio se encuentra dirigido a los miembros de la empresa y clientes, de los cuales se necesita tener un registro para controlar el acceso y asistencia a las instalaciones.
Claro: La inexistencia de un sistema de control de acceso y asistencia en la empresa Ecuador on Rails genera riesgos de asaltos y robos por intrusos, además de incumplimiento de la jornada laboral por parte de los empleados.
Evidente: La falta de un control de seguridad en la empresa la vuelve vulnerable al acceso no autorizados de terceros, de esta forma pueden sufrir robos o hurtos de sus equipos, así como de la información de la empresa y de sus clientes.
10
una empresa a través de un solo mecanismo en una aplicación móvil con reconocimiento facial y códigos QR.
Factible: El problema de control de acceso y asistencia de la empresa se tratará a través de herramientas de fácil uso, tales como las aplicaciones móviles, que además, son de bajo costo tanto de hardware como de software.
Identifica los productos esperados: Una herramienta que proporcione mayor seguridad a los miembros de la empresa, ya que ofrece una verificación de la identidad de las personas que acceden a sus oficinas, tales como empleados o clientes. Además, permitirá obtener un reporte detallado de las visitas y asistencia de sus trabajadores.
OBJETIVOS
Objetivo General
Desarrollar una aplicación móvil utilizando el framework React Native Camera y tecnología del módulo Relé Numato para el control de acceso y manejo de la asistencia de los empleados, a través del reconocimiento facial e identificación de los clientes utilizando la verificación de códigos QR en la empresa Ecuador on Rails.
Objetivos Específicos
1. Describir el proceso de reconocimiento facial que realizará la aplicación móvil, mediante el framework React Native Camera y la librería OpenCV, detallando cada una de sus etapas.
11
patrones del reconocimiento facial con los registros existentes en una base de datos.
3. Permitir el registro de visitas de clientes a las instalaciones de la empresa Ecuador on Rails, mediante una aplicación móvil de lectura de códigos QR.
4. Proporcionar el reporte de asistencia de empleados, de acuerdo a los parámetros requeridos por la empresa Ecuador on Rails, mediante un módulo web.
ALCANCE DEL PROBLEMA
La propuesta del proyecto tiene como finalidad el desarrollo de una aplicación móvil para el control de acceso de los clientes mediante verificación de códigos QR y asistencia de empleados por medio de la identificación con reconocimiento facial, usando el framework React Native Camera y la tecnología Numato, la cual permitirá llevar el control del acceso y asistencia laboral de los trabajadores. Además, de la gestión de visitas en la empresa Ecuador on Rails, esta será una alternativa moderna con respecto a los lectores biométricos existentes.
Este prototipo será desarrollado con el framework de aplicaciones móviles de código abierto, creado por la red social Facebook, React Native, mediante el IDE Webstorm, utilizando el lenguaje de programación EcmaScript6 (ES6). Adicionalmente, se implementarán: el framework React Native Camera, que posee funcionalidades como la detección de rostros y la lectura de códigos QR y la librería OpenCV, para el reconocimiento facial. Este proyecto contará también con una base de datos que está instalada en la nube, DynamoDB, y la sincronización de datos del teléfono a la nube son servicios provisionados por Amazon Web Services.
12
La aplicación tendrá una interfaz interactiva e intuitiva desarrollada en Android, lo cual facilitará su manejo y permitirá el acceso a los empleados de Ecuador on Rails, mediante reconocimiento facial, de los cuales serán almacenados los datos de sus rostros previamente. Además del acceso de visitantes utilizando códigos QR que son enviados por correo previo a su llegada, válidos sólo para la fecha citada.
Adicionalmente se desarrollará un módulo web en Python, para la generación de reportes en formato CSV, el agendamiento de visitas por parte de los clientes y el manejo de los mismos. El ingreso de datos de empleados será realizado desde la aplicación instalada en el dispositivo móvil.
El prototipo se encuentra orientado a verificar el acceso en la empresa Ecuador on Rails y contará con el registro de otros motivos de acceso para el manejo de los empleados como son: ingreso, salida de jornada laboral, inicio y fin de almuerzo, razón por la cual se debe fomentar esta nueva política de control, por parte de los dueños de la empresa y así asegurar los registros de las salidas de sus trabajadores de una forma correcta.
Esta propuesta está dirigida únicamente a la empresa Ecuador on Rails, sin embargo, podría extenderse a más empresas o instituciones que necesiten el manejo de control de acceso y asistencia.
JUSTIFICACIÓN E IMPORTANCIA
13
clientes, de esta forma brindar mayor tranquilidad y mejorar la imagen del negocio. Además de un registro y control del personal, beneficiando tanto a gerentes como empleados y así disminuir el riesgo de suplantación de identidad.
Diseñar en la empresa un sistema de reconocimiento facial, que a través de una aplicación móvil y con la ayuda del framework React Native Camera y la librería OpenCV, pueda realizar la identificación de la persona que solicita el acceso, luego enviar dicha respuesta a la placa Numato que lleva el control de las puertas, de esta forma evitar el ingreso de personas desconocidas.
Además, se propone guardar un registro de asistencia en la base de datos que permite verificar el cumplimiento de la jornada laboral de cada empleado, así como controlar el acceso de visitas, mediante la creación de un reporte que detalle los motivos de ingresos de terceros como son las horas de capacitación previamente coordinadas con los clientes, de esta forma se evita el ingreso de intrusos, y se puede prevenir excederse de las horas de capacitación ya concretadas.
METODOLOGÍA DEL PROYECTO
14
técnica de entrevista, la misma que se planea realizar al dueño de la empresa Ecuador on Rails.
Para este proyecto se necesita una metodología que permita una constante retroalimentación con cada avance del desarrollo del sistema por lo cual se empleará la metodología de prototipo.
El prototipado es un modelo de desarrollo iterativo en el cual se elabora un diseño preliminar del prototipo, el mismo que es modificado junto al cliente. Además, permite detallar los requerimientos que se obtuvieron del cliente para luego ser presentados al usuario y buscar su aceptación (Pantaleo & Rinaudo, 2016). Es una estrategia que puede aplicarse en casi todas las actividades del proceso de software porque permite una constante modificación del modelo que se estará desarrollando, con el objetivo de que cada prueba que se realice se verifique el cumplimiento de los requisitos de usuario hasta alcanzar el producto final.
Según Pressman (2010) el paradigma de construcción de prototipos se enfoca en tres puntos primordiales:
Escuchar al cliente. Se basa en la descripción de los requerimientos del usuario para poder así establecer los objetivos de la investigación
Construir y revisar el prototipo. Este punto se basa en la elaboración del diseño del producto, y la revisión de cumplimiento de requerimientos del usuario.
Pruebas del prototipo se utiliza para comparar el modelo realizado con los requisitos del cliente.
15
Comunicación: En esta etapa se reúnen los participantes para definir los objetivos generales del software. En este proyecto se enumeraron los principales inconvenientes que genera el no poseer un sistema de control de acceso y asistencia los cuales se detallan en apartados anteriores.
Plan rápido: Con una entrevista se analizará los requerimientos principales para poder así diseñar un plan del prototipo inicial.
Modelado, diseño rápido: Esta etapa se centra en la representación de aquellos aspectos del software que serán visibles para los usuarios finales (por ejemplo, disposición de la interfaz humana o formatos de la pantalla de salida).
Construcción del prototipo: El diseño rápido lleva a la construcción de un prototipo.
Desarrollo, entrega y retroalimentación: En este punto el modelo se entrega y es evaluado por los participantes, que dan retroalimentación para mejorar los requerimientos. La iteración ocurre a medida de que el prototipo es afinado para satisfacer las necesidades de distintos participantes. Se detallan todos los cambios y errores que se visualizaron durante la creación del manual técnico, las cuales deben ser documentadas y verificadas para descartar cualquier falla del sistema.
16
CAPÍTULO II
MARCO TEÓRICO
ANTECEDENTES DE ESTUDIO
Desde hace una década la tecnología de reconocimiento facial se ha propagado rápidamente y es que, en el 2010, la red social Facebook implementó esta tecnología para ayudar a identificar los rostros de los usuarios cuyas fotos eran publicadas a diario en sus perfiles (Pillajo & Yaguana, 2018).
Esto marcó un punto de inicio para la búsqueda de nuevas funcionalidades es así que, en el 2017 Apple lanzó el IPhone X cuya principal característica era su sistema de seguridad con reconocimiento facial, la empresa en su primer trimestre de lanzamiento vendió 41.3 millones de celulares, lo que demuestra que las personas consideran el reconocimiento facial como un estándar confiable para la seguridad (Tibken, 2018).
17
componente reconocimiento facial para Torniquetes de Acceso cuyo costo supera los ochocientos dólares (Hikvision, 2018). Es de vital importancia distinguir este tipo de productos debido a que sientan un precedente sobre las principales aplicaciones de este método, además que son una muestra del constante crecimiento de la demanda y de los interese de consumidores de estos sistemas de seguridad, que no solo buscan identificar a las personas que ingresan a las instalaciones, sino además automatizar la mayor cantidad de procesos, de esta manera ayudan a disminuir la contratación de personal de vigilancia.
Los asaltos y robos, es un tema que preocupa a la mayoría de las personas, así es el caso de las instituciones educativas, como lo expresa Narea & Procel (2018), en su trabajo de titulación “Desarrollo de un prototipo de sistema basado en reconocimiento facial para la seguridad vehicular de la comunidad educativa de la carrera de Ingeniería en Sistemas Computacionales de la Universidad de Guayaquil”, cuya propuesta fue resolver el problema de robo vehicular a través de un dispositivo que controle el encendido del vehículo, este consistía en instalar un pequeño ordenador, raspberry pi 3 junto con una cámara web en cada vehículo mediante el cual se detecta el rostro del conductor, cuyos datos son enviados a la aplicación web elaborada en Python que con la ayuda de la librería OpenCV, realiza el reconocimiento facial del usuario, para permitir o denegar el encendido del vehículo.
18
Sin embargo estos tipos de sistemas ya cuentan con una base de datos establecida, lo que origina que cualquier visitante que desee ingresar, primero debe de contar con un registro en la base de datos, por esta razón se realizó el lanzamiento de QPASS, un sistema de pre-autorización, que cuenta con interfaz web y aplicaciones móvil, que permite a un usuario pueda convocar a una persona a grupo, a través de una invitación con código QR (Quick Response), pensada especialmente para personas que no requieren contar con un mecanismo de control fijo (Tecno Seguro, 2016).
Este tipo de aplicaciones, muestran la necesidad de contar con varias formas de gestionar el ingreso de las personas debido a que existen reuniones con clientes, a los cuales no se les puede exigir mantener un registro de su rostro en nuestra base de datos, sin embargo, se debe tener un control y registro de su visita.
Las diferentes propuestas detalladas, muestran que existen diferentes usos que se le pueden brindar al reconocimiento facial, así como diferentes métodos usados para el control de acceso, que se ajusten a las necesidades de cada usuario, la empresa Ecuador on Rails, al dedicarse también a la consultoría requiere no solo de un sistema de control y asistencia para sus empleados, sino también para los clientes que buscan información sobre sus servicios, de ahí se concibe la idea de funcionar ambos métodos en una sola aplicación, con hardware y software económico.
FUNDAMENTACIÓN TEÓRICA
Jornada laboral
19
cantidad de horas que el empleado desempeña dicha actividad. En Ecuador “Los contratos de trabajo deben contener detallados específicamente el horario ordinario regular que aplique al trabajador, con lo cual no requiere ninguna otra formalidad sobre este tema para su registro” (Código de Trabajo, 2018).
En el mismo código Art 45 menciona que es obligación del trabajador cumplir con las disposiciones del reglamento interno, así como el de horas de trabajo efectivas que se redacte en el contrato laboral.
El cumplimiento del código de trabajo debe de contar con un registro que sustente que tanto los empleadores como trabajadores cumplan con sus obligaciones.
Control de asistencia del personal
“Son sistemas de control de accesos que permiten llevar un registro de las entradas y salidas de los empleados en una empresa. La supervisión de la asistencia permite comprobar la puntualidad y asistencia de los trabajadores a su puesto” (Juárez, 2018).
Beneficios del control de asistencia laboral
Entre las ventajas de llevar un control de asistencia en las empresas podemos detallar los siguientes de acuerdo a Juárez (2018):
Ayuda al manejo y control de horarios de empleados de manera eficaz.
20
Mejorar la productividad del personal, al mantener un mayor control sobre el tiempo de trabajo de los empleados, lo cual favorece ahorrar costos en recursos humanos.
Calcular sueldo de los empleados con respecto a los horarios de trabajo de forma eficiente.
Monitorizar las horas extras de trabajadores, cumplir con los pagos de la misma.
Con estas características se beneficiaría la empresa al contar con un sistema de control de asistencia de sus empleados.
Control de acceso
Un control de acceso es un mecanismo o persona que tiene como principal función el impedir el libre acceso al público en general a diversas áreas que se deben encontrar protegidas, ya sea por el valor monetario de los equipos que se encuentran en ella, por considerarse un área restringida o debido a la información que se administra en este sitio (Instituto Nacional de Ciberseguridad de España, 2016).
Tipos de controles de acceso
Los tipos de controles de acceso físico, pueden ser manuales, automaticos o humanos, de acuerdo a Santos (2014) se destacan los siguientes:
Utilización de Guardias.
Utilización de Sistemas Biométricos.
Verificación Automática de Firmas (VAF).
21
Protección Electrónica.
La realización del proyecto se enfoca en el control por medio de sistemas biométricos y sus características.
Sistemas biométricos
La palabra biometría tiene su origen del griego bios (que quiere decir vida) y metria (que quiere decir medida). Estas medidas son características obtenidas de seres vivos, la cual se componen de rasgos biométricos, que pueden ser características anatómicas y del comportamiento del individuo (Crespín & Julián, 2014).
Un sistema biométrico busca el reconocimiento y la identificación de la persona con dichos rasgos, por medio de técnicas manuales o automáticas. Con este se busca comparar dichas características del individuo que se presenta, con la información almacenada previamente en una base de datos y de esta forma corroborar su identidad (Vasquez, Gómez, Flórez, & Beltrán, 2015).
Las técnicas biométricas se clasifican en función del rasgo analizado. Este puede ser: fisiológico o de comportamiento. El fisiológico se da a través del reconocimiento de huella dactilar, de iris, de retina y de rostro, entre otros. Mientras que el de comportamiento se trata del reconocimiento de voz, de firma o de la manera de andar de la persona analizar (Instituto Nacional de Ciberseguridad de España, 2016).
22
utilizados destacan: huella dactilar, reconocimiento facial, iris, retina y geometría de la mano.
Cuadro N. 3 Ventajas y desventajas de los sistemas biométricos
fisiológicos
Sistema
Biométrico Ventajas Desventajas
Huella Dactilar
Únicas de cada individuo. Son fáciles de usar. Requieren poco espacio. No invasivos y de bajo costo. Técnica muy desarrollada.
Alta calidad de imagen. Contacto físico con el sensor.
Se asocia a temas penales
Reconocimiento
Aporta información adicional de expresión del rostro.
El rostro puede ser tapado por otros objetos.
Cambios por la edad,
Sensible a los cambios en la luz
Iris
No hay necesidad de contacto. Es un órgano interno y protegido, por lo que tiene menor probabilidad de sufrir lesiones
Intrusivo.
Difícil captura de imagen. Mayor entrenamiento y atención
Elaboración: Kerly Pazmiño La Rosa, Guillermo Ramírez Murrieta Fuente: Arantxa Mora, (2016)
Sistema automatizado
23
o maquinaria especializada, es decir con la poca intervención o sin intervención directa de la mano de obra humana (Gómez, 2018).
Reconocimiento facial
El reconocimiento facial es una solución de autenticación biométrica que utiliza algoritmos para reconocer personas en función de sus características fisiológicas, ha ganado una atención significativa debido a la disponibilidad de tecnologías viables, como las soluciones móviles, los sistemas de biométricos, entre otros. Estos permiten identificar automáticamente a persona en una imagen digital (Wójcik, Gromaszek, & Junisbekov, 2016).
Esta solución será empleada en la siguiente propuesta dado que es una forma de autenticación alternativa en los sistemas de acceso y asistencia, ya que, tradicionalmente, se utilizan lectores biométricos de huellas digitales. Además de ser una solución económica y escalable en función de su algoritmo.
24
Gráfico 1 Elementos de un sistema de reconocimiento de rostros
Elaboración: Raúl Nassib Hidalgo Veliz Fuente: Hidalgo, (2017)
Códigos QR
El nombre código QR (Quick Response) viene del inglés y significa código de respuesta rápida. Los códigos QR almacenan la información utilizando patrones de puntos negros y espacios en blanco dentro de una cuadricula. Este tipo de código a diferencia del código de barra tradicional puede almacenar hasta más 7000 caracteres, con diferentes usos, desde abrir una URL de una página web, promociones, organización de inventario, entradas y boletos de viaje, etc. Estas formas son ilegibles para los humanos, pero por medio de un teléfono móvil y un lector de códigos QR podemos descifrarla (Peralta, 2015).
25
almacenar una gran cantidad de caracteres y el hecho de que las personas estás familiarizadas a este tipo de medio de identificación de acceso.
A continuación en el Gráfico 2, se muestra un ejemplo de código QR con los nombres de los autores.
Gráfico 2 Código QR con nombre de los autores
Elaboración: Guillermo Ramírez Murrieta Fuente: Datos de la investigación.
Aplicación móvil
Una App móvil es una aplicación de software pensada para dispositivos móviles y tabletas. El término App es una abreviatura de la voz inglesa application y tiende a utilizarse para referirse a una aplicación informática para dispositivos móviles y tabletas (Cuello & Vittone, 2013).
Existen diferentes sistemas operativos para el desarrollo de aplicaciones móviles entre ellos tenemos: Android, iOS, Windows Phone entre otros. Para el desarrollo de la siguiente propuesta se seleccionó el sistema operativo Android.
Sistema operativo Android
26
inteligentes, siendo precedido por iOS con un 23% (Paul, 2019). Este sistema fue desarrollado por Google, para dispositivos móviles con Kernel de Linux, su idioma nativo es Java.
En el Gráfico 3, se describe como se encuentra dividido en el mercado global los sistemas operativos para dispositivos móviles. Dónde hasta inicios del 2019, Android se encuentra instalado en más del 74% de dispositivos móviles distribuidos a nivel mundial, seguido de lejos por iOS con un 23.3%.
Gráfico 3 Cuota de mercado global del sistema operativo móvil
Elaboración: Business Insider
Fuente: George Paul, Business Insider sitio web (2019)
Tipos de aplicaciones móviles
27
Aplicación móvil nativa
Las aplicaciones nativas se encuentran desarrolladas en los lenguajes de programación nativo que ofrece cada sistema operativo, aprovechando todo el potencial del hardware. Es así que, Android, iOS y Windows Phone tienen uno diferente y las aplicaciones nativas se diseñan y programan dependiendo de la plataforma (Serna & Pardo, 2016).
Aplicación móvil Hibrida
Las aplicaciones móviles hibridas son aquellas que fusionan un lenguaje de programación como HTML5, CSS o JavaScript con diversas tecnologías del propio sistema operativo del dispositivo. Este tipo de aplicaciones puede ser implementada en diferentes sistemas operativos móviles, tales como Android, iOS o Windows Phone (Serna & Pardo, 2016).
Aplicación móvil Web
Este tipo de aplicación utiliza en su totalidad tecnología web, empleando lenguajes de desarrollo como HTML, CSS y JavaScript, además de un framework para las aplicaciones web. Brinda acceso a la información desde cualquier dispositivo, ya que solo se necesita contar con un navegador para acceder la misma (Artica, 2014).
28
Cuadro N. 4 Cuadro comparativo de los tipos de aplicaciones
Tipo de
Necesitan aprobación para ser publicadas en la plataforma.
El costo de desarrollo puede ser menor que el de una nativa
Son multiplataforma
Permite distribución.
La documentación puede ser un poco escasa y desordenada.
Elaboración: Kerly Pazmiño La Rosa, Guillermo Ramírez Murrieta Fuente: Pedro Pimienta, sitio web Zenva (2014)
Framework
Un framework es un conjunto de librerías, herramientas y normas a seguir que ayudan a desarrollar aplicaciones, estos están compuestos por varios segmentos que interactúan los uno con los otros, las aplicaciones pueden escribirse de manera eficaz si se utiliza esta herramienta (Lafosse, 2010).
React Native
29
usuario, pero en lugar de dirigirse al navegador, se dirige a plataformas móviles. (Eisenman, 2015)
Este framework usa una técnica que realiza llamadas asincrónicas al sistema operativo donde se ejecuta la aplicación, que llama a las API de widget nativas. Esto permite construir aplicaciones móviles que se ven como aplicaciones verdaderamente nativas usando una biblioteca de JavaScript y la API de React para diseño de aplicaciones web (Rauno, 2018).
Debido a que la mayoría del código que escribe puede compartirse entre plataformas, React Native facilita el desarrollo simultáneo para Android y iOS. (Eisenman, 2015).
Este framework fue elegido por el hecho que permite usar código nativo cuando se necesite ya que permite combinar los componentes escritos en Objective-C para iOS y Java para Android esto ayuda a simplificar los procesos de desarrollo y a optimizar funciones. Además de ofrecer una gran comodidad para el desarrollo ya que su lenguaje de programación ECMAScript posee una documentación vasta.
Bibliotecas y componentes de React Native
React Native tiene una gran comunidad detrás de él, así que hay un montón de librerías y componentes que puede utilizar. Sin embargo, se van a detallar sus áreas principales: navegación, administración del estado, animaciones, bibliotecas y componentes comúnmente usados.
30
incorporados como pila Navigator, Navigator ficha y cajón Navigator” (Ancheta, 2017).
React Native cuenta con dos herramientas para actualizar y administrar estado de la aplicación estos son: MobX, es la más simple debido a que posee una corta curva de aprendizaje; mientras que su otro componente Redux, proporciona directrices estrictas sobre cómo manejar estados y es recomendable para proyectos más grandes y robustos (Ancheta, 2017).
Este framework cuenta con un sinnúmero de componentes que permiten varias funciones como, que el usuario interactúe con un calendario tal es el caso de React-Native-calendar; integrar Google Maps en sus aplicaciones con la ayuda de react-native-maps. También brinda la opción de tomar fotos y videos a través de la aplicación con la ayuda del componente React-Native-camera.
React Native Camera
Es una librería creada por la comunidad de React Native en 2015, con 281 colaboradores y 29 liberaciones, la cual como dice el nombre sirve para el uso de la cámara de un dispositivo móvil permitiendo realizar varias acciones con esta, como: tomar fotografías, grabar videos, reconocimiento facial, escaneo de códigos (1D y 2D) y reconocimiento de texto.
31
ECMAScript
ECMAScript es una especificación de lenguaje de scripting que está estandarizada por ECMA internacional en ECMA-262. Es común confundir ECMAScript con JavaScript o TypeScript, que no es más que una implementación, se trata de un dialecto, de ECMA-262. ECMA-262 tiene 5 predecesores, lo que significa que es la sexta edición de la Normalización. La versión 6 también se conoce como ECMAScript 2015 (Ölund, 2016).
REST
REST (Representational State Transfer) es un conjunto de restricciones que ayuda a obtener un estilo de software que usando HTTP pueda obtener datos o generar operaciones sobre esos datos en todos los formatos posibles, como XML, JSON, HTTP, etc (Arsaute, Zorzan, Daniele, González, & Frutos, 2018).
GraphQL
GraphQL es un framework propuesto recientemente, y cada vez más adoptado, para proporcionar un nuevo tipo de interfaz de acceso a datos en la Web. El marco incluye un nuevo lenguaje de consulta cuya semántica se ha especificado únicamente de manera informal (Pérez, 2018).
32
GraphQL puede trabajar con cualquier plataforma, permite desarrollar en más de 20 lenguajes, además de optimizar tiempo, traslada la información del servidor al cliente (Mendéz, 2019).
Para la obtención de recursos con un API REST, se debe realizar varias solicitudes con varios viajes de ida y vuelta, mientras que con GraphQL se realiza una única consulta al servidor con todas las peticiones; como se esquematiza en el Gráfico 4.
Gráfico 4 Obtención de recursos con REST frente GraphQL
Elaboración: Sashko Stubailo Fuente: Stubailo, (2017)
Obtención de datos con REST vs GraphQL
Con una API REST, como se detalla en Gráfico 5, normalmente recopilaría los datos accediendo a múltiples puntos finales. En el siguiente ejemplo, estos podrían ser:
33
para un usuario. El tercer punto final será el /users/<id>/followers que devuelve una lista de seguidores por usuario.
Gráfico 5 Ejemplo de obtención de datos con REST
Elaboración: Sashko Stubailo
Fuente: Stubailo, (2018) obtenido de How To Graphql,
Con REST se debe realizar tres solicitudes para obtener los datos requeridos, los puntos devuelven información adicional que no es necesaria.
34
describe la estructura de la respuesta del servidor, la cual sigue precisamente la estructura anidada definida en la consulta.
Gráfico 6 Ejemplo de obtención de datos con GraphQL
Elaboración: Sashko Stubailo
Fuente: Stubailo, (2018) obtenido de How To Graphql,
OpenCV
35
Cuadro N. 5 Características de OpenCV
Fuente abierta OpenCV es de código abierto y se publica bajo la Licencia BSD de 3 cláusulas. Es gratis para uso comercial.
Multiplataforma Es una biblioteca altamente optimizada con enfoque en aplicaciones en tiempo real.
Optimizado Las interfaces C ++, Python y Java son compatibles con Linux, MacOS, Windows, iOS y Android.
Elaboración: Kerly Pazmiño La Rosa, Guillermo Ramírez Murrieta Fuente: OpenCV, sitio web oficial, (2019).
OpenCV se encuentra en la versión 4.1.1 liberada el 26 de julio del 2019, de acuerdo a su sitio web oficial, esta versión cuenta con la clase de FaceRecognizer para el reconocimiento facial, por esta razón se consideró el uso de esta librería para el desarrollo de la propuesta.
AWS AppSync
AppSync es una plataforma basada en la nube para las API GraphQL. No tiene servidor, por lo que no se pierde tiempo configurando la infraestructura. Se paga solo lo que se consume, por lo que no se necesita una inversión inicial ahorrando miles de dólares en costos de TI, desarrollando resoluciones con plantillas, ofreciendo datos en tiempo real, soporte y sincronización fuera de línea para aplicaciones y mucho más. (Biehl, 2019)
36
En el Gráfico 7, se muestra un esquema general del funcionamiento de AWS App Sync.
Gráfico 7 Funcionamiento general de AWS AppSync
Elaboración: Amazon Web Services
Fuente: Amazon Web Services, Sitio web oficial, (2019).
Base de Datos
La base de datos es un conjunto de colecciones de información, de tal manera que facilita ingresar de forma accesible, gestionada y actualizada, en una sola vista. Una base de datos se puede clasificar de acuerdo a su contenido: bibliográfico, texto, numérico y de imagen (Rouse, 2015).
DynamoDB
Amazon DynamoDB es una base de datos NoSQL totalmente administrada y alojada en la nube. DynamoDB proporciona un rendimiento rápido y predecible con la capacidad de escalar a la perfección. Le permite almacenar y recuperar cualquier cantidad de datos, sirviendo a cualquier nivel de tráfico de red sin tener ninguna carga operativa. (Deshpande, 2015)
37
Además de ser una de las bases de datos utilizadas por grandes empresas como por ejemplo Netflix. “DynamoDB puede gestionar más de 10 billones de solicitudes por día y admite picos de más de 20 millones de solicitudes por segundo” (Amazon Web Services, 2019).
Beneficios de DynamoDB
Rendimiento a escala
DynamoDB proporciona tiempo de respuestas en milisegundos, además permite crear aplicación con capacidad de almacenamiento y procesamiento prácticamente ilimitada (Amazon Web Services, 2019).
Sin servidor
Al tener su servicio en la nube, evita proceso de administración de servidores, DynamoDB configurar las tablas para ajustar a su capacidad de manera automática (Amazon Web Services, 2019).
Listo para el uso empresarial
38
Python
Es un lenguaje de programación similar a Pearl, cuya creación se realizó a principios de los años 90 por Guido van Rossum. Python es un lenguaje multiparadigma, es decir permite varios estilos de programación y su principal característica es la simplicidad de su código (Chazallet, 2016).
Según Narea & Procel (2018) entre las principales características de Python se pueden denotar las siguientes:
Permite desarrollar cualquier tipo de programa.
Es compatible con cualquier sistema.
Es un lenguaje interpretado,
Soporta la programación orientada a objetos.
Permite crear programas con componentes reutilizables.
Posee funciones incorporadas en el propio lenguaje, para el tratamiento de strings, números, archivos, etc.
Su sintaxis es visualmente interpretada, debido a su notación identada.
39
Gráfico 8 Lenguajes más queridos por desarrolladores
Elaboración: StackOverflow
Fuente: StackOverflow, Developer Survey Results (2019)
Python es utilizado para el desarrollo del módulo necesario para la integración del sistema utilizado en la empresa Ecuador on Rails con la plataforma de AWS AppSync y la reporteria de las asistencias.
Módulo Relé
40
Para el desarrollo de la propuesta y control de la cerradura de la puerta se empleará un módulo de relé de estado sólido USB de 2 canales de la tecnología Numato, el cual cuenta con las siguientes características.
2 relés de estado sólido a bordo.
Corriente de conmutación máxima de 3A.
4 GPIO compatibles con TTL (3.3V).
4 canales de entrada analógica (multiplexados con GPIO).
Resolución de entrada analógica de 10 bits.
Interfaz USB con soporte CDC. Tan fácil como usar un puerto serie, no se requiere conocimiento de USB.
Contactos de relé disponibles en terminales de tornillo de fácil acceso.
No se requieren bibliotecas o API específicas del proveedor.
Se puede controlar mediante el uso de aplicaciones de consola serie estándar o aplicaciones personalizadas.
Se puede alimentar desde USB o fuente de alimentación externa.
Odoo
Es un software de gestión de planificación de recursos empresariales (ERP), consta con un sinnúmero de aplicaciones que buscan cubrir las necesidades de las pequeñas, medianas y grandes empresas. Es de código abierto que permite ajustar y modificar sus aplicaciones, de acuerdo a las necesidades de su cliente (Odoo, 2019).