Sobre o projeto

# Painel de Análise de Clickstream em Tempo Real Um painel de análise de tráfego web em tempo real construído com Apache Kafka, Python, Pandas e Matplotlib. O sistema simula dados de tráfego de clickstream, envia-os via Kafka e renderiza visualizações analíticas ao vivo. ## Principais Recursos - Pipeline de streaming de dados de clickstream em tempo real - Arquitetura com Produtor e Consumidor Kafka - Dashboard ao vivo baseado em Matplotlib com gráficos animados - Rastreamento de distribuição de tráfego por país - Crescimento de visitantes únicos ao longo do tempo - Configuração Docker Compose para a infraestrutura Kafka ## Tecnologias Python, Apache Kafka, Docker, Pandas, Matplotlib, NumPy ## Estrutura do Projeto ``` kafka-project/ ├── consumer.py # Consumidor Kafka + dashboard Matplotlib ├── producer.py # Produtor Kafka enviando eventos de clickstream ├── generate_data.py # Gerador de dados sintéticos de clickstream ├── docker-compose.yml # Configuração da stack Kafka └── README.md ``` ## Como Funciona 1. `generate_data.py` produz registros sintéticos de clickstream (sessões de usuário, visualizações de página, códigos de país, timestamps). 2. `producer.py` lê esses registros e publica em um tópico Kafka (`clickstream-topic`). 3. `consumer.py` consome mensagens do Kafka e atualiza uma figura Matplotlib ao vivo a cada 100 mensagens, exibindo a distribuição por país como gráfico de barras e o crescimento de usuários únicos como gráfico de linhas. 4. O Kafka é executado dentro de contêineres Docker via Docker Compose. ## Executando o Projeto 1. Inicie os serviços Kafka: ```bash docker compose up -d ``` 2. Crie o tópico: ```bash docker exec -it kafka /opt/kafka/bin/kafka-topics.sh --create --topic clickstream-topic --bootstrap-server localhost:9092 ``` 3. Gere o dataset: ```bash python generate_data.py ``` 4. Execute o produtor: ```bash python producer.py ``` 5. Abra um segundo terminal e execute o consumidor: ```bash python consumer.py ``` A janela do Matplotlib será atualizada em tempo real conforme as mensagens do consumidor forem chegando. ## Melhorias Planejadas - Dashboard baseado na web (por exemplo, Streamlit ou Dash) - Integração com Apache Spark Streaming - Armazenamento persistente em banco de dados para análise histórica - Análises em nível de sessão - Modelos de previsão de comportamento do usuário