Durante el taller desarrollaremos un chat y un asistente virtual, para facilitar las ya famosas bot-ops. Si bien el foco del producto a realizar estará en el asistente, debemos sentar sólidas bases con un chat usable y robusto.
Las entregas, los compromisos, las estimaciones y las demostraciones correran por exclusiva cuenta del grupo de trabajo. La cátedra no intenvendrá en ello, más que estableciendo las fechas en las que se solicitarán los controles. Los mismos serán avisados con una semana de antelación, al menos.
Para tener el taller aprobado, los grupos deberán sumar al menos 200 puntos de historia. Pasado ese hito, se evaluarán aspectos no funcionales del proyecto, los cuales impactarán en la calificación final del trabajo grupal.
Adicionalmente se utilizará el seguimiento individual de los estudiantes para obtener una calificación final del taller. Se presentarán ejemplos de calificación más adelante.
Este conjunto de requisitos serán necesarios y no podrán estar ausentes. Sin embargo, los mismos no cuentan al momento de sumar los puntos de historia aportados por el grupo al proyecto.
La funcionalidad del asistente virtual será variada, tal que cada grupo puede terminar su cursada teniendo asistentes con funcionalidades totalmente diferentes. Cada una de ellas (especificadas en forma de historias de usuario) estará acompañada del número de puntos de historia que tendrán asociadas al momento de valorizarlo.
- Como usuario quiero ingresar al chat con mi nombre de usuario y una contraseña para ingresar a las salas.
- Como usuario quiero seleccionar una sala de entre todas para poder participar de las conversaciones que allí sucedan.
- Como usuario quiero crear nuevas salas para establecer temas de discusión puntuales.
- Como usuario quiero cambiar de sala en cualquier momento para discutir sobre nuevos tópicos.
- Como usuario quiero crear salas privadas, en las cuales pueda invitar a mis contactos y que nadie más pueda verlas.
- Como usuario quiero invitar a otros usuarios a las salas privadas de chat de las que formo parte.
- Como usuario quiero tener conversaciones privadas con otros usuarios, independientemente de las salas creadas, para poder mantener un intercambio puntual con mis contactos.
- Como usuario quiero mencionar a otros usuarios para que sean notificados de mi intención.
- Como usuario quiero poder invocar al asistente virtual mencionándolo, para solicitarle diversas tareas.
- Como usuario quiero saludar al asistente para tener un trato cordial con él. 5pts. Hola. Buen día. Buenas tardes. Etc.
- Como usuario quiero agradecer al asistente para mantener una buena relación con él. 5pts. Gracias. Muchas gracias. Etc.
- Como usuario quiero pedirle al asistente datos temporarios para comprender en qué momento del día estamos. 10pts. Hora, Fecha, Día de la semana.
- Como usuario quiero pedirle al asistente datos sobre períodos de tiempo para facilitarme los cálculos. 20pts. Día dentro de X dias/meses. Día hace X días/meses. Días/Meses/Años desde/hasta X fecha.
- Como usuario quiero pedirle al asistente efemérides y trivias sobre temas generales para impresionar a mis amigos con conocimiento general. 15pts. Efemérides y trivia x webservices.
- Como usuario quiero pedirle al asistente que resuelva por mí cálculos que involucren sumas, restas, multiplicaciones, divisiones, potencias, porcentajes y distintos niveles de paréntesis para agilizar mis cálculos complejos. 25pts.
- Como usuario quiero definir fórmulas similares a la historia anterior, pero con incógnitas para reutilizar los cálculos con distintos valores. 25pts.
- Como usuario quiero pedirle al asistente datos financieros en tiempo real para manejar ágilmente mis inversiones. 15pts. Valor de otras monedas en la moneda configurada, valor de acciones.
- Como usuario quiero pedirle al asistente los datos del clima en tiempo real para saber si debo utilizar o no paraguas. 15pts. Debe ser de la locación actual, o de la solicitada.
- Como usuario quiero entretenerme con el asistente, jugando al "más chico, más grande" para pasar el rato cuando no hay nada que hacer. 20pts. Debe poder desempeñar ambos roles: el de adivinar, y el de ser adivinado.
Nota 1: Se proveen algunos casos de aceptación en este mismo repositorio, para facilitar la comprensión de algunos puntos. Nota 2: Se agregarán más requisitos conforme avance el cuatrimestre.
El trabajo tendrá cuatro fechas de entrega, siendo importante mantener un nivel de trabajo constante a lo largo de ellas. Se estima una entrega de 50 puntos de historia por cada una de las fechas, como mínimo.
La primera entrega será el sábado 5 de Mayo. El compromiso del grupo se tomará el 21 de Abril.