Boa tarde colegas e professores! Abaixo minha resolução do desafio.
Dados de apoio
- Desenvolver em linguagem natural.
- Cenário: eventos online.
- Problemas:
- coletar a lista de participantes da transmissão ao vivo
- somente os participantes que participaram de todo o evento
- enviar um e-mail de agradecimento para eles
Resolução
- Quais são os dados de entrada necessários?
- Dados dos participantes incluindo um e-mail
- Tempo online durante a transmissão
- dados de conexão com um provedor de SMTP via API para envio dos e-mails
- Modelo dos e-mails
- Como o algoritmo pode verificar a condição de presença completa?
Expor ao espectador um balão de tempos em tempos informando a ele para mexer o mouse ou pressionar algum botão no controle da TV (na web é possível identificar o mover do mouse e colocar um listener sobre isso controlando o estado em uma variável, em televisores não tenho conhecimento). Outra abordagem é colocar uma enquete de tempos em tempos (como na televisão interativa - TV 3.0) - Que decisão precisa ser tomada com base nesses dados?
- Colocar a transmissão em um app ou website próprio para controlar o tempo online (se web, com o mover do mouse) - deixar no youtube ou outras ferramentas nos deixariam à mercê de suas limitações.
- O tempo online durante a transmissão pode ser definido pelo tempo de transmissão percorrido dividido pelo tempo online (interação). Resultados acima de 0.9, por exemplo, seriam considerados como presença completa. Não responder à enquete ou não mover o mouse quando solicitado (a depender da solução aplicada - 5 minutos para executar cada ação) tiraria tempo de participação relativo ao último "checkpoint" (que é o início ou a última solicitação de interação). Exemplo: interação solicitada a cada 15 minutos, se na primeira interação o espectador não reagiu, tira 15 minutos de participação; se reagiu à primeira interação então adiciona 15 minutos + tempo de resposta (digamos que demorou o tempo máximo pra responder, seria adicionado 20 minutos) pra ele e assim sucessivamente.
- O tempo para cada interação e o tempo máximo para responder devem ser definidos em porcentagem do tempo total da transmissão, para ser variável conforme a duração de cada transmissão.
- Qual deve ser a ação final?
Enviar o e-mail aos espectadores que estiveram presentes por mais de 90% do tempo da transmissão.
Agradeço pela oportunidade de edificação e espero críticas e sugestões, grande abraço. Deus abençoe a todos!