TP - Web tradicional

En este TP vamos a realizar una interfaz web basada en Servlets y JSP para el mismo dominio que el TP anterior.  Para ello deberán reutilizar los modelos de dominio y de aplicación que construyeron para el TP anterior. 

Funcionalidad Requerida

En este caso no se pide desarrollar todos los casos de uso, la funcionalidad pedida es la siguiente:
  1. Pantalla principal mostrando los dos listados de robots (propios y ajenos) y que permita desde allí acceder a las demás pantallas.
  2. Vender un robot propio.
  3. Comprar un robot ajeno.
A eso se agrega el requerimiento de poder filtrar ambos listados de robots en la pantalla principal. Para ello a cada una de las dos grillas se asociará un campo de texto y un botón "Filtrar". Los robots se filtran por nombre y se pide que la aplicación recuerde las búsquedas realizadas por el usuario en todo momento. Por ejemplo, si el usuario para comprar un robot pasa a otra pantalla, al regresar el sistema debe respetar los filtros tal como se estaban visualizando antes de la compra.

Tecnologías a utilizar y criterios de evaluación

  • La parte obligatoria puede ser programada siguiendo la arquitectura web tradicional, utilizando HTML, CSS, JSP y Servlets. 
  • No se evaluará el diseño gráfico, pero sí se requiere mostrar alguna utilización mínima de estilos vía CSS. 
  • Tampoco se exige que agreguen comportamiento del lado del cliente ni actualizaciones de contenido vía AJAX. Para los interesados, en la sección bonus encontrarán requerimientos adicionales para realizar con esas tecnologías. 
    Si desean agregar otros comportamiento del lado del cliente pueden hacerlo, previa consulta con algún docente que los pueda guiar.
  • La elección de la distribución de pantallas y la navegación queda a criterio de ustedes. Dado que no les pedimos comportamiento del lado del cliente nuestros criterios de usabilidad serán básicos y se concentrarán en que la forma de navegar y de presentar la información sea claras y consistentes.

Bonus

Comportamiento del lado del cliente (en JavaScript)

En la pantalla de comprar, validar los datos ingresados por el usuario:
  1. Verificar que el valor ingresado sea numérico.
  2. Verificar que el valor ingresado no supere el dinero disponible del usuario.
  3. En ambos casos, se debe deshabilitar el botón "Aceptar", informando al usuario el motivo.

Actualización parcial de una página (vía AJAX)

Cuando se realiza una búsqueda en la pantalla principal, no refrescar toda la pantalla, sino únicamente la tabla que contiene a los robots que se están filtrando en ese momento.