Ir para o conteúdo principal

Vingadores - [Alpha] Integração com o GOV.DOC

 OBJETIVO

Avaliar qual a melhor solução para a criação do sistema de notificação do Portal do Cidadão, encontrar tecnologias para melhorar a notificação do servidor e em que momentos iremos disparar notificações.

JUSTIFICATIVA

Atualmente existe o Ícone de Notificações no portal mas o mesmo atualmente não tem funcionamento.

RESULTADOS DA PESQUISA

Identificar qual a melhor solução para criar o sistema de notificação no Portal do Cidadão, quais histórias de usuários, débitos técnicos e possíveis impedimento podem dificultar a criação das notificações.

ENVOLVIDOS:

Gustavo Felix Gomes (DEV Team)

Rafael Passos dos Santos (DEV Team)

Emanuel Rufino Alcantara de Lima (DEV Team)

Lucas de Souza e Sousa (DEV Team)

André Honório (DEV Team)

Euriane Nogueira Frota (Product Owner)

Edson Masami Hiraçaka (Scrum Master)

Lucas Tavares Viana de Souza (Estagiário Scrum Master)

1. CENÁRIO ATUAL
-
Atualmente o Portal do Cidadão não possui um sistema de notificação, mesmo ele tendo um Ícone na sua barra superior a funcionalidade ainda não foi desenvolvido. Sabemos que precisaremos realizar o envio de notificações para atualizar o cidadão referente as suas solicitações e agendamento. A ideia era de enviarmos notificações por PUSH, onde se o mesmo tivesse ativado as notificações ele receberá um aviso no seu Navegador ou Aparelho Móvel referente a alguma atualização das suas solicitações e agendamentos. Mas recentemente foi desenvolvido uma Spike pelo time Tambaqui referente ao Envio de Mensagens pelo WhatsApp e foi levantado também o envio de mensagem pelo WhatsApp. Durante a Ultima Review apresentada aos cliente foi sugerido também o envio dessas notificações também por E-mail caso o Usuário permite-se, então ficamos com esses três caminhos de envio para ser aplicado no Portal.
Durante um período no Portal do Servidor criamos notificações por Push API mas por problemas com a Autenticação do Sauron e de carregamentos de perfis por conflito no PWA foram removida mas essa API ainda existe. É possível reaproveitamos alguns trechos de códigos delas e melhoramos para atender todos as notificações dos Portais.

2. SOLUÇÃO

A Melhor solução para criar esse sistema de notificação seria modificar a Push API já existente sendo realizar melhorias no código da Notificação por Push, Adição da Notificação pelo WhatsApp e por E-Mail.

As notificações inicialmente serão enviadas nos seguintes momentos:

- Notificar o Cidadão um dia antes sobre o agendamento.
- Notificar o Cidadão no dia sobre o agendamento.
- Notificar o Cidadão que o mesmo precisa avaliar o atendimento.

3. HISTÓRIAS DE USUÁRIO

Segue abaixo as Histórias de usuários necessárias para realização da Solução acima

PUSH API

O que?PontosRegrasProduto
- Coloca o PUSH API em ASP Net Core 5.0 ou 6.02

- Debito Técnico

- Verificar com a Liderança se é possível trabalhar com ASP Net Core 6.0

Push API

- Consumir consulta por CPF do Pentagono3

- História de Usuário necessária para obter o E-mail e WhatsApp

- Obter Chave na Central do Dev

Push API

- Criar Rota e Modelagem para salvar as preferências de como o usuário deseja ser notificado5

- Deve conter o CPF do usuário, se o mesmo ativou o PUSH API, Se deseja receber notificação por E-mail ou WhatsApp.

- Deve ser possível Editar

Push API

- Criar Rota para Iniciar a execução Notificações5

- Obter Agendamentos do Alpha de forma eficiente (Data)

- Configurar no Caveira Job o Tempo de Execução

Push API

- Salvar Notificações quando enviar uma notificação3

- Criar Modelagem

- Quando enviar uma Notificação salvar, cuidado para não salvar varias vezes a mesma notificação

Push API

Notificação por PUSH

O que?PontosRegrasProduto
- Criar Mensagens para as Notificações por PUSH3

- Criar Mensagem para cada Notificação Abaixo:

* Notificar o Cidadão um dia antes sobre o agendamento.
* Notificar o Cidadão no dia sobre o agendamento.
* Notificar o Cidadão que o mesmo precisa avaliar o atendimento.

Push API

- Refatorar Notificações por Push3

- Debito Técnico

- Trocar usuarioId por CPF

- Melhorar código existente de Notificação por PUSH

Push API

Notificação por WhatsApp

O que?PontosRegrasProduto
- Configurar Servidor MyZap 2.08

- Auxilio da Liderança Técnica

- https://www.youtube.com/watch?v=sTMtev62vUE

- https://github.com/billbarsch/myzap

My Zap

Push API

- Consumir MyZap na PushAPI3

- Criar Chamada para Envio de Mensagem

Push API

- Criar Mensagens para as Notificações por WhatsApp3

- Criar Mensagem para cada Notificação Abaixo:

* Notificar o Cidadão um dia antes sobre o agendamento.
* Notificar o Cidadão no dia sobre o agendamento.
* Notificar o Cidadão que o mesmo precisa avaliar o atendimento.

Push API

Notificação por E-mail

O que?PontosRegrasProduto
- Consumir serviço de E-mail3

- Consumir Serviço de E-mail

Push API

- Criar Corpo Base do E-mail2

- Criar Corpo do E-mail em HTML com Cabeçalho, e Rodapé.

Push API

- Criar Mensagens para as Notificações por E-mail3

- Criar Mensagem para cada Notificação Abaixo:

* Notificar o Cidadão um dia antes sobre o agendamento.
* Notificar o Cidadão no dia sobre o agendamento.
* Notificar o Cidadão que o mesmo precisa avaliar o atendimento.

Push API

Portal do Cidadão

O que?PontosRegrasProduto
- Adicionar opção de Ativar ou Desativar Notificação na Tela "Minhas Informações" 3

- Salvar no Push API

- Atenção ao Layout (Mobile First)

Portal do Cidadão

- Realizar ajustes no PWA do Portal2

- Ajustar para atender as Notificações por PUSH

- Atenção ao Layout (Mobile First)

Portal do Cidadão

- Criar Tela de Notificação5

- Obter todas as notificações do usuário

- Criar Rota de Obter Notificação na Push API

- Atenção ao Layout (Mobile First)

Portal do Cidadão

Push API

4. POSSÍVEIS IMPEDIMENTOS

Um possível impedimento que pode acontecer e dificuldades no Desenvolvimento da Funcionalidade de Notificação pelo WhatsApp pois é uma tecnologia que nunca utilizamos e a mesma é feita em Node.Js uma tecnologia que nem todos os membros do Time/Code estão familiarizadas. Também existe o Fato de a MyZap API ter que ser hospedada e realizado diversas configurações antes de seu funcionamento.

Outro possível impedimento seria nas notificações por Push, atualmente a API trabalhava levando em conta o usuário do Sauron mas estamos ate o presente momento realizando a autenticação pelo GOV.BR o que gera uma demanda de trabalha e refatoração no código atual. O Certo será trabalhar com os dois pois o Portal do Servidor utiliza Sauron e o Portal do Cidadão GOV.BR.

CONCLUSÃO

Fica concluído que com a quantidade de histórias de usuários o sistema de notificação do Portal e bem grande e tem partes bem complexas outras não tão complexas. O mesmo pode ser implementado em partes onde se realizar notificações por menos canais ate chegar aos três canais sugeridos.