Início

Aqui você encontrará toda a documentação para uso do SIGA, um dos produtos desenvolvidos pelo laboratório FLOW do CETC/UFAL. Mais informações sobre o sistema podem ser acessadas em flowbr.org.

O que é o SIGA?

O Sistema Integrado para Gestão de Águas (SIGA) é uma solução customizada escalável para integração da gestão de águas, centrada nos interesses dos usuários (UX) e apoiada em segurança de dados (engenharia computacional) e de decisão (análise integrada com resolução para bacias estaduais). O SIGA é composto por aplicações desenvolvidas em dois níveis: Frontend e Backend. As aplicações Frontend são aquelas responsáveis pela interação direta com os usuários do sistema através de interfaces gráficas (aplicações Web e Mobile), enquanto as aplicações Backend proporcionam o armazenamento estruturado (banco de dados) e o fluxo de dados entre as aplicações do Frontend e do Backend por meio de endpoints (URLs).

Visão geral do SIGA composto por aplicações a nível de Frontend e Backend

Módulos do SIGA

Módulo Descrição
Acesso do Usuário Realizar cadastro, criar um login, senha e acompanhar a tramitação de processos de solicitação de outorga e fiscalização.
Gestão de Outorgas Esse módulo contempla todos os dados e processos relativos aos pleitos de outorga.
Monitoramento Hidrometeorológico Permite organizar e analisar os dados hidrometeorológicos do órgão gestor em uma única base de dados estruturada.
Segurança de Barragens Permite relacionamento com o Sistema Nacional de Informações sobre Segurança de Barragens – SNISB da ANA.
Fiscalização dos Usos da Água Registro o registro de denúncias, gerenciamento de processos de fiscalização, notificações e multas em campo através de aplicativo de celular;
Geo SIGA Visualização e análise de dados geoespaciais do órgão gestor.
Qualidade da Água Permite organizar e analisar os dados de qualidade da água do órgão gestor em uma única base de dados estruturada.
Gestão Financeira Valoração Econômica e determinação da taxa Cobrança pelo Uso da Água e emissão de boletos.

Requisitos do Sistema

O sistema poderá ser instalado em qualquer sistema operacional que suporte a plataforma Docker com versão 19.03.6 ou superior. O Docker consiste em uma plataforma de código aberto que garante maior facilidade na criação e administração de ambientes de desenvolvimento isolados, implicando em uma rápida implantação. O SIGA é dividido em dois containers. O primeiro abriga a API com todas as funcionalidades do sistema e o segundo abriga o banco de dados. Os dados que compõem o banco de dados são abrigados fisicamente fora do container e linkados através de um volume. Os requisitos mínimos para a execução dos containers que compõem o SIGA são:

  • 4 cores
  • 4GB RAM
  • 50GB espaço em disco
  • Sistema operacional que suporte a plataforma Docker

Integrações com outros Sistemas

O sistema possui integração com os subsistemas do SNIRH da ANA (REGLA, PLANN e QUALT), com plataforma de dados do CEMADEN e INMET, com o Sistema Eletrônico de Informações Estadual (SEI) e com instituições financeiras (estadual ou privada).

Integrações com Geoserviços

O sistema utiliza gerenciamento de banco de dados de objeto relacional PostgreSQL com extensão PostGIS, que permite o uso de objetos geoespaciais ser armazenado em banco de dados (shapefiles e imagens georeferenciadas), além do desenvolvimento de serviços de operações de geoprocessamento destes objetos a partir API específicas que foram desenvolvidas. Um exemplo é o uso da Base Hidrográfica Ottocodificada (BHO), sendo base para a simulação do balanço hídrico superficial utilizado no Sistema de Suporte à Decisão de Outorgas do Módulo de Gestão de Outorgas. Para visualização e manipulação destes objetos geoespaciais em mapas em diferentes módulos do sistema, foi adotado a biblioteca React-Leaflet, o que torna a experiência do usuário mais rica e interativa.

Escalabilidade

O sistema foi desenvolvido de forma escalável por concepção, dotado de uma estrutura flexível capaz de adaptar seus módulos existentes às particularidades locais, tais como a necessidade de implementação da gestão digital confrontando com as limitações de investimento do órgão gestor. Desta forma, a estrutura do sistema em uso em cada unidade difere de acordo com a necessidade do órgão gestor, mas cada instituição pode expandir o sistema com a aquisição de novos módulos, podendo ser integrado com os módulos já existentes. O sistema também foi desenvolvido de forma a se adaptar às necessidades dos diferentes usuários, através da definição e atribuição de diferentes perfis de usuários pelo administrador do sistema, que pode configurar e disponibilizar o acesso aos módulos e as funcionalidades habilitadas, com as devidas restrições configuradas em função do perfil de cada conta cadastrada no sistema.

Adaptabilidade

O sistema foi desenvolvido considerando um elevado grau de adaptabilidade em seus diferentes módulos, onde o administrador do sistema (ou gerente de cada módulo) tem autonomia de configurar e customizar diferentes serviços em cada módulo, alterando, assim, a experiência do usuário no uso do sistema. Por exemplo, a nível administrativo, é possível configurar as integrações outras plataformas ou sistemas, o serviço de email e Whatsapp utiilizado para notificar usuários, etc. No Módulo de Gestão de Outorgas, é possível personalizar a documentação solicitada para diferentes tipos de outorgas, regras isenção de uso insignificante e dispença de licença, configuração do certificado eletrônico de outorga, definição de prazos de renovação, ativação de formulários eletrônicos, verificação automática de uso racional da água, etc. No nosso laboratório utilizamos a política de parceria entre as instituições que já estão utilizando o sistema, com a disponibilização gratuita de atualizações com a disponibilização de novas funcionalidades de interesse interinstuticional. Novos convênios ou contratações são necessárias para expansão do sistema ou de módulos já existentes, considerando a necessidade do órgão gestor.

Prazo estimado de implantação

O tempo de implantação do sistema depende do escopo de trabalho estipulado pelo próprio órgão gestor, considerando o nível de personalização desejada nos módulos existentes, o desenvolvimento de novos módulos, funcionalidades e/ou aplicativos sob demanda, além da complexidade de implementação dos projetos de balanço hídrico no Sistema de Suporte à Decisão de Outorgas (ex. personalização da escala utilizada na Base Hidrográfica Ottocodificada, área das bacias hidrográficas e parametrização do sistema).

Disponibilização de Código-fonte

O código-fonte do sistema é disponibilizado ao parceiro, o qual fica no servidor do próprio órgão gestor. O sistema tem registro de software no Instituto Nacional da Propriedade Industrial (INPI) e é de propriedade intelectual da Universidade Federal de Alagoas, desta maneira não é permitido revelar, reproduzir, copiar, repassar, vender, alugar, comercializar, dar, doar, divulgar, distribuir, utilizar e/ou dar conhecimento, em hipótese alguma, a terceiros ou em proveito próprio ou alheio, dados, informações científicas ou quaisquer materiais obtidos com ou sem sua participação que pode utilizar o código-fonte para fins não comerciais. Tais termos, são estabelecidos dentro do objeto de convênio.

Disponibilidade de Ambiente de Teste

Atualmente o sistema dispõe de um ambiente de testes geral em https://semarh.flowhub.com.br/, que usa parte da configuração que foi implementada de forma operacional no Estado de Alagoas. Também é possível criar um ambiente de testes com a configuração específica do Estado do órgão gestor, durante o período de convênio, uma vez que esta configuração requer esforço de trabalho de parte da equipe técnica do projeto.

Tecnologias utilizadas no desenvolvimento

A Interface Gráfica do Usuário (GUI) do sistema foi construída com a biblioteca open-source ReactJS em JavaScript, criada pelo Facebook e amplamente utilizada. O ReactJS permite a criação de componentes reutilizáveis e um Modelo de Objeto de Documentos (DOM) virtual garantindo uma renderização da GUI mais rápida, proporcionando maior fluidez na interação do usuário com o sistema. Além disso, a Material-UI (MUI), um conjunto de ferramentas de interface do usuário criado pelo Google e disponível gratuitamente, foi utilizada em conjunto com o ReactJS. Para a visualização de gráficos, foram utilizadas as bibliotecas ChartJS e Plotly, e para a visualização de mapas, foi utilizada a biblioteca Leaflet. Com essas bibliotecas, o sistema pôde implementar funcionalidades mais rapidamente e oferecer uma experiência de usuário mais rica e interativa No lado do servidor, utilizamos a linguagem Python para desenvolvimento. O sistema foi desenvolvido utilizando a plataforma Django. Django é projetado para aplicações web seguindo o padrão de projeto Model-View-Controller, em que a lógica de funcionalidades é separada da apresentação e do gerenciamento de dados. Isso simplifica o desenvolvimento e a manutenção do código. Para modelagem dos dados, utilizamos um mapeamento objeto-relacional. Como base, adotamos o Observations Data Model version 2.0. O ODM2 é um modelo de banco de dados para gerenciamento e compartilhamento de dados espacialmente localizados que oferece suporte para a descrição de metadados, como informações sobre a coleta de dados, equipamentos utilizados, e informações sobre a qualidade dos dados coletados. A comunicação entre o servidor e o cliente se deu através de API Rest. As solicitações são gerenciadas por HTTP e estabelece uma comunicação stateless. Isso significa que nenhuma informação do cliente é armazenada entre as solicitações e todas as solicitações são separadas e desconectadas, garantindo maior segurança. Por fim, utilizou-se o Docker para virtualização não convencional a partir de contêineres. Cada contêiner possui o software e todos os pré-requisitos instalados, isso permite que ao transportar o contêiner (seja para máquina de desenvolvimento ou servidor) não necessário se preocupar com sistema operacional, permissionamento ou outros pré-requisitos. Isso permite uma implementação rápida e escalável do sistema possibilitando adaptações conforme o desenvolvimento.

Armazenamento e Backup

O armazenamento de todas as informações do sistema é realizado em nuvem, utilizando o servidor do próprio órgão gestor ou do núcleo de tecnologia do Estado. A política de backup é definida pelo órgão gestor (ex. serviço local ou privado de backup, backup diário, semanal ou mensal, etc).

Monitoramento

O sistema utiliza uma plataforma gratuita, denominada Dozzle, para monitoramento do desempenho de uso de memória e CPU, além de viisualizar todos os log projetado para simplificar o processo de monitoramento e depuração de cada contêiner do sistema. Esta plataforma é baseada na Web que fornece recursos de streaming, filtragem e pesquisa de log em tempo real por meio de uma interface de usuário intuitiva. No entanto, esta plaforma sem custos não realiza alertas e notificações automáticas. Assim, caso o órgão gestor deseje e assuma os custos financeiros, é possível utilizar outras ferramentas de monitoramento do sistema como, por exemplo, o Sentry.

Customizações

O sistema é entregue já customizado e configurado às necessidades do órgão gestor. No entanto, o sistema é adaptável uma vez que dispõem de um ambiente de configuração em cada módulo, para que a equipe interna do órgão gestor possa realizar a customização.

Suporte Técnico

O laboratório oferece suporte técnico integral sem custos, durante e após o convênio, para correções de eventuais erros detectados decorrentes do uso do sistema e suporte técnico para treinamento de técnicos e usuários, apenas durante o período do convênio. Solicitação de desenvolvimento de novas funcionalidades não previstas no escopo do projeto, não serão consideradas pela equipe técnica do projeto. Tais serviços podem ser comtemplados por meio de um novo objeto de convênio ou de um contrato de sustentação do sistema.

Manutenção do Sistema

O laboratório possui equipe técnica qualificada para prestar manutenção ao sistema sempre que solicitado pelo órgão gestor.

Treinamento

Após o terceiro mês de convênio, é oferecido treinamento quinzenal para uso do sistema no ambiente de teste. A duração de cada treinamento é de duas horas.