Giter Club home page Giter Club logo

desafio-integrador-01's Introduction

Proyecto Integrador Fase I

Educacion IT


Descripción del Proyecto

Este proyecto se centra en el desarrollo de una aplicación en Java que permite buscar películas por título o género, mostrar un listado de películas y obtener información detallada de una película seleccionada. Además, se utiliza una base de datos para almacenar información sobre las películas y se aplica el patrón de diseño DAO para interactuar con la base de datos.

Pasos Realizados

  1. Creación del Repositorio Git

    • Se creó una cuenta en GitHub.
    • Se creó el repositorio "Proyecto Integrador Fase I" en GitHub.
  2. Generación del Proyecto Localmente y Subida al Repositorio

    • Se utilizó la herramienta create-java-app para generar el esqueleto del proyecto.
    • Se repasaron los comandos de Git para inicializar el repositorio local, agregar archivos, hacer commits y empujar los cambios al repositorio remoto en GitHub.
  3. Diseño del Programa de Búsqueda de Películas

    • Se diseñó un programa en Java que permite buscar películas por título o género.
  4. Implementación de la Funcionalidad de Búsqueda y Visualización de Películas

    • Se implementó la funcionalidad para mostrar un listado de películas después de realizar la búsqueda y permitir al usuario ver información detallada de una película seleccionada mediante su código.
  5. Uso de Proyectos Maven, Colecciones y Separación en Paquetes

    • Se utilizó Maven para gestionar las dependencias del proyecto.
    • Se organizó el código en paquetes para una mejor estructuración y mantenimiento.
  6. Utilización de una Base de Datos

    • Se crearon las tablas necesarias en una base de datos para almacenar información sobre las películas.
    • Se adjuntó en el proyecto un script SQL que crea la base de datos y las tablas utilizadas.
  7. Aplicación del Patrón de Diseño DAO

    • Se implementó el patrón de diseño DAO para realizar operaciones CRUD (Crear, Leer, Actualizar, Borrar) sobre la tabla de películas en la base de datos.
  8. Trabajo con Git y Ramas

    • Se crearon diferentes ramas en el repositorio Git para representar las diferentes características desarrolladas.
    • Se fusionaron las ramas de características en la rama principal a medida que se completaban las funcionalidades.

Opcional

  • Se investigó y utilizó Markdown para editar el archivo README.md.
  • Se agregó una descripción del proyecto, las tecnologías utilizadas, el script de la base de datos, la versión de Java utilizada, el autor del proyecto y un enlace a una red social del autor (LinkedIn).

Tecnologías Utilizadas

  • Java
  • Maven
  • Git
  • MySQL

Versión de Java Utilizada

Java 11

Autor del Proyecto

Alejandro Daniel Di Stefano


Script de la Base de Datos

-- Script SQL para crear la base de datos y las tablas de películas

CREATE DATABASE IF NOT EXISTS peliculas_db;

USE peliculas_db;

CREATE TABLE IF NOT EXISTS peliculas (
    codigo INT AUTO_INCREMENT PRIMARY KEY,
    titulo VARCHAR(100) NOT NULL,
    url VARCHAR(255),
    imagen_promocional VARCHAR(255)
);

CREATE TABLE IF NOT EXISTS generos (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nombre VARCHAR(100) NOT NULL    
);

CREATE TABLE IF NOT EXISTS pelicula_genero (
    id_pelicula INT,
	id_genero INT,
PRIMARY KEY (id_pelicula, id_genero),
FOREIGN KEY (id_pelicula) REFERENCES peliculas(codigo),
FOREIGN KEY (id_genero) REFERENCES generos(id)  
);


INSERT INTO peliculas (titulo, url, imagen_promocional)
VALUES ('Mad Max', 'https://www.youtube.com/watch?v=2OEGx_yIS6M', 'https://assets.afcdn.com/album/D20160812/phalbm24886928_w320cxt0cyt0cxb809cyb1200.webp'),
       ('Ted', 'https://www.youtube.com/watch?v=bWcVNC6bcE0', 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRrz83rBUFZYah8aa67ycnf5-mrrLU7mpyeuEgISsjMPQ&s'),
       ('The Shawshank Redemption', 'https://www.youtube.com/watch?v=6hB3S9bIaco', 'https://m.media-amazon.com/images/I/51BgHp0VYxL._AC_.jpg'),    
		('The Godfather', 'https://www.youtube.com/watch?v=sY1S34973zA', 'https://m.media-amazon.com/images/M/MV5BM2MyNjYxNmUtYTAwNi00MTYxLWJmNWYtYzZlODY3ZTk3OTFlXkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_.jpg'),
		('The Dark Knight', 'https://www.youtube.com/watch?v=EXeTwQWrcwY', 'https://m.media-amazon.com/images/S/pv-target-images/e9a43e647b2ca70e75a3c0af046c4dfdcd712380889779cbdc2c57d94ab63902.jpg'),    
		('Schindler\'s List', 'https://www.youtube.com/watch?v=gG22XNhtnoY', 'https://www.tematika.com/media/catalog/Ilhsa/Imagenes/666871.jpg'),    
		('The Lord of the Rings: The Return of the King', 'https://www.youtube.com/watch?v=4fxfIvWheh0', 'https://goldenglobes.com/wp-content/uploads/2023/10/the_lord_of_the_rings_the_return_of_the_king_2003.jpg'),    
		('Pulp Fiction', 'https://www.youtube.com/watch?v=s7EdQ4FqbhY', 'https://m.media-amazon.com/images/I/81UTs3sC5hL._AC_UF894,1000_QL80_.jpg'),
		('Forrest Gump', 'https://www.youtube.com/watch?v=bLvqoHBptjg', 'https://m.media-amazon.com/images/S/pv-target-images/2d0c9e38968936e6711c7fb2bc7895b82d8bb9178b5a854e14dffa4b17b88487.jpg'),
		('Fight Club', 'https://www.youtube.com/watch?v=BdJKm16Co6M', 'https://cdn.hobbyconsolas.com/sites/navi.axelspringer.es/public/media/image/2016/12/club-lucha.jpg?tf=384x'),
		('Inception', 'https://www.youtube.com/watch?v=YoHD9XEInc0', 'https://m.media-amazon.com/images/I/912AErFSBHL._AC_UF894,1000_QL80_.jpg'),
		('The Matrix', 'https://www.youtube.com/watch?v=m8e-FF8MsqU', 'https://static.wikia.nocookie.net/doblaje/images/7/7a/Matrix.jpg/revision/latest?cb=20210703005220&path-prefix=es');

SELECT * FROM peliculas;

INSERT INTO generos (nombre)
VALUES 
	('Acción'),
	('Aventura'),
	('Comedia'),
	('Drama'),
	('Crimen'),
	('Biografía'),
	('Historia'),
	('Fantasía'),
	('Romance'),
	('Ciencia ficción');

-- Insertar relaciones entre películas y géneros en la tabla pelicula_genero

-- Mad Max
INSERT INTO pelicula_genero (id_pelicula, id_genero)
SELECT codigo, id
FROM peliculas
CROSS JOIN generos
WHERE titulo = 'Mad Max' AND nombre IN ('Acción', 'Aventura');

-- Ted
INSERT INTO pelicula_genero (id_pelicula, id_genero)
SELECT codigo, id
FROM peliculas
CROSS JOIN generos
WHERE titulo = 'Ted' AND nombre IN ('Comedia');

-- The Shawshank Redemption
INSERT INTO pelicula_genero (id_pelicula, id_genero)
SELECT codigo, id
FROM peliculas
CROSS JOIN generos
WHERE titulo = 'The Shawshank Redemption' AND nombre IN ('Drama');

-- The Godfather
INSERT INTO pelicula_genero (id_pelicula, id_genero)
SELECT codigo, id
FROM peliculas
CROSS JOIN generos
WHERE titulo = 'The Godfather' AND nombre IN ('Drama', 'Crimen');

-- The Dark Knight
INSERT INTO pelicula_genero (id_pelicula, id_genero)
SELECT codigo, id
FROM peliculas
CROSS JOIN generos
WHERE titulo = 'The Dark Knight' AND nombre IN ('Acción', 'Crimen', 'Drama');

-- Schindler's List
INSERT INTO pelicula_genero (id_pelicula, id_genero)
SELECT codigo, id
FROM peliculas
CROSS JOIN generos
WHERE titulo = 'Schindler\'s List' AND nombre IN ('Biografía', 'Drama', 'Historia');

-- The Lord of the Rings: The Return of the King
INSERT INTO pelicula_genero (id_pelicula, id_genero)
SELECT codigo, id
FROM peliculas
CROSS JOIN generos
WHERE titulo = 'The Lord of the Rings: The Return of the King' AND nombre IN ('Aventura', 'Drama', 'Fantasía');

-- Pulp Fiction
INSERT INTO pelicula_genero (id_pelicula, id_genero)
SELECT codigo, id
FROM peliculas
CROSS JOIN generos
WHERE titulo = 'Pulp Fiction' AND nombre IN ('Crimen', 'Drama');

-- Forrest Gump
INSERT INTO pelicula_genero (id_pelicula, id_genero)
SELECT codigo, id
FROM peliculas
CROSS JOIN generos
WHERE titulo = 'Forrest Gump' AND nombre IN ('Drama', 'Romance');

-- Fight Club
INSERT INTO pelicula_genero (id_pelicula, id_genero)
SELECT codigo, id
FROM peliculas
CROSS JOIN generos
WHERE titulo = 'Fight Club' AND nombre IN ('Drama');

-- Inception
INSERT INTO pelicula_genero (id_pelicula, id_genero)
SELECT codigo, id
FROM peliculas
CROSS JOIN generos
WHERE titulo = 'Inception' AND nombre IN ('Acción', 'Aventura', 'Ciencia ficción');

-- The Matrix
INSERT INTO pelicula_genero (id_pelicula, id_genero)
SELECT codigo, id
FROM peliculas
CROSS JOIN generos
WHERE titulo = 'The Matrix' AND nombre IN ('Acción', 'Ciencia ficción');



Java

sql       spring-boot

 

html5 css3 javascript

 

git   Eclipse   Apache Maven

 

desafio-integrador-01's People

Contributors

drako01 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.