Falta pouco!

0 dias

0 horas

0 min

0 seg

Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Desafio: Automatizando tarefas

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

  1. Obter lista de usuários de um banco de dados.
  2. Validar contra a API do Zoom o tempo de participação.
  3. 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)
1 resposta
solução!

Olá, Sandro! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de funções bem definidas para separar responsabilidades no código, utilizou muito bem o laço ParaCada para iterar sobre os alunos registrados e ainda compreendeu a importância do cálculo de tempo de presença para validar a participação na transmissão.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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