# Backend para banco virtual con criptomoneda propia
El proyecto propuesto consiste en diseñar el backend para un banco virtual
UJABank que usa una moneda propia, el UJACoin.
Como todo banco es posible abrir una cuenta, ingresar dinero (en euros que se
convierten en UJACs según el cambio actual) y transferir dinero de una cuenta a otra.
Se deben habilitar servicios para implementar la siguiente funcionalidad mínima:
- Registrar nuevos usuarios en UJABank creando una nueva cuenta. El usuario debe indicar sus datos personales (nombre, DNI o pasaporte, dirección de domicilio, fecha de nacimiento, tlf y e-mail).
- Hacer login de un usuario registrado previamente.
- Crear nuevas cuentas (para usuarios ya registrados con una primera cuenta).
- Ingresar dinero en euros, convirtiéndose en UJACs. Para ello se indicarán los
datos de una tarjeta de crédito (titular, número, fecha de caducidad y CVV).
- Transferir UJACoins de una cuenta a otra de UJABank de un usuario registrado.
Las transferencias llevan asociada fecha, concepto e importe.
- Retirar UJACs de una cuenta, que se transferirán en euros a la cuenta asociada
a una tarjeta de crédito (indicar los mismos datos que en el ingreso).
- Consultar movimientos de una cuenta de un usuario registrado (ingresos
y transferencias).
Para probar el funcionamiento del backend, se integrará en el mismo proyecto un
cliente sencillo de consola con un funcionamiento similar al de un cliente real
(web, móvil). Es importante que las clases relacionadas con este cliente se
mantengan en un paquete separado del resto del backend para evitar incumplimientos
del principio de separación en capas y facilitar su separación en un proyecto
diferente más adelante.
Nota: el profesor entregará una clase que devolverá el cambio actualizado Euro-UJAC.
@@ -16,7 +16,7 @@ Después arranca el contenedor, define _secret_ como clave de root y
asocia MySQL al puerto de la máquina anfitrión 33060.
```
docker exec mysql-db mysql -psecret -e “create database ujacoin; use ujacoin; create user 'ujacoin' identified by 'secret'; grant all privileges on ujacoin to 'ujacoin'@'%'"
docker exec mysql-db mysql -psecret -e “create database ujacoin; use ujacoin; create user 'ujacoin' identified by 'secret'; grant all privileges on ujacoin.* to 'ujacoin'@'%'"
```
Este comando ejecuta la utilidad de administración `mysql` dentro del contenedor,