wasipay-beta
v2.5.4
Published
Versión beta para aplicación para casa de cambios, con soporte de varias monedas
Readme
WasiPay
Aplicación de escritorio para casas de cambio, con soporte de múltiples monedas.
Requisitos
| Dependencia | Versión mínima | Verificación |
|---|---|---|
| JDK (con JavaFX) | 17 | java --version |
| Maven | 3.8+ | mvn --version |
| Node.js | 18+ | node --version |
Nota: El JDK debe incluir JavaFX. Si usás una distribución que no lo trae por defecto (como algunas de Eclipse Adoptium), instalá OpenJFX por separado o usá una distribución como Liberica JDK, Azul Zulu o Oracle OpenJDK.
Configuración inicial
1. Variables de entorno
Creá el archivo .env a partir del ejemplo:
cp .env.example .envLuego editá .env y reemplazá el valor de KEY_PRIVATE_PUYU_FIND_PERSON por un app key válido.
Obtención del app key: La clave se coordina con el equipo de fastworkx. Sin ella, la búsqueda de clientes por DNI no funcionará; el resto de la aplicación opera con normalidad.
2. Base de datos
La base de datos SQLite se crea automáticamente en el directorio de datos del usuario al iniciar la aplicación por primera vez. Las migraciones (Flyway) se ejecutan también de forma automática.
3. Datos de ejemplo opcionales
Si querés iniciar la app con datos de ejemplo coherentes con el flujo real, habilitá el seed opcional antes del primer arranque:
WASIPAY_SEED=true mvn javafx:runEl seed reutiliza src/main/resources/db/testdata/seed_test_data.sql y crea solo registros faltantes. Incluye:
- usuarios
admin,cajeroysuper_usercon contraseña1111 - datos de empresa para evitar el bootstrap inicial
- una caja abierta para
cajerocon montos iniciales en PEN, USD y EUR - colores UI para los pares PEN→USD y PEN→EUR
Importante: si ya tenés una base creada, el seed no reemplaza registros existentes. Para probarlo desde cero, eliminá la base local antes de ejecutar la app con
WASIPAY_SEED=true.
Ejecución en desarrollo
# Compilar y empaquetar
mvn clean package
# Ejecutar la aplicación
mvn javafx:runLa aplicación se abrirá con la pantalla de inicio de sesión.
Ejecución de tests
mvn testPublicación a producción
WasiPay se distribuye como paquete npm mediante jdeploy. El comando de publicación empaqueta el JAR y sus dependencias y los sube al registro npm.
Requisitos previos
- Cuenta npm con acceso al scope
@puyu. - Token de automatización (Automation) generado desde npmjs.com con permisos de publicación.
- El paquete
wasipaydebe tener habilitada la opción "Require two-factor authentication or a granular access token with bypass 2fa enabled" en la configuración de publicación de npm.
Comando de publicación
npx jdeploy publishNota: El token npm debe estar configurado en
~/.npmrc. Si no funcionara, verificá que el token tenga permisos de lectura y publicación y que no haya expirado.
Versionado
Se usa versionado semántico (MAJOR.MINOR.PATCH). Antes de publicar, actualizá "version" en package.json.
Estructura del proyecto
src/
├── main/
│ ├── java/pe/puyu/wasipay/
│ │ ├── app/ # Punto de entrada y configuración
│ │ ├── auth/ # Autenticación y sesión
│ │ ├── client/ # Búsqueda de clientes (API fastworkx)
│ │ ├── common/ # Utilidades compartidas (JavaFX, validación, PDF)
│ │ ├── currency_pair/ # Pares de moneda y tipos de cambio
│ │ └── ...
│ └── resources/
│ ├── db/migration/ # Migraciones Flyway (SQLite)
│ └── pe/puyu/wasipay/ # Vistas FXML, CSS, imágenes