Este proyecto en Java se creó como proyecto final de la asignatura universitaria de Programación Avanzada. Toma una lista predefinida de canciones y sus parámetros, entrena un algoritmo y ofrece recomendaciones de canciones que pueden gustarle al usuario.
Sobre la aplicación
La aplicación cuenta con una interfaz gráfica construida con JavaFX y usa Maven para la gestión del proyecto. Incluye también pruebas unitarias para verificar los algoritmos de recomendación y el lector de archivos CSV.
Algoritmos
Los usuarios pueden elegir entre dos algoritmos de recomendación:
- K1NN: un algoritmo de vecino más cercano para recomendaciones basadas en similitud.
- KMeans: un algoritmo de agrupamiento que agrupa canciones por características similares.
Patrones de diseño
Se usaron varios patrones de diseño para mejorar la estructura del proyecto:
- Strategy: permite cambiar de algoritmo de recomendación de forma dinámica.
- Template Method: define la estructura general del proceso de recomendación.
- MVC: separa modelo, vista y controlador para una arquitectura limpia.
Objetivo académico
El proyecto demuestra la aplicación práctica de algoritmos y patrones de diseño, combinando la teoría académica con un sistema de recomendación musical en funcionamiento.