Beruflich Dokumente
Kultur Dokumente
El sistema web puede tener muchos usuarios y cada usuario puede tener tantos
cuadernos de viaje como viajes haya aadido en este sistema. El viaje contiene la lista de
lugares (sitios) que se han visitado, y cada lugar contiene una galera de fotos. La
conceptualizacin de este sistema considera los siguientes aspectos adicionales:
La ruta de cada viaje, compuesto por mltiples sitios, queda descrita por la
secuencia temporal de los sitios visitados.
Este sistema web presenta una arquitectura web de tres capas (ver Figura 5) que
permitir organizar y desarrollar el sistema de informacin de manera escalable as como
separar funcionalidades.
1
Figura 5. Arquitectura web de tres capas.
Lenguaje muy conocido que puede ofrecer el nivel de sencillez (sin perder
funcionalidad) que este caso requiere.
2
Son gratuitas, fiables y puede implementarse sobre sistemas operativos gratuitos.
Cumple bien con los requerimientos de la aplicacin a desarrollar, y es compatible con
el resto de tecnologas elegidas.
Despliegue: Heroku
Destaca por la sencillez y rapidez que ofrece al desplegar las aplicaciones (un solo
comando desde la interfaz de lnea de comandos). Adems dispone de una cantidad
ingente de add-ons con los que ampliar las funcionalidades de las aplicaciones.
Modelo de datos
Se ha diseado un diagrama Entidad-Relacin (E/R) con el fin de representar de
manera comprensible la informacin que va a ser almacenada en la base de datos. Este
diagrama (ver Figura 6) modela la informacin que se ha presentado en el apartado
anterior.
3
Figura 6. Diagrama E/R
En los siguientes apartados se exponen los esquemas que tienen las diferentes tablas que
componen la base de datos (informacin que aparecer en su fichero de migracin
correspondiente). Es necesario resaltar que todas las tablas contienen las columnas
createdAt y updatedAt debido a que sequelize aade automticamente estos atributos a
los modelos.
Notebooks
La tabla Notebooks almacena los cuadernos de viaje publicados por los diferentes
usuarios. Se compone de las siguientes columnas:
4
createdAt: fecha de creacin del cuaderno.
Users
La tabla Users contiene los usuarios registrados en el sistema web. Se compone de las
siguientes columnas:
login: cadena de texto con el login del usuario. Debe ser nico.
salt: cadena de texto con el salt utilizado para crear el hash del usuario.
Sites
La tabla Sites contiene los sitios visitados durante el viaje registrado en el
correspondiente cuaderno de viaje. Se compone de las siguientes columnas:
5
Pictures
La tabla Pictures contiene las imgenes de los sitios visitados en el viaje. Se compone
de las siguientes columnas:
siteId: id del sitio al que pertenece la imagen. Clave ajena a la tabla Sites.
Comments
La tabla Comments contiene los comentarios que los usuarios realizan sobre las
imgenes de los sitios. Se compone de las siguientes columnas:
Recursos REST
REST (REpresentational State Transfer) es un estilo de arquitectura utilizado para
construir aplicaciones y servicios en la web. Se basa en la utilizacin del protocolo HTTP
y en sus mtodos para la manipulacin de los recursos:
6
POST: actualiza un recurso.
Notebooks
Las rutas que contienen las acciones new, create, edit, update y delete son accesibles
nicamente para el usuario propietario del cuaderno. La accin delete eliminar el
cuaderno, los sitios que lo componen y sus respectivas imgenes y comentarios
asociados.
7
usuario puede realizar sobre el cuaderno (si no es el autor solo puede ver el
cuaderno).
Users
Las rutas que contienen las acciones edit, update son accesibles nicamente para el
usuario logueado. No es posible eliminar a los usuarios desde ninguna ruta.
Tabla 8. Rutas REST para Users
createNewSalt: genera una cadena de texto aleatoria que ser utilizada en una
funcin hash para encriptar la contrasea del usuario.
Sites
Las rutas que contienen las acciones new, create, edit, update y delete son accesibles
nicamente para el usuario propietario del sitio (el mismo que es propietario del
8
cuaderno). La accin delete eliminar de la base de datos el sitio que corresponda y todas
sus imgenes y comentarios realizados sobre estas.
Pictures
Las rutas que contienen las acciones new, create, edit, son accesibles nicamente para
el usuario propietario de la imagen (el mismo que es propietario del sitio y el cuaderno).
Este recurso no es editable o actualizable. La accin delete eliminar la imagen y todos
los comentarios que tenga.
9
GET /notebooks/:notebookid/:notebookid/sites picController.show
/:siteid/pictures/:pictureid
Comments
Las rutas que contienen las acciones edit, update y delete son accesibles nicamente
para el usuario que ha escrito el comentario.
10
PUT /notebooks/:notebookid/:notebookid/sites commentController.update
/:siteid/pictures/:pictureid/comments/:comm
entid/edit
3.6 Modelos
Se han creado las relaciones 1-N (uno a muchos) existentes en el diagrama
EntidadRelacin (descrito en apartados anteriores) mediante las asociaciones de
sequelize en el fichero:
Vistas
Est compuesta por tres secciones:
11
La primera seccin se sita en la parte superior (ver Figura 7). Muestra el
nombre del sistema web (Cuadernos de viaje) a la izquierda. A la derecha se
encuentra un botn para hacer login y otro para registrarse si no se est
logueado ningn usuario. En caso contrario aparecer el nombre del usuario
seguido de un botn de logout. Adems contiene una barra de navegacin
para volver a la pgina de inicio, acceder al listado de cuadernos o consultar
los usuarios registrados en el sistema.
Cada recurso (Notebook, User, Site, Picture y Comment) que compone el sistema web
contiene cinco vistas que se renderizan en funcin de la ruta REST con la que se acceda:
_form: vista parcial que utilizan new y edit con los campos del formulario.
12
Notebooks
La vista show incluye la vista index de los Sites. Al acceder a los detalles de un
cuaderno se presentarn todos sus datos y un listado de los sitios que componen ese
cuaderno.
Sites
La vista index contendr un botn denominado Mostrar ruta si el cuaderno tiene dos
o ms sitios. Al pulsar el botn se mostrar un mapa de Google Maps con la ubicacin
de todos los sitios en el orden en el que han sido insertado, constituyendo as la ruta del
viaje.
La vista show incluye la vista index , que es una galera con las imgenes fotografiadas
en ese sitio. Adems, se mostrar la ubicacin del sitio en un mapa esttico de Google
Maps. Este mapa tambin se ensea en las vistas new y edit.
Pictures
La vista show incluye las vistas new e index de los Comments. Debajo de la imagen
se podr aadir un nuevo comentario as como ver un listado de los comentarios
existentes.
La vista new contiene una pre visualizacin de la imagen que se quiere subir al sitio
una vez se ha seleccionado.
No dispone de la vista edit porque no son editables las imgenes, ni de la vista _forms,
ya que al haber un nico formulario (el perteneciente a la vista new) no es necesaria.
Despliegue
Una vez se ha desarrollado todo el cdigo de la aplicacin y se han realizado pruebas
de su correcto funcionamiento en local, el siguiente paso es desplegar la aplicacin en la
nube.
13
3. Loguearse en Heroku desde un terminal. Se deben introducir los credenciales
(correo electrnico y contrasea) que utilizamos al crear la cuenta.
$ heroku login
4. Especificar las versiones de node y npm que son compatibles con la aplicacin
desarrollada aadiendo el campo engines al fichero package.json con tal
informacin.
$ foreman start
$ git init $
git add .
$ git commit -m versin inicial
$ heroku create
Creating shrouded-anchorage-7961... done, stack is cedar
http://shroudedanchorage-7961.herokuapp.com/ |
git@heroku.com:shrouded-anchorage7961.git
Git remote heroku added
14
$ heroku apps:rename cuadernosviaje
Renaming shrouded-anchorage-7961 to cuadernosviaje... done
http://cuadernosviaje.herokuapp.com/|git@heroku.com:cuadernosviaje.git
Git remote heroku updated
$ heroku config
=== cuadernosviaje Config Vars
DATABASE_URL: postgres://user:password@hostname:port/database
HEROKU_POSTGRESQL_CHARCOAL_URL: postgres:// user: password @
hostname:port/database
11. Crear variables de entorno en Heroku con los datos de acceso a la base de datos
para no tener que almacenarlos en los ficheros de configuracin.
Donde user, password, hostname, port y database son los valores que
devuelve el comando del paso anterior.
15
12. Establecer el valor de las variables de entorno de Heroku en el fichero
models.js.
13. Preparar las migraciones de sequelize en Heroku para crear las tablas en el
servidor PostgreSQL. Sequelize utiliza el fichero config/config.json para este
propsito y en l deben constar los datos de acceso a la base de datos. Al tener
dos entornos, uno local de pruebas y otro de produccin (en Heroku),
generaremos un shell script que crear el fichero config.json con las variables
de entorno configuradas en apartados anteriores.
Validar todos los cambios realizados sobre el repositorio git y subir a Heroku:
16
14. Aplicar las migraciones en Heroku desde su consola:
15. La aplicacin est desplegada y lista para funcionar en Heroku. Acceder a ella
a travs de la siguiente URL:
Resultados
En este punto el sistema web Cuadernos de viaje se encuentra desarrollado,
desplegado y completamente operativo en la plataforma Heroku. En este apartado se
explica el funcionamiento del sistema web a travs de las diferentes pantallas que se
muestran en la interfaz de usuario con el fin de ofrecer una mejor comprensin del uso
de este sistema.
17
Pgina de inicio
18
Figura 8. Pgina de inicio
Pgina de registro
19
Figura 9. Pgina de registro
Pgina de login
A esta pgina (ver Figura 10) se accede pulsando el botn Login que se encuentra en
la parte superior derecha de cualquier pgina. Se muestra un formulario de acceso donde
el usuario debe introducir sus credenciales (login y password) para autenticarse en el
sistema (pulsando el botn bajo el campo Password). Si los datos introducidos son
correctos se redirigir a la Pgina de inicio.
Pgina de usuarios
Esta pgina (ver Figura 11) muestra todos los usuarios registrados en el sistema web
en forma de tabla. Se pueden consultar los detalles de un usuario en concreto pulsando
el botn Ver situado junto a dicho usuario. El botn Nuevo permitir aadir un nuevo
usuario al sistema, redirigiendo a la Pgina de registro ya comentada. Si el usuario se
encuentra logeado aparecer un botn con el texto Editar (en la entrada de la tabla que
le corresponda) que le permitir editar toda la informacin relativa a su usuario salvo el
login.
20
Figura 10. Pgina de login
Pgina de cuadernos
21
La Pgina de cuadernos (ver Figura 12) lista todos los Cuadernos de viaje que han
publicado los usuarios en el sistema web. Si el usuario no est logueado solo podr ver,
pulsando el botn homnimo, los detalles de los cuadernos existentes (Pgina detalles
de cuaderno). Si por el contrario, el usuario est logueado podr visualizar el botn
Nuevo para aadir un nuevo cuaderno en la parte superior izquierda. Adems al usuario
le aparecern los botones Editar y Borrar para modificar o eliminar los cuadernos de los
que es propietario. Tanto el botn Nuevo como el botn Editar redirigirn a la Pgina
aadir/editar cuaderno.
22
Si el usuario ha realizado login en el sistema web ser capaz de acceder a esta pgina.
Dependiendo desde dnde se haya accedido el contenido a mostrar ser distinto:
Esta pgina (ver Figura 13) muestra todos los detalles del cuaderno seleccionado. Esto
incluye un listado con todos los sitios que componen el cuaderno de viaje. Adems, si el
cuaderno consta de dos o ms sitios, aparecer el botn Mostrar ruta en la parte inferior
de la pgina que al pulsarlo generar un mapa de Google Maps con marcadores de los
diferentes sitios del cuaderno enumerados en orden de insercin. Este mapa es
interactivo y si se pulsa sobre alguno de los marcadores emerger un dilogo con
informacin adicional del sitio.
Si el usuario logueado que ha accedido a esta pgina no es el autor del cuaderno tiene
las siguientes opciones: pulsar el botn Volver para regresar de vuelta al listado de
cuadernos o pulsar el botn Ver sobre alguno de los sitios existentes para consultarlo en
detalle (acceder a la Pgina detalles de sitio).
23
Figura 13. Pgina detalles de cuaderno
24
Pgina aadir/editar sitio
Desde esta pgina el usuario propietario del cuaderno, y en consecuencia del sitio,
puede aadir o modificar un sitio. Al igual que en el caso de los cuadernos se presentar
un nico formulario con contenido diferente, en blanco si es para aadir un nuevo sitio
o cumplimentado si es para modificar un sitio. Los campos de este formulario son el
nombre, una breve descripcin y la ubicacin del sitio. Una vez se haya seleccionado una
ubicacin en su respectivo campo se mostrar un mapa esttico de Google Maps con un
marcador en el sitio que se est aadiendo o modificando.
Esta pgina (ver Figura 14) muestra la informacin de un sitio en concreto, esto es los
datos que se introdujeron al crear o editar el sitio, incluido el mapa esttico de Google
Maps con la posicin. Adems contiene una galera en la parte inferior con todas las
imgenes del sitio en cuestin. Pulsando sobre la imagen que se est en un tamao mayor
se accedern a todos sus comentarios. Si el usuario logueado es el autor del sitio tendr
la posibilidad de modificar el sitio utilizando el botn Editar (a Pgina aadir/editar
sitio), que se presentar en la parte superior izquierda, y agregar imgenes al sitio con el
botn Aadir imagen (a Pgina aadir imagen) que estar sobre la galera.
Esta pgina (ver Figura 15) contiene la imagen seleccionada previamente de la galera
de la Pgina detalles de sitio y un listado con todos los comentarios existentes sobre dicha
imagen. Cualquier usuario registrado en el sistema web puede realizar un comentario
en esta pgina. El propietario de la imagen (aquel que la subi en el sitio que le pertenece)
podr adicionalmente eliminar la imagen con el botn Borrar imagen que encontrar
bajo ella. Si el usuario logueado hizo algn comentario sobre la imagen mostrada tendr
un botn de Borrar para suprimir el comentario y otro botn de Editar para modificarlo.
25
Figura 14. Pgina detalles de sitio
26
Figura 15. Pgina detalles de imagen
27