Skip to content

martacanirome4/MusicHub

Repository files navigation

🎧 MusicHub API

Version Node.js MongoDB Spotify API OpenAI License

API RESTful para explorar, buscar y disfrutar información musical
MusicHub combina el poder de Node.js, MongoDB, Spotify, MusicBrainz y OpenAI para ofrecer una experiencia musical interactiva y divertida, con una interfaz inspirada en Spotify.


🎼 Descripción

MusicHub es una plataforma para explorar y gestionar música a través de múltiples fuentes de datos, con un toque inteligente gracias al chat integrado con OpenAI.

MusicHub Interface


✨ Características

  • 🎵 Exploración de música: Busca álbumes, canciones y artistas.
  • 💬 ChatBot musical: Pide recomendaciones y obtén información musical personalizada.
  • 🎧 Integración con Spotify: Accede y gestiona datos directamente desde Spotify.
  • 🌐 Búsqueda en MusicBrainz: Información detallada de artistas a nivel global.
  • 🖥️ Interfaz atractiva: UI moderna estilo Spotify.

📦 Contenido del Proyecto

  • /api: API REST principal.
  • /api/schema/musichub.yaml: Especificación OpenAPI.
  • /cliente: Interfaz de usuario.
  • /dataset: Base de datos (JSON/CSV).
  • /setup/setup_musichub.sh: Script para cargar datos.
  • sw-MusicHub.pdf: Presentación de la API.

🛠️ Tecnologías Utilizadas

Tecnología Uso
Node.js Backend (API REST)
Express Servidor web
MongoDB Base de datos
Spotify API Datos musicales
MusicBrainz Metadatos musicales
OpenAI API ChatBot musical
React/Vite Interfaz de usuario
YAML/OpenAPI Documentación de la API

🚀 Instalación y Ejecución

1. Clonar repositorio:

git clone https://github.com/martacanirome4/MusicHub.git
cd MusicHub/

2. Configurar variables de entorno en /api/.env:

BASE_URI=/api/v1
SPOTIFY_CLIENT_ID=tu-spotify-client-id
SPOTIFY_CLIENT_SECRET=tu-spotify-client-secret
MONGODB_URI=tu-mongodb-uri
OPENAI_API_KEY=tu-openai-api-key
MAX_RESULTS=10

3. Iniciar servidor (desde /api):

npm install
npm start

4. Iniciar cliente (desde /cliente):

# Configurar .env
BASE_URI=/

npm install
npm start

5. Accede a MusicHub en tu navegador:

http://localhost:3003/

🧩 Endpoints Principales

Recurso Endpoint
Álbumes /albums
Artistas /artists
Canciones /tracks

Ejemplos de Solicitudes

  • Obtener álbumes:
GET http://localhost:3000/api/v1/albums
  • Buscar canción en Spotify:
GET http://localhost:3000/api/v1/spotify/search?name=supercalifragilisticexpialidocious
  • Buscar artista en MusicBrainz:
GET http://localhost:3000/api/v1/musicbrainz/search?name=adele

🎥 Recursos Interactivos


👥 Miembros del Equipo