Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

113 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Inazuma Go

Proyecto InazumaGo: aplicación de escritorio JavaFX para jugar Inazuma Go con integración a Firebase Realtime Database.

Tabla de contenidos

  1. Inicio rápido
  2. Documentación principal
  3. Compilación y pruebas
  4. Ejecución de la aplicación
  5. Configuración local
  6. Notas para desarrolladores

Inicio rápido

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 test

Para 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.Main

Documentación principal

Lee los siguientes documentos para entender el proyecto:

Compilación y pruebas

Ejecutar tests

# 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/

Empaquetar el proyecto

mvn clean package
# El JAR se genera en target/InazumaGo-1.0-SNAPSHOT.jar

Script de packaging (E5-US1)

# Packaging normal (con tests)
.\scripts\package.ps1

# Packaging rapido (sin tests)
.\scripts\package.ps1 -SkipTests

Variables 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.properties antes de empaquetar.
  • Mantener credenciales solo en variables de entorno o archivos locales ignorados (por ejemplo doc/ia/user-prompt.md).
  • Confirmar que .gitignore excluye 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.

Usar el script de JDK local

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 -RunMain

Nota: 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'

Ejecución de la aplicación

Aplicación GUI (JavaFX)

# Compilar primero
mvn clean compile

# Ejecutar la app (abre ventana gráfica)
java -cp target/classes;target/dependency/* es.iesquevedo.Main

Modo consola

# Ejecutar en modo CLI sin GUI
java -cp target/classes;target/dependency/* es.iesquevedo.Main console

Con script

.\scripts\use-user-jdk.ps1 -RunMain

Configuración local

Variables de entorno

Para 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.

Credenciales

NO subas credenciales al repositorio. Para desarrollo local:

  1. Crea un archivo local doc/ia/user-prompt.md (no se sube a Git)
  2. Configura ahí tus variables:
    $env:JAVA_HOME = 'C:\ruta\jdk'
    $env:FIREBASE_URL = 'https://...'

Consulta .gitignore para archivos excluidos.

Notas para desarrolladores

Estructura del proyecto

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

Dependencias principales

  • JavaFX 21 — Framework GUI
  • Maven — Gestión de dependencias y build
  • JUnit 5 — Testing
  • Mockito — Mocking en tests
  • WireMock — Stubbing de HTTP en tests

Próximos pasos

Para contribuir:

  1. Lee doc/normas-trabajo-proyecto.md
  2. Crea una rama desde dev: git checkout -b feature/descripcion
  3. Haz commit con mensajes descriptivos
  4. Abre un PR y espera revisiones
  5. Merge a dev una vez aprobado

Más información

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages