Definições
Pré-condição:
Será utilizada uma aplicação como o Zoom para a transmissão.
Conhecemos o MeetID.
Os usuários se conectam à reunião com seu e-mail.
Funcionamento
- Obter lista de usuários de um banco de dados.
- Validar contra a API do Zoom o tempo de participação.
- Enviar e-mails.
Obtenção da lista de usuários
- Conectamos ao banco de dados.
- Recuperamos a lista de usuários com seus e-mails.
- Guardamos a lista de usuários em memória.
Validação dos horários de entrada e saída do usuário
Percorremos a lista de usuários.
Para cada usuário:
- Solicitamos via API os horários de conexão e desconexão da reunião para o e-mail e o Meet ID.
- Validamos se a conexão foi aberta no horário da reunião +/- 5 minutos.
- Se houver mais de uma conexão, validamos que o total de minutos conectado seja igual +/- 5 minutos ao total da transmissão.
- Se houver apenas uma conexão de entrada e uma de saída, validamos que o tempo total conectado seja igual +/- 5 minutos ao tempo da transmissão.
- Se o usuário não cumpriu os requisitos de tempo de conexão, ele é removido da lista.
Envio de e-mails
- Percorremos a lista de presença final.
- Obtemos nome e e-mail do participante.
- Enviamos o e-mail de agradecimento com base em um template pré-definido.
Pós-condição:
Todos os participantes que completaram a transmissão +/- 5 minutos recebem o e-mail.
Pseudocódigo
Função Main()
listaCompleta = ObterListaRegistrados(MeetID);
ParaCada aluno em listaCompleta
se (completoAsistencia(ObterConexoesZoom(aluno)))
enviarEmail(aluno)
Função ObterListaRegistrados(MeetID)
db = abrirConexao(dbUsuarios)
return db.selecionar(MeetID)
Função completoAsistencia(listaConexoes)
tempoAula = 60
tempoTotal = 0
ParaCada conexao em listaConexoes
tempoTotal += (conexao.horaFim - conexao.horaInicio)
return tempoTotal >= tempoAula - 5
Função enviarEmail(aluno)
agradecimento = "[aluno.nome] obrigado por participar da transmissão"
email.send(aluno.email, agradecimento)