Este repositorio reúne ejercicios y proyectos desarrollados en el Bootcamp Roshka (enero 2026). Incluye:
- Interfaces web con HTML, CSS y JavaScript
- Aplicaciones de consola y de escritorio con Java y JDBC
- Juegos en Node.js y en navegador
- Scripts de SQL para modelado y consultas en PostgreSQL
- APIs REST con Spring Boot y Spring Security (JWT)
Herramientas y conceptos clave:
- Maven y mvnw para gestión de dependencias
- Eclipse o Intellij IDEA(.classpath, .project, .settings)
- PostgreSQL como base de datos relacional
- JPA (Spring Data) y JDBC (PreparedStatement)
- JWT para autenticación basada en tokens
Muestra la tabla de posiciones de la “Copa de Primera”.
- Estructura con
<table>y clases.titulo,.equipo,.ultimos5 - Íconos de resultados en “Últimos 5” con estilos inline
- Se conecta a
estilo.csspara reglas generales del layout
<h2 class="titulo">
<img src="Clubes/copa-de-primera.png" alt="Copa de Primera">
Tabla de Posiciones – Copa de Primera Paraguay
</h2>Galería en cascada diagonal de 5 imágenes con CSS variables y hover.
- Variables:
--size,--step,--border - Contenedor
.galleryposicionado relativo - Elementos
.itemcon transform y transición - Al pasar el cursor, la imagen resalta y oculta posteriores
:root {
--size: 200px;
--step: 30px;
--border-hover: #ff6a00;
}
.gallery { position: relative; width: calc(var(--size) + var(--step)*4); }
.item:hover { border-color: var(--border-hover); z-index: 10; }Configura Maven con Java 25 y dependencia de PostgreSQL.
<properties>
<maven.compiler.source>25</maven.compiler.source>
<maven.compiler.target>25</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.7.3</version>
</dependency>
</dependencies>Proveedor de conexiones JDBC.
- Método estático
getConexion()usa URL, usuario y contraseña - Manejo de
Class.forNamey try-with-resources
Clases Java sencillas que representan tablas:
- Asignatura, Colegio, Curso, Prestamo, Profesor
- Propiedades privadas, getters y setters
Clases DAO con métodos CRUD:
insertar(),listar(),actualizar(),eliminar()- Uso de
PreparedStatementy mapeoResultSet→ modelo
Menú de consola para gestionar:
- Libros
- Clientes
- Préstamos
Controles de entrada con Scanner y switches para llamadas a DAO.
Prueba de conexión: obtiene y cierra la conexión a la base de datos
classDiagram
class Asignatura
class Colegio
class Curso
class Prestamo
class Profesor
class AsignaturaDAO
class ColegioDAO
class CursoDAO
class PrestamoDAO
class ProfesorDAO
AsignaturaDAO --> Asignatura : manipula
ColegioDAO --> Colegio : manipula
CursoDAO --> Curso : manipula
PrestamoDAO --> Prestamo : manipula
ProfesorDAO --> Profesor : manipula
Juego de Vacas y Toros en consola Node.js:
- Genera número secreto de 4 dígitos sin repeticiones
- Lógica de conteo de “vacas” y “toros”
- Recursión con
readlinepara solicitar intentos
Interfaz retro estilo “ventana” para TaTeTi:
- Fuentes clásicas via Google Fonts
- Controles de jugador, selección de símbolo y modo IA
- Tablero 3×3 con
<table>y CSS de scanlines
Lógica del juego:
- Maneja turnos, validaciones y detección de línea ganadora
- IA sencilla: bloqueos y ataques básicos
- Eventos
clickychangepara interactividad
.project,.classpath.settings/org.eclipse.*.prefscon JavaSE-17 y módulo habilitado
Define el módulo EjercicioJava001.
Colección de ejercicios de operaciones básicas:
- Métodos estáticos para cálculos numéricos
- Cada clase aborda un ejercicio concreto (1 al 9)
.project,.classpath.settingscon compilador Java 17
Define el módulo EjercicioPoker.
Modela carta a partir de código (“AS”, “10H”):
- Extrae valor y palo via enums
ValoryPalo
Evalúa mano de poker:
- Cuenta frecuencia de valores
- Detecta color y escalera
- Retorna
TipoMano
Palo: S, C, H, DValor: DOS…AS con métododesdeTextoTipoMano: ESCALERA_COLOR, POKER, FULL, …
Consultas de ranking y agregaciones:
- Top clientes, productos más vendidos, facturas por tipo
Transformaciones para normalizar esquemas
Dump completo de base de datos normalizada en PostgreSQL
- pom.xml, mvnw,
.mvn/wrapper application.properties(datos de conexión y puerto)
Clase principal con @SpringBootApplication.
- AsignaturaController
- ColegioController
- CursoController
- PrestamoController
- ProfesorController
Cada uno expone rutas CRUD con @RestController y mapeos GET/POST/PUT/DELETE.
Clases *DTO para recibir datos de cliente:
- AsignaturaDTO, ColegioDTO, CursoDTO, PrestamoDTO, ProfesorDTO
Entidades anotadas con @Entity y @Table(schema = "prestamo_libro_ej4"):
- Asignatura, Colegio, Curso, Prestamo, Profesor
Relaciones @ManyToOne para llaves foráneas.
Interfaces que extienden JpaRepository<Entidad, Long>:
- AsignaturaRepository, ColegioRepository, CursoRepository, PrestamoRepository, ProfesorRepository
Patrón servicio:
- Interfaces
*Servicecon métodos CRUD - Implementaciones
*ServiceImplinyectando repositorios - Conversión de DTO → modelo y validaciones
EditorialApplicationTests.java para contexto Spring Boot.
- pom.xml, mvnw,
.mvn/wrapper application.propertiescon nombre de aplicación
Arranque de la API con @SpringBootApplication.
Ruta /auth para login y registro:
- POST
/loginrecibeLoginRequest - POST
/registerrecibeRegisterRequest
LoginRequest,RegisterRequestcon camposusernameypassword
JwtUtil: genera y valida tokensJwtFilter: intercepta requests y extrae tokenSecurityBeansConfig:@BeandePasswordEncoder(BCrypt)
- Entidad
Usuariocon@Entity @Table("usuarios") - Repositorio
UsuarioRepository extends JpaRepository - Servicio
UsuarioServiceque encripta password y registra usuarios
LoginJwtApplicationTests.java para verificar carga de contexto
Este documento ofrece una visión detallada de cada componente, su propósito y cómo interactúan entre sí a lo largo del repositorio.