Gestor de una plataforma de servicio de streaming por suscripción

Este Trabajo Fin de Grado (TFG) propone el diseño y desarrollo de una aplicación web para gestionar algunos procesos de una plataforma de servicio de streaming, que permite a sus miembros ver series, películas y otros contenidos presentes en un catálogo online en un dispositivo con conexión a internet. En la plataforma, a cambio de pagar una cuota mensual, el usuario tiene derecho a consumir de forma ilimitada el contenido audiovisual presente en el catálogo.

 

DESCRIPCIÓN DEL SISTEMA

La aplicación debe mantener información sobre:

  • El catálogo: contiene la información de cada uno de los contenidos audiovisuales que ofrece la plataforma. De cada contenido, al menos:
    • Identificador
    • Tipo (película, serie, documental, concierto, otro)
    • Título
    • Director(es)
    • Intérprete(s)
    • Productora
    • Año de estreno/realización
    • Temática
    • Duración
    • Carátula (identificador del fichero con la imagen de la carátula)
    • Identificador del recurso
  • Miembros/socios: se registran en la plataforma por propia iniciativa. De cada miembro debe almacenar al menos la siguiente información:
    • cuenta de correo electrónico
    • nombre
    • apellidos
    • dirección
    • población
    • provincia
    • código postal
    • clave acceso
    • cuenta bancaria

El sistema informático que se pretende implementar debe realizar las siguientes funcionalidades:

  1. Incorporación de un nuevo contenido al catálogo. Cuando se incluye un nuevo contenido audiovisual se genera un registro con los datos correspondientes, proporcionando un identificador al mismo. Los campos de un contenido concreto se podrán actualizar.
  2. Cuando un usuario solicita registrarse en la plataforma, se almacenan sus datos. El usuario podrá actualizar sus datos personales accediendo en la plataforma a su perfil.
  3. El sistema debe permitir a los socios consultas online al catálogo. Estas consultas podrán realizarse en las siguientes modalidades:
    1. Por temática. Todos los contenidos del catálogo se muestran por temas y dentro de cada tema por tipo de contenido (películas, series, …).
    2. Por tipo de contenido. Todos los contenidos del catálogo se muestran por tipo (películas, series, …) y dentro de cada tipo se podrán ver por temas.
    3. Por posible afinidad con los gustos del usuario. En el punto 5 se detalla esta modalidad.
    4. Se podrán realizar búsquedas en el catálogo por los contenidos
      de título, director o intérprete.
  4. Un socio puede consultar su registro personal de visualizaciones. Esta consulta se referirá a su histórico, es decir, a los contenidos que ha visualizado en un determinado periodo de tiempo.
  5. El sistema incorpora a su vez un subsistema de recomendación. Un sistema de recomendación es un tipo específico de filtro que, en este caso, trata de presentar a un socio contenidos audiovisuales en los que pueda estar interesado. Así, cuando un socio consulta/visualiza el catálogo de contenidos, el sistema le puede sugerir contenidos en los que podría estar interesado.
  6. Debe ser posible obtener estadísticas (número de visualizaciones por usuario, temas más demandados, etc.).

El sistema tiene tres perfiles de cliente que operan del siguiente modo:

  • Socios: acceden a través de la web con un código de usuario (su correo electrónico), y su clave. Podrán hacer consultas (catálogo, histórico), actualizar sus datos y realizar las visualizaciones.
  • Empleados: Acceden al sistema con una clave de otro nivel, que les permite mayores posibilidades de acceso. Pueden dar de baja a usuarios, introducir nuevos contenidos en el sistema, actualizar sus campos o darlos de baja.
  • Personal de gestión del sistema: acceden al sistema a través de la web. Pueden dar de alta a los empleados. Con este perfil, se pueden hacer altas/bajas y modificaciones de todo tipo, así como configurar, reinstalar el sistema y realizar copias de seguridad.

El diseño y la arquitectura del sistema deben contemplar la modularidad, así como la interoperabilidad de datos entre diferentes componentes.

En cuanto al sistema de recomendación, se propone utilizar un sistema de filtrado que tenga en cuenta las preferencias de los usuarios, que, por ejemplo, pueden ser expresadas por éste de forma explícita o implícita. Por ejemplo, de forma explícita se puede preguntar a un socio que valore un contenido en una escala, o varios contenidos de más a menor preferencia. El sistema básico de recomendación puede estar basado en estas preferencias. Así, este sistema utilizaría la información proporcionada por socios de características similares al activo para generar recomendaciones o valoraciones de contenidos. Los factores a tener en cuenta por el sistema de recomendación podrían ser:

  • Las interacciones de un socio con el servicio (por ejemplo, los títulos que ya ha visto y cómo calificó estos y otros títulos).
  • Otros socios con gustos y preferencias similares.
  • Información sobre los contenidos ofrecidos como género, categorías, actores, año de lanzamiento, etc.

Uno de los algoritmos más utilizados en este tipo de sistemas es el de los k-vecinos más próximos (k-nearest neighborhood). Otra familia de algoritmos también muy utilizada es la del filtrado colaborativo (collaborative filtering). Se deja a criterio del estudiante y su director el diseño y desarrollo del sistema de recomendación.

NOTAS: 
El portal web debe incluir todos los datos de al menos 9 contenidos audiovisuales y 10 miembros, de manera que se pueda mostrar el funcionamiento del portal para los requisitos descritos anteriormente e ilustren las diferentes situaciones posibles.

La arquitectura del sistema deberá ser orientada a servicios, de modo que la lógica de negocio se ejecute en un servidor, mientras que la vista de la aplicación se ejecute en un navegador tradicional o en cualquier tipo de dispositivo móvil.

Aunque la tecnología utilizada para implementar el proyecto queda a elección del estudiante, la visualización e interacción con los contenidos debe ser adecuada y adaptada al dispositivo desde el que se visualiza.

 

PLAN DE TRABAJO

    1. Planificación

      El estudiante deberá realizar un plan con un calendario realista y especificará claramente lo que tiene que hacer, concretando los aspectos que quedan abiertos en este documento de descripción. Este anteproyecto será revisado y aprobado por su director.

    2. Desarrollo

      El estudiante deberá desarrollar las siguientes fases del proyecto: estudio del problema, selección de fuentes y formatos, especificación funcional de la herramienta, selección del entorno de programación, implementación, documentación, validación  mediante casos de ejemplo y estudio de escalabilidad.

    3. Memoria

      La versión final de la memoria se realizará teniendo en cuenta los documentos indicados en el epígrafe anterior (Desarrollo), así como los resultados obtenidos y las conclusiones extraídas de los mismos. Asimismo, la memoria deberá contener como Anexos el manual de instalación y el manual de usuario conteniendo alguna pantalla impresa de las pruebas realizadas.

    4. Presentación y defensa pública del proyecto realizado

      La valoración del TFG dependerá tanto de cómo se ha realizado y documentado todo el proceso del desarrollo del proyecto, el producto software final y la calidad de la presentación realizada en su defensa pública.