Criando um Consumidor de Dash
Introdução
Como apresentado em Início, o GeoProcess é uma plataforma de ciência de dados baseada no conceito de perguntas e respostas e também na construção de dashboards interativos. Por meio dos dashboards interativos, é possível filtrar diversas informações provindas do banco de dados e, a partir desses filtros, visualizar as informações de forma adequada através de mapas, gráficos e tabelas.
Nesse contexto, o consumidor de dash atua também como a porta de entrada para o GeoProcess juntamente com os consumidores de perguntas, conectando os filtros selecionados pelo usuário às bases de dados disponíveis. Ele retorna as informações necessárias para a construção dos dashboards interativos. Sempre que um usuário deseja desenvolver um dashboard interativo, é necessário criar um consumidor de dash, que será responsável disponibilizar os filtros apropriados e organizar os dados das respostas para gerar as visualizações desejadas.
O GeoProcess permite que desenvolvedores criem consumidores de dash personalizados para atender às necessidades de cada projeto. Esse processo pode ser realizado clonando e adaptando o Consumer Dash Basic, um modelo básico fornecido para esse fim.
A seguir, será demonstrado como usar o Consumer Dash Basic para construir um consumidor de dash personalizado. Neste exemplo, será desenvolvido um consumidor para uma empresa fictícia chamada HARPIA, nomeando o projeto de Consumer-Dash-Harpia.
Instalação
Antes de iniciar a construção de um consumidor de dashboard, é necessário preparar o ambiente com as ferramentas adequadas. Abaixo, apresentamos um passo a passo sucinto para instalação e configuração.
Pré-Requisitos
Para que o Consumer-Dash-Basic funcione corretamente, é necessário atender aos seguintes pré-requisitos:
- Linguagem Python
- Pip3
- Git
- Visual Studio Code
Além disso, alguns subprojetos do GeoProcess também são necessários. Para isso, clone os seguintes repositórios:
- pgst-portal
- pgst-lib
Após a instalação dos pré-requisitos, você poderá utilizar o Consumer Dash Basic.
Preparando a Aplicação
O primeiro passo é clonar o projeto Consumer-Dash-Basic. Utilize o comando abaixo:
Observação
Esse projeto deve ser clonado dentro de uma pasta geoprocess, conforme a organização do projeto.
Configurando a Aplicação
Após clonar o repositório, será criada uma pasta chamada pgst-consumer-dash-basic, que contém o projeto do consumidor de dashboard básico.
Acesse a pasta do projeto:
Copie o arquivo de configuração do ambiente para preparar o ambiente de trabalho:
Edite o arquivo env.conf para configurar os parâmetros de acordo com o seu ambiente de trabalho.
Configure um ambiente virtual venv para isolar as dependências do Python:
Ative o ambiente virtual:
Instale as dependências do projeto:
Instale o projeto pgst-lib como uma dependência do consumidor:
Executando a Aplicação
Execute a aplicação no modo teste de contrato (CONTRACT_TEST):
Após isso, a saída será gerada no diretório graph_output. Abra os exemplos html dessa pasta utilizando algum servidor web, como o Live Server http://127.0.0.1:5500/graph_output/graph_graph_1.html.
Uma tela semelhante a mostrada a seguir deverá ser exibida.

Primeiras Alterações
Depois de clonar e executar o projeto pgst-consumer-dash-basic para verificar seu funcionamento, podemos começar a adaptá-lo conforme as necessidades do nosso consumidor de dashboard. No exemplo a seguir, criaremos uma versão personalizada chamada pgst-consumer-dash-harpia para a empresa fictícia HARPIA.
Etapas de Personalização
- Criar uma Cópia do Projeto
Copie o diretório pgst-consumer-dash-basic e renomeie-o para pgst-consumer-dash-harpia:
- Remover Arquivos Desnecessários
No diretório pgst-consumer-dash-harpia, exclua os seguintes arquivos e pastas da raiz, pois eles não são necessários para o novo projeto:
- Abrir o Projeto no Editor de Código
Abra o diretório pgst-consumer-dash-harpia em um editor de código Python. Recomendamos o uso do Visual Studio Code para facilitar as edições.
- Configurar o Arquivo
env.conf
Abra o arquivo env.conf na raiz do projeto e atualize as configurações de ambiente, incluindo:
- Testar a Aplicação Refatorada
Após realizar as alterações, execute a aplicação no modo Contrato para verificar se a refatoração foi bem-sucedida:
O resultado da execução pode ser visualizado com o Live Server em http://127.0.0.1:5500/graph_output/graph_graph_1.html.
- Atualize o Arquivo dashboards.json do Projeto
Após executar a aplicação e verificar que tudo deu certo, podemos agora personalizar as informações do arquivo dashboards.json na raiz do projeto conforme abaixo:
{
"projects": [
{
"consumer_project_id": "HARPIA_DASH",
"version": "1.1.0",
"title": "Projeto Dashboard Harpia",
"role_tag": "HARPIADASH"
}
],
"dashboards": [
{
"id": "dash01",
"version": 1.1,
"consumer_project_id": "HARPIA_DASH",
"role_tag": "DASH01",
"title": "DashBoard - Harpia",
...
}
]
}
Atenção: as role_tag não podem ter o caractere underline (_) nos nomes, pois o underline é usado internamente no Gateway.
Esse arquivo será utilizado quando o sistema estiver em produção.
Para mais detalhes sobre o funcionamento geral desse arquivo, leia a seção Diretório dashboards.
- Atualize o Arquivo dashboards.json do Portal
Agora, devemos agora personalizar as informações do arquivo dashboards.json do projeto Portal em pgst-portal/portal/json_samples/ conforme abaixo:
{
"data":
[
...
{
"id": "harpia_dash01",
"consumer_name": "harpia_dash01",
"project_id": 1,
"data" :
{
"id": "harpia_dash01",
"version": 1.1,
"project_title": "Projeto 1",
"role_tag": "DASH01",
"title": "DashBoard - Harpia",
"description": "Este painel mostra dados de dois gráficos e uma tabela.",
"consumer_id":"dash_harpia",
"components": ...,
"callbacks": ...
}
}
]
}
Esse arquivo é utilizado quando fazemos testes locais do consumidor de dashboard junto com o Portal, conforme passo a seguir.
- Testar a Aplicação Completa com Portal
Após realizar as alterações, é necessário abrir o Docker Desktop e executar o container do Postgis, pgAdmin e o Redis.
Em outro terminal, execute o Consumer-Dash-Harpia.
cd pgst-consumer-dash-harpia/
source venv/bin/activate
cd consumer_dash/
python3 manage.py dash_service
Em seguida, acesse a URL http://0.0.0.0:8000/. Vá em Projeto 1 e em Painéis vá em DashBoard - Basic - Hello World.
-
Atualizar Conteúdo do Arquivo Service.py
-
Ajuste o método
process1(e outros métodos caso necessário) para modelar os gráficos específicas do sistema. -
Atualizar Arquivos de Teste
À medida que for desenvolvendo os códigos em Python desse novo consumidor de dashboard crie testes unitários de forma a avaliar melhor o código antes de colocar a aplicação em produção.
- No arquivo
tests/test_001.py, faça os testes de software específicos para o seu sistema.
- No arquivo
Próximos Passos
Os próximos passos a serem seguidos dependem muito da aplicação que desejamos desenvolver. Assim, iremos dar apenas uma visão geral do que pode-se fazer e onde devemos alterar.
Integração com BD
No exemplo pgst-consumer-dash-harpia, todos os dados das tabelas e gráficos estão injetados diretamente no código, o que torna a nossa aplicação bastante limitada. Assim, o próximo passo é integrar o consumidor com o BD Postgres de forma que o consumidor leia os dados desse BD.
Para fazer essa integração é necessário ter instalado em seu computador o Docker Desktop, o PostgreSQL, o pgAdmin4 instalado no Docker Desktop. Os softwares PostGIS e PostGIS instalado no Docker Desktop são opcionais e dependem do propósito da aplicação. Para mais informações sobre a instalação, leia a seção Instalações.
Após a criação do banco de dados que será utilizado pelo nosso consumidor é necessário fazer algumas configurações. Edite o arquivo env.conf e atualize os campos: DB_NAME, DB_USER, DB_PASSWORD, DB_HOST, DB_PORT. Esses campos devem ser definidos conforme especificado na criação do BD. Lembre-se de remover o # que indica um comentário na linha.
Após isso, a nossa aplicação está pronta para acessar as informações disponíveis no Banco de Dados configurado. Agora, devemos fazer a programação em Python da nossa aplicação para acessar esses dados. Para mais informações sobre como construir dashboards interativos, leia a seção Consumer-Dash-Sample. Lá tem vários exemplos práticos de dashboards que podem ser construídos.
Fazendo a Implantação do Consumidor
Após o código ter sido desenvolvido e avaliado, precisamos fazer a implantação do nosso consumidor de dashboard na plataforma do GeoProcess.