- Publicado por
Tecnologias usadas no projeto SGA
- Authors

- Name
- Gabriel Gava Pinheiro
Introdução
Seja bem-vindo ao artigo onde detalho o projeto SGA (Sistema de Gestão Agrometeorológica). Aqui, você encontrará informações sobre as tecnologias empregadas, a importância desse projeto para o IDR (Instituto de Desenvolvimento Rural do Paraná), e como ele se tornou a base do meu conhecimento sobre APIs e desenvolvimento web.
- Introdução
- As Tecnologias mais utilizadas no Projeto SGA
- Motivação do Projeto
- Imagem do SGA Web
- Maiores Desafios
- Conclusão
As Tecnologias mais utilizadas no Projeto SGA
O projeto SGA foi dividido em duas partes principais e teve duração de 4 meses. Foi desenvolvido integralmente em Node.js com React, utilizando o banco de dados PostgreSQL. Para otimizar o desempenho, utilizamos Redis para cache e iniciamos a implementação de uma fila com microserviço. Embora não tenha seguido o padrão convencional de microserviços, pois trabalhei apenas com funções separadas para evitar congestionamento e sobrecarga do servidor.
Motivação do Projeto
O SGA, Sistema de Gerenciamento Agrometeorológico, permite que todos os pesquisadores do IDR acessem dados agrometeorológicos de forma rápida e precisa, essenciais para estudos e projetos internos. Por isso, desenvolvemos tanto a API (Application Programming Interface) quanto a interface web:
- A interface web é utilizada pelos pesquisadores para extrair dados do banco de dados do IDR para análise climática.
- A API é utilizada para integrar sistemas de irrigação, controle de horas de frio e outros projetos internos do IDR.
Imagem do SGA Web

Esta imagem ilustra a documentação da API do SGA, mostrando as rotas disponíveis para que os usuários possam desenvolver aplicações baseadas nessa API.

Maiores Desafios
O sistema lida com uma base de dados extensa, contendo mais de 20 anos de leituras de sensores, atualizadas a cada 15 minutos. O principal desafio foi gerenciar essa vasta quantidade de dados de forma eficiente. Utilizamos o modo cluster do Node.js para processamento concorrente nos núcleos do servidor, além de um cache simples e processamento em fila. No entanto, devido à configuração e demanda, a fila foi removida, pois o servidor conseguia lidar com o volume de requisições diárias.
Outro desafio foi gerenciar as mais de 40 variáveis que podiam ser consultadas no sistema. Adotamos várias medidas para proteger o banco de dados e implementamos autenticações robustas por meio de chaves.
Além disso, o sistema possui um modelo de cobrança baseado no volume de dados acessados, permitindo a monetização dos serviços oferecidos.
Conclusão
O projeto SGA foi o mais complexo e desafiador em minha carreira de programador até o momento. Exigiu dedicação intensa e um profundo conhecimento em arquitetura de sistemas, Node.js e React.