Sobre el proyecto

# Panel de Análisis de Clickstream en Tiempo Real Un panel de análisis de tráfico web en tiempo real construido con Apache Kafka, Python, Pandas y Matplotlib. El sistema simula datos de tráfico clickstream, lo transmite a través de Kafka y genera visualizaciones analíticas en vivo. ## Funcionalidades Principales - Pipeline de streaming de datos clickstream en tiempo real - Arquitectura de Productor y Consumidor de Kafka - Dashboard en vivo basado en Matplotlib con gráficas animadas - Seguimiento de distribución del tráfico por país - Crecimiento de visitantes únicos a lo largo del tiempo - Configuración Docker Compose para la infraestructura de Kafka ## Tecnologías Python, Apache Kafka, Docker, Pandas, Matplotlib, NumPy ## Estructura del Proyecto ``` kafka-project/ ├── consumer.py # Consumidor de Kafka + dashboard de Matplotlib ├── producer.py # Productor de Kafka que envía eventos clickstream ├── generate_data.py # Generador de datos clickstream sintéticos ├── docker-compose.yml # Configuración del stack de Kafka └── README.md ``` ## Cómo Funciona 1. `generate_data.py` produce registros sintéticos de clickstream (sesiones de usuario, vistas de página, códigos de país, marcas de tiempo). 2. `producer.py` lee esos registros y los publica en un tema de Kafka (`clickstream-topic`). 3. `consumer.py` consume mensajes de Kafka y actualiza una figura de Matplotlib cada 100 mensajes, mostrando la distribución por país como gráfica de barras y el crecimiento de usuarios únicos como gráfica de líneas. 4. Kafka se ejecuta dentro de contenedores Docker mediante Docker Compose. ## Ejecutar el Proyecto 1. Iniciar los servicios de Kafka: ```bash docker compose up -d ``` 2. Crear el tema: ```bash docker exec -it kafka /opt/kafka/bin/kafka-topics.sh --create --topic clickstream-topic --bootstrap-server localhost:9092 ``` 3. Generar el conjunto de datos: ```bash python generate_data.py ``` 4. Ejecutar el productor: ```bash python producer.py ``` 5. Abrir una segunda terminal y ejecutar el dashboard del consumidor: ```bash python consumer.py ``` La ventana de Matplotlib se actualizará en tiempo real a medida que lleguen los mensajes del consumidor. ## Mejoras Planeadas - Dashboard basado en la web (por ejemplo, Streamlit o Dash) - Integración con Apache Spark Streaming - Almacenamiento persistente en base de datos para análisis histórico - Análisis a nivel de sesión - Modelos de predicción de comportamiento de usuario