Dados de entrada necessários
O algoritmo precisará de :
- Lista de participantes contendo:
- Nome do participante
- E-mail para contato
- Tempo de conexão (em minutos ou segundos)
- Momento de entrada na transmissão
- Momento de saída (se houver)
- Duração total do evento (ex: 90 minutos)
Observação : Os dados de tempo podem ser obtidos por plataformas de streaming (Zoom, YouTube Live, StreamYard, etc.) que registram logs de entrada/saída.
Verificação da condição de presença completa
Um participante participou do início ao fim se :
- Entrou nos primeiros X minutos do evento (ex: tolerância de 2 minutos para atrasos técnicos)
- Permaneceu conectado até o encerramento oficial (com tolerância de 2 minutos para saída antecipada)
- Tempo total conectado ≥ (duração do evento - tolerância)
- Algoritmo em linguagem natural
text
INÍCIO
OBTER a lista de participantes com seus tempos de entrada e saída
OBTER a duração total do evento (D minutos)
DEFINIR tolerância = 2 minutos (ajustável)
CRIAR uma lista vazia para armazenar participantes completos
PARA CADA participante na lista:
a. CALCULAR o tempo total conectado = (hora_saída - hora_entrada)
b. VERIFICAR se entrada ≥ (início_do_evento) E
entrada ≤ (início_do_evento + tolerância)
c. VERIFICAR se saída ≤ (fim_do_evento) E
saída ≥ (fim_do_evento - tolerância)
d. VERIFICAR se tempo_total_conectado ≥ (D - tolerância)e. SE todas as condições forem VERDADEIRAS:
ADICIONAR participante à lista de participantes completos
SENÃO:
IGNORAR participante (não enviar agradecimento)PARA CADA participante_completo na lista:
a. CRIAR e-mail com:
- Assunto: "Obrigado por participar do evento [nome do evento]!"
- Corpo:
"Olá [nome_do_participante],
Agradecemos por ter assistido à nossa transmissão do início ao fim!
Sua presença integral fez toda a diferença.
Segue um link especial com conteúdo extra exclusivo para quem
acompanhou todo o evento: [link]
Atenciosamente,
Equipe [nome_do_evento]"
b. ENVIAR e-mail para o endereço do participante
c. REGISTRAR log: "E-mail enviado para [nome_do_participante]"EXIBIR relatório final:
- Total de participantes: (quantidade)
- Participantes com presença completa: (quantidade)
- E-mails enviados com sucesso: (quantidade)
FIM
Exemplo prático (simulação)
Participante Entrada (min) Saída (min) Tempo conectado Condição Ação
João 0 90 90 OK ✅ Enviar e-mail
Maria 1 90 89 OK (dentro da tolerância) ✅ Enviar e-mail
Pedro 15 90 75 Entrou tarde ❌ Não enviar
Ana 0 85 85 Saiu 5 min antes ❌ Não enviar
Carla 0 90 87 Saída dentro da tolerância? Sim (3 min antes, mas tolerância de 2?) Se sim, depende do ajuste Verificar
Fluxo visual do algoritmo
text
INÍCIO
↓
Carregar dados dos
participantes e duração
↓
Para cada participante
↓
Entrada ≤ tolerância? ──NÃO→ Ignorar
↓ SIM
Saída ≥ fim - tolerância? ──NÃO→ Ignorar
↓ SIM
Tempo ≥ duração - tolerância? ──NÃO→ Ignorar
↓ SIM
Adicionar à lista de completos
↓
Para cada completo
↓
Gerar e-mail personalizado
↓
Enviar e-mail
↓
Registrar no log
↓
Gerar relatório final
↓
FIM
Observações importantes para implementação real
Tolerância ajustável: Negociar com o time de produto qual margem usar (2 min, 5 min, 0 min)
Casos de borda :
- Participante que entrou no início, saiu, e voltou depois → tempo total deve somar os períodos
- Queda de internet do participante → justifica tolerância maior?
- Privacidade: O participante precisa consentir com o monitoramento de tempo de conexão
Formato dos dados : Garantir que hora_entrada e hora_saída estejam no mesmo formato (timestamp Unix ou datetime ISO)
Este algoritmo resolve o problema de forma clara e executável, podendo ser implementado em Python, JavaScript ou qualquer linguagem de programação.