UNIVERSIDAD CENTRAL DEL ECUADOR
FACULTAD DE INGENIERÍA CIENCIAS FÍSICAS Y MATEMÁTICA
CARRERA DE INGENIERÍA INFORMÁTICA
DESARROLLO DE UNA APLICACIÓN MÓVIL QUE PERMITE A LOS
DOCENTES Y ESTUDIANTES DE LA UNIVERSIDAD CENTRAL DEL
ECUADOR ACCEDER A LAS BASES DE DATOS CIENTÍFICAS
TRABAJO DE GRADUACIÓN PREVIO A LA OBTENCIÓN DEL TÍTULO
DE INGENIERO INFORMÁTICO
AUTOR: ELIZABETH EDELINA TUMIPAMBA BORJA
TUTOR: ING.MAURO LEONARDO ROSAS LARA, MSc.
QUITO – ECUADOR
2016
ii
DEDICATORIA
El presente trabajo de graduación va dedicado a quienes me han apoyado
incondicionalmente en cada etapa de mi vida.
A Dios por darme salud y vida para poder cumplir con este logro.
A mis amados padres Elizabeth y Héctor, por ser mis mejores amigos y estar
siempre conmigo.
A mi hermana Alison, por cada palabra de aliento que supo darme
oportunamente.
Elizabeth Tumipamba
iii
AGRADECIMIENTO
Agradezco infinitamente a Dios por guiar mis pasos y darme fortaleza y
sabiduría para culminar mi carrera universitaria con éxito.
A mis amados padres porque sin su amor y confianza no hubiera alcanzado
esta meta.
A mi hermana Alison por siempre apoyarme y animarme.
A mis abuelitos, tías, primos por creer en mí.
A mis mejores amigos Dianita y Santy por su sincera amistad y ayudarme
cuando más lo necesitaba.
A mi tutor Ing. Mauro Rosas por su tiempo y gran ayuda para iniciar y
concluir satisfactoriamente el presente trabajo.
iv
AUTORIZACIÓN DE LA AUTORÍA INTELECTUAL
Yo, Elizabeth Edelina Tumipamba Borja, en calidad de autor del trabajo de
investigación o tesis realizada sobre, “DESARROLLO DE UNA APLICACIÓN
MÓVIL QUE PERMITE A LOS DOCENTES Y ESTUDIANTES DE LA
UNIVERSIDAD CENTRAL DEL ECUADOR ACCEDER A LAS BASES DE DATOS
CIENTÍFICAS”, por la presente autorizo por la presente autorizo a la Universidad
Central del Ecuador hacer uso de todos los contenidos que me pertenecen o de
parte de los que contiene esta obra, con fines estrictamente académicos o de
investigación.
Los derechos que como autor me corresponden, con la excepción de la presente
autorización, seguirán vigentes a mi favor, de conformidad con lo establecido en los
artículos 5, 6, 8, 19 y demás pertinentes de la Ley de Propiedad Intelectual y su
Reglamento.
Quito, 07 de Enero de 2016
Elizabeth Edelina Tumipamba Borja
C.C. 1714954169
v
CERTIFICADO DEL TUTOR
vi
CERTIFICADO DE CULMINACIÓN DE TESIS
vii
SOLICITUD CALIFICACIÓN DEL TRABAJO DE GRADUACIÓN
viii
RESULTADO DEL TRABAJO DE GRADUACIÓN
ix
CONTENIDO
DEDICATORIA ..................................................................................................... ii
AGRADECIMIENTO ............................................................................................. iii
AUTORIZACIÓN DE LA AUTORÍA INTELECTUAL ............................................... iv
CERTIFICADO DEL TUTOR ................................................................................v
CERTIFICADO DE CULMINACIÓN DE TESIS ...................................................... vi
SOLICITUD CALIFICACIÓN DEL TRABAJO DE GRADUACIÓN .......................... vii
RESULTADO DEL TRABAJO DE GRADUACIÓN ............................................... viii
CONTENIDO ....................................................................................................... ix
LISTA DE FIGURAS ............................................................................................ xi
LISTA DE TABLAS.............................................................................................. xii
RESUMEN......................................................................................................... xiii
ABSTRACT ....................................................................................................... xiv
CAPÍTULO 1 ........................................................................................................ 1
1.1 INTRODUCCIÓN ....................................................................................... 1
1.2 ANTECEDENTES ...................................................................................... 1
1.3 PRESENTACIÓN DEL PROBLEMA ........................................................... 2
1.3.1 Planteamiento del problema .................................................................... 2
1.3.2 Propósito del sistema ............................................................................. 2
1.4 OBJETIVOS .............................................................................................. 3
1.4.1 Objetivo General ...................................................................................... 3
1.4.2 Objetivos Específicos ............................................................................... 3
1.5 ALCANCE ............................................................................................... 3
1.6 LIMITACIONES ......................................................................................... 4
1.7 ANÁLISIS DE LAS HERRAMIENTAS ......................................................... 4
1.7.1 MARCOS DE TRABAJO.......................................................................... 4
1.7.1.1 SENCHA TOUCH ............................................................................. 4
1.7.1.2 PHONEGAP ..................................................................................... 6
1.7.2 ARQUITECTURA FÍSICA ........................................................................ 8
1.7.3 MOTOR DE BASE DE DATOS .............................................................. 11
1.7.4 SERVIDOR WEB .................................................................................. 12
CAPÍTULO 2 ...................................................................................................... 14
2.1 METODOLOGÍA DE INVESTIGACIÓN ..................................................... 14
x
2.2 METODOLOGÍA DE DESARROLLO ........................................................ 14
2.2.1 METODOLOGÍAS ÁGILES ................................................................... 15
2.2.1.1 Extreme Programming (XP) ............................................................. 15
2.2.1.2 Scrum ............................................................................................. 15
2.2.1.3 Mobile-D ......................................................................................... 15
2.2.2 TABLA COMPARATIVA DE METODOLOGÍAS ÁGILES ......................... 16
2.2.2.1 Ciclo de Vida de Mobile-D ............................................................... 16
CAPÍTULO 3 ...................................................................................................... 19
3.1 EXPLORACIÓN ....................................................................................... 19
3.2 INICIACIÓN ............................................................................................. 19
3.2.1 Recolección de requerimientos .......................................................... 19
3.2.2 Requerimientos iniciales .................................................................... 20
3.2.3 Análisis de requerimientos iniciales .................................................... 20
3.2.4 Planificación Inicial ............................................................................ 21
3.2.4.1 Análisis de requerimientos y pre-requisitos ..................................... 21
3.2.4.2 Listado por carrera ......................................................................... 21
3.2.4.3 Listado de preferencias de usuario ................................................. 21
3.2.4.4 Planificación de Fases ................................................................... 21
3.3 PRODUCTO ............................................................................................ 23
3.3.1 Arquitectura de la Aplicación.............................................................. 23
3.3.2 Modelo físico de la Base de datos...................................................... 24
3.3.3 Descripción del módulo ..................................................................... 24
3.4 ESTABILIZACIÓN.................................................................................... 27
CAPÍTULO 4 ...................................................................................................... 29
4.1 PRUEBAS ............................................................................................... 29
4.1.1 Prueba de carga ................................................................................... 29
4.2 CONCLUSIONES .................................................................................... 30
4.3 RECOMENDACIONES ............................................................................ 30
BIBLIOGRAFÍA .................................................................................................. 31
MANUAL TÉCNICO ........................................................................................... 32
MANUAL DE USUARIO ..................................................................................... 56
xi
LISTA DE FIGURAS
Figura 1: Diagrama de arquitectura física del sistema. ........................................... 8
Figura 2: Ciclo de Vida de Mobile-D .................................................................... 17
Figura 3: Diagrama de la Arquitectura de la Aplicación ........................................ 23
Figura 4: Diagrama del Modelo físico de la Base de Datos................................... 24
Figura 5: Registro Usuario – Aplicación Móvil ...................................................... 25
Figura 6: Actualización de datos – Aplicación Móvil ............................................. 25
Figura 7: Listado de todas las Bases de Datos Científicas – Aplicación Móvil ....... 26
Figura 8: Listado de Bases de Datos Científicas – Aplicación Móvil ...................... 27
Figura 9: Inicio de Sesión - Aplicación ................................................................. 34
Figura 10: Listado Bases de Datos Científicas - Aplicación .................................. 44
Figura 11: Menú Principal - Aplicación ................................................................ 47
Figura 12: Perfil - Aplicación ............................................................................... 48
Figura 13: Icono de la Aplicación ........................................................................ 57
Figura 14: Registro de Usuario ........................................................................... 57
Figura 15: Ingreso de datos ................................................................................ 58
Figura 16: Mensaje de Error al digitar un email incorrecto .................................... 58
Figura 17: Listado de Bases Científicas .............................................................. 59
Figura 18: Icono Perfil ........................................................................................ 59
Figura 19: Pantalla para actualizar información ................................................... 60
Figura 20: Botón Cambiar Información ................................................................ 60
Figura 21: Pantalla para cambiar información de Perfil ........................................ 61
Figura 22: Botón Desconectar ............................................................................ 61
Figura 23: Botón Inicia Sesión ............................................................................ 61
Figura 24: Pantalla para volver a Iniciar Sesión ................................................... 62
Figura 25: Bases de Datos Favoritas .................................................................. 63
xii
LISTA DE TABLAS
Tabla 1: Dispositivos soportados en sistemas operativos populares. ...................... 7
Tabla 2: Tabla comparativa de Bases de Datos ................................................... 12
Tabla 3: Tabla comparativa de Servidores Web ................................................... 12
Tabla 4: Tabla comparativa de metodologías ágiles............................................. 16
xiii
RESUMEN
DESARROLLO DE UNA APLICACIÓN MÓVIL QUE PERMITE A LOS
DOCENTES Y ESTUDIANTES DE LA UNIVERSIDAD CENTRAL DEL
ECUADOR ACCEDER A LAS BASES DE DATOS CIENTÍFICAS
El presente trabajo de graduación tiene como objetivo desarrollar una
aplicación móvil en las plataformas iOS y Android que permita agilizar las
consultas de investigación en las Bases de Datos Científicas (Bibliotecas
Virtuales) que proporciona la Universidad Central del Ecuador a la
comunidad universitaria. Realizado con la metodología ágil Mobile-D que se
enfoca en el desarrollo de aplicaciones móviles. La arquitectura de datos del
sistema está diseñada e implementada en la nube teniendo en cuenta la
escalabilidad, centralización y facilidad de administración, para asegurar el
mayor porcentaje de disponibilidad del sistema en cualquier circunstancia.
Mediante un servidor RDS (Relational Database System) se implementó el
motor de base de datos MySQL, los servidores web funcionan en un servidor
Linux EC2 (Elastic Compute Cloud) y el repositorio de imágenes está alojado
en un servidor S3 (Simple Storage Services). Todos estos servicios son
proporcionados por la empresa Amazon en su gama de productos y
servicios.
DESCRIPTORES: APLICACIÓN MÓVIL UCE / BASES CIENTÍFICAS /
BIBLIOTECAS VIRTUALES / JAVA ANDROID / OBJECTIVE C IOS /
PHONEGAP HÍBRIDO
xiv
ABSTRACT
DEVELOPMENT OF A MOBILE APLICATION THAT ALLOWS
UNIVERSITY PERSONAL AND STUDENTS OF THE CENTRAL
UNIVERSITY OF ECUADOR, TO ACCESS THE SCIENTIFIC DATABASES
This project aims to develop a mobile application on the iOS and Android
platforms that allows a more agile access to the scientific databases (Virtual
Libraries) provided by the Central University of Ecuador for the university
community. Made with the agile methodology Mobile-D, that focuses on the
development of mobile applications. The data architecture of the system is
designed and implemented in the cloud, considering the scalability,
centralization and ease of management, to ensure the highest percentage of
system availability under all circumstances. Through a RDS (Relational
Database System) server, the MySQL database engine was implemented,
the web servers run on an EC2 (Elastic Compute Cloud) Linux server, and
the image repository is hosted on an S3 (Simple Storage Services) server.
The company Amazon in their range of products and services provides all
these services.
DESCRIPTORS: UCE MOBILE APPLICATION / SCIENTIFIC DATABASES /
VIRTUAL LIBRARIES / JAVA ANDROID / OBJECTIVE C IOS / HYBRID
PHONEGAP
1
CAPÍTULO 1
1.1 INTRODUCCIÓN
Los últimos cinco años en nuestro país han sido los más significativos en
cuanto a las estadísticas de uso y tráfico de internet desde Smartphones o
teléfonos inteligentes. Según la información obtenida en la Encuesta uso de
Tecnologías de la Información y la Comunicación (TIC) del Instituto Nacional
de Estadística y Censos (INEC), a propósito del Día de Internet que se
celebra cada 17 de mayo. El acceso a teléfonos inteligentes se duplicó en 2
años pasando de más de 500 mil usuarios en el 2011 a 1 millón 200 mil en el
2013, del 2014 al 2015 aumentó a 2 millones 923 mil. En 2012 el dato era de
más de 800 mil usuarios de Ecuador con Smartphone.1
Considerando la creciente tendencia local del uso de internet en teléfonos
inteligentes, éste es el momento más oportuno para desarrollar aplicaciones
móviles, que den una solución real y efectiva a diferentes problemáticas.
La innovación tecnológica que se propone a través de este proyecto es
desarrollar una aplicación móvil en las plataformas iOS y Android que
además, de priorizar la experiencia de usuario, facilite el acceso a la
información (Bases de Datos Científicas) de forma rápida y sencilla, en
cualquier momento y en cualquier lugar donde se pueda acceder a Internet.
1.2 ANTECEDENTES
La Universidad Central del Ecuador en convenio con la SENESCYT
(Secretaría Nacional de Educación Superior, Ciencia, Tecnología e
Innovación), contrató algunos proveedores de Bases de Datos
Científicas (Bibliotecas Virtuales) con la finalidad de apoyar y
1 (Smartphones en Ecuador: acceso se duplicó en 2 años) (Ecuador en Cifras)
2
fomentar la investigación en los docentes y estudiantes de la
institución.
En la actualidad, la comunidad universitaria ingresa al sitio web de la
institución mediante un computador, para poder llegar a los enlaces
de las Bases de Datos Científicas y hacer uso de la información
científica que es proporcionada por cada una de ellas.
1.3 PRESENTACIÓN DEL PROBLEMA
1.3.1 Planteamiento del problema
La comunidad universitaria no cuenta con un aplicativo móvil que le
permita llegar de manera rápida y sencilla a los enlaces de las Bases
de Datos Científicas proporcionados por la Universidad Central del
Ecuador. Además, debido a que no todas las Bases Científicas
cuentan con información de métricas de usabilidad no es posible
obtener reportes completos del uso de las mismas.
El usuario (docente o estudiante) debe ingresar al sitio web de la
institución para poder llegar a los enlaces de las Bases de Datos
Científicas, lo que genera un problema de movilidad y accesibilidad en
el momento de requerir el uso de una determinada base científica.
1.3.2 Propósito del sistema
De lo antes expuesto, se crea la oportunidad de desarrollar una
solución innovadora, que minimice los problemas de movilidad al estar
disponible en los teléfonos inteligentes y, de accesibilidad al mostrar
directamente los enlaces de las bases científicas.
3
1.4 OBJETIVOS
1.4.1 Objetivo General
Desarrollar una aplicación intuitiva que permita la movilidad para
acceder a las Bases de Datos Científicas que dispone la Universidad
Centrar del Ecuador.
1.4.2 Objetivos Específicos
Proporcionar un mecanismo para motivar a los docentes y
estudiantes a usar las Bases de Datos Científicas.
Mostrar los enlaces de las Bases de Datos Científicas acorde a
cada una de las Carreras.
Reportar el uso que los docentes y estudiantes de las diversas
Carreras le dan a las Bases de Datos Científicas disponibles.
1.5 ALCANCE
En este proyecto se realizará el desarrollo de una aplicación móvil
multiplataforma que pretende agilizar las consultas de investigación
en las Bases de Datos Científicas que la Universidad Central del
Ecuador proporciona a los docentes y estudiantes.
El aplicativo estará diseñado para funcionar en las siguientes
plataformas:
Aplicación Nativa iOS.
Aplicación Nativa Android.
En el aplicativo se desarrollarán las siguientes funcionalidades:
Creación de perfil de Usuario.
4
Filtro de los enlaces (Bases de Datos Científicas), según la
Carrera del docente o estudiante.
Visualización de las preferencias de uso de las Bases de Datos
Científicas.
1.6 LIM ITACIONES
La aplicación no funcionará cuando el dispositivo móvil no
disponga de servicio de internet.
La aplicación no asocia el funcionamiento y acceso (login) de
las Bases de Datos Científicas.
Para agregar o eliminar una Base de Datos Científica es
necesario conocimiento técnico del desarrollo de la aplicación.
1.7 ANÁLISIS DE LAS HERRAMIENTAS
1.7.1 MARCOS DE TRABAJO
Para el desarrollo de la aplicación móvil, en los sistemas operativos iOS y
Android, se ha seleccionado frameworks ampliamente utilizados en el
ambiente de desarrollo de aplicaciones móviles tanto por su flexibilidad y
cantidad de herramientas como por su soporte en la comunidad.
1.7.1.1 SENCHA TOUCH
Sencha Touch es una interfaz de usuario, una biblioteca de JavaScript, o
Framework, líder para la creación de aplicaciones web móvil. El propósito
principal de este framework es el desarrollo de interfaces de usuario para
aplicaciones, utilizando herramientas y lenguajes web.
5
Permite a los desarrolladores construir aplicaciones que se vean y sientan
como aplicaciones nativas para varios sistemas operativos con solo ciertos
cambios entre ellas permitiendo reducir ampliamente el tiempo de desarrollo.
Está totalmente basado en estándares web como HTML5, CSS3 y
JavaScript.
Según datos estadísticos obtenidos de su sitio web, desde su lanzamiento
en el 2010 más de 7’200000 desarrolladores han descargado Sencha Touch
y han creado miles de aplicaciones innovadoras.
Sencha Touch permite a sus desarrolladores modificar el código fuente del
mismo para la creación de aplicaciones que se ajusten a las necesidades de
sus desarrolladores eliminando restricciones que podrían existir al utilizar un
framework web. Se basa en el modelo vista controlador (MVC).
Características
Sencha Touch incluye un conjunto de controles o componentes de interfaz
gráfica de usuario (GUI) para su uso en aplicaciones web para dispositivos
móviles, estos componentes se han optimizado para facilitar la entrada por
medios táctiles como los dedos, algunos de los componentes son:
Botones con temas y efectos específicos del dispositivo.
Elementos de formulario, como campos de texto para el correo
electrónico, selector de fechas, deslizadores, selectores y combo
boxes.
Listas que permitan desplazamiento con regulación de fuerza y una
barra de índice.
Barras de herramientas y menús.
Pestañas móviles.
Barra de herramientas inferior.
Comparación con aplicaciones nativas:
Las aplicaciones nativas en los dispositivos móviles principalmente difieren
de las aplicaciones web por su acceso a los componentes del dispositivo,
6
como la cámara, brújula, y el micrófono, pese a que Sencha Touch tiene
cierto soporte para esto, requiere de una herramienta que empaquete la
aplicación en un entorno nativo y este es otro de los frameworks que se ha
seleccionado para este proyecto llamado Córdova o Phonegap.
Interoperabilidad con Phonegap
Sencha Touch funciona perfectamente junto a PhoneGap que puede ser
usado para distribuir las aplicaciones móviles en la App Store o en Android
Marketplace a través de un mecanismo que empaca la aplicación en una
shell nativa de la forma más sencilla posible.
Además, gracias a PhoneGap podemos hacer uso de la API nativa del
dispositivo para acceder a la lista de contactos, la cámara y muchas otras
directamente desde JavaScript.2
1.7.1.2 PHONEGAP
PhoneGap es un framework gratuito y open source basado en Apache
Córdova que permite crear aplicaciones móviles multiplataforma a partir de
tecnologías web como HTML5, CSS3 y JavaScript, en lugar de lenguajes
nativos como Objective-C o Java. Fue creado por Nitobi y actualmente es
propiedad de Adobe Systems.
Las aplicaciones resultantes son híbridas, es decir, no son ni
verdaderamente nativas ni web ya que se utiliza fragmentos de código de
ambos mundos y permiten utilizar, mediante APIs, el hardware del
dispositivo como el GPS, cámara, acelerómetro, etc. para formar la
aplicación.
PhoneGap empaqueta el código HTML5 dentro de un WebView nativo en el
dispositivo y utilizando una interfaz de funciones externas (FFI) que permite
2 (Sencha Touch)
7
acceder a los recursos nativos del dispositivo. Además, es capaz de
extender su funcionalidad con plugins nativos que permiten a los
desarrolladores agregar capacidades extra a la cuales se puede acceder,
como si fueran librerías o llamadas de JavaScript, lo que permite la
comunicación directa entre la capa nativa, y la capa HTML5.
PhoneGap de paquete incluye plugins básicos que permiten el acceso al
acelerómetro del dispositivo, cámara, micrófono, brújula, sistema de archivos
y algunas más.
Phonegap actualmente soporta varios sistemas operativos o plataformas y el
acceso al hardware de cada dispositivo puede variar. A continuación se
muestra un cuadro comparativo de los dispositivos soportados en Phonegap.
Tabla 1: Dispositivos soportados en sistemas operativos populares. Fuente: Internet
8
1.7.2 ARQUITECTURA FÍSICA
Figura 1: Diagrama de arquitectura física del sistema.
El servidor para la aplicación que se desarrollará será alojado en los
servidores de Amazon, por su confiabilidad, disponibilidad y escalabilidad,
por lo cual será implementado como un servidor virtual y con una interfaz
Linux escogida por el desarrollador, al igual que los servidores web que se
serán necesarios para este proyecto.
Amazon Linux AMI
“La AMI de Amazon Linux es una imagen de Linux mantenida y compatible
que ofrece Amazon Web Services para su uso en Amazon Elastic Compute
Cloud (Amazon EC2). Está diseñada para proporcionar un entorno de
ejecución estable, seguro y de alto rendimiento para aplicaciones que se
ejecuten en Amazon EC2. También incluye paquetes que permiten una fácil
integración con AWS, incluidas herramientas de configuración de
lanzamiento y muchas bibliotecas y herramientas populares de AWS.
9
Amazon Web Services también proporciona actualizaciones continuas de
seguridad y mantenimiento para todas las instancias ejecutadas en la AMI
de Amazon Linux. La AMI de Amazon Linux se proporciona sin cargo
adicional a los usuarios de Amazon EC2.” 3
Amazon Elastic Compute Cloud (Amazon EC2)
“Amazon Elastic Compute Cloud (Amazon EC2) es un servicio web que
proporciona capacidad informática con tamaño modificable en la nube. Está
diseñado para facilitar a los desarrolladores recursos informáticos escalables
basados en web.
La sencilla interfaz de servicios web de Amazon EC2 permite obtener y
configurar su capacidad con una fracción mínima, proporciona un control
completo sobre sus recursos informáticos y permite ejecutarse en el entorno
informático acreditado de Amazon. Amazon EC2 reduce el tiempo necesario
para obtener y arrancar nuevas instancias de servidor en minutos, lo que
permite escalar rápidamente la capacidad, ya sea aumentándola o
reduciéndola, según cambien sus necesidades. Amazon EC2 cambia el
modelo económico de los servidores de informática en la nube al permitirle
pagar solo por la capacidad que utilice realmente. Amazon EC2 proporciona
a los desarrolladores las herramientas necesarias para crear aplicaciones
resistentes a errores y para aislarse de los casos de error más comunes.”4
(Amazon RDS)Amazon Relational Database Service (Amazon RDS)
“Amazon Relational Database Service (Amazon RDS) es un servicio web
que facilita las tareas de configuración, operación y escalado de una base de
datos relacional en la nube. Proporciona capacidad rentable y de tamaño
modificable y, al mismo tiempo, gestiona las tediosas tareas de
administración de la base de datos, lo que le permite centrarse en sus
aplicaciones y en su negocio.
3 (Amazon Liinux AMI)
4 (Amazon EC2)
10
Amazon RDS le permite acceder a todas las funciones de un motor de base
de datos MySQL, Oracle, Microsoft SQL Server o PostgreSQL conocido.
Esto supone que el código, las aplicaciones y las herramientas que ya utiliza
en la actualidad con sus bases de datos existentes funcionarán con Amazon
RDS.
Amazon RDS incluye parches automáticamente en el software de base de
datos y realiza una copia de seguridad de la misma, almacenando las copias
de seguridad durante un período de retención definido por el usuario y
permitiendo la recuperación a un momento dado. Podrá beneficiarse de la
flexibilidad que supone poder escalar los recursos informáticos o la
capacidad de almacenamiento asociada con su instancia de base de datos
por medio de una única llamada a API.”5
5 (Amazon RDS)
11
Amazon Simple Storage Service (Amazon S3)
“Amazon S3 es almacenamiento para Internet. Está diseñado para facilitar a
los desarrolladores recursos informáticos escalables basados en la Web.
Amazon S3 proporciona una sencilla interfaz de servicios web que puede
utilizarse para almacenar y recuperar la cantidad de datos que desee,
cuando desee y desde cualquier parte de la Web.
Concede acceso a todos los desarrolladores a la misma infraestructura
económica, altamente escalable, fiable, segura y rápida que utiliza Amazon
para tener en funcionamiento su propia red internacional de sitios web. Este
servicio tiene como fin maximizar las ventajas del escalado y trasladar estas
ventajas a los desarrolladores.” 6
1.7.3 MOTOR DE BASE DE DATOS
Cuadro comparativo de Bases de Datos
PostgreSQL Sqllite MySql
ACID(Atomicidad, Consistencia,
Aislamiento, Durabilidad) 9 5 8
Almacenamiento e indexación 9 8 7
Procesamiento y optimización
de consultas 9 8 7
Control de recurrencia y recuperación 9 8 8
Herramientas de Gestión y
Base de Datos 8 9 8
Herramientas para el diseño de
Base de Datos 8 9 9
Número de usuarios ilimitados 9 5 7
6 (Amazon S3)
12
Transacciones ODBC 9 9 9
Integridad Referencial 9 9 9
Control de recurrencia para múltiples versiones
9 9 9
Puntaje Total 88 79 81
Tabla 2: Tabla comparativa de Bases de Datos Autor: Tesista
Fuente: internet
Según el cuadro comparativo expuesto, se deduce que la mejor opción es
POSTGRESQL. Debido a que la aplicación es web móvil, la base de datos
escogida es MYSQL.
1.7.4 SERVIDOR WEB
Cuadro comparativo de Servidores Web
Apache Jboss Cherokee
Soporta múltiples lenguajes de programación
9 5 9
Facilidad de configuración 8 9
Adaptabilidad a los
sistemas operativos más usados 9 5 9
Invulnerabilidad 8 6 8
Alta disponibilidad 9 8 9
Módulos permanentes 9 9 9
Conexiones seguras 9 9 9
Balance de carga 9 8 8
Velocidad 9 7 9
Soporta SSL 9 9 5
Puntaje Total 88 75 75 Tabla 3: Tabla comparativa de Servidores Web
Autor: Tesista - Fuente: Internet
13
Del cuadro comparativo anterior se deduce que la mejor opción es APACHE
y es el servidor web escogido.
14
CAPÍTULO 2
2.1 METODOLOGÍA DE INVESTIGACIÓN
La metodología es el instrumento que enlaza el sujeto con el objeto de la
investigación, sin la metodología es casi imposible llegar a la lógica que
conduce al conocimiento científico.
Método inductivo: La inducción parte de las observaciones, para extraer
principios particulares, y proporciona un enfoque cualitativo a la
investigación.
Método deductivo: La deducción parte de principios generales valederos,
para deducir por medio del razonamiento lógico, y proporciona un enfoque
cuantitativo a la investigación.
Por lo tanto, estos métodos de investigación se complementan entre sí, y
pueden proporcionar un conocimiento verdadero sobre la realidad.
De lo anteriormente señalado, para este proyecto se seleccionado como
metodología de investigación, inducción – deducción, con el objetivo
principal de llegar al conocimiento.
2.2 METODOLOGÍA DE DESARROLLO
El desarrollo de aplicaciones móviles conlleva los mismos problemas que la
gran mayoría de desarrollos de software. Sin embargo, hay que tener en
cuenta sus principales peculiaridades como la corta duración de sus
desarrollos, la gran competencia del sector que obliga a una constante
innovación, los cambios frecuentes en la plataforma de desarrollo y en el
hardware o la simplicidad de algunas aplicaciones. Todo ello influye a la hora
de elegir una metodología concreta de desarrollo.
15
2.2.1 METODOLOGÍAS ÁGILES
Las metodologías ágiles se basan en valores y principios establecidos en el
manifiesto ágil, que permite a los equipos la entrega rápida de software de
alta calidad y que responde a los cambios que pueden surgir mientras se
desarrolla el proyecto.
En la actualidad, existen varias metodologías ágiles, entre las más notables
y aplicables se encuentran Extreme Programming (XP) y Scrum, junto con
éstas también se tiene Mobile-D, que en términos generales procuran
responder a los principios fundamentales del manifiesto ágil. A continuación,
se señalan las particularidades de cada una de ellas.
2.2.1.1 Extreme Programming (XP)
XP es una metodología para equipos de desarrollo que pueden tener un
tamaño pequeño o mediano (de dos a diez programadores), que promete
enfrentarse a la imprecisión y los cambios rápidos de los requerimientos del
proyecto.
2.2.1.2 Scrum
Scrum es un marco de trabajo iterativo e incremental que se centra en la
entrega de un producto al final de un período de trabajo al que se le
denomina Sprint, y en el caso de software, se refiere a que el código se ha
integrado, probado y puede ser potencialmente productivo.
2.2.1.3 Mobile-D
Mobile-D es una metodología ágil que está pensada para un equipo con un
número menor de diez desarrolladores y se orienta en superar las
dificultades implicadas en el desarrollo de aplicaciones móviles en un tiempo
corto.
16
2.2.2 TABLA COMPARATIVA DE METODOLOGÍAS ÁGILES
Xp Scrum Mobile-D
Enfoque en calidad
del software 10 10 10
Interacción con el
cliente 9 9 9
Entrega de prototipos
de calidad en corto
tiempo
8 8 9
Modelar el Software 8 7 9
Ágil y adaptable al
cambio 8 8 9
Resultado Iterativo -
Incremental 10 10 10
Código estándar 9 9 9
Puntaje Total 62 61 65
Tabla 4: Tabla comparativa de metodologías ágiles Autor: Tesista
Fuente: Internet
Considerando estas premisas y después de analizar y estudiar las varias
opciones de metodologías, se ha encontrado que la mejor alternativa es
utilizar MOBILE-D, por obtener el mayor porcentaje frente a las demás.
2.2.2.1 Ciclo de Vida de Mobile -D
El ciclo de vida de Mobile-D se divide en cinco fases: exploración,
inicialización, producción, estabilización y pruebas.
17
Figura 2: Ciclo de Vida de Mobile-D
Exploración
En la fase de exploración se centra en la planificación y en los
conceptos básicos del proyecto. Aquí es donde se define el alcance
del proyecto y su establecimiento con las funcionalidades que se
quieren lograr.
Inicialización
El propósito de la fase de inicialización es permitir el éxito de las
siguientes etapas del proyecto mediante la preparación y verificación
de todos los aspectos críticos del desarrollo, de manera que sean
corregidos con prontitud en el final de la fase de aplicación de los
requisitos.
Producción
En la fase de producción se implementa la funcionalidad requerida
en el producto, mediante la aplicación del ciclo de desarrollo iterativo
e incremental.
18
Estabilización
El propósito de la fase de estabilización es asegurar la calidad de la
ejecución del proyecto.
Pruebas
Una vez terminado el desarrollo se pasa a una fase de pruebas hasta
llegar a una versión estable según lo establecido por el cliente en las
primeras fases. Si es necesario se corrigen los errores, pero no se
desarrolla nada nuevo.
19
CAPÍTULO 3
3.1 EXPLORACIÓN
En esta fase se generó un plan y se estableció las características del
proyecto. Esto se realizó en tres etapas:
PRIMERA ETAPA: Establecimiento del proyecto
Esta etapa comprende:
Identificación de actores: Usuario (comunidad Universitaria) y
Administrador.
Definición de alcances: El alcance está definido en el
Capítulo1.
SEGUNDA ETAPA: Interrelación con el usuario
Esta etapa conlleva:
Recolección de requerimientos
TERCERA ETAPA: Se identifica los procesos del Proyecto.
3.2 INICIACIÓN
Se preparó e identificó todos los recursos necesarios. Además, los planes
para las siguientes fases y se estableció el entorno técnico.
3.2.1 Recolección de requerimientos
Se estableció los requerimientos funcionales y no funcionales con el
objetivo de producir una definición inicial del producto.
Los requerimientos iniciales fueron obtenidos a través de reuniones
con los usuarios y personal administrativo de la Biblioteca General de
la Universidad Central del Ecuador.
20
3.2.2 Requerimientos iniciales
Los requerimientos iniciales son los siguientes:
o Ingreso a la aplicación
o Perfil de usuario
o Listar los enlaces de las Bases de Datos Científicas
o Filtrar los enlaces de las Bases de Datos Científicas por carrera
o Listar las Bases de Datos Científicas que el usuario más utiliza
(preferencia)
3.2.3 Análisis de requerimientos iniciales
En base a las entrevistas realizadas se identificó la importancia de
cada requerimiento que permiten crear los componentes e interfaces;
también se ha podido identificar los módulos de la aplicación, que se
listan a continuación:
Módulo Usuario (Perfil):
a. Ingreso
b. Registro
c. Consulta
d. Actualización
Módulo de Bases de Datos Científicas
a. Listado por carrera
b. Listado de preferencias de usuario
21
3.2.4 Planificación Inicial
3.2.4.1 Análisis de requerimientos y pre-requisitos
Para realizar los requerimientos funcionales es necesario cumplir
con pre-requisitos a nivel técnico que permitan implementar dichos
requerimientos.
3.2.4.2 Listado por carrera
Pre-requisitos:
o Registro de Facultades
Registro de carrera
Registro y clasificación de los enlaces de las
Bases de Datos Científicas.
3.2.4.3 Listado de preferencias de usuario
o Registro y consulta de actividad
3.2.4.4 Planificación de Fases
Fase Iteración Descripción
Exploración
Inicialización Iteración 1 Establecimiento del
proyecto, Análisis de
requerimientos iniciales.
22
Producto
Iteración 1: Módulo
de usuario
Implementación del
módulo usuario. Ingreso
a la aplicación; si no
existe usuario
registrarse. Actualización
de la información del
usuario.
Iteración 2: Módulo
de Bases de Datos
Científicas
Implementación el
módulo de Bases de
Datos Científicas.
Presentar las Bases de
Datos Científicas según
la carrera del usuario.
Presentar las
preferencias de uso del
usuario.
Estabilización
Iteración 1: Módulo
de usuario
Ajustes del Módulo de
usuario.
Modificación de la
interfaz.
Iteración 2: Módulo
de Bases de Datos
Científicas
Ajustes del Módulo de
Bases de Datos
Científicas.
Modificación de la
presentación de las
Bases de Datos
Científicas.
Pruebas de la
aplicación.
Iteración 1: Pruebas Se realizaron pruebas y
se analizaron los
resultados.
23
3.3 PRODUCTO
3.3.1 Arquitectura de la Aplicación
Figura 3: Diagrama de la Arquitectura de la Aplicación
24
3.3.2 Modelo físico de la Base de datos
Figura 4: Diagrama del Modelo físico de la Base de Datos
3.3.3 Descripción del módulo
Módulo Usuario (Perfil):
En esta sección el usuario ingresa su información por primera y única
vez para que las Bases de Datos Científicas se filtren según los datos
ingresados. Los campos a llenar son: Facultad, Carrera, Email
(institucional) y Nombre.
25
Figura 5: Registro Usuario – Aplicación Móvil
Una vez que le usuario esté registrado tiene la posibilidad de
actualizar su información en el botón Perfil.
Figura 6: Actualización de datos – Aplicación Móvil
26
Módulo de Bases de Datos Científicas
La página principal de la aplicación móvil presentará dos secciones
principales, todos y favoritas, que serán desplegadas en forma de
listas. Las listas presentarán toda la información de las Bases de
Datos Científicas, incluyen logo y enlace.
Sección Todos: Representa todas las Bases de Datos Científicas
previamente clasificadas según la carrera del usuario.
Al acceder a alguna de las Bases de Datos Científicas se desplegará
una nueva pantalla en la que se visualizará la información referente a
la base científica seleccionada.
Figura 7: Listado de todas las Bases de Datos Científicas – Aplicación Móvil
27
Sección Favoritas: Indica las Bases de Datos Científicas más
utilizadas por el usuario. Se ordenan automáticamente según la
frecuencia de uso.
Figura 8: Listado de Bases de Datos Científicas – Aplicación Móvil
3.4 ESTABILIZ ACIÓN
En esta fase se implementa la funcionalidad de la aplicación; además se
asegura la calidad, y se comprueba que la aplicación implementada posea la
funcionalidad correcta.
28
Objetivos de esta fase:
Implementar las funcionalidades
Finalizar la implementación del producto
Corregir defectos
Producir un prototipo libre de errores dentro de lo posible
29
CAPÍTULO 4
4.1 PRUEBAS
4.1.1 Prueba de carga
Se realizó una prueba de carga con la herramienta Load Impact, esta herramienta
permite simular el tráfico como lo haría un usuario normal por lo que se puede
comprobar el estado o comportamiento del servidor con varios usuarios
concurrentes.
Se realizó la simulación con 25 usuarios concurrentes, los que fueron aumentando
linealmente. Esto se puede ver en la figura, la cantidad de usuarios concurrentes se
representa por la línea de color azul. A su vez los tiempos de carga representados
en la figura por la línea de color verde se mantuvieron sin ningún cambio, lo que
comprueba que el servidor se encuentra bien configurado y podría soportar un
ambiente de producción.
30
4.2 CONCLUSIONES
La aplicación móvil es intuitiva y proporciona al usuario (docente o
estudiante) al momento de ingresar, un listado de las Bases de Datos
Científicas que ayudarán a sus consultas de investigación según su
carrera.
El aplicativo al estar disponible en los teléfonos inteligentes abarca un
mayor espectro de potenciales usuarios (docentes y estudiantes) de las
Bases de Datos Científicas.
Al incorporar técnicas de programación híbridas en el desarrollo, se pudo
tener disponible la aplicación en los sistemas operativos: iOS y Android,
al mismo tiempo.
La aplicación móvil es un prototipo que generará una retroalimentación a
través del usuario (docente o estudiante) para determinar cambios o
nuevas funcionalidades a la misma.
4.3 RECOMENDACIONES
Se recomienda a la Dirección de Tecnologías de la Información y
Telecomunicaciones (DTIC) de la Universidad Central Del Ecuador
que para el uso en producción de la aplicación se utilice un servidor
de alta disponibilidad, ya que actualmente la aplicación está
implementada en un servidor gratuito con características básicas.
Se recomienda promocionar el aplicativo para que la comunidad
Universitaria haga uso de sus funcionalidades y pueda acceder de
forma más rápida e intuitiva a las Bases de Datos Científicas.
Se recomienda que se defina una persona que se encargue de
administrar la información que proporciona el código de Google
Analytics incluido en el desarrollo del aplicativo.
31
BIBLIOGRAFÍA
1. ECV_2015. Recuperado el Noviembre de 2015, de
http://www.ecuadorencifras.gob.ec/documentos/web-
inec/ECV/ECV_2015/
2. AMAZON EC2. Recuperado el Noviembre de 2015, de
http://aws.amazon.com/es/ec2/
3. AMAZON LIINUX AMI. Recuperado el Noviembre de 2015, de
http://aws.amazon.com/es/amazon-linux-ami/
4. AMAZON RDS. Recuperado el Noviembre de 2015, de
http://aws.amazon.com/es/rds/
5. AMAZON S3. Recuperado el Noviembre de 2015, de
http://aws.amazon.com/es/s3/
6. CONSTRUYENDO APLICACIONES MÓVILES CON SENCHA
TOUCH. Recuperado el Octubre de 2015, de
http://www.genbetadev.com/desarrollo-aplicaciones-
moviles/construyendo-aplicaciones-moviles-con-sencha-touch
7. ECUADOR EN CIFRAS. Recuperado el Noviembre de 2015, de
http://www.ecuadorencifras.gob.ec/documentos/web-
inec/ECV/ECV_2015/
8. SENCHA TOUCH. Recuperado el Octubre de 2015, de
https://www.sencha.com/products/touch/#overview
9. SMARTPHONES EN ECUADOR: ACCESO SE DUPLICÓ EN 2
AÑOS. Recuperado el Octubre de 2015, de
http://www.coberturadigital.com/2014/05/20/smartphones-en-ecuador-
acceso-se-duplico-en-2-anos/
32
MANUAL TÉCNICO
DESARROLLO DE UNA APLICACIÓN MÓVIL QUE PERMITE A LOS
DOCENTES Y ESTUDIANTES DE LA UNIVERSIDAD CENTRAL DEL
ECUADOR ACCEDER A LAS BASES DE DATOS CIENTÍFICAS
33
MANUAL TÉCNICO
La finalidad de la información que se detalla a continuación es proporcionar
la lógica con la que ha sido desarrollada la aplicación.
La arquitectura de datos del sistema está diseñada e implementada en la
nube teniendo en cuenta la escalabilidad, centralización y facilidad de
administración, para asegurar el mayor porcentaje de disponibilidad del
sistema en cualquier circunstancia.
Mediante un servidor RDS (Relational Database System) se implementó el
motor de base de datos MySQL, los servidores web funcionan en un servidor
Linux EC2 (Elastic Compute Cloud) y el repositorio de imágenes está alojado
en un servidor S3 (Simple Storage Services). Todos estos servicios son
proporcionados por la empresa Amazon en su gama de productos y
servicios.
Software Utilizado
Para el óptimo funcionamiento de la aplicación se instaló en el servidor lo
siguiente:
PHP y extensiones
Apache Httpd
Módulo PHP APC
34
CÓDIGO FUENTE
Inicio de Sesión
Figura 9: Inicio de Sesión - Aplicación
Ext.define('BScientific.view.IniciarSesion',{
extend: 'Ext.navigation.View',
xtype: 'iniciar',
requires: [
'Ext.field.Select',
'Ext.device.Notification'
],
config: {
defaultBackButtonText: 'Atras',
navigationBar: {
docked: 'top',
35
hidden: true
},
items:[
{
xtype:'panel',
scrollable:true,
title: 'Iniciar',
layout: 'vbox',
styleHtmlContent: true,
style:'background-color:#fff',
items:[
{
xtype:'button',
html:'¿Ya tienes un usuario?, inicia sesión',
ui:'confirm-round',
width:250,
style:'margin-top:40px;margin-left:auto;margin-right:auto;',
handler:function(){
Ext.Msg.prompt('Iniciar', 'Ingresa tu mail', function(text,prompt) {
if(text=="ok")
{
if(prompt == "")
{
Ext.device.Notification.show({
title: 'Ingresa tu mail',
message: 'No se ha ingresado ningun mail.',
buttons: Ext.MessageBox.OK
});
}
else{
var lower = prompt.toLowerCase();
lower = lower.trim();
Ext.Ajax.request({
url: 'http://52.91.239.14/buscarusr.php',
36
params: {
email: lower
},
success: function(response){
var respuesta = response.responseText;
if(respuesta == 0 )
{ Ext.device.Notification.show({
title: 'Usuario no encontrado',
message: 'Cree un nuevo usuario o revise sus datos.',
buttons: Ext.MessageBox.OK
});
}
else{
var obj = JSON.parse(respuesta);
console.log(obj.items[0].facultad);
var temp = Ext.getStore('facultadesstore').findRecord('id',
obj.items[0].facultad);
var temp1 = Ext.getStore('carrerasstore').findRecord('id',
obj.items[0].carrera);
var facultadnombre = temp.data.nombre;
var carreranombre = temp1.data.nombre;
name = obj.items[0].nombre;
faculty = obj.items[0].facultad;
carrer = obj.items[0].carrera;
carrername = carreranombre;
emailaddr = obj.items[0].email;
facultyname = facultadnombre;
localStorage.setItem("nombre",obj.items[0].nombre);
localStorage.setItem("carrera",obj.items[0].carrera);
localStorage.setItem("carreranombre",carreranombre);
localStorage.setItem("facultad",obj.items[0].facultad);
37
localStorage.setItem("facultadnombre",facultadnombre);
localStorage.setItem("email",obj.items[0].email);
localStorage.setItem("iniciado","si");
var base = Ext.getStore('basesstore');
base.getProxy().setUrl('http://52.91.239.14/bases.php?carrera='+carrer);
base.load();
var basef = Ext.getStore('basesfavoritasstore');
basef.getProxy().setUrl('http://52.91.239.14/basesfavoritas.php?email='+emai
laddr);
basef.load();
Ext.Viewport.getActiveItem().destroy();
Ext.Viewport.add(Ext.create('BScientific.view.Main'));
Ext.getCmp('basestab').setActiveItem(0);
}
},
failure : function(response) {
Ext.device.Notification.show({
title: 'Error',
message: 'No se pudo iniciar sesión, revisa tu conexión a
internet e intenta nuevamente.',
buttons: Ext.MessageBox.OK
});
}
});
}
}
38
});
}
},
{
xtype:'container',
styleHtmlContent: true,
html:'<div style="text-align: center;"><img height="144px"
src="./resources/images/logo-UCE.png"></div><div style="text-align:
center;font-size: 20px;">BScientific</div>'
} ,
{
xtype: 'fieldset',
usePicker:true,
items: [
{
xtype:'selectfield',
label:false,
usePicker:true,
id:'facultadpicker',
store: 'facultadesstore',
displayField: 'nombre',
valueField:'id',
placeHolder: 'Seleccionar aqui',
label:'Facultad',
AutoComplete:false,
autoSelect :false,
listeners:{
change: function(element, newValue, oldValue, eOpts){
Ext.getStore('carrerastore').getProxy().setUrl('http://52.91.239.14/carrera.php
?facultad='+newValue);
Ext.getStore('carrerastore').load();
}
39
}
},
{
xtype:'selectfield',
label:false,
usePicker:true,
id:'carrerapicker',
store: 'carrerastore',
displayField: 'nombre',
valueField:'id',
placeHolder: 'Seleccionar aqui',
label:'Carrera',
AutoComplete:false,
autoSelect :false
},
{
xtype: 'emailfield',
label: 'Email',
id:'emailfield',
placeHolder: '[email protected]',
name: 'email'
},
{
xtype: 'textfield',
label: 'Nombre',
id:'nombrefield',
placeHolder: 'Tu nombre',
name: 'Nombre'
}
]
},
{
40
xtype:'button',
html:'Entrar',
ui:'normal-round',
width:'50%',
style:'margin-top:40px;margin-left:auto;margin-right:auto;',
handler:function(){
var carrera = Ext.getCmp('carrerapicker').getValue();
var facultad = Ext.getCmp('facultadpicker').getValue();
var email = Ext.getCmp('emailfield').getValue();
var nombre = Ext.getCmp('nombrefield').getValue();
email = email.toLowerCase();
function validateEmail(email) {
var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-
z]{2})?)$/i;
return re.test(email);
}
if(!(email.indexOf("@uce.edu.ec") > -1))
{
Ext.device.Notification.show({
title: 'Email',
message: 'El email que ingresaste no es email valido de la UCE.',
buttons: Ext.MessageBox.OK
});
return;
}
if(validateEmail(email) == false)
{
Ext.device.Notification.show({
title: 'Email',
message: 'El email que ingresaste no parece estar correcto, revisalo e
intenta nuevamente.',
41
buttons: Ext.MessageBox.OK
});
return;
}
if(facultad == "" || facultad == null || carrera == "" || carrera == null || email
== "" || email == null || nombre == null || nombre== "")
{
Ext.device.Notification.show({
title: 'Datos Incompletos',
message: 'Revisa tus datos e intenta nuevamente.',
buttons: Ext.MessageBox.OK
});
}
else{
email = email.toLowerCase();
email = email.trim();
Ext.Ajax.request({
url: 'http://52.91.239.14/usuario.php',
params: {
facultad:facultad,
carrera:carrera,
nombre: nombre,
email: email
},
success: function(response){
if(response.responseText.indexOf("Duplicate entry") > -1)
{
Ext.device.Notification.show({
title: 'Inicia Sesión',
42
message: 'Parece que tu cuenta ya existe inicia sesión en el
boton superior.',
buttons: Ext.MessageBox.OK
});
return;
}
var temp = Ext.getStore('facultadesstore').findRecord('id',
facultad);
var temp1 = Ext.getStore('carrerastore').findRecord('id',
carrera);
var facultadnombre = temp.data.nombre;
var carreranombre = temp1.data.nombre;
name = nombre;
carrer = carrera;
emailaddr = email;
facultyname = facultadnombre;
carrer = carrera;
carrername = carreranombre;
facultyname = facultadnombre;
localStorage.setItem("nombre",nombre);
localStorage.setItem("carrera",carrera);
localStorage.setItem("carreranombre",carreranombre);
localStorage.setItem("facultad",facultad);
localStorage.setItem("facultadnombre",facultadnombre);
localStorage.setItem("email",email);
localStorage.setItem("iniciado","si");
var base = Ext.getStore('basesstore');
base.getProxy().setUrl('http://52.91.239.14/bases.php?carrera='+carrer);
base.load();
Ext.Viewport.getActiveItem().destroy();
Ext.Viewport.add(Ext.create('BScientific.view.Main'));
43
Ext.getCmp('basestab').setActiveItem(0);
},
failure : function(response) {
Ext.device.Notification.show({
title: 'Error',
message: 'No se pudo iniciar sesión, revisa tu conexión a
internet e intenta nuevamente.',
buttons: Ext.MessageBox.OK
});
}
});
}
}
}
]
}],
listeners:{
painted:function(){
window.location.href = "#IniciarSesion/";
}
}
}
});
44
Bases de Datos Científicas
Figura 10: Listado Bases de Datos Científicas - Aplicación
Ext.define('BScientific.view.BasesDatos',{
extend: 'Ext.navigation.View',
xtype: 'basesdedatos',
requires: [
'Ext.dataview.List'
],
config:{
styleHtmlContent: true,
title: 'Todos',
navigationBar: {
docked: 'top',
45
hidden: true
},
items:[
{
xtype:'list',
title: 'Todos',
styleHtmlContent: true,
scrollable:true,
onItemDisclosure:true,
emptyText:'<div class=empty>Error de conexión a internet</div>',
itemTpl: ['<div><img
src="https://s3.amazonaws.com/bscientific/{imagen}"
style="height:40px;vertical-align:middle"><span style="font-size:
10px;margin-left:12px;color: #969696;">{Nombre}</span></div>'],
height:'auto',
store: 'basesstore',
listeners:{
itemtap:function(element, index, target, record, e, eOpts){
Ext.Ajax.request({
url: 'http://52.91.239.14/guardarfavoritas.php',
params: {
email:emailaddr,
base:record.data.id
},
success: function(response){
var base = Ext.getStore('basesfavoritasstore');
base.load();
},
46
failure : function(response) {
}
});
var browser =
window.open(record.data.url,'_blank','location=yes,closebuttoncaption=Cerra
r,EnableViewPortScale=yes');
gaPlugin.trackEvent( nativePluginResultHandler,
nativePluginErrorHandler,record.data.Nombre,facultyname, "Entro a base",
1);
}
}
}
],
listeners:{
painted:function(){
window.location.href = "#BasesdeDatos/";
}
}
}
});
47
Menú Principal
Figura 11: Menú Principal - Aplicación
Ext.define('BScientific.view.Main', {
extend: 'Ext.tab.Panel',
xtype: 'main',
requires: [
'BScientific.view.Perfil',
'BScientific.view.Bases'
],
config: {
tabBarPosition: 'bottom',
layout:{
type: 'card'
},
items: [
{xtype:'bases'},
{xtype:'perfil'},
48
]
}
});
Perfil
Figura 12: Perfil - Aplicación
Ext.define('BScientific.view.Perfil',{
extend: 'Ext.navigation.View',
xtype: 'perfil',
requires: [
'Ext.form.FieldSet',
'Ext.field.Email',
'Ext.Label',
'Ext.form.Panel'
],
49
config:{
title: 'Perfil',
iconCls: 'user',
iconAlign:'center',
items:[{
xtype:'panel',
title: 'Perfil',
layout: 'vbox',
scrollable:true,
styleHtmlContent: true,
items:[
{
xtype:'label',
id:'nombreperfil',
html:name,
style:'text-align:center;margin-top:10px;font-weight: bold;font-
size: 20px;'
},
{
xtype:'label',
id:'facultadperfil',
html:facultyname,
style:'text-align:center;margin-top:10px;font-size: 15px;'
},
{
xtype:'label',
id:'carreraperfil',
html:carrername,
style:'text-align:center;margin-top:10px;font-size: 15px;'
},
{
xtype:'label',
id:'emailperfil',
50
html:emailaddr,
style:'text-align:center;margin-top:10px;color: #0075BB;'
},
{
xtype:'button',
width:'50%',
html:'cambiar información',
style:'margin-top:70px;margin-left:auto;margin-right:auto;',
handler:function(){
var form = Ext.create('Ext.form.Panel', {
fullscreen: true,
items: [
{
xtype: 'fieldset',
usePicker:true,
styleHtmlContent: true,
items: [
{
xtype:'selectfield',
label:false,
usePicker:true,
id:'facultadpickerperfil',
store: 'facultadesstore',
displayField: 'nombre',
valueField:'id',
placeHolder: 'Seleccionar aqui',
label:'Facultad',
AutoComplete:false,
autoSelect :false,
listeners:{
change: function(element, newValue, oldValue,
eOpts){
51
Ext.getStore('carrerastore').getProxy().setUrl('http://52.91.239.14/carrera.php
?facultad='+newValue);
Ext.getStore('carrerastore').load();
}
}
},
{
xtype:'selectfield',
label:false,
usePicker:true,
id:'carrerapickerperfil',
store: 'carrerastore',
displayField: 'nombre',
valueField:'id',
placeHolder: 'Seleccionar aqui',
label:'Carrera',
AutoComplete:false,
autoSelect :false
},
{
xtype: 'textfield',
label: 'First Name',
id:'nombrefieldperfil',
placeHolder: 'Tu nombre',
name: 'Nombre'
},
{
xtype:'button',
ui:'confirm-round',
style:'margin-top:30px;',
html:'Cambiar',
handler:function(){
52
var facultad =
Ext.getCmp('facultadpickerperfil').getValue();
var carrera =
Ext.getCmp('carrerapickerperfil').getValue();
var nombre =
Ext.getCmp('nombrefieldperfil').getValue();
if(carrera == "" || carrera == null || facultad == "" ||
facultad == null || emailaddr == "" || emailaddr == null || nombre == null ||
nombre== "")
{
Ext.device.Notification.show({
title: 'Datos Incompletos',
message: 'Revisa tus dartos e intenta
nuevamente.',
buttons: Ext.MessageBox.OK
});
}
else{
Ext.Ajax.request({
url: 'http://52.91.239.14/update.php',
params: {
facultad:facultad,
carrera:carrera,
nombre: nombre,
email: emailaddr,
53
},
success: function(response){
var temp =
Ext.getStore('facultadesstore').findRecord('id', facultad);
var facultadnombre = temp.data.nombre;
var temp1 =
Ext.getStore('carrerasstore').findRecord('id', carrera);
var carreranombre = temp1.data.nombre;
name = nombre;
faculty = facultad;
facultyname = facultadnombre;
carrer = carrera;
carrername = carreranombre;
localStorage.setItem("nombre",nombre);
localStorage.setItem("facultad",facultad);
localStorage.setItem("facultadnombre",facultadnombre);
localStorage.setItem("carrera",carrera);
localStorage.setItem("carreranombre",carreranombre);
localStorage.setItem("iniciado","si");
var base =
Ext.getStore('basesstore');
base.getProxy().setUrl('http://52.91.239.14/bases.php?carrera='+carrer);
base.load();
Ext.Viewport.getActiveItem().destroy();
Ext.Viewport.add(Ext.create('BScientific.view.Main'));
54
},
failure : function(response) {
Ext.device.Notification.show({
title: 'Error',
message: 'No se pudo actualizar, revisa tu
conexión a internet e intenta nuevamente.',
buttons: Ext.MessageBox.OK
});
}
});
}
}
}
]
}
]
});
Ext.getCmp('facultadpickerperfil').setValue(faculty);
Ext.getCmp('carrerapickerperfil').setValue(carrer);
Ext.getCmp('nombrefieldperfil').setValue(name);
this.parent.parent.push(form);
}
},
{
xtype:'button',
width:'50%',
html:'Desconectar',
55
style:'margin-top:50px;margin-left:auto;margin-right:auto;',
handler:function(){
localStorage.setItem("iniciado","");
window.location.reload();
}
}
]
}
],
listeners:{
initialize:function(){
Ext.getCmp('nombreperfil').setHtml(name);
Ext.getCmp('facultadperfil').setHtml(facultyname);
Ext.getCmp('carreraperfil').setHtml(carrername);
Ext.getCmp('emailperfil').setHtml(emailaddr);
},
painted:function(){
window.location.href = "#Perfil/";
}
}
}
});
56
MANUAL DE USUARIO
DESARROLLO DE UNA APLICACIÓN MÓVIL QUE PERMITE A LOS
DOCENTES Y ESTUDIANTES DE LA UNIVERSIDAD CENTRAL DEL
ECUADOR ACCEDER A LAS BASES DE DATOS CIENTÍFICAS
57
MANUAL DE USUARIO
Este manual tiene por objetivo principal explicar de manera detallada el
manejo de la Aplicación Móvil.
1. Inicio Aplicación
Inicie la aplicación mediante el icono de la misma en el dispositivo
móvil.
Figura 13: Icono de la Aplicación
Una vez iniciado aparecerá la siguiente pantalla:
Figura 14: Registro de Usuario
58
Llenar los campos del formulario como se indica a continuación y
después dar clic en el botón Entrar.
Figura 15: Ingreso de datos
Nota: En el campo Email ingresar el correo que le ha sido asignado
por la institución, caso contrario se presentará una ventana de error
(Figura 15) y no se creará el Perfil.
Figura 16: Mensaje de Error al digitar un email incorrecto
59
2. Pantalla Bases de Datos Científicas
Después de digitar correctamente los datos se visualizarán en forma de lista
las Bases de Datos Científicas, según la Carrera que haya sido registrada.
Figura 17: Listado de Bases Científicas
Al presionar en el botón:
Figura 18: Icono Perfil
Aparecerá la siguiente pantalla, en donde se puede actualizar la
información de los datos ingresados y cerrar la sesión.
60
Figura 19: Pantalla para actualizar información
Al presionar el botón:
Figura 20: Botón Cambiar Información
Aparecerá la siguiente pantalla, en dónde se puede cambiar la
información. Una vez terminados los cambios dar clic en el botón
Cambiar.
61
Figura 21: Pantalla para cambiar información de Perfil
Al presionar el botón:
Figura 22: Botón Desconectar
Se cerrará la sesión y la próxima vez que se requiera usar la
aplicación no será necesario llenar los campos del formulario. Puede
Iniciar Sesión presionando el siguiente botón:
Figura 23: Botón Inicia Sesión
Aparecerá la siguiente ventana en la que se requiere digitar la cuenta
de correo que ingresó al momento de llenar el formulario.
62
Figura 24: Pantalla para volver a Iniciar Sesión
3. Pantalla de Bases de Datos Favoritas
Presenta las Bases de Datos Científicas más utilizadas por el usuario.
Se ordenan automáticamente según la frecuencia de uso.
63
Figura 25: Bases de Datos Favoritas