Gestor de una biblioteca realizado en Java + MySQL

El programa “Gestor de una Biblioteca” es el producto final de una de las dos prácticas obligatorias para la asignatura de Metodología y Tecnología de la Programación (MTP) de la carrera de Ingeniería Informática, realizada en la Universidad de León .

La documentación del programa podéis descargarla pinchando aquí programa debía cumplir unas especificaciones:

El objetivo de esta práctica es construir un sistema informático que permita gestionar una biblioteca. El sistema se construirá utilizando Java y MySql como gestor de bases de datos.

Existirán tres roles básicos de usuarios del sistema: el de administrador, que podrá realizar todas las tareas del sistema; el técnico de biblioteca, que podrá realizar tareas de introducción, modificación y consulta tanto de los datos de los lectores como de los fondos bibliográficos; y los lectores que podrán realizar tanto consultas de los fondos como solicitar préstamos sobre los fondos bibliográficos. Este último rol se dividirá en dos subroles denominados lectores-socios y lectores-base. La diferencia reside en la capacidad de solicitar préstamos. En cada uno de esos roles podrán existir varios usuarios pertenecientes a ellos y en concreto todos los usuarios de la biblioteca deberán pertenecer al menos al rol de lector.

La biblioteca dispone de libros y revistas. Podrán existir varias copias de un mismo libro. Los libros pueden ser prestados a cualquier lector durante tres semanas. Algunos libros son sólo para préstamos a corto plazo de 2 días. Las revistas sólo podrán ser prestadas a los lectores-socios. Los lectores-base podrán solicitar hasta 6 préstamos simultáneamente y los lectores-socios hasta 12. Todos los fondos bibliográficos pueden consultarse en la propia biblioteca, que dispone de una sala donde hay distintos volúmenes para su consulta. Si no hay copia del libro/revista en la sala se puede solicitar a los técnicos de biblioteca. Un volumen que se esté consultando en la sala no podrá ser prestado hasta que sea devuelto por el lector, lo que se supone sucede como mucho al final del día. Un técnico deberá registrar en el sistema cuándo se devuelve un libro de la sala de lectura a la sala de préstamo.

La funcionalidad del sistema cubrirá los siguientes aspectos:

    • Permitirá gestionar todos los usuarios del sistema, dando de alta, baja y modificando datos de todos los roles del sistema manteniendo la seguridad adecuada. Los técnicos de biblioteca podrán manipular los datos de los lectores únicamente, los administradores podrán gestionar cualquier tipo de usuario del sistema. Inicialmente sólo existirá un administrador. Los lectores disponen de un carnet de biblioteca que permite identificarlos.
    • Permitirá realizar un control de los fondos bibliográficos de la biblioteca, dando de alta o baja libros y revistas y sus copias existentes junto con su localización, sala o préstamo. Las revistas se publican periódicamente a lo largo del año, pero al final del mismo se encuadernan en un único volumen, agrupando los números de ese año. De cada volumen se almacenarán los siguientes datos como mínimo: de los libros, sus autores, el título, la editorial, el año, la edición, número de páginas, el isbn y la signatura; de las revistas, título, editorial, volumen, número, año y signatura.
    • Permitirá solicitar préstamos a los lectores y el sistema llevará un control total sobre los préstamos, anotando cuándo se realiza un préstamo y cuándo su devolución. Los preśtamos se procesarán en una cola de solicitudes. Cuando se procese un préstamo y el libro esté disponible se aprobará el préstamo y se avisará al lector de que su préstamo está disponible. Cada lector tendrá un buzón en el sistema al que podrá acceder para ver el estado de sus préstamos. Los volúmenes a prestar serán entregados a los lectores por los técnicos de la biblioteca. Los técnicos también tendrán un buzón común a todos ellos donde se indicarán los préstamos a entregar y a qué lector. Cuando un préstamo no sea aprobado también se avisará al lector a través de su buzón, dándole la opción de realizar una reserva. En el futuro podrá implantarse un sistema de aviso a los lectores por e-mail o sms.
    • Cuando un lector desee un libro y éste se encuentre en la sala de lectura o en préstamo podrá solicitar una reserva del mismo. El sistema llevará control de las reservas y las servirá a medida que los volúmenes estén disponibles. Las reservas no caducan, pero antes de conceder un préstamo asociado a una reserva, se enviará un mensaje al buzón del usuario para que confirme el préstamo; si no responde con una confirmación antes de un día, se anulará su reserva y no se realizará el préstamo. Cuando un lector desee tener un volumen un período mayor al habitual podrá solicitarse una ampliación del plazo de préstamo siempre que no exista ninguna reserva sobre él. El sistema deberá avisar al lector, a través de su buzón, del vencimiento de un préstamo dos días antes y del mismo y en el día siguiente a cuándo su préstamo haya vencido. No se permitirán más préstamos a un lector cuando tenga en su poder un volumen fuera de plazo.
    • El sistema ofrecerá a cualquier usuario ciertas estadísticas sobre el uso de la biblioteca. Permitirá calcular el número de préstamos por volumen y por lector, el número total de préstamos de la biblioteca en un periodo de tiempo, el número de prestamos no devueltos a tiempo en un periodo de tiempo tanto por volumen como por lector como en total.

Todas las tareas del programa se realizarán mediante un interfaz gráfico de usuario de los habituales en los sistemas de ventanas de los sistemas operativos actuales.

El sistema tendrá que realizar ciertas tareas en ciertos momentos del tiempo, por ejemplo tiene que avisar de vencimientos de préstamos, o de vencimientos de reservas. Para facilitar la programación se supone que el programa realiza la revisión de vencimientos cada vez que arranca y además existirá una entrada en el menú que podrán utilizar únicamente los técnicos o administradores que realiza la revisión de vencimientos a instancia de un técnico o administrador.

FICHEROS FUENTE