API REST de PlayLore/PlayRole. Spring Boot 4.0.3, Java 21, Maven.
- Java JDK 21 (Adoptium Temurin 21)
- MySQL 8+ (o Docker — ver más abajo)
- Git
- IDE recomendado: IntelliJ IDEA o VS Code con extensionses de Java
El método más rápido para levantar MySQL sin instalarlo:
# Levantar MySQL en Docker
docker-compose up -d mysql
# Arrancar el backend (usa el perfil dev por defecto)
.\mvnw.cmd spring-boot:runEl backend se conectará a MySQL en localhost:3306/playlore_db con usuario root/root.
- Asegúrate de tener MySQL 8+ corriendo en
localhost:3306. - Crea la base de datos:
CREATE DATABASE playlore_db;
- Las tablas se crean automáticamente con
ddl-auto=updateen el perfildev.
Copia .env.example como .env y rellena los valores. En perfil dev todos tienen valores por defecto razonables.
| Variable | Descripción | Default (dev) |
|---|---|---|
DB_URL |
JDBC URL de MySQL | jdbc:mysql://localhost:3306/playlore_db |
DB_USER |
Usuario MySQL | root |
DB_PASS |
Contraseña MySQL | root |
JWT_SECRET |
Clave de firmado JWT (obligatorio en prod) | valor de dev |
RECAPTCHA_SECRET |
Clave secreta de reCAPTCHA | clave de prueba Google |
RECAPTCHA_SKIP_VERIFICATION |
Saltar verificación reCAPTCHA | true |
GOOGLE_CLIENT_ID |
Client ID de Google OAuth | client-id de dev |
CORS_ALLOWED_ORIGINS |
Orígenes CORS permitidos | http://localhost:5173 |
# Tests (H2 en memoria, no necesita MySQL)
.\mvnw.cmd test
# Compilar sin tests
.\mvnw.cmd -q compile -DskipTestssrc/main/java/com/playrole/
controller/ — Endpoints REST (Usuarios, Personajes, Chat, Moderación...)
chat/ — WebSocket, sesiones de personaje, presencia
service/ — Lógica de negocio
security/ — JWT, filtros, configuración de seguridad
config/ — CORS, WebSocket, properties
repository/ — Spring Data JPA
model/ — Entidades JPA
dto/ — Data Transfer Objects
utils/ — HtmlUtils, ImageFileValidator, JwtUtils
- dev (
application-dev.properties): ddl-auto=update, credenciales de desarrollo, reCAPTCHA de prueba. - test (
application-test.properties): H2 en memoria para tests automatizados. - prod (default
application.properties): ddl-auto=validate, secretos por variables de entorno.
PlayRole (c) 2026 by Daniel is licensed under CC BY-SA 4.0.
To view a copy of this license, visit https://creativecommons.org/licenses/by-sa/4.0/