Esta entrega tiene por objetivo preparar nuestro entorno de trabajo y familiarizarnos con las herramientas que vamos a utilizar. Las tareas a realizar son:
En esta primera entrega no se pide hacer la interfaz de usuario para el sistema completo, por lo tanto, en la tarea 4 vamos a aprovechar solamente una parte pequeña del dominio que hicimos en la tarea 3. El resto del dominio nos va a servir para los demás TPs.
La siguiente figura muestra un ejemplo de la pantalla que hay que realizar:
Dado que no vamos a tener todavía la aplicación concreta, deben crear datos de prueba antes de abrir la ventana. Como mínimo se debe crear un usuario y varios robots, algunos que pertenezcan al usuario y otros que no.
Si bien en la aplicación podría haber varios usuarios, siempre se va a mostrar la perspectiva de un usuario específico, que administra sus robots y que puede hacerlos pelear con los robots de otros usuarios.
El encabezado de la página debe mostrar el nombre del usuario y el dinero disponible. Debajo se ven los robots propios y el resto de los robots en el sistema (robots de otros usuarios y los que no tienen dueño. La pantalla es sólo a modo de ejemplo. De cada robot se debe mostrar su nombre, poder total, porcentaje, poder efectivo, precio. Las dos grillas son iguales.
Por ahora, la única acción posible es reparar. El botón de reparar se relaciona con el robot seleccionado en la grilla superior.
Agregar los casos de uso que se mencionan a continuación.
Así, la pantalla principal podría pensarse ahora como la imagen siguiente:
Los nuevos botones darán acceso a las nuevas funcionalidades. Que se describen a continuación.
Aclaramos que esta pantalla es solo a modo de ejemplo. Pueden ustedes plantear cambios o mejoras, o implementaciones distintas.
A continuación se muestra una pantalla a modo de ejemplo, que podría servir como guía, aunque no necesariamente debe implementarla tal cual:
Nuevo screenshot de ejemplo:
Bonus:
Implementar el caso de uso de compra, como se describe en la sección del dominio.
Se deberá implementar una pantalla donde:
El sistema entonces evaluará si acepta la oferta, de acuerdo a las reglas del dominio.
// les debemos el ejemplo de pantalla acá
La interfaz deberá exponer la posibilidad de vender uno de nuestros robots.
Para eso, obviamente el usuario deberá seleccionar un robot e indicar "Vender".
Ojo, que según el dominio vimos que la venta es en realidad en base a ofertas que realiza el sistema.
Entonces, al intentar vender un robot, la UI deberá presentar los datos de la oferta, y el usuario será quien decide aceptar o cancelarla, con las consecuencias que eso trae en base a lo descripto en el dominio.
Acá vemos un diagrama a modo de ejemplo de la implementación con un dialogo que se abrirá desde la pantalla principal al seleccionar un robot y clickear "Vender".
Bonus:
Deberán implementar también este caso de uso. En nuestro ejemplo de pantalla principal que mostras más arriba, se puede ver que el usuario puede ver en todo momento la lista de robots que pertenecen a otros usuarios.
Luego, puede seleccionar uno de estos, e iniciar el caso de uso para competir con él.
Nótese que este caso de uso ya tiene la parte de la selección del robot a pelear en la misma pantalla principal. Esto lo hicimos así, ya que creemos que el caso de pelear/competir, es uno de los más importantes, y uno de los que el usuario utilizará con más frecuencia.
Entonces, en nuestro ejemplo al clickear en el botón "Competir", se deberá presentar al usuario una ventana a fín de que ingrese la apuesta.
Luego se deberá resolver el ganador y notificar el resultado.
// les debemos el ejemplo de pantalla acá