Este proyecto es una aplicación web que permite gestionar un catálogo de libros y películas. Ofrece funcionalidades como registro e inicio de sesión, gestión de contenido (admin), añadir a wishlist y crear reseñas.
- Backend: Java 17, Spring Boot, Spring MVC, Spring Data JPA, H2 (base de datos en memoria)
- Frontend: HTML, CSS, JavaScript (JS puro)
- Testing: JUnit 5, TestRestTemplate
- Otros: Maven, Lombok, H2 Console
src/main/java/com/paulabonets/peliculas/
controller/→ Controladores RESTmodel/→ Entidades JPArepository/→ Interfaces JPA (acceso a datos)service/→ Lógica de negocioutil/→ Clases de utilidad (helpers)records/→ Clases DTO (para login, registro, etc.)seeder/→ Carga inicial de datos (admin, libros, pelis)
src/main/resources/static/
index.html→ Página principal (catálogo)login.html→ Inicio de sesiónregister.html→ Registro- Archivos CSS y JS
src/test/java/com/paulabonets/peliculas/
unit/→ Pruebas unitariasintegration/→ Tests de integracióne2e/→ Pruebas end-to-end
- Inicio de sesión por email y contraseña
- Roles:
USERyADMIN - Se maneja la sesión mediante una cookie HTTP
| Método | Endpoint | Descripción |
|---|---|---|
| POST | /register |
Registro de usuario |
| POST | /login |
Inicio de sesión (devuelve cookie) |
| POST | /logout |
Cierre de sesión |
| Método | Endpoint | Descripción |
|---|---|---|
| GET | / |
Listar todos los contenidos |
| GET | /?type=BOOK |
Filtrar por tipo (BOOK o MOVIE) |
| GET | /?title=Matrix |
Filtrar por título |
| GET | /{id} |
Obtener contenido por ID |
| DELETE | /{id} |
Eliminar contenido (ADMIN) |
| Método | Endpoint | Descripción |
|---|---|---|
| POST | / |
Crear un libro (ADMIN) |
| PUT | /{id} |
Actualizar un libro (ADMIN) |
| Método | Endpoint | Descripción |
|---|---|---|
| POST | / |
Crear una película (ADMIN) |
| PUT | /{id} |
Actualizar una película (ADMIN) |
| Método | Endpoint | Descripción |
|---|---|---|
| POST | / |
Crear una review (requiere sesión) |
| GET | /content/{id} |
Obtener reviews por ID de contenido |
| GET | /{id} |
Obtener review por ID |
| DELETE | /{id} |
Eliminar review propia |
| Método | Endpoint | Descripción |
|---|---|---|
| GET | / |
Obtener la wishlist del usuario |
| POST | /{contentId} |
Añadir contenido a la wishlist |
| DELETE | /{contentId} |
Eliminar contenido de la wishlist |
- Registro e inicio de sesión
- Navegar por el catálogo filtrando por tipo o título
- Ver detalles de un libro o película
- Añadir/quitar contenido de la wishlist
- Escribir y eliminar reseñas
- Crear y editar libros/películas
- Eliminar contenido
- ✅ Pruebas unitarias: validación de modelos y servicios
- ✅ Pruebas de integración: lógica entre capas (servicio/repositorio)
- ✅ Pruebas E2E: casos completos (login, wishlist, reviews, logout)
Herramientas: JUnit 5, TestRestTemplate, assertions nativas
- Clona el repositorio
- Ejecuta con Maven o desde tu IDE
- Accede a https://jpa-1-bo8z.onrender.com
- Login admin:
admin@admin.com/admin
- Joel – Backend, frontend y deployment
- Alejandra – Backend, testing y frontend
- Paula – Frontend, testing y documentación
La aplicación está desplegada en Render usando un contenedor de Docker.