En este capítulo se presenta el desarrollo de SAVI, una aplicación que apoya y da medios de comunicación seguros antes eventos cotidianos. Se analizará la herramienta desde un nivel conceptual. Se estudia cada una de las secciones que contiene, así como la interacción entre cada una de las partes. Por último, se realiza un relevamiento de las aplicaciones que tiene un fin similar.
Secciones
En este apartado se realiza un repaso por las secciones, se dan a conocer los detalles del funcionamiento, así como también un mockup de la pantalla asociada para describir las acciones asociadas. En el apartado de “Evaluación y Resultados” se realizará la presentará el resultado final, una descripción más detallada del funcionamiento y rol de cada componente dentro de SAVI.
Registro
Por motivos de simplicidad las pantallas de registro e ingreso están contenidas bajo una misma pantalla, pero con diferentes métodos. Los campos mínimos para generar una cuenta son email (el cual debe ser único en la aplicación) y una clave secreta que solo el usuario de la cuenta debe saber.
Una vez ingresados estos campos, Al momento de cliquear el botón de “REGISTRARSE” la aplicación hará las validaciones necesarias. Se validará que la contraseña siga el patrón determinado, que no posea caracteres especiales, y que el email tenga un formato válido, además la unicidad de dicho campo en la base de datos de usuarios.
El patrón que describe un mail valido está definido por la siguiente expresión regular: ^[^@]+@[^@]+\.[a-zA-Z]{2,}$
Ejemplo: [email protected]
De la misma manera la expresión regular mediante la cual se validará la contraseña se puede definir mediante la siguiente expresión regular:
La contraseña debe tener al entre 5 y 10 caracteres, al menos un dígito, al menos una minúscula y al menos una mayúscula. NO puede tener otros símbolos.
Ejemplo: SaviS1stema
Ingreso
Esta sección de la aplicación está encargada de proveer el acceso a la aplicación. El sistema validará los datos del usuario y contraseña con los almacenados en el
repositorio “Firebase Authentication”, con el fin de validar el ingreso, por cuestiones relacionadas a la seguridad las contraseñas son almacenadas con el algoritmo MD5. El flujo se representa en la Figura 5.1.
Figura 5.1 Flujo pantallas relacionadas con el acceso del usuario.
Si el usuario no está registrado se le permitirá ingresar sus datos para crear una nueva cuenta. Con el fin de conservar una única cuenta por usuario, se le solicitará datos del email, y se evaluará la unicidad de este campo. Si el usuario ingresa los datos de una cuenta válida, se verificará si tiene datos de la cuenta cargados con anterioridad, si es así, el flujo normal de la aplicación es navegar hasta el menú principal, si por el contrario el usuario no posee datos cargados, es decir es la primera vez que ingresa, se navegará hasta la pantalla de perfil.
Si el mail y la contraseña se corresponden con un usuario válido, el acto de cliquear ingresar da como como resultado la navegación hasta las pantallas Perfil (si es que es su primer ingreso) o a la pantalla Menú Principal con los datos asociados a su cuenta ya cargados. Si por el contrario el par mail + contraseña no se corresponden con un usuario válido, se da un mensaje de “Validar datos ingresados” y se permanece en la pantalla.
Cuando se ingresa registrarse, se validan en primera instancia el mail y la contraseña, si cumplen el formato requerido, se valida la unicidad del campo mail. Este debe ser único.
Si el resultado del registro es correcto se da de alta una nueva entrada en Firebase
authentication, almacenando el
identificador y el proveedor (mail en este caso) junto con datos relacionados a la creación de la cuenta.
Figura 5.2 Mockup pantalla SAVI. Sección registro/login.
Cada uno de emails registrados es almacenado con la utilidad que presenta firebase para almacenar diferentes plataformas de login, sea email, Facebook, gmail, etc.
Perfil
En la sección de perfil, el usuario deberá ingresar datos sobre su persona, los datos solicitados serán los necesario para darle identificación a la cuenta, se solicitan datos como nombres, DNI y número de teléfono en caso de emergencia, además de datos relacionados con la ubicación de su domicilio y domicilio secundario que luego servirán como datos de entrada ante una situación de alarma.
Figura 5.3 Mockup de pantalla SAVI. Sección Perfil
Se solicitará una Foto que representara la fachada del hogar de dicho usuario, la idea es que si varios integrantes de un mismo hogar poseen cuenta SAVI, todos compartan la foto de la fachada.
Si es el primer acceso, lo campos aparecen vacíos, si en cambio el usuario accede al perfil desde el menú principal los campos vendrán precargados con los que el usuario informó en otro acceso previo.
Los botones Domicilio y Trabajo abre un PopUp para que el usuario registrado elija su domicilio en un mapa libre.
Domicilios
En esta sección se muestran un mapa libre, se centra la vista en la ubicación del dispositivo. El usuario informará la ubicación de sus hogares, así como también la de su trabajo/lugar de estudio.
Se da libertad para que el usuario tenga libre navegación en el mapa. El usuario mediante el acto de cliquear elige la ubicación, una vez realizada esta acción se guardan las coordenadas Latitud y Longitud. Combinando estos dos ángulos, se puede expresar la posición de cualquier punto de la superficie de la Tierra.
Por ejemplo, podemos ubicar la facultad de Ciencias Exactas en las coordenadas: -37.322738, -59.082372
Figura 5.4 Ejemplo captura de Latitud y Longitud
El signo negativo de la Latitud indica que la coordenada se encuentra al sur de la línea del Ecuador, mientras que el signo negativo de la coordenada Longitud indica que se encuentra al Oeste del Meridiano de Greenwich.
Figura 5.5 Mockup de pantalla SAVI. Sección Domicilio.
El acto de darle clic captura las latitudes y longitudes del punto elegido y mediante una referencia al usuario, permite persistir dichas coordenadas.
Figura 5.6 Instantánea base de datos, Domicilios. Cabe aclarar que para que funcione esta opción se debe tener activado el permiso de acceso al GPS del teléfono por parte de SAVI.
Menú principal
Esta pantalla es la cual le da al usuario toda la información sobre su cuenta, además de acceso a las alarmas, grupos y familiares. En primer plano la imagen a la foto seleccionada en la pantalla de perfil inicialmente será el logo de SAVI. Además, se encuentra una sección que abarca “Alarmas Grupo”, “Alarmas Familia” y “Notificaciones” estas a ser clicadas, abre un popUp con la información útil que corresponda. En la misma se encuentra una serie de stick que dan al usuario las pautas de la motivación de SAVI además del funcionamiento en caso de diferentes alarmas. En esta sección se encuentran accesos, que sirven para interactuar ante eventos de alerta. Con color rojo (indicando peligro) se observa el botón que da flujo para informar a autoridades, en base a la última alarma disparada, se precarga el número correspondiente
a la autoridad competente, y mediante un intent se abre la aplicación del teléfono con dicho número, el propio usuario es el encargado de presionar call, si por ejemplo la última alarma fue de principio de incendio, se abre el teléfono con el número correspondiente a bomberos 103.
Figura 5.7 Mockup de pantalla SAVI. Sección menú principal.
Estos números predeterminados serán guardados en la base de datos, con el objetivo de que puedan ser cambiados sin necesidad de instalar una nueva versión de la aplicación. Resaltado en color amarillo (indicando alerta), se encuentra el botón que da acceso a la pantalla de Alerta vecinal, esta es el punto de creación del flujo principal de la aplicación.
Se cuenta con un acceso al menú lateral, en este se contiene todos los accesos relacionados con la configuración de la cuenta, como la administración de grupos,
familia y domicilios. Este menú
desplegable da un acceso detallado a cada una de las secciones de SAVI.
Familia
Se muestra un listado de las personas que ya pertenecen al grupo familiar del usuario. Puede suceder que no todos los integrantes de un mismo "grupo familiar y/o conviviente" vivan bajo el mismo techo, de esta manera estos usuarios serán una opción para disparar acciones en caso de que el usuario principal a la cual es dirigida una alerta no responda.
Figura 5.8 Mockup de pantalla SAVI. Secciones familiares.
Opciones para eliminarlo del grupo familiar, ver información del perfil y ubicación de un determinado familiar y la posibilidad de ver un historial de las alarmas que recibió.
Cada grupo familiar está almacenado bajo un mismo id familiar, dentro de la lista que sigue en nivel, se encuentran los id de cada usuario en cuestión.
También se presenta la opción de salir del grupo vecinal, mediante esta opción se borra el id del usuario de la lista mencionada.
Figura 5.9 Mockup de pantalla SAVI. Sección vista código personal.
Se agregan datos de familia, buscándolos por un código generado por el sistema de manera única para cada usuario, con el fin de que cada usuario esté resguardado en el sentido de que solo se podrá buscar encontrar su perfil con este código “secreto” dado en forma de QR (Quick Response).
Este código QR contiene la información del id del usuario logueado, el código a la izquierda representa al siguiente id: LeZJAJ4j03miE37IpuG.
Cuando el usuario da clic en “Agregar Familia” se abre el Scan, el usuario que desea ser agregado como miembro de la familia deberá mostrarle el código personal que se accede mediante el clic a “VER CÓDIGO PERSONAL”.
Creación de grupo vecinal
Una vez que el usuario complete todos los datos de la cuenta, tendrá la opción de crear un grupo vecinal (o de unirse a otro existente), es importante que usuario solo tenga un grupo vecinal asociado a su cuenta, esta vinculación unaria se va a respetar para toda la aplicación.
Figura 5.10 Mockup de pantalla SAVI. Sección creación de grupo vecinal.
Si el usuario opta por crear un nuevo grupo, deberá ingresar las coordenadas mediante la interacción con un mapa- de donde se encontrará el punto central de acción del grupo, deberá especificar la cantidad máxima de usuarios permitidos, además se le solicitará un nombre representativo para que lo identifique ante otros usuarios, este nombre junto con un código generado para el grupo será el que usen los usuarios que quieran vincularse con dicho grupo.
Vinculación de usuarios a grupo vecinal
Los usuarios son agregados de por medio del escaneo del código QR que les presenta algún usuario del grupo como se ve en la figura 5.11. Se deberá proceder con una vinculación que no es transparente, es decir, el usuario creador del grupo va a enseñar a quien decida invitar a unirse al grupo el código QR que la aplicación le indica. En este código se encuentra la información necesaria para realizar la vinculación. Se optó por este método para que ambas personas se encuentren físicamente para realizar la vinculación (solo se realiza una única vez).
Se podrán unir al grupo los usuarios que tengan declarado el domicilio principal dentro del radio de acción del grupo, de otra manera se rechazara la solicitud.
Figura 5.12 Mockup de pantalla SAVI. Sección menú principal lateral.
La acción de clicar en “Unirse a Grupo Vecinal” abre la ventana de modo scan, el usuario que desea invitar a un tercero a unirse al grupo vecinal deberá ir a la sección “Ver Grupo Vecinal” para acceder al código que necesita el nuevo integrante del grupo.
Figura 5.13 Mockup de pantalla SAVI. Sección vista de código grupo.
Alerta grupo
Cualquier integrante del grupo vecinal puede crear una nueva alerta vecinal.
Figura 5.14 Mockup de pantalla SAVI. Sección creación de alerta vecinal.
Para la misma deberá especificar si es para un usuario en particular o para todo el grupo, además ingresar qué tipo de alarma, es importante el tipo de alarma ya que esta cambiara el curso de acción de dicha alarma y de la interacción por parte de cada uno de los usuarios.
Mediante las imágenes de perfil que representan a cada domicilio, se aconseja que sea una foto real del frente del domicilio para evitar confusiones.
La acción de crear la alerta genera una nueva entrada en el Grupo vecinal, donde esta acción será transmitida a cada uno de los usuarios.
En el siguiente diagrama, figura 5.15 se ve la continuidad de la alarma en caso de que sea destinada a un usuario en particular o no.
Figura 5.15 Diagrama de flujo entre las pantallas relacionadas con las alarmas.
Las opciones de alarmas disponibles son:
● Alarma sonando: Representa la notificación de una alarma sonando, se refiere a
alarmas sonoras de casas. Las cuales pueden o no ser monitoreadas, el usuario en su perfil podrá especificar dicha opción.
● Sospecha de robo: Esta alarma está destina para cuando el usuario que a disparo
no está totalmente seguro de la situación, la aplicación le sugerirá que informe esto a las autoridades, paralelamente con el flujo propio de la aplicación. La alarma disparada será ruidosa para cada uno de los usuarios del grupo, excepto para el que fue destinada.
● Actitud sospechosa: Representa a extraños merodeando alguna casa en particular,
este tipo de alarma es meramente informativa, ya que de lo contrario entraría en la categoría de sospecha de robo.
● Sospecha o principio de fuego: De manera análoga a la sospecha de robo, se
sugerirá que el usuario informe dicha situación de manera inmediata a las autoridades. Se creará una alarma sonora para indicar dicha alarma.
● Agresión: Se trata de una alarma destina a prevenir situación de riesgo, se informa
agresiones verbales como físicas. Siempre se recomendará avisar a las autoridades.
● Daños al vehículo: Esta alarma está condicionada a si el usuario en el perfil indico que posee un vehículo. De igual manera si no informo poseer un vehículo, el flujo de alarma continuará con el fin de darle aviso de la alarma.
● Vehículo mal estacionado: Sucede lo mismo que en daños al vehículo solo que de
una manera más relajada.
El curso de cada alarma está dado por el siguiente esquema figura 5.16, se ve la importancia de que el usuario añada a familiares, ya que estos serán los encargados de recibir las notificaciones en caso de que el usuario principal no esté disponible para recibir la alerta.
Respuesta alerta
En esta sección el usuario que recibe la alerta tiene la opción de responder a determinada alerta.
Figura 5.17 Mockup de pantalla SAVI. Sección respuesta alerta vecinal.
Este flujo se utiliza si el usuario principal, es decir para quien fue dirigida la alerta no respondió por dicha situación.
Con la información y el respaldo del demás usuario que conforman el grupo, el usuario principal tendrá más información al momento de responder.
Solo el usuario principal puede desactivar la alerta, la respuesta de los demás usuarios, sirve para incrementar o bajar el nivel de alerta. Llegado un determinado porcentaje de alerta se recomendará informar a las autoridades la situación enfrentado.
Si el usuario que recibe la notificación de alerta tiene cargada una determinada de configuración, por ejemplo, que está de vacaciones, esta feedback no tendrá sentido por lo que no recibirá está notificaciones, y se generar una respuesta automática en forma de respuesta.
Configuración de cuenta
Esta sección le da al usuario de programar la aplicación de manera que esta respete ciertas reglas, por ejemplo, el usuario puede optar por silenciar las alarmas por un tiempo determinado, o dar aviso que sale de vacaciones, o de precargar un mensaje que será enviado como respuesta automática, en caso de que surja un evento de alarma.
Figura 5.18 Mockup de pantalla SAVI. Sección configuración cuenta.
Las determinadas opciones para
configurar la cuenta son excluyentes, sólo se permite tener activa una a la vez. La opción que se elija impactar no solo en la recepción de alertas, sino en la respuesta automáticas.
Si por ejemplo se configura a cuenta para decir que se encuentra de vacaciones, ante la recepción de una nueva alerta, se validar el rango de fechas el cual define el periodo de vacaciones, si la alerta se da en este rango, se genera una respuesta automática informando dicha situación. Para la opción de vacaciones, obligatoriamente se deben ingresar las fechas de inicio y de fin, así también como una breve descripción que será la que se responda en caso de una alerta.
Si la en la configuración se desea representar una ausencia, se deberá ingresar el día en que se presentara dicha ausencia, el curso de acción es similar al de vacaciones, solo que se valida únicamente una fecha y no un rango. La opción no molestar tiene como entrada una hora de finalización, si esta opción está activada y en rango ante una nueva alerta, sea cual sea, su notificación será silenciosa. Ignorar todo, deja sin acción todas las alertas y las respuestas ante las mismas.
Notificación
La sección notificación se encarga de crear una silenciosa, a todos los usuarios (pertenezcan o no al grupo) con la única validación de que el centro de la notificación este el rango del domicilio de hogar o trabajo. La idea es que cualquier usuario pueda dar aviso sin ser parte de un grupo, por ejemplo, si se está de paso por el barrio y se detecta o sospecha daños al vehículo, se puede crear un canal de comunicación para que los usuarios que se tiene sus hogares en el radio sean avisados de dicha situación. Este tipo de alerta no tiene ningún curso de acción asociado, solo se espera que mediante esta utilidad se advierta cierta situación.
Figura 5.19 Mockup de pantalla SAVI. Sección creación de notificación.
Ante la creación de una nueva notificación los usuarios que tengan declarado su domicilio de hogar o trabajo en un rango igual o menor al de la notificación recibirán la notificación informando la situación.
En la creación de la notificación se captura la longitud y latitud central, así como también el rango y un título y texto que describa la situación a informar.
Figura 5.19 Captura base de datos, Notificación. Cada uno de los usuarios validará si la nueva notificación está en su rango de acción.
Proyectos Similares
Se realizó un relevamiento de proyectos que tuvieran características similares o que tengan un fin similar, la seguridad de la comunidad.
Alerta Tandil
El Municipio presentó en mayo del año 2018 Alerta Tandil, un sistema de operaciones inteligente que funcionará en el Centro de Monitoreo (CMT) y estará basado en una plataforma tecnológica y operativa que centralizará información o solicitudes de los vecinos a través de diferentes medios, que serán derivados al área que deba intervenir.
Figura 5.20 Publicación de aplicación “Alerta Tandil” – Play Store.
“Alerta Tandil”, es el sistema de operaciones inteligente basado en una plataforma