1
resposta

Desafio: Automatizar tarefas para evento online

Objetivo:

Enviar e-mail de agradecimento para os participantes do evento que cumpriram com a carga horária total do evento, considerando também a permanência contínua ao longo da transmissão.

Dados de entrada

Horário do evento (hora de início e hora de término).

Intervalo de verificação de presença durante o evento.

Lista de participantes do evento.

Para cada participante:

Nome

E-mail

Horário de entrada no evento

Horário de saída do evento

Registros de presença ao longo do evento

Processamento / Verificação

Calcular a duração total do evento, subtraindo o horário de início do horário de término.

Definir a quantidade total de verificações de presença com base no intervalo estabelecido.

Durante o evento, em intervalos regulares:

Verificar se cada participante permanece conectado à transmissão.

Registrar a presença do participante em cada verificação.

Para cada participante:

Calcular o tempo total de permanência no evento com base nos registros de presença.

Comparar o tempo de permanência calculado com a duração total do evento.

Decisão

Se o tempo de permanência do participante for igual ou maior que o tempo mínimo exigido no evento:

O participante é considerado apto a receber o e-mail de agradecimento.

Caso o tempo de permanência do participante seja menor que o tempo mínimo exigido:

O participante não receberá o e-mail de agradecimento.

Ação final

Enviar automaticamente o e-mail de agradecimento apenas para os participantes que atenderem aos critérios de permanência definidos.

Encerrar o algoritmo após a verificação de todos os participantes.

Observação final

A verificação contínua de permanência garante que apenas os participantes que realmente acompanharam o evento ao longo de toda a transmissão recebam o e-mail de agradecimento, tornando o processo mais justo e confiável.

1 resposta

Oii Rafael,

Fiquei impressionada com o nível de detalhe da sua solução. Você foi muito além da lógica básica de "Entrada versus Saída" e trouxe um conceito real de engenharia de software: o Heartbeat (ou verificação de pulso/presença).

Sua ideia de adicionar "Intervalo de verificação de presença" e "Registros de presença ao longo do evento" resolve uma falha clássica do modelo simples: a pessoa que faz login, deixa o computador ligado e sai da sala. Com a sua lógica, o sistema garante que a conexão estava ativa durante todo o processo.

Gostaria de deixar apenas uma sugestão de melhoria pensando na experiência do usuário (UX) e em falhas técnicas:

Conceito de tolerância (Threshold)
No seu passo de decisão, você colocou:
Se o tempo de permanência for igual ou maior que o tempo mínimo exigido.

No mundo real, conexões de internet oscilam e pessoas podem demorar alguns segundos para conectar. Exigir 100% do tempo pode ser muito rígido e punir alguém que caiu por 2 minutos.
Uma prática comum é definir uma porcentagem de corte, por exemplo, 90% ou 95%.

O algoritmo ficaria assim:

  1. Calcular: Porcentagem_Presenca = (Tempo_Logado / Duracao_Total) * 100
  2. Decisão: SE Porcentagem_Presenca >= 90 ENTÃO Enviar E-mail.

Isso mantém seu sistema justo, mas adiciona uma camada de flexibilidade para imprevistos.

Parabéns pela visão sistêmica.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!