Aplicación web de gestión de cine desarrollada con Spring Boot, Thymeleaf y enfoque profesional en testing automatizado, calidad software e integración continua.
Only Film es una aplicación web completa de gestión de cine desarrollada con Spring Boot y Thymeleaf, donde:
- 👀 Los visitantes pueden consultar películas, sesiones y disponibilidad.
- 🔐 Los usuarios registrados pueden comprar entradas y acceder a sus tickets QR.
- 🛠️ Los administradores gestionan películas, salas, sesiones y usuarios desde un panel administrativo.
El proyecto pone especial énfasis en:
- arquitectura MVC
- testing automatizado
- calidad software
- integración continua
- buenas prácticas de desarrollo
- Consultar cartelera
- Ver detalles de películas
- Ver sesiones disponibles
- Registro e inicio de sesión
- Compra de entradas
- Selección de butacas
- Checkout de tickets
- Tickets QR
- Historial de entradas
- CRUD de películas
- CRUD de salas
- CRUD de sesiones
- Gestión de usuarios
- Activación/desactivación lógica de elementos
| Entidad | Descripción |
|---|---|
| Movie | Películas disponibles en cartelera |
| Room | Salas de proyección |
| Session | Sesiones asociadas a película y sala |
| Ticket | Entradas asociadas a usuario y sesión |
| Review | Valoraciones y comentarios |
| User | Usuarios con roles (ROLE_USER, ROLE_ADMIN) |
- Java 25
- Spring Boot 4
- Spring MVC
- Spring Data JPA
- Hibernate
- Thymeleaf
- Bootstrap 5
- HTML5
- CSS3
- H2 Database
- JUnit 5
- Mockito
- MockMvc
- Selenium WebDriver
- Git
- GitHub
- GitHub Actions
-
Arquitectura MVC desacoplada mediante:
- Controller
- Service
- Repository
-
Testing multinivel:
- Repository Tests
- Service Tests
- Controller Tests
- Selenium UI Tests
-
Seguridad con Spring Security y roles:
ROLE_USERROLE_ADMIN
-
Generación dinámica de tickets QR.
-
Gestión de estados de tickets:
LIBREPAGADOCANCELADO
-
Borrado lógico mediante atributo
active. -
Integración continua mediante GitHub Actions.
-
Base de datos H2 en memoria para testing y desarrollo rápido.
El proyecto incorpora diferentes niveles de testing automatizado.
Validación de consultas JPA y persistencia.
Testing de lógica de negocio utilizando Mockito y mocks.
Validación de endpoints MVC mediante MockMvc.
Automatización del flujo completo de usuario:
- Login
- Navegación
- Selección de butaca
- Checkout
- Generación de ticket QR
GitHub Actions automatiza:
- compilación
- ejecución de tests
- validación de integración
ℹ️ Los workflows se ejecutan manualmente mediante
workflow_dispatchpara optimizar el consumo de minutos disponibles en el entorno académico compartido.
| Acción | Visitante | Usuario | Admin |
|---|---|---|---|
| Ver películas y sesiones | ✅ | ✅ | ✅ |
| Comprar tickets | ❌ | ✅ | ✅ |
| Acceder a tickets QR | ❌ | ✅ | ✅ |
| Gestionar películas | ❌ | ❌ | ✅ |
| Gestionar sesiones | ❌ | ❌ | ✅ |
| Gestionar usuarios | ❌ | ❌ | ✅ |
- Java 25
- Maven
- Git
git clone https://github.com/certidevs/g1_testing.git
cd g1_testingmvn spring-boot:runAbrir en navegador:
http://localhost:8080
| Usuario | Contraseña | Rol |
|---|---|---|
| admin | admin | Administrador |
| user | user | Usuario |
URL:
http://localhost:8080/h2-console
JDBC URL:
jdbc:h2:mem:testdb
Usuario:
sa
Contraseña:
(vacía)
src/main/java/com/demo
├── config/ # Seguridad y configuración
├── controller/ # Controladores MVC
├── model/ # Entidades JPA y enums
├── repository/ # Repositorios Spring Data JPA
├── service/ # Lógica de negocio
└── dto/ # DTOs y formularios
src/test/java/com/demo
├── controller/ # Controller Tests
├── repository/ # Repository Tests
├── service/ # Service Tests
└── ui/ # Selenium Tests
- Fran Ramírez Martín
- Adrián López de Haro
- Barbara Urbano
- Andrés Soto
- API REST
- Dockerización
- PostgreSQL/MySQL
- SonarQube
- Despliegue cloud
- Pasarela de pago
- JWT/API móvil
- Cobertura avanzada de tests
https://github.com/certidevs/g1_testing
Proyecto académico desarrollado con fines educativos.
Hecho con ☕ Java + 🍃 Spring Boot + 🎬 pasión por el testing



