{"id":19913454,"url":"https://github.com/drako01/desafio-integrador-01","last_synced_at":"2026-04-11T11:38:34.471Z","repository":{"id":231162797,"uuid":"781092910","full_name":"Drako01/desafio-integrador-01","owner":"Drako01","description":"Desafio Integrador de la Fase 1","archived":false,"fork":false,"pushed_at":"2024-04-10T21:53:07.000Z","size":17736,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-11T00:50:03.931Z","etag":null,"topics":["css3","eclipse-ide","html5","java","javascript","jsp","jsp-servlet","maven","servlet","sql"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Drako01.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-04-02T18:26:12.000Z","updated_at":"2024-04-14T18:30:14.649Z","dependencies_parsed_at":"2024-04-14T18:40:28.925Z","dependency_job_id":null,"html_url":"https://github.com/Drako01/desafio-integrador-01","commit_stats":null,"previous_names":["drako01/desafio-integrador-01"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Drako01%2Fdesafio-integrador-01","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Drako01%2Fdesafio-integrador-01/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Drako01%2Fdesafio-integrador-01/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Drako01%2Fdesafio-integrador-01/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Drako01","download_url":"https://codeload.github.com/Drako01/desafio-integrador-01/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241341743,"owners_count":19947105,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["css3","eclipse-ide","html5","java","javascript","jsp","jsp-servlet","maven","servlet","sql"],"created_at":"2024-11-12T21:33:04.094Z","updated_at":"2026-04-11T11:38:29.445Z","avatar_url":"https://github.com/Drako01.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Proyecto Integrador Fase I\n\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://static.educacionit.com/educacionit/assets/imagotype-it-fill-v2-color.svg\" alt=\"Educacion IT\" width=500\u003e\n\u003c/p\u003e\u003cbr\u003e\n\n\n\n### Descripción del Proyecto\nEste 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.\n\n### Pasos Realizados\n\n1. **Creación del Repositorio Git**\n   - Se creó una cuenta en GitHub.\n   - Se creó el repositorio \"Proyecto Integrador Fase I\" en GitHub.\n\n2. **Generación del Proyecto Localmente y Subida al Repositorio**\n   - Se utilizó la herramienta `create-java-app` para generar el esqueleto del proyecto.\n   - Se repasaron los comandos de Git para inicializar el repositorio local, agregar archivos, hacer commits y empujar los cambios al repositorio remoto en GitHub.\n\n3. **Diseño del Programa de Búsqueda de Películas**\n   - Se diseñó un programa en Java que permite buscar películas por título o género.\n\n4. **Implementación de la Funcionalidad de Búsqueda y Visualización de Películas**\n   - 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.\n\n5. **Uso de Proyectos Maven, Colecciones y Separación en Paquetes**\n   - Se utilizó Maven para gestionar las dependencias del proyecto.\n   - Se organizó el código en paquetes para una mejor estructuración y mantenimiento.\n\n6. **Utilización de una Base de Datos**\n   - Se crearon las tablas necesarias en una base de datos para almacenar información sobre las películas.\n   - Se adjuntó en el proyecto un script SQL que crea la base de datos y las tablas utilizadas.\n\n7. **Aplicación del Patrón de Diseño DAO**\n   - 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.\n\n8. **Trabajo con Git y Ramas**\n   - Se crearon diferentes ramas en el repositorio Git para representar las diferentes características desarrolladas.\n   - Se fusionaron las ramas de características en la rama principal a medida que se completaban las funcionalidades.\n\n### Opcional\n- Se investigó y utilizó Markdown para editar el archivo `README.md`.\n- 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).\n\n### Tecnologías Utilizadas\n- Java\n- Maven\n- Git\n- MySQL\n\n### Versión de Java Utilizada\nJava 11\n\n### Autor del Proyecto\nAlejandro Daniel Di Stefano\n\n\n---\n\n\n### Script de la Base de Datos\n\n```sql\n-- Script SQL para crear la base de datos y las tablas de películas\n\nCREATE DATABASE IF NOT EXISTS peliculas_db;\n\nUSE peliculas_db;\n\nCREATE TABLE IF NOT EXISTS peliculas (\n    codigo INT AUTO_INCREMENT PRIMARY KEY,\n    titulo VARCHAR(100) NOT NULL,\n    url VARCHAR(255),\n    imagen_promocional VARCHAR(255)\n);\n\nCREATE TABLE IF NOT EXISTS generos (\n    id INT AUTO_INCREMENT PRIMARY KEY,\n    nombre VARCHAR(100) NOT NULL    \n);\n\nCREATE TABLE IF NOT EXISTS pelicula_genero (\n    id_pelicula INT,\n\tid_genero INT,\nPRIMARY KEY (id_pelicula, id_genero),\nFOREIGN KEY (id_pelicula) REFERENCES peliculas(codigo),\nFOREIGN KEY (id_genero) REFERENCES generos(id)  \n);\n\n\nINSERT INTO peliculas (titulo, url, imagen_promocional)\nVALUES ('Mad Max', 'https://www.youtube.com/watch?v=2OEGx_yIS6M', 'https://assets.afcdn.com/album/D20160812/phalbm24886928_w320cxt0cyt0cxb809cyb1200.webp'),\n       ('Ted', 'https://www.youtube.com/watch?v=bWcVNC6bcE0', 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRrz83rBUFZYah8aa67ycnf5-mrrLU7mpyeuEgISsjMPQ\u0026s'),\n       ('The Shawshank Redemption', 'https://www.youtube.com/watch?v=6hB3S9bIaco', 'https://m.media-amazon.com/images/I/51BgHp0VYxL._AC_.jpg'),    \n\t\t('The Godfather', 'https://www.youtube.com/watch?v=sY1S34973zA', 'https://m.media-amazon.com/images/M/MV5BM2MyNjYxNmUtYTAwNi00MTYxLWJmNWYtYzZlODY3ZTk3OTFlXkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_.jpg'),\n\t\t('The Dark Knight', 'https://www.youtube.com/watch?v=EXeTwQWrcwY', 'https://m.media-amazon.com/images/S/pv-target-images/e9a43e647b2ca70e75a3c0af046c4dfdcd712380889779cbdc2c57d94ab63902.jpg'),    \n\t\t('Schindler\\'s List', 'https://www.youtube.com/watch?v=gG22XNhtnoY', 'https://www.tematika.com/media/catalog/Ilhsa/Imagenes/666871.jpg'),    \n\t\t('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'),    \n\t\t('Pulp Fiction', 'https://www.youtube.com/watch?v=s7EdQ4FqbhY', 'https://m.media-amazon.com/images/I/81UTs3sC5hL._AC_UF894,1000_QL80_.jpg'),\n\t\t('Forrest Gump', 'https://www.youtube.com/watch?v=bLvqoHBptjg', 'https://m.media-amazon.com/images/S/pv-target-images/2d0c9e38968936e6711c7fb2bc7895b82d8bb9178b5a854e14dffa4b17b88487.jpg'),\n\t\t('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'),\n\t\t('Inception', 'https://www.youtube.com/watch?v=YoHD9XEInc0', 'https://m.media-amazon.com/images/I/912AErFSBHL._AC_UF894,1000_QL80_.jpg'),\n\t\t('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\u0026path-prefix=es');\n\nSELECT * FROM peliculas;\n\nINSERT INTO generos (nombre)\nVALUES \n\t('Acción'),\n\t('Aventura'),\n\t('Comedia'),\n\t('Drama'),\n\t('Crimen'),\n\t('Biografía'),\n\t('Historia'),\n\t('Fantasía'),\n\t('Romance'),\n\t('Ciencia ficción');\n\n-- Insertar relaciones entre películas y géneros en la tabla pelicula_genero\n\n-- Mad Max\nINSERT INTO pelicula_genero (id_pelicula, id_genero)\nSELECT codigo, id\nFROM peliculas\nCROSS JOIN generos\nWHERE titulo = 'Mad Max' AND nombre IN ('Acción', 'Aventura');\n\n-- Ted\nINSERT INTO pelicula_genero (id_pelicula, id_genero)\nSELECT codigo, id\nFROM peliculas\nCROSS JOIN generos\nWHERE titulo = 'Ted' AND nombre IN ('Comedia');\n\n-- The Shawshank Redemption\nINSERT INTO pelicula_genero (id_pelicula, id_genero)\nSELECT codigo, id\nFROM peliculas\nCROSS JOIN generos\nWHERE titulo = 'The Shawshank Redemption' AND nombre IN ('Drama');\n\n-- The Godfather\nINSERT INTO pelicula_genero (id_pelicula, id_genero)\nSELECT codigo, id\nFROM peliculas\nCROSS JOIN generos\nWHERE titulo = 'The Godfather' AND nombre IN ('Drama', 'Crimen');\n\n-- The Dark Knight\nINSERT INTO pelicula_genero (id_pelicula, id_genero)\nSELECT codigo, id\nFROM peliculas\nCROSS JOIN generos\nWHERE titulo = 'The Dark Knight' AND nombre IN ('Acción', 'Crimen', 'Drama');\n\n-- Schindler's List\nINSERT INTO pelicula_genero (id_pelicula, id_genero)\nSELECT codigo, id\nFROM peliculas\nCROSS JOIN generos\nWHERE titulo = 'Schindler\\'s List' AND nombre IN ('Biografía', 'Drama', 'Historia');\n\n-- The Lord of the Rings: The Return of the King\nINSERT INTO pelicula_genero (id_pelicula, id_genero)\nSELECT codigo, id\nFROM peliculas\nCROSS JOIN generos\nWHERE titulo = 'The Lord of the Rings: The Return of the King' AND nombre IN ('Aventura', 'Drama', 'Fantasía');\n\n-- Pulp Fiction\nINSERT INTO pelicula_genero (id_pelicula, id_genero)\nSELECT codigo, id\nFROM peliculas\nCROSS JOIN generos\nWHERE titulo = 'Pulp Fiction' AND nombre IN ('Crimen', 'Drama');\n\n-- Forrest Gump\nINSERT INTO pelicula_genero (id_pelicula, id_genero)\nSELECT codigo, id\nFROM peliculas\nCROSS JOIN generos\nWHERE titulo = 'Forrest Gump' AND nombre IN ('Drama', 'Romance');\n\n-- Fight Club\nINSERT INTO pelicula_genero (id_pelicula, id_genero)\nSELECT codigo, id\nFROM peliculas\nCROSS JOIN generos\nWHERE titulo = 'Fight Club' AND nombre IN ('Drama');\n\n-- Inception\nINSERT INTO pelicula_genero (id_pelicula, id_genero)\nSELECT codigo, id\nFROM peliculas\nCROSS JOIN generos\nWHERE titulo = 'Inception' AND nombre IN ('Acción', 'Aventura', 'Ciencia ficción');\n\n-- The Matrix\nINSERT INTO pelicula_genero (id_pelicula, id_genero)\nSELECT codigo, id\nFROM peliculas\nCROSS JOIN generos\nWHERE titulo = 'The Matrix' AND nombre IN ('Acción', 'Ciencia ficción');\n\n\n\n```\n\n\u003cbr\u003e\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://1000logos.net/wp-content/uploads/2020/09/Java-Logo.png\" alt=\"Java\" width=500\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e \n \u003ca href=\"#\" target=\"_blank\"\u003e \n     \u003cimg src=\"https://cdn.icon-icons.com/icons2/2699/PNG/512/mysql_official_logo_icon_169938.png\" alt=\"sql\" height=\"100\"/\u003e\n  \u003c/a\u003e \n    \u0026nbsp \u0026nbsp \u0026nbsp\n \u003ca href=\"#\" target=\"_blank\"\u003e \n  \u003cimg src=\"https://miro.medium.com/v2/resize:fit:1100/0*5FEJ7emIEAxZRCQF\" alt=\"spring-boot\"  height=\"100\"/\u003e\n \u003c/a\u003e \n \u003c/p\u003e\u0026nbsp\n \u003cp align=\"center\"\u003e \n \u003ca href=\"#\" target=\"_blank\"\u003e \n  \u003cimg src=\"https://raw.githubusercontent.com/devicons/devicon/master/icons/html5/html5-original-wordmark.svg\" alt=\"html5\" width=\"120\" /\u003e\n  \u003c/a\u003e \n  \u003ca href=\"#\" target=\"_blank\"\u003e  \n  \u003cimg src=\"https://raw.githubusercontent.com/devicons/devicon/master/icons/css3/css3-original-wordmark.svg\" alt=\"css3\" width=\"120\" /\u003e\n \u003c/a\u003e \n \u003ca href=\"#\" target=\"_blank\"\u003e  \n  \u003cimg src=\"https://cdn.icon-icons.com/icons2/2415/PNG/512/javascript_original_logo_icon_146455.png\" alt=\"javascript\" width=\"120\" /\u003e\n \u003c/a\u003e \n \u003c/p\u003e\u0026nbsp\n  \u003cp align=\"center\"\u003e \n\u003ca href=\"#\" target=\"_blank\"\u003e \n  \u003cimg src=\"https://www.vectorlogo.zone/logos/git-scm/git-scm-icon.svg\" alt=\"git\" width=\"120\" /\u003e \n  \u003c/a\u003e\n   \u0026nbsp\n  \u003ca href=\"#\" target=\"_blank\"\u003e \n  \u003cimg src=\"https://static-00.iconduck.com/assets.00/eclipse-icon-512x479-6ivkqawb.png\" alt=\"Eclipse\" width=\"120\" /\u003e \n  \u003c/a\u003e \n   \u0026nbsp\n  \u003ca href=\"#\" target=\"_blank\"\u003e \n  \u003cimg src=\"https://static.educacionit.com/d/q_80/tecnologias/apache-maven/logo-color.svg\" alt=\"Apache Maven\" width=\"120\" /\u003e \n  \u003c/a\u003e \n\u003c/p\u003e\u0026nbsp\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrako01%2Fdesafio-integrador-01","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrako01%2Fdesafio-integrador-01","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrako01%2Fdesafio-integrador-01/lists"}