Captain Jack S. in White Bay

El objetivo del TP es desarrollar una aplicación social que nos permite realizar listas de descargas para ser accedidas desde nuestro cliente torrent de preferencia.

La idea es sencilla, el usuario se registra en la aplicación y esta crea un feed RSS privado para el mismo, el cual tiene que poder ser configurado en el cliente torrent para que este descargue automáticamente los ítems que aparecen en dicho feed. El feed inicialmente se podrá cargar de datos a través de una página WEB con un simple campo de texto en el cual iremos pegando las URL a los torrent deseados. El sistema debe prever la posibilidad de crear tantos feeds como el usuario desee. También debe tener integración con Facebook tanto para identificar a los usuarios como para viralizar sus acciones y permitir colaboración.

User Stories:

  1. Como usuario quiero poder registrarme con mi cuenta de Facebook.
  2. Como usuario quiero poder “pegar” la URL de mi torrent en la app, elegir el feed de destino y que al tocar el botón “agregar” se añada dicha URL al feed seleccionado.
  3. Como usuario quiero que cuando agregue un torrent a un feed me de opción de compartirlo en el muro de facebook.
  4. Como owner quiero que cuando se comparta un nuevo torrent mis amigos puedan con un click añadir dicho torrent a su propio feed.
  5. Como usuario quiero poder publicar desde la aplicación en facebook un determinado feed para que mis amigos lo vean y puedan suscribirse a dicho feed.

Restricciones y consideraciones:

  1. La aplicación debe funcionar en Google App Engine.
  2. El login de usuario debe ser con Facebook a travez de OAuth.
  3. Todas las llamadas al servidor deben ser asincrónicas.
  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.
  10. 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.

Entregas:

  1. Esqueleto de la aplicación WEB mostrando un “Hello, World!” (1 semana)
  1. El docente debe recibir el link al repositorio GIT únicamente.
  2. El docente sólo debe ejecutar mvn clean jetty:run para probar la aplicación.
  1. Aplicación WEB capaz de realizar un login a través de Facebook y postear en el muro del usuario. (3 semanas)
  1. La aplicación debe funcionar localmente.
  2. Nuevamente el ayudante sólo debe ejecutar mvn clean jetty:run para probar la aplicación.
  1. Aplicación hosteada en GAE publicando RSS reales. (2 semanas)
  1. El docente debe poder registrarse via facebook en la URL que el grupo provea
  2. El docente debe poder configurar su cliente torrent con el RSS provisto por la aplicación.
  3. El docente debe poder descargar al menos un torrent utilizando la aplicación.
  1. Aplicacion con multiples feeds y funciones virales. (2 semanas)
  1. La aplicación debe poder realizar todas las acciones virales antes descritas.

Links utiles: