Pakytarefas - Sistema de Distribuição Automática de Tarefas

Sistema automatizado para coleta e distribuição de tarefas de gincana via WhatsApp, auxiliando mais de 300 participantes

PythonPostgreSQLSQLAlchemyWeb ScrapingWhatsAppDesign PatternsSystemd

Visão Geral do Projeto

Pakytarefas coleta automaticamente tarefas de gincanas publicadas em sites oficiais e as distribui instantaneamente via WhatsApp. O sistema resolve problemas críticos de instabilidade de conexão durante competições, garantindo que a equipee receba as tarefas em tempo real.

Ao longo do ano, auxiliou mais de 300 membros de equipes, especialmente em momentos onde o site oficial estava inacessível ou sobrecarregado.

Funcionalidades

  • Web scraping automatizado de múltiplas organizadoras
  • Envio instantâneo via WhatsApp com suporte para outros canais
  • Monitoramento contínuo 24/7 via systemd timers
  • Histórico completo de tarefas em PostgreSQL
  • Sistema resiliente com rate limiting inteligente

Design Patterns Implementados

  • Repository Pattern: Abstração da camada de dados
  • Factory Pattern: Criação dinâmica de scrapers
  • Strategy Pattern: Interface para diferentes canais de envio
  • Scrapers e senders com interfaces bem definidas para fácil extensão

Tecnologias

  • Backend: Python, PostgreSQL, SQLAlchemy, Alembic
  • Scraping: BeautifulSoup
  • Integração: Wuzapi (WhatsApp)
  • Infraestrutura: Systemd Timers, Linux

Desafios Técnicos

  • Refatoração completa de Django/Celery para script Python otimizado, reduzindo complexidade e overhead
  • Resiliência: retry logic, tratamento de diferentes formatos HTML, rate limiting para não sobrecarregar servidores
  • Systemd timers: configuração precisa de execução periódica com logging estruturado
  • Arquitetura extensível: adicionar novos scrapers ou canais de envio em minutos

Impacto

  • 300+ usuários ativos ao longo do ano
  • Resolveu problemas críticos de conectividade em momentos de pico
  • Sistema estável operando 24/7 sem intervenção manual
  • Acesso equitativo a tarefas independente da localização

Aprendizados

Aplicação prática de design patterns em Python, domínio de systemd, técnicas robustas de web scraping, e construção de sistemas resilientes com baixo consumo de recursos.