Especificações ‐ Solicitar aula particular - agleizer/ProjSoft_PRJ GitHub Wiki

Caso de uso: Solicitar aula particular

Item Descrição
Identificador UC004
Nome Solicitar aula particular
Atores Aluno
Sumário O usuário aluno do sistema busca e marca uma aula particular online com algum professor de algum assunto a sua escolha.
Complexidade Média
Regras de Negócio RN5, RN6, RN7
Pré-condições Aluno deve estar afiliado ao sistema e deve haver professores com disponibilidade publicada.
Pós-condição O professor é notificado do pedido pelo sistema e por Email, podendo ele aceitar ou não. Aula é adicionada na agenda do professor, no dia escolhido com o status "pendente", bloqueando a reserva de mais aulas no mesmo dia. Informações de agendamento, aula e pagamento são adicionadas ao banco de dados.

Fluxo Principal

Ações do Ator Ações do Sistema
1. O aluno entra na tela de login e insere suas credenciais. 2. O sistema procura os credenciais no banco de dados e os valida.
3. O aluno seleciona a opção "Marcar aula com professor". 4. O sistema apresenta um formulário com especificações para preenchimento.
5. O aluno preenche o formulário e clica "Buscar". 6. Por meio das especificações dadas no formulário, o sistema procura no banco de dados os professores cujas informações estão mais de acordo com as necessidades do aluno.
7. Durante a procura por professores é calculado um "Índice de Compatibilidade", o qual é uma porcentagem referente ao quanto as informações do professor batem com do aluno
8. retorna uma lista de professores em forma de cards. Os professores com maior Índice de Compatibilidade ficarão mais próximos ao topo da lista.
9. O aluno clica no card do professor escolhido. 10. O sistema exibe mais detalhes sobre o professor e um botão "Escolher professor".
11. O aluno clica em "Escolher professor" para prosseguir. 12. O sistema apresenta um catálogo de preços. O preço por hora é especificado pelo próprio professor e apresentado ao aluno. Ao apresentar o catálogo o próprio sistema realiza os cálculos para determinar o preço conforme a quantidade de horas/dias. Quanto mais horas, o preço multiplica.
13. O aluno escolhe o tempo de aula que deseja. Com base no preço e no tempo apresentados. 14. O sistema apresenta um formulário para escolha de data e horário.
15. O aluno escolhe as datas em que deseja realizar a aula. O número de dias a selecionar é determinado pela escolha que fez anteriormente. Uma vez seleccionados, clica no botão "OK". 16. O sistema analisa a agenda do professor para verificar quais dias estão livres para o professor. Se não existe conflito com outras aulas já marcadas
17. No caso de não haver conflito, o sistema envia a solicitação para o professor e notifica o aluno por email.
18. O aluno clica em "Confirmar" se concordar. 19. O sistema envia a solicitação para o professor e notifica o aluno por email.
20. É criado um agendamento de aula, inicializado como "não confirmado"
21. Professor verifica se está de acordo com a solicitação de aula. Clica "confirmar" para aceitar a solicitação. 22. Aluno recebe email e notificação de que o professor aceitou a solicitação de aula.
23. Informações referentes à aula, agendamento e pagamento são todas armazenadas no banco de dados. Status do agendamento muda para "confirmado". Além disso, tanto o Check-in quanto o Check-out da aula são inicializados como False, pois a aula ainda não ocorreu

Fluxos Alternativos

Fluxo Alternativo – Passo 9 – Aluno decide mudar as especificações de pesquisa

Ações do Ator Ações do Sistema
9. Possivelmente na intenção de procurar outro tipo de professor, aluno precisa mudar as especificações e clica no botão “mudar filtro” 10. Sistema mostra novamente as opções de busca/filtro para o aluno preencher com o que deseja.
11. Aluno preenche novamente as opções desejadas e clica "Buscar". 12. Sistema apresenta nova lista de professores com as novas especificações. Recalcula o Índice de compatibilidade.

Fluxo Alternativo – Passo 18 – Aluno decide mudar especificações de horário e aula.

Ações do Ator Ações do Sistema
18. Aluno clica em “mudar data e/ou horário”. 19. Sistema apresenta calendário para seleção de data e horário.
20. Aluno escolhe outra data e horário. 21. Sistema verifica se nova data e horário estão disponíveis na agenda do professor.

Fluxos de Excecção

Fluxo de Exceção – Passo 1 – Aluno não está registrado no sistema

Ações do Ator Ações do Sistema
1. Credenciais do aluno não são aceitas pelo sistema pois ainda não está registrado. 2. Sistema verifica que não existem dados do aluno no banco de dados então mostra uma tela perguntando se deseja se afiliar ao sistema.
3. Aluno clica em aceitar e realiza o processo de afiliação. 4. Sistema insere os novos dados no banco de dados.

Fluxo de Exceção – Passo 1 – Aluno digita as credenciais incorretamente

Ações do Ator Ações do Sistema
1.Credenciais do aluno não são aceitas pelo sistema. 2. Sistema sugere digitar as credenciais novamente ou que o aluno se registre no sistema.
3. Aluno opta por digitar suas credenciais novamente. 4. Sistema verifica as credenciais mais uma vez para ver se estão no banco de dados.

Fluxo de Exceção – Passo 3 – Sem conexão com servidor

Ações do Ator Ações do Sistema
3. Aluno termina de fazer o login e tenta entrar na página inicial do sistema. 4. Devido a razões técnicas, o servidor encontra-se fora do ar. Mostra tela para aluno falando “Desculpe, tivemos um problema com o servidor. Favor, voltar mais tarde.

Fluxo de Exceção – Passo 7 – Não foram encontrados professores que se encaixem em especificações o suficiente

Ações do Ator Ações do Sistema
7. Caso nenhum professor tenha índice de compatibilidade superior a 50%, aluno é notificado na própria tela de busca. Pergunta se aluno deseja ver os que mais chegam próximo das especificações.
8. Aluno clica "aceita" caso queira ver as opções mais próximas. 10. Sistema apresenta os cards dos professores, ainda na ordem dos que tem a maior compatibilidade.

Fluxo de Exceção – Passo 15 – Aluno escolhe data e horário indisponíveis para o professor

Ações do Ator Ações do Sistema
15. Aluno seleciona dia e horário, porém os horários não estão disponíveis de acordo com a agenda do professor. 16. Sistema mostra uma tela avisando da indisponibilidade e sugere que aluno selecione outra data e horário.
17. Aluno pode escolher outra data e horário. 18. Sistema verifica se a data e horários estão disponíveis para o professor.

Regras de Negócio

Número Regra de Negócio
RN5 Aluno só pode marcar aulas em datas com no mínimo um dia de antecedência.
RN6 Alunos com contas suspensas ou bloqueadas não podem marcar aulas enquanto se encontrarem neste estado.
RN7 Alunos só podem marcar aulas em datas e horários que os professores publicaram como disponíveis.
RN8 Professor precisa ter Índice de Compatibilidade calculado superior a 50% para ser recomendado ao aluno