# GeoCampus: Servicio de geolocalización de lugares de interés en la universidad/diseño y planificacion

< GeoCampus: Servicio de geolocalización de lugares de interés en la universidad
En esta página quedará constancia de las decisiones de diseño y planificación correspondiente al proyecto.

## Funcionalidades Objetivo

Producir una aplicación móvil que resulte de la interacción conjunta de una app android, una base de datos, un servidor con las imágenes y la plataforma ArcGis-online con las funcionalidades:
* Permitir al usuario acceder mediante un login.
* Visualizar las fotografías actuales del campus y filtrarlas según las etiquetas correspondientes.
* Cargar fotografías al sistema y geolocalizarlas junto con un conjunto de etiquetas y un pequeño texto descriptivo.

## Tecnologías empleadas

[desactualizado]
Para el desarrollo del proyecto emplearemos las tecnologías:
* AppInventor/Java/Android : Para el desarrollo de la aplicación nativa.
* ArcGis-online/ArcGis-sdk(Android) : Para la integración de las funcionalidades ArcGis en nuestra aplicación.
* MySQL : Para la gestión de la base de datos.
* SFTP : Para el almacenamiento de las imágenes.

## Riesgos

Los riesgos estimados en orden de más a menos crítico:
* Un calendario muy apretado. Se estima que dedicando el mes de Enero para la realización de pruebas se dispone de alrededor de 6-8 semanas para tener lista la aplicación. A esto se le añade la carga de trabajo de las demás asignaturas del Máster.
** Para solventar ese riesgo se propone reducir el alcance del proyecto y en última instancia realizar una aplicación web con funcionalidades similares.
* Falta de conocimientos de las tecnologías a emplear por algunos miembros del equipo.
** Para prevenir que este riesgo sea determinante se propone dedicar 2 semanas a la investigación por parte de los miembros con menos conocimientos, con el apoyo de los miembros que tengan más conocimientos sobre las tecnologías.

## Diseño
### Casos de uso

* Login por parte del usuario
Un usuario accede a la aplicación y debe acceder con su nombre de usuario y contraseña. No se descarta la posibilidad de adaptarlo a cuentas de correo pertenecientes a la UCM. Se destacan como entidades participantes: el usuario y el sistema de bases de datos de la aplicación.
* Visualización de las fotografías del entorno
Tras acceder a la aplicación el usuario dispone de un mapa en el que visualiza las distintas fotografías que han sido geoetiquetadas en los alrededores de su posición. Se destacan como entidades participantes: el sistema de almacenamiento de imágenes y la base de datos en comunidad con la aplicación ArcGis.
* Filtrado por etiquetas
Mientras visualiza las imágenes de los alrededores el usuario puede filtrar las fotografías que le muestra el sistema mediante un sistema de etiquetas. Se destacan como participantes: el usuario, la base de datos y el sistema de almacenamiento de imágenes.
* Subida de fotografías geoetiquetadas al sistema
El usuario puede dar de alta en el sistema y almacenar una fotografía junto con sus coordenadas, un conjunto de etiquetas y un texto que la definan. Se destacan como participantes: el usuario, la base de datos y el sistema de almacenamiento de imágenes.

### Base de datos

* Tabla de usuarios (Master table)
Almacena información referente a los usuarios: id (asignado automáticamente por el sistema gestor), nombre y contraseña de acceso, sexo (con fines estadísticos).
* Tabla de fotografías (Master table)
Almacena información referente a las fotografías que se geo-etiquetan en el sistema: id (asignado automáticamente por el sistema gestor), id del usuario que la ha realizado, fecha, coordenadas (latitud y longitud), texto descriptivo, url de la fotografía dentro del sistema de almacenamiento. (Se podría definir una columna para determinar si la imagen ha sido dada de baja del sistema, la zona del campus a la que pertenece)
* Tabla de Etiquetas (Master table)
Almacena información referente a las distintas etiquetas que soportará el sistema y su comportamiento en la interfaz de usuario: id, nombre específico de la etiqueta, color al que se asocie la etiqueta, url del icono correspondiente dentro del sistema de almacenamiento.
* Tabla de foto-etiquetas (Relation table)
Almacena la relación existente entre una fotografía y las distintas etiquetas que le asigne el usuario que la subió al sistema: id de la fotografía, id de la etiqueta.
* Tabla de zonas del campus (facultades?)
En caso de añadir esta tabla al sistema se encargaría de almacenar las "facultades" y algún dato importante.

## Planificación del proyecto

* 24 Octubre - 19 Noviembre: Periodo de diseño
* 19 Noviembre - 17 Diciembre: Periodo de desarrollo
* 17 Diciembre - 28 Diciembre: Periodo de pruebas
* 29 Diciembre: Release de la Alpha
* 29 Diciembre- 5 Enero: Diseño 2º iteración
* 6 Enero - 13 Enero: Desarrollo 2º iteración
* 14 Ene - 21 Enero: Pruebas
* 25 Ene: Release de la Beta

## Enlaces de interés bibliográfico

Android Studio https://developer.android.com/sdk/installing/studio-tips.html
Google Maps https://developers.google.com/maps/?hl=es