Aplicação Next.js
Esta é uma aplicação Next.js com o objetivo de propiciar a visualização de estações em um mapa OpenStreetMap. Para isso, foram utilizadas as bibliotecas leaflet e react-leaflet.
A aplicação demarca as estações no mapa obtidas através da API do repositório API rodando em http://localhost:8000 e o banco de dados no repositório banco_censipam com um círculo. A cor deste círculo é determinada pela quantidade de inconsistências detectadas em um tipo de estação. Essas cores são determinadas pelos tipos de estação (régua ou PCD) selecionáveis como camadas no mapa.
Ao clicar em uma determinada estação, são mostrados dados como o nome e o código da estação, bem como a quantidade de inconsistências e a última medição. Também há um botão para redireção para os gráficos.
Camada da Amazônia Legal
Para aplicar o contorno da Amazônia Legal na aplicação, foi utilizada a camada 'Brazilian Legal Amazon', do INPE, disponível no catálogo de geoserviços do site do INDE.
Componentes de navegação
Na aplicação, para que o servidor Bokeh seja utilizado de maneira a permitir uma navegação interessante ao usuário e as requisições necessárias, a aplicação usa do esquema de navegação da biblioteca Link. Assim, é possível navegar entre páginas de modo rápido e obter informações necessárias para a construção do ìframe localizado dentro do componente BokehApp.
O componente BokehAppnada mais é do que um iframe que recebe as respostas da aplicação bkapp. Já o componente BokehSup recebe as respostas da aplicação bksup, referente à supervisão de adequações. Para mais detalhes sobre esta aplicação, veja Servidor Bokeh.
Monitoramento
A página de monitoramento oferece acesso direto aos logs dos containers Docker e ao status dos serviços da aplicação, e tem como objetivo fornecer aos administradores uma forma simples e intuitiva de acompanhar o funcionamento das aplicações. Os logs mais recentes dos containers Docker de cada serviço são apresentados na tela, permitindo uma rápida detecção de eventos relevantes. A página também exibe o status atual de todos os serviços em execução nos containers, indicando se aquele serviço está rodando ou não. Desse modo, os administradores podem identificar e resolver problemas menores de maneira rápida diretamente nessa página, no entanto, problemas de maior magnitude possivelmente exigirão que o administrador acesse os logs via terminal para uma análise mais detalhada.
Atualmente, a API foi configurada para retornar os últimos 10 logs de cada container. Também não há atualização em tempo real dos logs do sistema.
A página se encontra na rota /monitor.
Usuários
Um usuário administrador pode realizar diversas ações relacionadas aos usuários do sistema, como:
- Criar um novo usuário;
- Editar os dados pessoais de um usuário existente;
- Excluir um usuário;
- Resetar a senha de um usuário para a senha padrão.
Estas ações estão definidas na rota /users.
Configuração de Features
O objetivo é usar um arquivo de configuração simples para controlar a ativação de features, onde cada feature possui um booleano indicando se está ativa ou não. Não serão utilizadas ferramentas avançadas de feature flags nesta abordagem. O arquivo features.js, dentro do diretório utils/, será responsável por definir as features da aplicação, principalmente das técnicas de adequação, e seu estado (ativada ou desativada).
Cada feature possui uma propriedade enabled (um booleano que indica se a feature está ativada ou não) e uma descrição da feature, conforme o exemplo abaixo.
const featureConfig = {
feature1: {
enabled: true,
description: "Uma funcionalidade ativada",
},
feature2: {
enabled: false,
description: "Uma funcionalidade desativada",
},
};
Os itens do seletor de técnicas, na tela de adequação manual, são renderizados condicionalmente com base nos estados definidos no arquivo de configuração para cada técnica. Da forma que está configurado atualmente, somente a mudança de RN deverá aparecer no seletor.
Histórico de versão
| Versão | Data | Descrição | Autor | Revisor |
|---|---|---|---|---|
1.0 | 21/02/2024 | Adição do arquivo à documentação | Cássio Reis | Felipe M. |
1.1 | 21/02/2024 | Remove seção de inicialização do projeto | Cássio Reis | Felipe M. |
1.2 | 05/03/2024 | Adição de seção componentes de navegação | Felipe M. | Cássio Reis |
1.3 | 19/03/2024 | Atualização de informações antigas | Felipe M. | Cássio Reis |
1.4 | 21/03/2024 | Atualização de informações antigas | Felipe M. | Cássio Reis |
1.5 | 18/04/2024 | Adição da seção de "Autenticação" | Felipe M. | Cássio Reis |
1.6 | 23/05/2024 | Adição da seção de "Monitoramento" | Cássio Reis | Felipe M. |
1.7 | 06/06/2024 | Adição da seção de "Configuração de Features" | Cássio Reis | Felipe M. |
1.8 | 15/07/2024 | Adição da seção de "Usuários" | Cássio Reis | Felipe M. |
1.9 | 09/12/2024 | Atualização de detalhes do funcionamento atual | Cássio Reis | Felipe M. |