Fecha de entrega: 3 de Noviembre 2025.
- Presentación: 10 Pts.
- Facilidad de uso para el usuario: 10 Pts.
- Graficas y Menús: 20 Pts.
- Funcionalidad (Opciones requeridas, manejo de excepciones, implementación de conexión a base de datos y consumo de Servicio Web): 60 Pts.
- Total de Proyecto: 100 Pts.
- Este proyecto debe ser desarrollado en el lenguaje de programación JAVA y framework SWING, deberá ser completamente implementado en el entorno grafico.
- Deberá utilizar los conceptos aprendidos de manejo de errores y excepciones.
- Para la entrega del proyecto se pueden formar grupos de 5 o 6 personas como máximo.
Para este proyecto consistirá en desarrollar un sistema para llevar el control de una colección de películas, clientes y los prestamos de esas películas.
El Sistema debe tener la siguiente funcionalidad.
Ingreso de información de la Película, para esta funcionalidad se debe consumir el siguiente servicio web: https://www.omdbapi.com/?t=i+robot&apikey=pornersullave
Las películas que no se encuentren en el servicio web se deberá permitir ingresar información de manera manual, para las películas ya ingresadas se permitir también la modificación de la información.
Los datos que deben ser ingresados de la película son los siguientes:
- Código de la película.
- Título de la película.
- Año
- Duración en minutos
- Clasificación
- Actores
- Director
(Nota: La definición del requerimiento 2 - Gestión de Clientes - parece estar omitida en la extracción de texto del PDF, aunque se infiere por el resto del documento).
Se debe poder registrar los préstamos de las películas a los clientes. Los datos requeridos son:
- Código de cliente.
- Fecha de Préstamo.
- Fecha de devolución.
- Estado.
Cuando se grabe un préstamo y no se ha efectuado la devolución del mismo el estado será "A" activo.
Cuando se realice un préstamo el sistema debe verificar si los ejemplares activos de una película no son superiores al numero de ejemplares, de lo contrario debe disparar una excepción que de esa película ya no quedan ejemplares para prestar.
Se tendrá la opción de devoluciones para la cual únicamente de sebe consultar el código de préstamo y efectuar la actualización del registro colocando la fecha de devolución y el estado a "I" inactivo.
El manejo de excepciones o de errores es importante para todo Sistema Informático por lo que se solicita manejar como mínimo las siguientes:
- Validar todas las excepciones por tipos de datos.
- Validar que un cliente sea ingresado solo una vez.
- Validar que una película sea ingresada una sola vez.
Usted necesita para ejecutar la aplicación es tener Java instalado, y un servicio de mysql instaldo con la estructura de base de datos antes mencionada.
- Usted necesita el "Entorno de Ejecución de Java" (JRE) o el "Kit de Desarrollo de Java" (JDK 21).
- La versión de Java en la máquina debe ser igual Java 21.
- Un servidor de base de datos MySQL en ejecución
Si aun no cuenta con la base de datos y tabla necesaria, cree una base de datos en su servidor MySQL (ej. PeliClub). Luego, ejecute los siguiente scripts SQL para crear las tabla Clientes, Peliculas y Prestamos
-- Creación de la tabla Clientes
-- Esta tabla almacena la información de los usuarios que pueden alquilar películas.
CREATE TABLE Clientes (
idCliente INT PRIMARY KEY,
nombre VARCHAR(250) NOT NULL,
direccion VARCHAR(250),
telefono VARCHAR(45),
email VARCHAR(100),
estado VARCHAR(1) NOT NULL DEFAULT 'A' -- 'A' = Activo, 'I' = Inactivo
) ENGINE=InnoDB;
-- Creación de la tabla Peliculas
-- Almacena la colección de películas del videoclub.
CREATE TABLE Peliculas (
codigoPelicula INT PRIMARY KEY,
titulo VARCHAR(300) NOT NULL,
anio INT,
duracion INT,
clasificacion VARCHAR(100),
actores VARCHAR(500),
director VARCHAR(250),
ejemplares INT NOT NULL DEFAULT 1
) ENGINE=InnoDB;
-- Creación de la tabla Prestamos
-- Registra los préstamos de películas a clientes.
CREATE TABLE Prestamos (
idPrestamo INT PRIMARY KEY ,
idCliente INT NOT NULL,
codigoPelicula INT NOT NULL,
fechaPrestamo DATETIME NOT NULL,
fechaDevolucion DATETIME NULL, -- Nulo hasta que se devuelva
estadoPrestamo VARCHAR(1) NOT NULL DEFAULT 'A', -- 'A' = Activo, 'I' = Inactivo/Devuelto
-- Definición de las claves foráneas para mantener la integridad referencial
CONSTRAINT fk_prestamo_cliente
FOREIGN KEY (idCliente)
REFERENCES Clientes(idCliente),
CONSTRAINT fk_prestamo_pelicula
FOREIGN KEY (codigoPelicula)
REFERENCES Peliculas(codigoPelicula)
) ENGINE=InnoDB;
Si usted no tiene Java, le recomendamos descargarlo desde Adoptium (Eclipse Temurin). Es una instalación gratuita, segura y compatible con todas las plataformas. Asegúrese de descargar la versión correcta (Java 21 o superior).
Antes de intentar ejecutar el archivo, abra su terminal y escriba el siguiente comando:
java -version
Este comando le dirá si Java está instalado y qué versión tiene.
- Si usted ve una respuesta como
openjdk version "21.0.1"...(o similar), ¡usted está listo! Pase al Paso 2. - Si usted ve un error como
command not found,'java' no se reconoce...o similar, significa que usted no tiene Java instalado. Debe ir al enlace de Adoptium de arriba e instalarlo primero.
- En Windows:
- Presione la tecla
Windows+R. - Escriba
cmdy presione Enter. (O busqueSímbolo del sistemaen el menú de inicio). - Escriba
java -versionen la ventana negra que aparece.
- Presione la tecla
- En macOS:
- Presione
Cmd+Espacio(para abrir Spotlight). - Escriba
Terminaly presione Enter. - Escriba
java -versionen la terminal.
- Presione
- En Linux:
- Presione
Ctrl+Alt+T(en la mayoría de las distribuciones como Ubuntu). - O busque "Terminal" en su menú de aplicaciones.
- Escriba
java -versionen la terminal.
- Presione
CineGuest Necesita tener configurado sus datos de conexion hacia la base de datos para poder funcionar adecuadamente, por lo cual se incluye un archivo config.properties donde debe modificar las siguientes variables db.url, db.user y db.password con los datos necesarios de su servidor de MySql, asegurese de reemplazar los valoes de SU_BASE_DE_DATOS, SU_USUARIO y SU_CLAVE
- Ejemplo de archivo
config.properties:
# ==================================
# CONFIGURACION DE LA BASE DE DATOS
# ==================================
#
# Driver JDBC de MySQL
db.driver=com.mysql.cj.jdbc.Driver
# URL de conexi\u00c3\u00b3n JDBC
db.url=jdbc:mysql://localhost:3306/SU_BASE_DE_DATOS?allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=UTC
# Credenciales de la Base de Datos
db.user=SU_USUARIO
db.password=SU_CLAVE
Una vez que usted ha confirmado que tiene Java instalado, siga estos pasos:
-
Abra su terminal (usando las instrucciones del Paso 1).
-
Navegue a la carpeta donde descargó o guardó el archivo
.jary el archivoconfig.properties. Usará el comandocd(change directory).-
Ejemplo para Windows (si está en Descargas):
cd C:\Users\SuUsuario\Downloads -
Ejemplo para macOS/Linux (si está en Descargas):
cd ~/Downloads
-
-
Ejecute el comando
java -jarcon el nombre del archivo.El nombre del archivo es
CineGest.jar.java -jar CineGest.jar
¡Eso es todo! La aplicación tiene una interfaz gráfica, se abrirá.
Problema: java: command not found o 'java' no se reconoce...
- Causa: Java no está instalado o no está configurado en el PATH del sistema.
- Solución: Instale Java usando el enlace de Adoptium de la sección de requisitos. Reinicie su terminal después de instalar.
Problema: Error: A JNI error has occurred, please check your installation... seguido de java.lang.UnsupportedClassVersionError
- Causa: Usted está intentando ejecutar la aplicación con una versión de Java demasiado antigua. Por ejemplo, la app se hizo con Java 21 pero usted intenta usar Java 17 o Java 11.
- Solución: Desinstale la versión antigua de Java y/o instale la versión correcta (Java 21 o superior) desde Adoptium.
Problema: Al hacer doble clic en el archivo .jar en Windows no pasa nada.
- Causa: La asociación de archivos
.jaren Windows puede estar rota o no configurada para ejecutarse. - Solución: No use el doble clic. Siga siempre las instrucciones del Paso 2 y ejecute la aplicación desde la terminal (
cmdoPowerShell). Es la única forma fiable de ver qué está pasando y cualquier posible error.