Está en la página 1de 55

Proyecto Integrado

Autores:

Abel Domínguez Mateo


Rubén Aguilar García

Administración de Sistemas Informáticos en Red

ASIR B

CURSO 2015/2016
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

Índice

Índice ______________________________________________________________________ 1

1. Introducción _______________________________________________________________ 3
1.1. Objetivos ______________________________________________________________ 3
1.2 ¿Qué es Droidia? ________________________________________________________ 3

2. Medios a utilizar ___________________________________________________________ 4


2.1. Software ______________________________________________________________ 4
2.2. Hardware ______________________________________________________________ 5

3. Diseño ___________________________________________________________________ 8
3.1. Base de datos___________________________________________________________ 8
3.1.1. Base de datos Admin _________________________________________________ 8
3.1.2. Base de datos User _________________________________________________ 16
3.2. Aplicación Java_________________________________________________________ 17
3.3. Conexión _____________________________________________________________ 33
3.4. Página principal ________________________________________________________ 36
3.5. APP Android ___________________________________________________________ 41

4. Manual de usuario _________________________________________________________ 44


4.1. Utilización de la OVA de ejemplo __________________________________________ 44
4.1.1. Acceso como administrador __________________________________________ 47
4.1.2. Acceso como obrero ________________________________________________ 49

5. Resumen del proyecto______________________________________________________ 50

6. Gracias __________________________________________________________________ 51

7. Webgrafía _______________________________________________________________ 52

8. DVD's ___________________________________________________________________ 53

1
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

2
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

1. Introducción

1.1. Objetivos
Droidia se ha desarrollado para la ayuda a la organización y al control de la empresa y los
empleados. Se crea al ver la necesidad de eliminar el “papeleo” continuo que tienen ciertas
empresas de obras, ya que se pierden, se manchan, se rompen o incluso el trabajador al estar
agotado, lo lleva días después.

1.2 ¿Qué es Droidia?


Droidia consiste en una base de datos en la cual se almacenan los datos de los empleados y las
obras que se realizan en la empresa, además de los partes de obra emitidos por cada
empleado en cada obra, de esta manera, un administrador puede aceptar los partes de obra y
los empleados dar partes desde su ordenador o dispositivo móvil de manera más sencilla que
tener que transportarse a la empresa llevando un formulario de obra cada vez que termina su
jornada.

3
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

2. Medios a utilizar

2.1. Software
Los programas que hemos dedicado a la creación de Droidia se presentarán en la siguiente
lista denominando su fin dentro del proyecto.

-Java 8 Update 91 (64-bits): Permite utilizar las herramientas de Oracle.

-Java JDK 8u91: Desarrollo de aplicaciones Java.

-Oracle Database 11g Express Edition: Instala en el equipo un servidor de Base de


Datos de Oracle.

-Oracle VM VirtualBox: Permite crear máquinas virtuales en las cuales desarrollar la


aplicación en un entorno seguro y crear servidores sin necesidad de tener o comprar otro
equipo.

- Apache Tomcat 9.0.0 M4 Windows x64: Instala un servidor de aplicaciones Java


Web, el cual compila nuestra aplicación y le da una salida a través de un puerto de servicio de
Internet para que se pueda acceder a la aplicación desde una red externa a nuestro equipo.

-Oracle JDeveloper Studio Edition Versión 12.1.3.0.0: Aplicación la cual nos


permite desarrollar aplicaciones Java.

-SQL Developer Versión 4.1.1.19: Aplicación que nos ayuda a desarrollar bases de
datos.

-No-IP DUC: Aplicación que enlaza con un servidor DNS el cual nos ofrece una IP pública
para que puedan acceder a nosotros.

-Android Studio versión 1.5.1: Aplicación la cual podemos desarrollar aplicaciones para
Android.

-AirDroid: Programa mediante el cual podremos mostrar a los interesados en el programa lo


que ocurre en el dispositivo móvil sin tener que darle a cada uno un dispositivo o utilizar
virtualizadores de Android, los cuales a veces suelen ser infieles a la realidad.

-Packet Tracer Cisco: Programa para el diseño de diagramas de red. Con esta aplicación se
diseñó el concepto de la red del proyecto.

-Team Viewer: Conexiones remotas con el servidor.

4
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

2.2. Hardware

Los equipos utilizados en nuestro proyecto con su descripción completa, además de las
máquinas virtuales utilizadas. En este apartado, se incluye la descripción del servidor real que
hospeda nuestra aplicación.

-Equipo anfitrión de las máquinas virtuales: El cual hospeda el Oracle VM


VirtualBox.

Equipo de sobremesa con procesador Intel Core i7-3770 a 3,40 GHz hasta 3,80 GHz. El cual
tiene 16 GB de memoria RAM y Windows 7 Ultimate x64.

-Máquina Virtual Servidor Droidia: En dicha máquina se encuentran las bases de datos
y el servidor Tomcat de la aplicación.

Equipo con procesador Intel Core i7-3770 a 3,40 GHz hasta 3,80 GHz. El cual tiene 3 GB de
memoria RAM y Windows 7 Professional x64.

-Servidor web en Hostinger.es: Servidor web gratuito, el cual tiene nuestra página
principal, la que muestra si el servidor está levantado o no, además de ofrecernos contacto
con el administrador del servidor si hay algún problema.

droidia.16mb.com
DIRECCIÓN IP 31.170.164.158
SERVIDOR server6.hostinger.es
IP DEL SERVIDOR 31.170.164.21
Apache/2.4
PHP 5.5

-Servidor DNS en noip.com: Servidor DNS que nos redirige a nuestro servidor de la
aplicación a través de una simple aplicación llamada No-IP DUC.

droidia.ddns.net 83.51.67.123

-Router de fibra óptica: Para mejor comunicación con nuestro servidor desde el exterior,
el servidor está conectado a internet a través de un router de fibra óptica.

5
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

-Servidor IBM xSeries 226: Servidor ofrecido por Tecnova S.L.L. para la realización de
este proyecto.

El equipo consta de Windows Server 2008 Enterprise SP1a 32 bits, un procesador Intel Xeon a
3.00 GHz, una memoria RAM de 2 GB, además de dotarlo con una conexión a internet de fibra
óptica y una IP propia (192.168.1.52) dentro de la misma red.

Vista lateral del interior del servidor.

Podemos observar las dos fuentes de alimentación que utiliza el servidor para alimentarse, ya
que requiere mucha potencia.

6
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

Momento del inicio de la instalación de Windows Server 2008.

Actualización del sistema operativo para tener todos los parches de seguridad y compatibilidad
con la máquina.

7
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

3. Diseño

3.1. Bases de datos


En este proyecto usamos bases de datos distribuidas para almacenar la información, tenemos
la base de datos Admin (DROIDIAADM) y la base de datos User (DROIDIAUSE). Utilizamos la
base de datos User para guardar posibles cambios que se realizaran en la base de datos Admin,
ademas la User se actualiza automáticamente cuando se realizan cambios en Admin.

3.4.1. Base de datos Admin

3.1.1.1. Modelo relacional

3.1.1.2. Modelo lógico

8
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

3.1.1.3. Tablas

Obras:

Aquí guardamos la información referente a las obras, su ID, una breve descripción, y la fecha
de inicio.

Plantilla:

Usamos esta tabla para guardar la información básica de los empleados, si ID, nombre, DNI y
salario. Además a partir de esta tabla creamos una herencia que nos da oficinistas y obreros.

Obrero:

Guardamos información específica de los empleados que son obreros, a parte de lo heredado
de plantilla contamos con una especialidad, las horas que ha trabajado y una contraseña que le
permitira acceder a la aplicación.

El campo de horas esta en desuso ya que cuando avanzamos en el proyecto nos dimos cuenta
que no nos hacía falta, en un principio serviría para calcular el sueldo pero acabamos usando
una función que no necesitaba de este campo.

Obras_Obrero:

Esta table es el resultado de una doble relación entre Obras y Obrero, aquí guardamos los
partes de obra para eso añadimos los campos Horas (horas trabajadas) y Día (fecha del parte
de obra), ademas este último lo usamos como parte de la primary Key para evitar que un
trabajador de dos partes de obra del mismo día en la misma obra.

Oficina:

La otra parte de la herencia, aquí guardamos a los oficinistas, y almacenamos el departamento


al que pertenecen, sus estudios y el sueldo extra que reciben por ser oficinistas.

Departamento:

Guardamos los departamentos a los que pertenecen los oficinistas y guardamos el nombre del
departamento y el sueldo extra que se le asigna a los oficinistas que trabajen en el mismo.

9
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

3.1.1.4. Vistas

Las primera vista ha quedado en desuso por la implantación de una función que calcule el
sueldo del obrero.

La segunda vista vista la usamos para el calculo del salario de oficinistas ya que no requiere
ninguna operación especial y es mas rápido de esta manera.

Las dos últimas son una unión de Obreros y Oficina con el padre de la herencia para que sea
mas facil extraer datos desde Java.

10
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

3.1.1.5. Procedimientos

Ya que hemos intentado manipular las tablas mínimamente desde la aplicación Java, hemos
creado procedimientos que realizarán la mayoría de las acciones que necesitemos, de esta
forma reforzamos la seguridad contra SQL-Injection.

El primer procedure nos pide la primary key de la tabla obras obrero y a partir de esta lee los
datos en la tabla de la otra base de datos y los copia a la nuestra, tras esto borra la línea que
hemos copiado de la otra base de datos.

Este procedure actualiza las horas del campo obrero, aunque esta en desuso ya que usamos
una función para calcular el sueldo que es la única función del campo horas.

11
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

Este procedure actualiza la tabla de obras en la base de datos de User.

Este procedure actualiza la tabla de obreros en la base de datos de User.

Este procedure sirve para insertar obreros, ya que la información esta divididad en dos tablas
necesitamos dos INSERT.

Este procedure sirve para insertar oficinistas, ya que la información esta divididad en dos
tablas necesitamos dos INSERT.

12
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

Este procedure se usa en el caso que queramos rechazar un parte de obras, lo que hace es
borrar la línea de la base de datos User.

3.1.1.6. Triggers

Este trigger actualiza la base de datos User cada vez que se realiza un cambio en la tabla de
obras.

Este trigger actualiza la base de datos User cada vez que se realiza un cambio en la tabla de
obrero.

Este trigger realiza una comprobación de la herencia al insertar obreros, levanta una excepción
si ya existe un trabajador con ese ID.

13
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

Este trigger realiza una comprobación de la herencia al insertar oficinistas, levanta una
excepción si ya existe un trabajador con ese id.

3.1.1.7. Database LINK

Este es el link que usamos para conectarnos a la base de datos User

14
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

3.1.1.8. Función

Esta es la función que usamos para calcular el sueldo, los datos de entrada son la ID del
trabajador, el año y el mes, a partir de esto nos calcula el sueldo de esa fecha.

15
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

3.1.2. Base de datos User

Esta base de datos es idéntica a las tres tablas de Admin Obras, Obrero, Obras_Obrero.
Excepto que en esta última tabla añadimos el campo de fecha en la que se realizó el parte de
obras.

Esto es lo único que tenemos en esta base de datos ya que todo el control lo realiza la base de
datos de Admin.

3.1.2.1. Modelo relacional

3.1.2.2. Modelo lógico

16
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

3.2. Aplicación Java

3.2.1. Directorios de la aplicación en JDeveloper

17
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

3.2.2. Paquete modelo (Diagrama de clases)

Aquí podemos ver las clases con sus métodos, es la misma distribución que en la base de
datos.

Plantilla es el padre de una herencia de obreros y oficinistas y esta última a su vez tiene un
campo que es departamento que se encuentra en otra clase, además tenemos la clase de obra
que no se relacionará con nadie directamente dentro del diagrama.

Los métodos que encontramos son los típicos get y set así que no entraremos en detalles aquí.

18
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

3.2.3. Paquete GBD

Tenemos dos clases principales, Accion y Gestion.

Gestión se encarga de las tareas simples, insert y select, Acción de las más complejas, acceder
a prodecures, funciones y conectarse, además esta última es el padre de una herencia de 5
clases, cada una realizará una función.

La clase Accion puede crearse a partir de una sesión y un request (la sesión es nuestra
conexión a la base de datos y el request es donde almacenamos los datos que pedimos
mediante los JSP), vacía o a partir de solo la sesión.

Tiene un método inicio que se desarrolla en el resto de clases de la herencia ya que cada uno
tendrá una función distinta.

19
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

La clase de gestión tiene dos métodos, el primero inserta datos y el segundo los consulta,
ambas piden una sesión y una query.

La clase AccionActualizarHoras está en desuso ya que la usábamos para actualizar el campo de


horas y calcular el sueldo, ahora mismo esta función la realiza la clase que vamos a ver a
continuación.

20
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

Esta clase nos permite calcular el sueldo, el método inicio () está en blanco porque
obligatoriamente no devuelve nada y nosotros necesitamos que un método que nos devuelva
el sueldo para eso usamos inicio2 (), recibe una sesión y un request, y en este request deben
venir los datos:

IdP (id del obrero), fecha (para calcular el sueldo de ese mes).

A partir de esto sacamos el mes y el año de la fecha y llamamos a la función CalcSueldo


almacenada en la base de datos, asignamos variables de entrada y salida para que nos
devuelva el sueldo en la variable que hemos creado.

21
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

La siguiente clase nos permite conectarnos a la base de datos y como vemos hay 2 métodos, el
primero sirve para conectarnos a la base de datos Admin usando un usuario de la base de
datos y el segundo nos conecta directamente a la base de datos User con el usuario
predeterminado, este proceso es seguro ya que a continuación (en el JSP) se realizará una
comprobación de que el usuario sea el correcto.

22
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

Esta clase nos permite dar de alta a obreros u oficinistas, una vez pasados los datos que
necesitemos a través del request se llama al procedure de la base de datos correspondiente y
se da de alta al empleado.

23
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

Esta clase es la que controla los partes de obra, tiene 3 métodos, el primero da de alta un
parte de obra en la base de datos User, los otros dos aceptan y rechazan respectivamente un
parte de obras, esto significa que si lo aceptan copian los datos de la base de datos de User a la
de Admin y si lo rechazan simplemente lo borran de la base de datos User, todo esto mediante
llamadas al procedimiento de la base de datos que se encargaba de esto.

24
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

3.2.4. Paquete modelosql

La mayoría de los métodos de las distintas clases son los select o insert que necesitábamos
para obtener datos de la base de datos desde los JSP.

En esta clase tenemos 5 métodos, el primero nos devuelve un string para añadir un
departamento a la base de datos, el segundo nos devuelve un string para sacar los datos de un
departamento, el tercero hace lo mismo pero con todos los departamentos, y los dos últimos
nos crean un departamento a partir del resulset extraído de la tabla departamento o de la vista
que teníamos en la base de datos.

25
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

En esta clase el primer método nos devuelve un string para mostrar obras usando un filtro que
tenemos que añadir en el request, el segundo nos proporciona datos de una obra y sus
obreros, el tercero nos devuelve el siguiente id de obra, el cuarto nos muestra todas las obras
y el último nos muestra todos los obreros que hay en una obra.

26
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

El primer método nos devuelve el string para comprobar que exista un obrero con ese id y
contraseña, el siguiente crea un objeto obrero a partir de la vista de la base de datos, el
tercero nos muestra información de la visto y el cuarto nos calcula las horas aunque está en
desuso ya que usamos la función en la base de datos para calcular todo lo relativo al sueldo de
un obrero.

27
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

El primer método nos devuelve el string que nos muestra el departamento al que pertenece un
oficinista, el segundo crea un oficinista a partir del resultSet y un departamento de la vista de
la base de datos, el siguiente nos devuelve el string para asignar un departamento a un
oficinista y el último nos devuelve el string para ver la vista de oficinistas.

28
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

Esta primera parte de la clase es idéntica al resto que hemos mostrado.

La siguiente imagen es un método para calcular el sueldo, la primera parte del if sirve para
calcular el del oficinista y la segunda calcula el de un obrero (aunque esta segunda parte ya no
la usamos porque tenemos la función en la base de datos).

29
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

Este último método realizará un cambio de departamento, primero el objeto y después lo


guardará en la base de datos.

30
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

3.2.5. Directorios de Tomcat

En la carpeta bin se encuentran los archivos de inicio de Tomcat. En Conf, se encuentra la


configuración del servidor. En logs y temp, se almacenan los logs del sistema y los temporales.
Dentro de webapps es donde guardamos nuestras aplicaciones Java, dentro de esto, la
carpeta ROOT, es donde se guardará la aplicación predeterminada de nuestro servidor y la que
se iniciará al conectarnos a él. El resto de carpetas que hay en webapps, son diagnósticos de
Tomcat que sólo se pueden ejecutar desde el equipo que contiene el servidor, por seguridad.

31
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

-La aplicación (carpeta ROOT):

La carpeta contiene los 28 JSP que necesita la aplicación para


funcionar, el css con el JQuery que utilizamos en el calendario
de la web. La carpeta documents, en la cual se podrían
almacenar documentos creados. Images que contiene las
imágenes que se utilizan en la aplicación y la carpeta WEB-INF
que contiene las clases de la aplicación Java, las librerías
externas que necesita para conectarse a la base de datos y los
temporales, además de un XML que incluye configuración
propia del servidor.

Cada JSP tiene un nombre para organizarse, los form son


formularios en los cuales el cliente debe introducir
información, ya sea de búsqueda o para añadirlo a la base de
datos, los menú, son los menús de la aplicación, pdf las páginas
de exportación de pdf de las listas que muestra la aplicación,
los conectar son para atacar la base de datos, después están
los demás que contienen código que el usuario no ve para
realizar otras funciones como mostrar el sueldo del empleado
introducido, insertar en la plantilla alguien nuevo, cambiar de
departamento o la página de error que muestra la aplicación,
de esta manera es más sencillo controlarlos.

32
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

3.3. Conexión

Dentro de nuestro proyecto, hemos desarrollado un sistema de red para poder poner en
contacto cada parte de Droidia. La mostraremos en el siguiente diagrama.

Como se observa en el diagrama, nuestros servidores, los cuales están en el mismo equipo, se
encuentran en la misma red local, realizada con cableado UTP de categoría 6, además de estar
interconectados mediante un router de fibra óptica, el cual la conexión máxima en red local es
de 100 Mbps y la conexión con Internet es de 30,64 Mbps de descarga y 3,15 Mbps de subida.

33
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

Después se observa la red entre los servidores de Hostinger y No-IP.

En Hostinger tenemos la página web principal de nuestra aplicación, la cual analiza si el


servidor está activo o inactivo. Si se encuentra inactivo, nos ofrecerá un formulario de contacto
con el administrador del servidor para que vuelva a ponerlo activo. Si se encuentra activo, nos
redirecciona al enlace del servidor de No-IP.

En No-IP, nos envía a través de una forma directa a la aplicación Droidia en el servidor Tomcat,
de esta manera podemos acceder desde el exterior a nuestro servidor.

En la siguiente imagen mostramos el diagrama de flujo que realiza la red.

En el diagrama podemos observar que la APP de Android nos avisa si no tenemos conexión a
Internet en nuestro dispositivo móvil.

Una de las preocupaciones de los clientes es la seguridad en los servidores.

En Hostinger, la seguridad no depende de nosotros, pero podemos colocarle una usuario y una
contraseña, los cuales se encriptan y realizan una conexión segura para que no puedan
interceptar el envío de paquetes.

34
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

Dentro de nuestros servidores, el acceso desde el exterior está restringido por el firewall y la
configuración NAT dentro del router, de esta manera solo se puede acceder al servidor
Tomcat. A continuación se muestra la NAT realizada en el router para impedir el acceso desde
el exterior.

Como se observa, se realiza un acceso a través de los puertos hacia la IP de nuestro servidor
dentro de la red local.

El puerto 80 es el que permite el acceso a la página index.html dentro del servidor Tomcat, el
puerto 8443, permite conectarnos a las aplicaciones de Tomcat, de esta manera podemos
movernos dentro del servidor Tomcat sin que salte alguna restricción de acceso.

35
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

3.4. Página principal (http://droidia.16mb.com/)

Es la primera página web a la que accedemos, ya sea desde la APP o desde un navegador web,
esta página ha sido diseñada para comprobar que el servidor está activo, sino muestra un
formulario de contacto con el administrador del sistema para que diagnostique el problema de
la conexión.

Dicha página, se encuentra alojada en un servidor de hosting llamado Hostinger. El cual es


gratuito.

La página implementa el lenguaje HTML y el PHP, ya que son los más adecuados para esto. Con
HTML realizamos el entorno y mediante PHP comprobamos las conexiones con el servidor y
configuramos el formulario y los envíos de mensajes al correo electrónico del administrador.

36
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

3.2.1. Directorio de la página

public_html

default.php Página principal al acceder al servidor

contacto.html Formulario de contacto con el administrador

Página de error si el email está relleno de manera


mailerror.html
incorrecta
Código en PHP el cual recoge la información
sendbymail.php
administrada en el formulario y la envía al correo

error.html Mensaje después de enviar el email al administrador

Images Carpeta de imágenes

ajax-loader.gif GIF de carga de la aplicación

banner.png Banner de la web

favicon.png Favicon de la web

37
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

3.2.2. Funcionamiento de la página

El archivo default.php, contiene un código mediante el cual se puede saber si el servidor está
activo o no.

<?php

ini_set('display_errors', 'Off');
$url="http://droidia.ddns.net/";
$headers = get_headers($url);

if (preg_match('/^HTTP\/\d\.\d\s+(200|301|302)/',
$headers[0])){

echo "<font color='white'><p><b><h1>Iniciando


aplicacion...</h1></b></p></font>";

echo "<p><img src='/Images/ajax-loader.gif' height='auto'


width='auto'></p>";

header('refresh:4; url=http://droidia.ddns.net/');

} else {

echo "<font color='white'><p><b><h1>No se puede conectar


con el servidor :(</h1></b></p></font>";

echo "<font color='white'><p><b><h3>Puede ponerse en


contacto con el
<a href='contacto.html'>administrador
</a></h3></b></p></font>";

?>

Se puede observar el fácil funcionamiento de dicho código, primero no permitimos que


muestre errores de PHP, así el usuario no verá el código de depuración del servidor, después le
proporcionamos la URL de nuestro servidor, la cual será la dirección DNS que nos proporciona
una ruta directa. Una vez realizado esto, extraemos las cabeceras HTML de la URL que le
dimos, de esta manera podemos compararlo con distintos errores de conexión con servidores,
el 200, 301 y 302, y determinar si está activo o no. Ya terminada la comprobación, mostramos
un GIF de carga de la aplicación o mostramos un mensaje con un enlace hacia el formulario de
contacto.

38
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

A continuación mostraremos el funcionamiento cuando hay un error de conexión.

1. No se conecta y muestra este mensaje con el link, hacemos clic.

2. Rellenamos el formulario.

39
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

3. Si dejamos sin completar algún campo, nos dirige a mailerror.html, sino envía el mensaje al
administrador.

4. El administrador ve el mensaje e intentará solucionar el error.

40
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

3.5. APP Android

3.5.1. Directorio de carpetas de la APP

Dentro de la carpeta src están los archivos que


contienen todo el código de la aplicación.

Los Test son utilizados por Android Studio para


emular la aplicación en el PC y diagnosticar
errores.

MainActivity contiene el código que va a iniciarse


al cargar la APP.

En res, la interfaz gráfica de la aplicación.

AndroidManifest.xml contiene los permisos que


necesita la APP para ejecutarse.

41
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

3.5.2. MainActivity

Explicaremos algunas partes importantes del código.

Cuando la APP se inicia, primero comprueba si hay conexión con internet, después carga la
barra de progreso en la parte superior de la pantalla y cuando la web ha cargado, llega al
100%.

42
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

Para comprobar la conectividad con internet de nuestro dispositivo, debemos crear una clase
que devolverá un boolean, indicando si hay o no internet.

En este código se observa que si no hay internet lanzamos un mensaje personalizado dentro
de un PopUp, el cual se encuentra en src > main > res > values > strings.xml.

43
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

4. Manual de usuario

4.1. Utilización de la OVA de ejemplo

La OVA está compuesta de tres partes, dichas partes se encuentran en tres DVD’s dentro de
este proyecto.

Para comenzar copie el contenido de los DVD’s llamados Droidia OVA seguidos de un número a
un carpeta.

Este proceso tardará un poco ya que pesan entre todos 12,3 GB.

Una vez realizada la copia, haga clic con el botón derecho del mouse al archivo .zip y
descomprímalo con WinRar u otro programa para descomprimir archivos de este tipo, al
finalizar encontrará una OVA de nuestro proyecto preparada para importar a VirtualBox.

¡ATENCIÓN!
Antes de importar la OVA, debe confirmar que su equipo puede mover este servidor ya que
necesita un tamaño de disco duro y de memoria RAM algo elevados.

Entre en VirtualBox e importe la OVA sin cambiar ningún parámetro, leyendo detenidamente
el mensaje que le saldrá al aceptar la importación.

En este mensaje se le explicará todo lo que necesita saber sobre el servidor y cómo se utiliza.

44
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

Una vez terminada la importación, abra la máquina virtual y espere a que cargue.

Observará que el servidor Tomcat se inicia automáticamente gracias a una tarea que se
ejecuta al iniciar la máquina.

Una vez iniciado todo, podemos minimizarlo, no cerrarlo. Si el servidor de Tomcat no se


iniciase o lo cerrásemos, podremos iniciarlo con el acceso directo del escritorio.

Dentro del servidor podremos acceder a todos los archivos de la aplicación a través del acceso
directo de JDeveloper del escritorio.

45
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

También podremos acceder a la base de datos desde el acceso directo de SQLDeveloper, cuyos
usuarios tienen la contraseña almacenada para mayor acceso a las tablas sin necesidad de
introducirlas, Dichas contraseñas se indican en el mensaje de importación de la OVA. Además
de que cada base de datos tiene un color identificativo.

Para utilizar la aplicación a nivel usuario, solo tendremos que iniciar Mozilla Firefox y conectará
automáticamente con el 127.0.0.1 para acceder al servidor Tomcat, es una manera fácil de
poder ver el funcionamiento del servidor sin necesidad de montar uno real.

46
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

4.1.1. Acceso como administrador

Para acceder a la aplicación como administradores, tendremos que poner como usuario el
nombre de la base de datos de administrador droidiaadm y de contraseña 1234.

Accederemos al menú principal de administrador y podremos realizar cualquier operación


dentro de la aplicación. Dicha aplicación es intuitiva, así que no necesitaría mucha explicación
sobre cómo funciona.

Cada consulta a la base de datos tiene un buscador que nos mostraría todos los resultados con
solo poner % en la caja de búsqueda.

47
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

En los listados podemos tener la opción de exportarlos a PDF con un botón y guardándolos
como .pdf.

Los PDF podemos abrirlos con Mozilla ya que tiene instalado un complemento para ello, de
esta manera no necesitamos más programas instalados en la máquina virtual.

Dándole hacia atrás volveremos a la página anterior y podremos ir otra vez al menú.

Una vez que cerremos la sesión, volveremos a la página principal de la aplicación.

48
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

4.1.2. Acceso como obrero

Pondremos el ID_P de un obrero y su contraseña almacenada en la tabla

Dentro de la aplicación, nos encontraremos un menú con una opción para dar de alta un parte
de obra de ese día.

Colocaremos un filtro de búsqueda de obra, las cuales están dentro de la base de datos.

Y abrimos el parte de obra poniendo el día que hemos trabajado y las horas que hemos estado.

49
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

5. Resumen de Proyecto Integrado

Curso: 2º ASIR

Alumnos: Abel Domínguez Mateo y Rubén Aguilar García

Grupo: B

Título del Proyecto: Droidia

Tiempo oficial dedicado, en horas: 320 horas.

-Breve descripción de los Objetivos Planteados:

Desarrollo de una aplicación con la intención de facilitar la labor de control del personal que
requieran transportes, en este caso hemos adaptado la aplicación a una empresa de
construcción.

-Breve descripción de los Objetivos alcanzados:

Desarrollo de una aplicación utilizando distintos medios y lenguajes, cumpliendo el objetivo


inicial propuesto y habiendo alcanzado un nivel más profesional ya que se utilizan medios
reales en vez de simulados con máquinas virtuales.

-Breves indicaciones sobre la instalación y ejecución:

Se ha creado un manual de usuario que explica detalladamente cada paso a seguir para poder
utilizar el servidor y acceder a todos los datos.

-Impresión Personal:

La realización de este proyecto en compañía de otra persona con conocimientos altos en la


materia y que era complementario del otro, ha facilitado la tarea de completar los objetivos y
poder cumplir con otros que el tutor del proyecto nos proponía, además de poder aprender a
trabajar en grupo de manera ordenada y llevar un proyecto adelante.

50
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

6. Gracias

-A la empresa Tecnova S.L.L. y a José Domínguez Martín por ser un tutor laboral excelente y
haber contribuido en el préstamo de un servidor IBM para realizar el proyecto de una manera
más real y cercana al mundo laboral.

-A los profesores que han coordinado la FCT y el proyecto, José Manuel Ruiz Morillo y Adolfo
Salto.

-Y a los profesores que nos han dado clases, que sin ellos no habríamos aprendido todo lo que
conocemos hoy en día.

51
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

7. Webgrafía

-Aplicación Android:

https://danielme.com/2012/05/19/android-webview-incrustar-un-navegador-en-nuestras-
apps/

-Test de velocidad de internet:

https://www.movistar.es/particulares/test-de-velocidad/

-Hostinger:

http://www.hostinger.es/

-No-IP:

http://www.noip.com/

52
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

8. DVD’s

53
DROIDIA
Abel Domínguez Mateo Rubén Aguilar García

54

También podría gustarte