Proyecto InazumaGo: aplicación de escritorio JavaFX para jugar Inazuma Go con integración a Firebase Realtime Database.
- Inicio rápido
- Documentación principal
- Compilación y pruebas
- Ejecución de la aplicación
- Configuración local
- Notas para desarrolladores
Para ejecutar tests y compilar localmente en PowerShell (Windows):
# Opción 1: Usar el script de JDK local (si tienes configurado doc/ia/user-prompt.md)
powershell -ExecutionPolicy Bypass -File .\scripts\use-user-jdk.ps1 -RunMaven
# Opción 2: Usar Maven directamente (si está en PATH)
mvn clean compile -DskipTests
mvn testPara ejecutar la aplicación:
# Opción 1: Con script de JDK local
powershell -ExecutionPolicy Bypass -File .\scripts\use-user-jdk.ps1 -RunMain
# Opción 2: Con Java directamente
java -cp target/classes;target/dependency/* es.iesquevedo.MainLee los siguientes documentos para entender el proyecto:
doc/manual-usuario.md— Manual de usuario: instrucciones de uso, casos de uso, ejemplos paso a paso y FAQ.doc/manual-tecnico.md— Manual técnico: arquitectura, contratos, configuración y guía de desarrollo.doc/reglamento-inazumago.md— Reglamento del juego: reglas, validaciones y políticas.doc/ci.md— Guía de CI/CD y ejecución de tests automáticos.doc/normas-trabajo-proyecto.md— Normas de trabajo: flujo de ramas, PR y revisiones.
# Tests con Maven (recomendado)
mvn -DskipTests=false test
# Variante silenciosa recomendada para CI/local
mvn -q -DskipTests=false test
# Ver resultados
# Los reportes de Surefire estarán en target/surefire-reports/mvn clean package
# El JAR se genera en target/InazumaGo-1.0-SNAPSHOT.jar# Packaging normal (con tests)
.\scripts\package.ps1
# Packaging rapido (sin tests)
.\scripts\package.ps1 -SkipTestsVariables opcionales para el script:
# Cambia la carpeta de salida de releases (por defecto: target\releases)
$env:INAZUMAGO_RELEASE_DIR = 'C:\tmp\inazumago-releases'
# Fuerza saltar tests sin pasar -SkipTests
$env:INAZUMAGO_PACKAGE_SKIP_TESTS = 'true'El script copia el JAR final a target/releases/ (o al directorio configurado).
Checklist de seguridad de packaging:
- Verificar que no hay credenciales en código ni en
application.propertiesantes de empaquetar. - Mantener credenciales solo en variables de entorno o archivos locales ignorados (por ejemplo
doc/ia/user-prompt.md). - Confirmar que
.gitignoreexcluye archivos locales sensibles antes de hacer commit. - Revisar el contenido de
target/releases/para asegurar que solo se publica el artefacto esperado. - No subir tokens, claves ni URLs privadas en logs o documentación del release.
Si necesitas usar un JDK específico configurado en doc/ia/user-prompt.md:
# Configurar ruta del JDK en la sesión actual
.\scripts\use-user-jdk.ps1
# Compilar y ejecutar tests
.\scripts\use-user-jdk.ps1 -RunMaven
# Compilar, ejecutar tests y lanzar la app
.\scripts\use-user-jdk.ps1 -RunMaven -RunMainNota: Para usar este script, edita doc/ia/user-prompt.md y añade una línea como:
$env:JAVA_HOME = 'C:\ruta\a\tu\jdk'# Compilar primero
mvn clean compile
# Ejecutar la app (abre ventana gráfica)
java -cp target/classes;target/dependency/* es.iesquevedo.Main# Ejecutar en modo CLI sin GUI
java -cp target/classes;target/dependency/* es.iesquevedo.Main console.\scripts\use-user-jdk.ps1 -RunMainPara usar Firebase Realtime Database en producción, configura:
$env:FIREBASE_URL = 'https://tu-proyecto.firebaseio.com'Si no está configurada, la app usa un repositorio en memoria para pruebas.
NO subas credenciales al repositorio. Para desarrollo local:
- Crea un archivo local
doc/ia/user-prompt.md(no se sube a Git) - Configura ahí tus variables:
$env:JAVA_HOME = 'C:\ruta\jdk' $env:FIREBASE_URL = 'https://...'
Consulta .gitignore para archivos excluidos.
src/
main/
java/es/iesquevedo/
Main.java # Punto de entrada (GUI + CLI)
controller/
MainController.java # Controlador FXML
service/
MainService.java # Interfaz de servicios
impl/MainServiceImpl.java # Implementación
repository/
MainRepository.java # Interfaz de persistencia
inmemory/... # Implementación en memoria
firebase/... # Implementación Firebase
resources/
fxml/
Main.fxml # Interfaz principal JavaFX
application.properties # Configuración
test/
java/... # Tests unitarios e integración
- JavaFX 21 — Framework GUI
- Maven — Gestión de dependencias y build
- JUnit 5 — Testing
- Mockito — Mocking en tests
- WireMock — Stubbing de HTTP en tests
Para contribuir:
- Lee
doc/normas-trabajo-proyecto.md - Crea una rama desde
dev:git checkout -b feature/descripcion - Haz commit con mensajes descriptivos
- Abre un PR y espera revisiones
- Merge a
devuna vez aprobado
doc/epicas-historias-sprints.md— Plan de sprints y historias de usuarioscripts/— Scripts útiles de PowerShelldoc/ia/— Prompts para IA (no editar sin consentimiento del equipo)