Este proyecto de Java fue creado como proyecto final para la asignatura universitaria “Programación Avanzada”. El programa toma una lista predefinida de canciones con sus parámetros, entrena un algoritmo y proporciona al usuario recomendaciones de otras canciones que podrían gustarle.
🎵 Acerca de la aplicación
La aplicación cuenta con una interfaz gráfica desarrollada con JavaFX y utiliza Maven como herramienta de gestión del proyecto. Además, el proyecto incluye pruebas unitarias para verificar el correcto funcionamiento de los algoritmos y el lector de archivos CSV.
🤖 Algoritmos
El usuario puede elegir entre dos algoritmos para generar sus recomendaciones:
- K1NN: Algoritmo de vecino más cercano para recomendaciones basadas en similitud
- KMeans: Algoritmo de clustering que agrupa canciones por características similares
🏗️ Patrones de Diseño
Para crear la aplicación, se utilizaron varios patrones de diseño para mejorar la estructura del proyecto:
- Strategy: Permite intercambiar algoritmos de recomendación dinámicamente
- Template Method: Define la estructura general del proceso de recomendación
- MVC: Separación clara entre modelo, vista y controlador para una arquitectura limpia
🎯 Objetivo Académico
Este proyecto demuestra la aplicación práctica de algoritmos y patrones de diseño en el desarrollo de software, combinando teoría académica con implementación real en un sistema de recomendación musical funcional.