Rank It

Se acabaron los tiempos donde las personas simplemente salían de su casa en búsqueda de actividades para hacer, hoy mas que nunca todo se rige por la recomendación, desde la mejor heladería del barrio hasta ese electricista que todos quieren llamar.

Y con las herramientas con las que contamos es que aparece este startup: RANK-IT! El objetivo es tener una herramienta genérica que reúna los rankings de todo tipo!

Para todo esto nos pidieron una absurda cantidad de requerimientos "vitales" para la app y después de varias idas y vueltas llegamos al acuerdo de un plan realista para hacer durante todo el cuatrimestre y abarcando todas las pruebas de concepto que nos solicitaron!

Vamos a dividir la aplicación en 3 componentes, cada componente va a ser 1 TP:

  • Módulo de administración: Solamente unos pocos de extrema confianza tienen acceso a este módulo, desde acá tiene que ser posible:
    • Administrar Lugares
    • Administrar Servicios
    • Administrar Calificaciones
    • Administrar Usuarios
  • RankIt!
    • Registrar usuario
    • Logearse en el sistema
    • Calificar Lugares o Servicios
    • Ver ranking
    • Administrar calificaciones hechas
  • Question the Rank!
    • Ver ranking
    • Login
    • Marcar review como favorita

TP1: Modulo de administración (Desktop: Arena)

Debe hacer el desarrollo que considere necesario para poder implementar las siguientes pantallas.

Detalle de pantallas

En cada pantalla se aclara las consideraciones especiales para cada una.

Tener en cuenta:

  • Resumen de situación: en todos los casos los números hacen referencia a la totalidad de objetos independientemente de lo que se esté buscando. Por ejemplo si estamos en el administrador de lugares y buscamos "Sushi", el resumen seguirá mostrando 10 lugares inscriptos (2 habilitados y 8 deshabilitados).
  • En todos los casos si contamos con información calculada debe refrescarse adecuadamente, por ejemplo si en lugares editamos Freddo y lo volvemos Habilitado, luego de hacer click en el checkbox debe cambiar la cantidad de lugares habilitados y deshabilitados.
  • En todos los casos es obligatorio definir un nombre (para usuarios, lugares o servicios)
  • En el menú se muestra cantidad de activos / cantidad total en todo lo administrable (en los usuarios se adicionan los baneados entre paréntesis)
  • ATENCIÓN: En donde dice publicaciones, debería decir calificaciones

Administración de Lugares

Fe de erratas: en la siguiente pantalla en donde dice "Servicios" debería decir "Lugares"

Administracion de Servicios

Administracion de Calificaciones

Administraciones de Usuarios

Menu

Se pide

  • Dominio del problema, en un proyecto denominado: rankit-dominio
    • El Dominio debe de estar diseñado orientado a objetos usando los conceptos vistos durante la carrera
    • Debe contarse con tests unitarios, siendo recomendado desarrollar usando TDD
    • Es obligatorio que el dominio refleje lo necesario para que todas las vistas sean implementables
  • Interfaz de usuario desarrollada usando el framework Arena, en un proyecto denominado: rankit_administrador-desktop
    • Debe seguir los conceptos vistos en la materia
    • Se hace principal foco en: correcta separación de responsabilidades y evitar lógica duplicada
    • No se admite lógica de negocio en la vista ==> en caso de no cumplir con la consigna el tp estará inmediatamente desaprobado
    • No se admite lógica de presentación en el dominio ==> en caso de no cumplir con la consigna el tp estará inmediatamente desaprobado

TP2: Rank-IT (Web: Xtrest + Angular)

Entrega 1: Servicios REST

NOTA: Referencia de códigos de error y sus significados: http://www.restapitutorial.com/httpstatuscodes.html

En todos los casos, ante errores inesperados debe devolverse error 500 (internal server error), y en los casos que requieran autenticación 403 si no está presente el ID del usuario en el header.

Deben desarrollarse los siguientes servicios:

2016_2c_TP-RankIT_Servicios

NOTA: El único sevicio opcional es el de registraciones (por PUT)

Entrega 2: Interfaz WEB

Pantallas

Las pantallas deben de permitir:

  • Registrar usuario
  • Logearse en el sistema
  • Calificar Lugares o Servicios
  • Ver ranking
  • Administrar calificaciones hechas

TP3: Rank-IT (Mobile: Android)

Las pantallas deben permitir:

  • Registrarse
  • Ver todas las calificaciones que hizo el usuario
  • Buscar una calificación
  • Ver el detalle de la calificación
  • Editar la calificación

Bonus!!

  • Crear una pantalla para crear una calificación
  • Poder eliminar una calificación