Proyecto para la asignatura Infraestructura Virtual
Encontrar música nueva que se ajuste a tus gustos es algo difícil. Para ello podríamos implementar un algoritmo de recomendación, basado en estilos, artistas, etc.
Para resolver este problema se puede montar un servidor con los archivos de música subidos, de forma que estén clasificados y un usuario pueda tener sus listas de música que le gusta y que el servidor le proponga sugerencias en tiempo real o que le amplíe las listas si el usuario lo desea.
Los clientes pueden ser tanto los usuarios que quieren descubrir música nueva y ampliar sus playlists, como las discográficas, que pueden beneficiarse de conocer qué estilos son los más escuchados y qué artistas son más populares.
También se podría proponer que las discográficas/artistas puedan promocionar sus canciones para que sean más recomendadas.
La lógica de negocio consiste en un algoritmo que genere valores representando cómo de probable es que le guste una canción al usuario y se la recomiende a éste.
Los valores a tener en cuenta pueden variar, desde el estilo, época, artista, colaboraciones, incluso duración. A esto se le puede añadir un campo de promoción según avance el desarrollo y se enfoque más a un cliente (discografías/artistas) u otro (gente que quiere descubrir música nueva).
Usaremos make
como gestor de tareas, este se puede encontrar en la mayoría de repositorios de linux. En caso de estar en una distribución de arch
como es mi caso, se puede instalar con el comando:
pacman -S make
Para obtener más información acerca de la elección de este gestor de tareas, se puede leer este fichero, en el cual se detellan características y ventajas de utilizar esta opción.
Como gestor de dependencias, se ha escogido yarn
. Este nos facilita mantener actualizadas las dependencias de nuestro repositorio de forma simple y continuada. Para obtener más información acerca de la elección de este gestor de dependencias, se recomienda la lectura de este fichero.
Para instalarlo, teniendo el gestor de tareas, visto en la sección anterior, podemos ejecutar este comando:
make install
Se debe ejecutar el comando
make check
Se ha elegido Mocha
como test runner entre varias alternativas para cumplir esta función, la toma de decisión documentada se puede ver en este fichero. Para complementarlo, se ha escogido Chai
como biblioteca de aserciones, se puede comprobar el motivo de su eleccioń en este fichero.
Una vez tengamos esto ya podremos lanzar los test
, desde consola con el comando yarn test
. También se incluye dentro del fichero Makefile
un comando para lanzar los tests: make test
. Para poder hacer esto, hace falta tener instalados correctamente los gestores vistos en secciones anteriores a esta.