Trabajo práctico TACS 2018 - 1er Cuatrimestre

El objetivo del TP es desarrollar una aplicación que permita a los usuarios hacer seguimiento de sus inversiones en criptomonedas utilizando diferentes herramientas. Como fuente para las cotizaciones se utilizará la API de coinmarketcap.

La aplicación funcionará de modo stand alone, y estará publicada en la nube para ser accedida.

El TP constará de 5 entregas en las cuales de forma iterativa e incremental se irán agregando funcionalidades a la aplicación.

Consejos de la cátedra para aprobar el TP:


Restricciones y consideraciones

Requerimientos no funcionales

  1. La aplicación debe estar hosteada en la nube, puede ser cualquier flavour (PaaS, IaaS). Las entregas previas a la implementación pueden correr de forma local.
  2. Todas las llamadas al servidor deben ser asincrónicas (desde el frontend, no desde el backend).
  3. Si bien se espera algo sencillo. La aplicación debe tener un frontend amigable a los usuarios. (Usar la creatividad y los recursos que brinda la API)
  4. Se debe utilizar maven para gestionar el life-cycle de la aplicación.
  5. Se debe utilizar GIT como SCM.
  6. El nivel de cobertura de tests debe ser superior al 70%.
  7. Es tan importante el hecho de que la aplicación funcione como se espera como aplicar un buen diseño para la construcción de la misma.
  8. Todos los métodos no triviales deben tener su correspondiente javadoc explicando su función, forma de uso y cualquier otra información relevante.
  9. Cualquier decisión respecto del código o las soluciones utilizadas debe estar documentada, así como un howto.txt o README.md para levantar la aplicación incluído en el repositorio.
  10. La aplicación debe ser capaz de correrse utilizando el comando mvn jetty:run o similar, a definir por el equipo y especificar en el documento README.md o wiki.
  11. La aplicación debe tener persistencia en algún tipo de base sin restricción. La elección de la misma debe estar justificada.
  12. La APP tiene que cumplir con requerimientos mínimos de seguridad (Manejo de contraseñas, recursos externos, etc.)
  1. Las claves deben ser guardadas de forma correcta.
  2. En caso de existir, las API keys NUNCA debe ser expuestas al usuario

Administrativas

  1. Las entregas deberán realizarse el día pactado para la misma antes de las 19 Hs. con un tag llamado Entrega_XX correspondiente al número de entrega.
  2. Las entregas se realizarán indicando el link al repositorio GIT y el tag designado para la entrega.
  3. Todo retraso en una entrega que no haya sido correctamente comunicado y justificado tendrá como penalización el agregado de nuevos requisitos para la aprobación final del TP.
  4. Los requerimientos no funcionales no solo son importantes para aprobar el TP sino que están directamente relacionados con la filosofía y objetivos de la materia. La calidad no se negocia.

User Stories:


Entregas:

Entrega 1 - Basis

Esqueleto de la aplicación WEB.

Se debe definir un primer approach hacia los recursos y URLs REST que se utilizarán para cumplir con las historias propuestas. Para esta entrega no es necesario que las historias funcionen sino que los recursos devuelvan respuestas ficticias estáticas. No es necesario tener un frontend en esta instancia.

Entrega 2 - App volátil + API externa

Funcionalidad principal sin diferenciar usuarios y persistiendo en memoria.

Se debe definir el comportamiento de los principales servicios relacionados al dominio y cumplir con la funcionalidad persistiendo en memoria. La integración principal con la API externa debe estar disponible en esta entrega así como la integración con Telegram.

Entrega 3 - Interfaz de usuario: Frontend / Telegram

Primera versión del front end o de la API de Telegram. A elegir uno de los 2.

Opcional: Para aplicar a la promoción implementar tanto Frontend como Telegram.

Entrega 4 - Persistencia + Cloud

Persistencia utilizado una base de datos

Se debe modificar la aplicación para que en vez de almacenar los datos en memoria, la misma lo haga utilizando alguna base a definir por el equipo. Para esta entrega la aplicación debe estar deployada en la nube.

Entrega 5 - Final

Entrega final del TP. Cerrar historias que no hayan sido atacadas + bonus.

Se deben implementar todas las historias propuestas en el backlog. A su vez se coordinará con el ayudante la inclusión de una o más historias extra.