Ir para o conteúdo principal

Sistemas De Notificação Portal do Cidadão


Data de elaboração 04/03/22
Responsável pelo estudo


  1. Rafael Passos dos Santos (Assessor)
Equipe do estudo
  1. Gustavo Felix Gomes (Assessor)
  2. Rafael Passos dos Santos (Assessor)
  3. André Honório de Andrade Silva (Tecnico)
  4. Emanuel Rufino Alcantara de Lima (Analista)
  5. Lucas de Souza e Sousa (Estagiario)
  6. Euriane Nogueira (Product Owner)
Alvo Portal do Cidadão
Origem

Sistemas De Notificação Portal do Cidadão

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.
Documentação correlata
Observações O presente estudo pretende também levantar as Historias dos cars para a Sprint 

1. 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.

2. Introdução

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

3. Desenvolvimento - Sistemas De Notificação Portal do Cidadão

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.

3.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.

3.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.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? Pontos Regras Produto
- Coloca o PUSH API em ASP Net Core 5.0 ou 6.0 2

- 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 Pentagono 3

- 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 notificado 5

- 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ções 5

- 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ção 3

- 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? Pontos Regras Produto
- Criar Mensagens para as Notificações por PUSH 3

- 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 Push 3

- Debito Técnico

- Trocar usuarioId por CPF

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

Push API

Notificação por WhatsApp

O que? Pontos Regras Produto
- Configurar Servidor MyZap 2.0 8

- 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 PushAPI 3

- Criar Chamada para Envio de Mensagem

Push API

- Criar Mensagens para as Notificações por WhatsApp 3

- 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? Pontos Regras Produto
- Consumir serviço de E-mail 3

- Consumir Serviço de E-mail

Push API

- Criar Corpo Base do E-mail 2

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

Push API

- Criar Mensagens para as Notificações por E-mail 3

- 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? Pontos Regras Produto
- 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 Portal 2

- Ajustar para atender as Notificações por PUSH

- Atenção ao Layout (Mobile First)

Portal do Cidadão

- Criar Tela de Notificação 5

- 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

3.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.

4. 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.