$ python modulo_8.py

Projeto final: robô completo

Une tudo que você aprendeu: coleta → processamento → relatório → e-mail → agendamento → Docker. Um pipeline de produção real.

Objetivo do projeto

Construir um robô que:

Estrutura sugerida

robo-diario/
├── .env                 # secrets (não commitado)
├── .gitignore
├── requirements.txt
├── Dockerfile
├── docker-compose.yml
├── main.py              # orquestrador
├── collectors/
│   └── scrape.py
├── processors/
│   └── transform.py
├── reporters/
│   └── excel.py
├── notifiers/
│   └── email.py
└── logs/

Orquestrador (main.py)

#!/usr/bin/env python3
import logging
from datetime import datetime
from collectors.scrape import coletar
from processors.transform import processar
from reporters.excel import gerar_relatorio
from notifiers.email import enviar

logging.basicConfig(
    level=logging.INFO,
    format="%(asctime)s [%(levelname)s] %(message)s",
    handlers=[
        logging.FileHandler("logs/robo.log"),
        logging.StreamHandler()
    ]
)
log = logging.getLogger("robo")

def run():
    log.info("Iniciando pipeline")
    try:
        bruto = coletar()
        log.info("Coletados %d registros", len(bruto))
        df = processar(bruto)
        caminho = gerar_relatorio(df)
        log.info("Relatório gerado: %s", caminho)
        enviar(
            assunto=f"Relatório diário — {datetime.now():%d/%m/%Y}",
            corpo="Segue o relatório automático da IRN Devs.",
            anexo=caminho
        )
        log.info("E-mail enviado com sucesso")
    except Exception:
        log.exception("Falha no pipeline")
        raise

if __name__ == "__main__":
    run()

Checklist de entrega

DESAFIO FINAL Implemente o robô completo usando um domínio real de sua escolha (preços, vagas, cotações, status de serviços etc.). Publique o repositório no GitHub e documente o deploy. Este projeto vira item forte de portfólio.
PRÓXIMOS PASSOS Após este curso você está pronto para: observabilidade (logs + métricas), filas (Redis/RQ), e orquestração com Kubernetes ou GitHub Actions.

Sumário do curso

Precisa de algo assim, sob medida pro seu negócio?

agendar diagnóstico gratuito →