SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
 
 
Construcción de 
Interfaces de Usuario 
Departamento de Ciencia y Tecnología 
 
TraiFlix >> TP1 
Una particular empresa está buscando desarrollar una plataforma de series y 
películas en la cual sólo se vean trailers. En principio no parece una idea demasiado 
prometedora, pero quién sabe, en una de esas logra posicionarse. Así que decidimos 
tomar el proyecto y pedirle especificaciones. 
Parte 1: Dominio 
Esta parte del trabajo tiene que ser realizada con tecnología ​Xtend​ para poder 
trabajar luego con la interfaz desktop. Debe existir no sólo un dominio programado 
con código de modelo sino que también debe haber tests que describan el 
comportamiento de dicho modelo. Cómo mínimo debe haber tests que describan 
las funcionalidades pedidas en este enunciado. Será valorada toda verificación extra 
que sea coherente. 
Es importante también acostumbrarse a mantener de forma correcta el código (tal 
como se plantea en las pautas generales que se encuentran en el sitio de la materia). 
Es por ello que vamos a requerir un 80% de coverage para el código de modelo. No 
va a ser necesario cubrir el código de la interfaz desktop pero sí el de modelo. 
Especificaciones 
TraiFlix​ busca ser una plataforma que administre películas y series, y que permita a 
sus usuarios disfrutar del contenido y poder interactuar socialmente entre ellos. 
Las películas deben contener: 
● Un código único en la aplicación (*) 
● Un título 
● Diferentes categorías (**) 
● La clasificación (APT, +13, +16, +18) 
● La fecha de estreno 
● La duración (en minutos) 
● Directores (***) 
 
 
 
● Actores principales (***) 
● Valoraciones de los usuarios ("estrellas" 1..5) 
● Contenido relacionado (****) 
● El link de youtube al trailer 
Las series deben contener: 
● Un código único en la aplicación (*) 
● Un título 
● Diferentes categorías (**) 
● La clasificación (APT, +13, +16, +18) 
● Creadores (***) 
● Contenido relacionado (****) 
● Capítulos 
○ Un código único en la aplicación (*) 
○ Un título 
○ El número de temporada al que pertenece 
○ El número de capítulo dentro de la temporada 
○ La fecha de estreno 
○ La duración (en minutos) 
○ Directores (***) 
○ Actores principales (***) 
○ Valoraciones de usuario ("estrellas" 1..5) 
○ El link de youtube al trailer 
Los usuarios deben contener: 
● Un código único en la aplicación (*) 
● El nombre de usuario 
● El nombre 
● La fecha de registro 
● La fecha de nacimiento 
● Amigos (otros usuarios) 
● El contenido visto 
● El contenido favorito 
● El contenido sugerido por sus amigos 
(*) Con el código debería ser posible para la aplicación identificar unívocamente el 
contenido, ya sea película, serie, capítulo o usuario. 
 
 
(**) Las categorías pueden representar géneros (Acción, Drama, etc) o pueden ser 
definidas por los administradores de contenido (Estreno, Clásico, Para adolescentes, 
etc...). 
(***) No es necesario que sea una lista, puede ser un string donde cada valor esté 
por ejemplo separado por comas. 
(****) P​ueden ser tanto series como películas, pero no capítulos 
Se pide 
1. Diseñar y programar un modelo que cumpla con las especificaciones 
planteadas 
2. Generar todos los objetos necesarios para lograr un diseño efectivo (puede 
que se necesite más objetos que los descriptos en la especificación) 
3. Tener tests unitarios que aseguren el funcionamiento de los objetos 
4. Poder justificar todas las decisiones de diseño tomadas 
5. Utilizar correctamente los patrones de diseño y evitar caer en los 
anti-patrones 
6. Tener un 80% de coverage sobre el modelo 
7. Tener tests de integración que resuelvan las siguientes consultas: 
a. Obtener el listado de las películas 
b. Obtener el listado de las series 
c. Obtener el listado de los usuarios 
d. Conocer el rating de una película 
1
e. Conocer el rating de un capítulo de una serie 
f. Obtener películas y series por categoría 
g. Obtener películas y series por clasificación 
h. La cantidad de temporadas de una serie 
i. La cantidad de capítulos de una serie 
j. Los amigos de un usuario 
k. Dado un usuario, saber qué películas vió 
l. Dado un usuario, saber qué series vió de forma completa  
2
m. Dado un usuario, conocer el contenido recomendado por sus amigos 
n. Obtener el contenido que no tenga cargado el trailer 
   
1
El rating se puede obtener a partir de las valoraciones de los usuarios 
2
Un serie fue vista de forma completa cuando se vieron todos sus capítulos 
 
 
Consultas extras 
Las siguientes consultas no son requeridas pero de existir se obtiene plus en la 
corrección: 
1. Conocer el rating de una serie 
2. Dada una película o serie, obtener su contenido relacionado 
3. Dado un usuario, una serie y una temporada, saber cuántos capítulos vió 
4. Dado un usuario, obtener el listado con los 5 contenidos que más 
recomendados por sus amigos 
5. Dado un usuario, obtener todo el contenido que sea apto según su edad 
También será valorado que exista un diagrama UML (sencillo) del diseño del 
dominio. 
Parte 2: Interfaz desktop 
Esta particular empresa está interesada en que la administración de la aplicación sea 
mediante una interfaz desktop desarrollada con ​Arena​. El hecho de ser desktop les 
permite que un grupo acotado de personas se encarguen de mantener el contenido 
sin necesidad de establecer sistema de roles y accesos. 
Esta interfaz será utilizada a modo de backend para cargar películas y series. Se 
podrán consultar los usuarios pero no se podrán modificar sus datos. También se 
pretende que mediante esta interfaz se puedan realizar distintos tipos de búsquedas 
para que el equipo de marketing pueda analizar estrategias de publicidad 
personalizadas. 
A continuación se detallan las ventanas solicitadas que se deberán desarrollar. Los 
mockups planteados son a modo de ejemplo y guía, pero cada equipo tiene la 
libertad de diseñar a gusto, siempre y cuando se pueda cumplir con la funcionalidad 
de administrar y buscar contenido, como así también poder listas y buscar usuarios. 
Ventana principal 
A ejecutar la aplicación deberá mostrarse una ventana de administración que 
permita la posibilidad de administrar series y películas. Ejemplo: 
 
 
 
Administrar Película 
Se debe poder completar con los datos de la película y permitir agregar contenido 
relacionado. 
 
   
 
 
Administrar Serie 
Se debe poder completar con los datos de la serie y permitir agregar capítulos y 
contenido relacionado. 
 
Administrar Capítulo 
Se debe poder completar con los datos del capítulo. 
 
   
 
 
Ver Usuarios (Extra) 
Se debe poder listar y filtrar los usuarios así como también ver en detalle algún 
usuario particular. Esta funcionalidad no es requerida para aprobar el trabajo pero 
brinda puntos extras. 
 
Consideraciones 
● Los paneles son maquetas de la información requerida, pero el diseño puede 
variar a gusto. 
● Toda información auxiliar (como categorías.) puede estar ​hardcodeada​ en el 
código de modelo. 
● Si bien la plataforma debe poder administrar información, se puede mantener 
información de base ​hardocodeada​ y esa información puede ser "levantada" 
cuando se inicia la aplicación. 
● Además de las pantallas ejemplificadas debe haber ventanas que 
simplemente muestren la información del contenido (“Ver”) 
● El “Agregar contenido relacionado” se puede hacer de dos maneras: o bien 
manteniendo un listado “al lado” de la tabla de Contenido y accionar el 
agregado desde esa misma ventana o bien que se abra una nueva ventada y 
que se agregue al Aceptar. 
 
 
 
Entrega 
La fecha de entrega es el jueves 20 de Septiembre de 2018. 
La entrega es presencial y deben estar presentes todos los integrantes del equipo. 
De existir alguna situación de fuerza mayor se deberá avisar a los docentes con 
antelación.  
Para organizar mejor las correcciones vamos a establecer horarios para cada grupo. 
 

Más contenido relacionado

Similar a Tp1

UDA-Componentes RUP. Migas
UDA-Componentes RUP. MigasUDA-Componentes RUP. Migas
UDA-Componentes RUP. MigasAnder Martinez
 
1416253461 538 _fj_2014_2_s_proyecto_parcial
1416253461 538 _fj_2014_2_s_proyecto_parcial1416253461 538 _fj_2014_2_s_proyecto_parcial
1416253461 538 _fj_2014_2_s_proyecto_parcialEspol
 
PD1_7moA_TS3_JavierLogroño.pptx
PD1_7moA_TS3_JavierLogroño.pptxPD1_7moA_TS3_JavierLogroño.pptx
PD1_7moA_TS3_JavierLogroño.pptxEddyJavierLogrooLen
 
UDA-Componentes RUP dialogo.v2.4.0
UDA-Componentes RUP dialogo.v2.4.0UDA-Componentes RUP dialogo.v2.4.0
UDA-Componentes RUP dialogo.v2.4.0Ander Martinez
 
UDA-Componentes RUP. Diálogo (v2.1.0 deprecado)
UDA-Componentes RUP. Diálogo  (v2.1.0 deprecado)UDA-Componentes RUP. Diálogo  (v2.1.0 deprecado)
UDA-Componentes RUP. Diálogo (v2.1.0 deprecado)Ander Martinez
 
Actionscrip 30
Actionscrip 30Actionscrip 30
Actionscrip 30lore150511
 
Metodologia MeRinde
Metodologia MeRindeMetodologia MeRinde
Metodologia MeRindekyaalena
 
Combinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontendCombinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontendmenttes
 
Introduccion a HTML - XHTML clase 04
Introduccion a HTML - XHTML clase 04Introduccion a HTML - XHTML clase 04
Introduccion a HTML - XHTML clase 04Héctor Estigarribia
 

Similar a Tp1 (20)

UDA-Componentes RUP. Migas
UDA-Componentes RUP. MigasUDA-Componentes RUP. Migas
UDA-Componentes RUP. Migas
 
1416253461 538 _fj_2014_2_s_proyecto_parcial
1416253461 538 _fj_2014_2_s_proyecto_parcial1416253461 538 _fj_2014_2_s_proyecto_parcial
1416253461 538 _fj_2014_2_s_proyecto_parcial
 
PD1_7moA_TS3_JavierLogroño.pptx
PD1_7moA_TS3_JavierLogroño.pptxPD1_7moA_TS3_JavierLogroño.pptx
PD1_7moA_TS3_JavierLogroño.pptx
 
HTML5
HTML5HTML5
HTML5
 
UDA-Componentes RUP dialogo.v2.4.0
UDA-Componentes RUP dialogo.v2.4.0UDA-Componentes RUP dialogo.v2.4.0
UDA-Componentes RUP dialogo.v2.4.0
 
UDA-Componentes RUP. Diálogo (v2.1.0 deprecado)
UDA-Componentes RUP. Diálogo  (v2.1.0 deprecado)UDA-Componentes RUP. Diálogo  (v2.1.0 deprecado)
UDA-Componentes RUP. Diálogo (v2.1.0 deprecado)
 
Clase 09c seleccion
Clase 09c seleccionClase 09c seleccion
Clase 09c seleccion
 
Hora 12
Hora 12Hora 12
Hora 12
 
Actionscrip 30
Actionscrip 30Actionscrip 30
Actionscrip 30
 
Metodologia MeRinde
Metodologia MeRindeMetodologia MeRinde
Metodologia MeRinde
 
La Windows Phone Store
La Windows Phone StoreLa Windows Phone Store
La Windows Phone Store
 
Combinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontendCombinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontend
 
Html4
Html4Html4
Html4
 
Computación 1 y 3
Computación 1 y 3Computación 1 y 3
Computación 1 y 3
 
John ferney rozo roa
John ferney rozo roaJohn ferney rozo roa
John ferney rozo roa
 
Introduccion a HTML - XHTML clase 04
Introduccion a HTML - XHTML clase 04Introduccion a HTML - XHTML clase 04
Introduccion a HTML - XHTML clase 04
 
disenoComponentes.ppt
disenoComponentes.pptdisenoComponentes.ppt
disenoComponentes.ppt
 
Html4 equipo
Html4 equipoHtml4 equipo
Html4 equipo
 
Atix20
Atix20Atix20
Atix20
 
Entrega final DancePlan
Entrega final DancePlanEntrega final DancePlan
Entrega final DancePlan
 

Más de xavazque2

258939538 dumping
258939538 dumping258939538 dumping
258939538 dumpingxavazque2
 
380914324 poo-kotlin
380914324 poo-kotlin380914324 poo-kotlin
380914324 poo-kotlinxavazque2
 
146817358 android
146817358 android146817358 android
146817358 androidxavazque2
 
Curso profesional-de-desarrollo-de-aplicaciones-android-con-kotlin
Curso profesional-de-desarrollo-de-aplicaciones-android-con-kotlinCurso profesional-de-desarrollo-de-aplicaciones-android-con-kotlin
Curso profesional-de-desarrollo-de-aplicaciones-android-con-kotlinxavazque2
 
364196144 hogan-pensamiento-no-verbal-comunicacion-y-juego
364196144 hogan-pensamiento-no-verbal-comunicacion-y-juego364196144 hogan-pensamiento-no-verbal-comunicacion-y-juego
364196144 hogan-pensamiento-no-verbal-comunicacion-y-juegoxavazque2
 
325940441 motion-ui
325940441 motion-ui325940441 motion-ui
325940441 motion-uixavazque2
 
371081023 curso-desarrollo-android
371081023 curso-desarrollo-android371081023 curso-desarrollo-android
371081023 curso-desarrollo-androidxavazque2
 
4.1. validaciones-y-excepciones
4.1. validaciones-y-excepciones4.1. validaciones-y-excepciones
4.1. validaciones-y-excepcionesxavazque2
 
3.1 mvc-mvvm-app model-binding
3.1 mvc-mvvm-app model-binding3.1 mvc-mvvm-app model-binding
3.1 mvc-mvvm-app model-bindingxavazque2
 
5.1. stateles stateful-protocolo_http
5.1. stateles stateful-protocolo_http5.1. stateles stateful-protocolo_http
5.1. stateles stateful-protocolo_httpxavazque2
 
435338801 programacion-mobile-android
435338801 programacion-mobile-android435338801 programacion-mobile-android
435338801 programacion-mobile-androidxavazque2
 
457126889 android-pdf
457126889 android-pdf457126889 android-pdf
457126889 android-pdfxavazque2
 
266521557 apuntes-unidad-formativa-app-inventor
266521557 apuntes-unidad-formativa-app-inventor266521557 apuntes-unidad-formativa-app-inventor
266521557 apuntes-unidad-formativa-app-inventorxavazque2
 
7. react js-1
7. react js-17. react js-1
7. react js-1xavazque2
 
484719815 pidiendo-ayuda-a-los-angeles-pdf
484719815 pidiendo-ayuda-a-los-angeles-pdf484719815 pidiendo-ayuda-a-los-angeles-pdf
484719815 pidiendo-ayuda-a-los-angeles-pdfxavazque2
 
484717855 transmutacion-de-energias-pdf
484717855 transmutacion-de-energias-pdf484717855 transmutacion-de-energias-pdf
484717855 transmutacion-de-energias-pdfxavazque2
 
2.1. arena-y-binding
2.1. arena-y-binding2.1. arena-y-binding
2.1. arena-y-bindingxavazque2
 
411958729 curso-de-delphi-pdf
411958729 curso-de-delphi-pdf411958729 curso-de-delphi-pdf
411958729 curso-de-delphi-pdfxavazque2
 

Más de xavazque2 (20)

258939538 dumping
258939538 dumping258939538 dumping
258939538 dumping
 
380914324 poo-kotlin
380914324 poo-kotlin380914324 poo-kotlin
380914324 poo-kotlin
 
146817358 android
146817358 android146817358 android
146817358 android
 
Curso profesional-de-desarrollo-de-aplicaciones-android-con-kotlin
Curso profesional-de-desarrollo-de-aplicaciones-android-con-kotlinCurso profesional-de-desarrollo-de-aplicaciones-android-con-kotlin
Curso profesional-de-desarrollo-de-aplicaciones-android-con-kotlin
 
364196144 hogan-pensamiento-no-verbal-comunicacion-y-juego
364196144 hogan-pensamiento-no-verbal-comunicacion-y-juego364196144 hogan-pensamiento-no-verbal-comunicacion-y-juego
364196144 hogan-pensamiento-no-verbal-comunicacion-y-juego
 
325940441 motion-ui
325940441 motion-ui325940441 motion-ui
325940441 motion-ui
 
371081023 curso-desarrollo-android
371081023 curso-desarrollo-android371081023 curso-desarrollo-android
371081023 curso-desarrollo-android
 
4.1. validaciones-y-excepciones
4.1. validaciones-y-excepciones4.1. validaciones-y-excepciones
4.1. validaciones-y-excepciones
 
3.1 mvc-mvvm-app model-binding
3.1 mvc-mvvm-app model-binding3.1 mvc-mvvm-app model-binding
3.1 mvc-mvvm-app model-binding
 
5.1. stateles stateful-protocolo_http
5.1. stateles stateful-protocolo_http5.1. stateles stateful-protocolo_http
5.1. stateles stateful-protocolo_http
 
435338801 programacion-mobile-android
435338801 programacion-mobile-android435338801 programacion-mobile-android
435338801 programacion-mobile-android
 
457126889 android-pdf
457126889 android-pdf457126889 android-pdf
457126889 android-pdf
 
266521557 apuntes-unidad-formativa-app-inventor
266521557 apuntes-unidad-formativa-app-inventor266521557 apuntes-unidad-formativa-app-inventor
266521557 apuntes-unidad-formativa-app-inventor
 
7. react js-1
7. react js-17. react js-1
7. react js-1
 
484719815 pidiendo-ayuda-a-los-angeles-pdf
484719815 pidiendo-ayuda-a-los-angeles-pdf484719815 pidiendo-ayuda-a-los-angeles-pdf
484719815 pidiendo-ayuda-a-los-angeles-pdf
 
484717855 transmutacion-de-energias-pdf
484717855 transmutacion-de-energias-pdf484717855 transmutacion-de-energias-pdf
484717855 transmutacion-de-energias-pdf
 
5.layouts
5.layouts5.layouts
5.layouts
 
6.2. js
6.2. js6.2. js
6.2. js
 
2.1. arena-y-binding
2.1. arena-y-binding2.1. arena-y-binding
2.1. arena-y-binding
 
411958729 curso-de-delphi-pdf
411958729 curso-de-delphi-pdf411958729 curso-de-delphi-pdf
411958729 curso-de-delphi-pdf
 

Último

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 

Último (10)

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 

Tp1

  • 1.     Construcción de  Interfaces de Usuario  Departamento de Ciencia y Tecnología    TraiFlix >> TP1  Una particular empresa está buscando desarrollar una plataforma de series y  películas en la cual sólo se vean trailers. En principio no parece una idea demasiado  prometedora, pero quién sabe, en una de esas logra posicionarse. Así que decidimos  tomar el proyecto y pedirle especificaciones.  Parte 1: Dominio  Esta parte del trabajo tiene que ser realizada con tecnología ​Xtend​ para poder  trabajar luego con la interfaz desktop. Debe existir no sólo un dominio programado  con código de modelo sino que también debe haber tests que describan el  comportamiento de dicho modelo. Cómo mínimo debe haber tests que describan  las funcionalidades pedidas en este enunciado. Será valorada toda verificación extra  que sea coherente.  Es importante también acostumbrarse a mantener de forma correcta el código (tal  como se plantea en las pautas generales que se encuentran en el sitio de la materia).  Es por ello que vamos a requerir un 80% de coverage para el código de modelo. No  va a ser necesario cubrir el código de la interfaz desktop pero sí el de modelo.  Especificaciones  TraiFlix​ busca ser una plataforma que administre películas y series, y que permita a  sus usuarios disfrutar del contenido y poder interactuar socialmente entre ellos.  Las películas deben contener:  ● Un código único en la aplicación (*)  ● Un título  ● Diferentes categorías (**)  ● La clasificación (APT, +13, +16, +18)  ● La fecha de estreno  ● La duración (en minutos)  ● Directores (***)   
  • 2.     ● Actores principales (***)  ● Valoraciones de los usuarios ("estrellas" 1..5)  ● Contenido relacionado (****)  ● El link de youtube al trailer  Las series deben contener:  ● Un código único en la aplicación (*)  ● Un título  ● Diferentes categorías (**)  ● La clasificación (APT, +13, +16, +18)  ● Creadores (***)  ● Contenido relacionado (****)  ● Capítulos  ○ Un código único en la aplicación (*)  ○ Un título  ○ El número de temporada al que pertenece  ○ El número de capítulo dentro de la temporada  ○ La fecha de estreno  ○ La duración (en minutos)  ○ Directores (***)  ○ Actores principales (***)  ○ Valoraciones de usuario ("estrellas" 1..5)  ○ El link de youtube al trailer  Los usuarios deben contener:  ● Un código único en la aplicación (*)  ● El nombre de usuario  ● El nombre  ● La fecha de registro  ● La fecha de nacimiento  ● Amigos (otros usuarios)  ● El contenido visto  ● El contenido favorito  ● El contenido sugerido por sus amigos  (*) Con el código debería ser posible para la aplicación identificar unívocamente el  contenido, ya sea película, serie, capítulo o usuario. 
  • 3.     (**) Las categorías pueden representar géneros (Acción, Drama, etc) o pueden ser  definidas por los administradores de contenido (Estreno, Clásico, Para adolescentes,  etc...).  (***) No es necesario que sea una lista, puede ser un string donde cada valor esté  por ejemplo separado por comas.  (****) P​ueden ser tanto series como películas, pero no capítulos  Se pide  1. Diseñar y programar un modelo que cumpla con las especificaciones  planteadas  2. Generar todos los objetos necesarios para lograr un diseño efectivo (puede  que se necesite más objetos que los descriptos en la especificación)  3. Tener tests unitarios que aseguren el funcionamiento de los objetos  4. Poder justificar todas las decisiones de diseño tomadas  5. Utilizar correctamente los patrones de diseño y evitar caer en los  anti-patrones  6. Tener un 80% de coverage sobre el modelo  7. Tener tests de integración que resuelvan las siguientes consultas:  a. Obtener el listado de las películas  b. Obtener el listado de las series  c. Obtener el listado de los usuarios  d. Conocer el rating de una película  1 e. Conocer el rating de un capítulo de una serie  f. Obtener películas y series por categoría  g. Obtener películas y series por clasificación  h. La cantidad de temporadas de una serie  i. La cantidad de capítulos de una serie  j. Los amigos de un usuario  k. Dado un usuario, saber qué películas vió  l. Dado un usuario, saber qué series vió de forma completa   2 m. Dado un usuario, conocer el contenido recomendado por sus amigos  n. Obtener el contenido que no tenga cargado el trailer      1 El rating se puede obtener a partir de las valoraciones de los usuarios  2 Un serie fue vista de forma completa cuando se vieron todos sus capítulos 
  • 4.     Consultas extras  Las siguientes consultas no son requeridas pero de existir se obtiene plus en la  corrección:  1. Conocer el rating de una serie  2. Dada una película o serie, obtener su contenido relacionado  3. Dado un usuario, una serie y una temporada, saber cuántos capítulos vió  4. Dado un usuario, obtener el listado con los 5 contenidos que más  recomendados por sus amigos  5. Dado un usuario, obtener todo el contenido que sea apto según su edad  También será valorado que exista un diagrama UML (sencillo) del diseño del  dominio.  Parte 2: Interfaz desktop  Esta particular empresa está interesada en que la administración de la aplicación sea  mediante una interfaz desktop desarrollada con ​Arena​. El hecho de ser desktop les  permite que un grupo acotado de personas se encarguen de mantener el contenido  sin necesidad de establecer sistema de roles y accesos.  Esta interfaz será utilizada a modo de backend para cargar películas y series. Se  podrán consultar los usuarios pero no se podrán modificar sus datos. También se  pretende que mediante esta interfaz se puedan realizar distintos tipos de búsquedas  para que el equipo de marketing pueda analizar estrategias de publicidad  personalizadas.  A continuación se detallan las ventanas solicitadas que se deberán desarrollar. Los  mockups planteados son a modo de ejemplo y guía, pero cada equipo tiene la  libertad de diseñar a gusto, siempre y cuando se pueda cumplir con la funcionalidad  de administrar y buscar contenido, como así también poder listas y buscar usuarios.  Ventana principal  A ejecutar la aplicación deberá mostrarse una ventana de administración que  permita la posibilidad de administrar series y películas. Ejemplo: 
  • 5.       Administrar Película  Se debe poder completar con los datos de la película y permitir agregar contenido  relacionado.       
  • 6.     Administrar Serie  Se debe poder completar con los datos de la serie y permitir agregar capítulos y  contenido relacionado.    Administrar Capítulo  Se debe poder completar con los datos del capítulo.       
  • 7.     Ver Usuarios (Extra)  Se debe poder listar y filtrar los usuarios así como también ver en detalle algún  usuario particular. Esta funcionalidad no es requerida para aprobar el trabajo pero  brinda puntos extras.    Consideraciones  ● Los paneles son maquetas de la información requerida, pero el diseño puede  variar a gusto.  ● Toda información auxiliar (como categorías.) puede estar ​hardcodeada​ en el  código de modelo.  ● Si bien la plataforma debe poder administrar información, se puede mantener  información de base ​hardocodeada​ y esa información puede ser "levantada"  cuando se inicia la aplicación.  ● Además de las pantallas ejemplificadas debe haber ventanas que  simplemente muestren la información del contenido (“Ver”)  ● El “Agregar contenido relacionado” se puede hacer de dos maneras: o bien  manteniendo un listado “al lado” de la tabla de Contenido y accionar el  agregado desde esa misma ventana o bien que se abra una nueva ventada y  que se agregue al Aceptar.   
  • 8.     Entrega  La fecha de entrega es el jueves 20 de Septiembre de 2018.  La entrega es presencial y deben estar presentes todos los integrantes del equipo.  De existir alguna situación de fuerza mayor se deberá avisar a los docentes con  antelación.   Para organizar mejor las correcciones vamos a establecer horarios para cada grupo.