Volver a projects
May 14, 2024
2 min read

SongRecommendations

Un proyecto universitario para recomendar canciones basado en una lista precargada

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.