Skip to content

Pipeline de datos para recopilar, almacenar y visualizar actividad musical de Last.fm. Despliegue automatizado en Azure con Terraform, Ansible y Docker.

Notifications You must be signed in to change notification settings

beetlebum97/LastFMCollector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎧 LastFMCollector

DataOps & Cloud Project — Extracción, almacenamiento y visualización de datos musicales de Last.fm con despliegue automatizado en Microsoft Azure.


📖 Descripción

LastFMCollector es un proyecto personal orientado a Data Engineering / Cloud Automation, que combina desarrollo en Python, gestión de bases de datos relacionales, e infraestructura como código en Azure.

El sistema permite recopilar y analizar la actividad musical de usuarios de Last.fm, almacenando la información en MySQL o PostgreSQL y desplegando el entorno completo con Terraform + Ansible + Docker.


🎥 Video Demostración

☁️ Azure Cloud Deployment

LastFMCollector - Despliegue Cloud Azure

🔧 Backend ETL Pipeline

LastFMCollector - Pipeline ETL Backend

🗄️ MySQL Backend

LastFMCollector - Backend MySQL

🗄️ PostgreSQL Backend

LastFMCollector - Backend PostgreSQL

🌐 Muestra de datos


🧩 Arquitectura General

Last.fm API → Python ETL (lastfm.py / lastfm_db.py) → BBDD (MySQL/PostgreSQL)

  • Flask App + Nginx → Azure VM (Terraform + Ansible)
  • Visualización en GitHub Pages

Componentes principales:

  • Backend: scripts Python para extracción y almacenamiento de datos desde la API de Last.fm.
  • Cloud: despliegue automático en Azure mediante Terraform y Ansible.
  • Frontend: aplicación Flask servida por Nginx con contenedores Docker.
  • Visualización: datos expuestos en tablas interactivas a través de GitHub Pages.

⚙️ Stack Tecnológico

Categoría Tecnologías
Lenguaje Python, Bash
Infraestructura Azure Cloud, Terraform, Ansible
Contenedores Docker
Bases de datos MySQL, PostgreSQL
Web Flask, Nginx
Otros API REST, Pandas, JSON, CSV, HTML5, CSS3

🚀 Despliegue Cloud (Azure)

El proyecto incluye automatización completa de infraestructura en Azure:

  • Terraform: crea la red, máquina virtual Debian 12 y seguridad.
  • Ansible: instala Docker y lanza contenedores (MySQL, PostgreSQL, Nginx, Flask).
  • Python: extrae los datos de Last.fm y los carga en las bases de datos.

📘 Ver detalles en cloud/azure/README_AZURE.md


🖥️ Estructura del repositorio

├── backend/            # Scripts Python (extracción y carga de datos)
├── cloud/azure/        # Terraform + Ansible para despliegue automatizado
├── docs/               # GitHub Pages (visualización de datos)
├── logs/               # Salidas de los procesos
├── screenshoots/       # Capturas del sistema y despliegue
└── README.md

📊 Ejemplo de resultados

Imágenes del dashboard y despliegue en Azure:

Portada Artistas
Frontend - portada Flask Visualización de artistas
Canciones Scrobbles
Canciones registradas Historial de reproducciones

🧠 Aprendizajes clave

  • Diseño de pipelines de datos reproducibles (ETL real con Python y SQL).
  • Automatización de infraestructura cloud mediante Terraform y Ansible.
  • Integración de contenedores Docker para aplicaciones y bases de datos.
  • Publicación de resultados y visualizaciones con GitHub Pages.

👤 Autor

David Vázquez Rodríguez
📍 Madrid, España
💼 LinkedIn
💻 GitHub


© 2025 - Proyecto personal orientado a aprendizaje y portfolio profesional.

About

Pipeline de datos para recopilar, almacenar y visualizar actividad musical de Last.fm. Despliegue automatizado en Azure con Terraform, Ansible y Docker.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published