Proyecto de Integración
 

Proyecto de Integración con Grails

Introducción

En este proyecto de integración, vamos a comenzar de cero a desarrollar algunas funcionalidades de la aplicación Biblioteca en Grails desde el punto de vista del alumno o del profesor.

Básicamente, la funcionalidades que vamos a desarrollar serán las siguientes:

  • Identificación de usuarios registrados. La aplicación cuenta con una serie de usuarios registrados a los cuales permitiremos identificarse en el sistema para que puedan realizar determinadas acciones.
  • Buscar libros. Una vez los usuarios ya estén identificados en el sistema, una de las opciones será la posibilidad de buscar libros. El resultado de esta búsqueda será un listado de libros cuya cadena de texto buscada aparezca en el título o autor del libro acompañada de la información de disponibilidad del mismo.
  • Ver mis libros. Los usuarios identificados tendrán la posibilidad de consultar que libros prestados, reservados o prereservados.
  • Reservar o prereservar libros. En función de la disponibilidad del libro, los alumnos o profesores podrán reservar o prereservar libros.

Importar el proyecto base

Para facilitaros un poco la labor, se ha creado un proyecto que tenéis disponible en el repositorio svn+ssh://server.jtech.ua.es/home/svn/soluciones/proyint/trunk/grails-bib que podéis obtener siguiendo las siguientes instrucciones:

  1. Abrir el SpringSource Tool Suite
  2. Desde el menú File elegís la opción Import
  3. En la ventana que se abre seleccionáis SVN>Checkout projects from SVN
  4. En la siguiente ventana elegís Create a new repository location
  5. Como Url del repositorio escribís svn+ssh://server.jtech.ua.es/home/svn/soluciones/proyint/trunk/grails-bib
  6. En la siguiente ventana seleccionáis la raíz del proyecto y pulsáis sobre Next
  7. Como nombre del proyecto elegís proyint-jbib-grails y pulsáis sobre Next
  8. Elegís el Workspace por defecto y pulsáis Finish
  9. Una vez descargado el proyecto, no olvides desconectar el proyecto y configurar tu repositorio de trabajo. Para ello debes hacer botón derecho sobre el proyecto y en la opción Team seleccionar Disconnect.
  10. Ya desconectado del proyecto original, no olvides hacer un commit en tu repositorio de grupo svn+ssh://server.jtech.ua.es/home/svn/<grupo>/proyint/trunk/proytint-jbib-grails.

El proyecto base que acabas de obtener tiene un fichero de configuración modificado que es el BootStrap.groovy. En él podrás comprobar como se insertar una serie de instancias de determinadas clases de dominio que tendrás que modelar. Estas son las clases de dominio:

  • Usuario
  • Alumno, que extiende de Usuario
  • Bibliotecario, que extiende de Usuario
  • Profesor, que extiende de Usuario
  • Departamento
  • Libro
  • Multa
  • Operacion
  • Prereserva

Las propiedades de cada una de las clases de dominio las puedes inferir a partir de estas inserciones en el BootStrap.groovy, aunque básicamente son las mismas que se presentaron en el caso de estudio del proyecto de integración al inicio del curso.

Tareas a realizar

Esta es una pequeña guía de las tareas que debes realizar en este proyecto de integración

Modelado de las clases de dominio

Define las propiedades de las clases de dominio y las relaciones entre ellas a partir de las inserciones realizadas en el archivo BootStrap.groovy y del caso de estudio del proyecto de integración.

Para comprobar que las relaciones y las propiedades están correctamente definidas, el archivo BootStrap.groovy realiza para cada inserción que se realiza que ésta se ha podido realizar correctamente y en caso contrario, se mostrará un mensaje con los errores generados por la consola.

Cuando todas las inserciones se hayan realizado correctamente, podrás comprobar una primera interfaz de la aplicación en la que se mostrarán unos enlaces que son los que deberás completar en este proyecto de integración.

Página de login

Crea una página de login con su correspondiente método en el controlador para que los usuarios puedan introducir su nombre de usuario y contraseña. Si el usuario se valida correctamente, almacenaremos los datos del mismo en una variable de session llamado session.usuario. Puedes comprobar como la plantilla ubicada en grails-app/views/common/_header.gsp utiliza esta variable para comprobar si el usuario está autenticado o no.

Una vez validado el usuario, la aplicación debe redirigirse a la opción para que éste pueda buscar libros. Recuerda añadir los filtros necesarios para las opciones que indicaremos en los siguientes puntos.

Buscar libros

Se creará el típico listado de libros al cual añadiremos una opción para que pueda buscar a partir de un texto de entrada. Para facilitarnos la labor, podemos generar las vistas de los libros para reutilizar el archivo de la vista list.gsp y añadirle el campo de texto necesario para realizar las búsquedas. Por supuesto, también habrá que modificar el método list() del controlador de los libros para poder realizar dichas búsquedas.

Con los libros devueltos, debemos dar a los alumnos la opción de poder reservar o prereservar cada uno de los libros en función de su estado.

Reservar o prereservar los libros

Si un libro desea un libro que ya está prestado, éste realizará una prereserva del mismo. En caso de que esté disponible, se realizará una reserva que durará dos días. Si la reserva o la prereserva se ha podido realizar correctamente, el usuario será redirigido a la opción para que pueda ver el estado de sus libros.

Ver mis libros

El usuario tendrá la opción de ver los libros que éste tenga prestados, reservados o prereservados junto con las fechas relativas a cada uno de estos estados.