Sobre Mim Projetos Artigos Experiência Formação Contato
Currículo PDF Mudar para Inglês 🇺🇸
Voltar para Artigos

Um Novo Olhar sobre a Gestão de Estoques: Unindo Contabilidade, Operações e Tecnologia PWA com o Sistema Tracker

Como a intersecção entre a contabilidade, o direito e a tecnologia resolve o abismo entre o chão de fábrica e as demonstrações financeiras.

Mar 2026 10 min de leitura Supply Chain & Data Engineering
Ilustração do Ecossistema Tracker
Figura 1: Topologia híbrida (Desktop/Mobile) do ecossistema Tracker

Ao longo da minha trajetória profissional, atuando na intersecção entre a contabilidade, o direito e a tecnologia, tenho observado um desafio constante nas empresas: o abismo que muitas vezes existe entre o chão de fábrica e as demonstrações financeiras.

Sabemos que uma cadeia de suprimentos é um sistema por meio do qual empresas e organizações interligadas entregam produtos e serviços a seus consumidores. Para que haja verdadeira eficiência, precisamos olhar para todos os estágios envolvidos, direta ou indiretamente, em suprir a necessidade de um cliente. No coração dessa engrenagem, garantindo que o produto certo esteja disponível no momento certo, está a Gestão de Estoques.

O Desafio da Acurácia: Muito Mais que Apenas "Contar Caixas"

Do ponto de vista contábil e financeiro, o estoque costuma ser uma das contas mais representativas do ativo circulante. A precisão do inventário físico não é um mero capricho logístico; ela é determinante para a correta apuração do Custo das Mercadorias Vendidas (CMV), o que afeta diretamente a margem de lucro e o planejamento tributário de um negócio.

Para ilustrar a importância dessa exatidão, gosto de usar uma analogia com medições volumétricas industriais, onde pequenos detalhes mudam tudo. É como calcular com exatidão volumes fracionados em um tanque: interpretar que a capacidade de 1/1 representa o volume total (como 60 litros), ¾ equivale a 45 litros, ½ a 30 litros e ¼ a 15 litros. Se a régua de medição estiver incorreta, o saldo reportado será irreal. Da mesma forma, no estoque, se a ferramenta de contagem for falha, o balanço patrimonial será apenas uma ficção.

A Concepção do Tracker: Uma Ferramenta Nascida da Necessidade

Foi observando a dificuldade de equipes operacionais em realizar inventários rápidos e seguros que decidi colocar a mão na massa. Assim nasceu o projeto Tracker, uma solução que desenvolvi com o propósito de conectar, de forma simples e acessível, o auditor no corredor do estoque ao gestor financeiro em sua mesa.

Recentemente, dediquei-me a modernizar a arquitetura do Tracker. Para evitar as dores de cabeça com instalações de aplicativos móveis corporativos, dividi o sistema em duas frentes:

  1. Um aplicativo Desktop robusto, focado no Gestor de Inventário para análise de dados e cadastro de equipes.
  2. Um aplicativo PWA (Progressive Web App) para o Auditor de Campo, que roda direto no navegador do celular, mas se comporta como um app nativo, permitindo até a leitura de códigos de barras pela câmera do dispositivo.
Tela de Login do Tracker

Exemplo da interface de login do Tracker Desktop, agora integrada à nova camada de autenticação segura MFA.

Por Dentro da Engenharia: As Tecnologias que Sustentam o Tracker

Como profissional da área, sei que a segurança da informação é inegociável, especialmente com a LGPD. Não basta a ferramenta funcionar; ela precisa proteger os dados do cliente. Para isso, utilizei um conjunto de tecnologias maduras (stack) focadas em performance e segurança.

1. Nuvem e Segurança: PostgreSQL e Supabase (RLS)

Para a nuvem, escolhi o Supabase (baseado em PostgreSQL). O passo mais importante dessa arquitetura foi remover o armazenamento de senhas do banco de dados comum e transferi-las para um "Cofre" criptografado nativo (auth.users). Além disso, implementei o conceito de Row Level Security (RLS), garantindo que um usuário só acesse o dado se tiver a chave certa.

config_seguranca.sql
-- 1. Exclusão da coluna de senhas (boas práticas de compliance)
ALTER TABLE cliente_dht_tintas.usuarios DROP COLUMN IF EXISTS "Senha";

-- 2. Criação de um vínculo com o cofre de autenticação
ALTER TABLE cliente_dht_tintas.usuarios 
ADD COLUMN IF NOT EXISTS id_auth UUID REFERENCES auth.users(id) ON DELETE CASCADE;

-- 3. Definição da Política de Segurança (RLS)
CREATE POLICY "Ler itens de contagem"
ON cliente_dht_tintas.itens_contagem
AS PERMISSIVE FOR SELECT
TO authenticated -- Apenas portas abertas para quem tem Token JWT válido
USING (true);
Configuração de RLS no Supabase

Painel de configuração onde defino as políticas de Row Level Security (RLS) para blindar as tabelas.

2. O Motor de Gestão: Python no Desktop

Para o sistema do gestor, o Python foi a escolha natural devido à sua excelência na manipulação de dados (usando a biblioteca pandas). O aplicativo Desktop conecta-se ao banco ERP local, consolida as divergências e sincroniza tudo com a nuvem de forma segura via API REST.

conexao_mysql.py
import requests
import pandas as pd
from sqlalchemy import text

def validar_login_nuvem(email, senha, motor_db, esquema):
    """ Valida as credenciais no cofre do Supabase e retorna os dados do usuário """
    
    # 1. Requisição POST segura para o módulo Auth (Validação)
    auth_url = f"{SUPABASE_URL}/auth/v1/token?grant_type=password"
    headers = {"apikey": SUPABASE_ANON_KEY, "Content-Type": "application/json"}
    payload = {"email": email, "password": senha}
    
    resp = requests.post(auth_url, headers=headers, json=payload)
    if not resp.ok:
        return False, "Credenciais inválidas."
    
    # 2. Se a porta abrir, busca o perfil complementar no banco de dados
    query = text(f'SELECT "Nome_Completo", "Perfil" FROM {esquema}.usuarios WHERE "Login" = :email')
    with motor_db.connect() as conexao:
        df_user = pd.read_sql(query, con=conexao, params={"email": email})
        
    if not df_user.empty:
        return True, df_user.iloc[0].to_dict()
        
    return False, "Usuário não localizado."

3. Mobilidade e Agilidade: PWA e JavaScript Modular

A mágica no chão de fábrica acontece através do PWA. Utilizando HTML, CSS e JavaScript puro (Vanilla JS), o Auditor acessa o sistema pelo navegador do celular. Integrei o SDK oficial do Supabase para o front-end, garantindo que o token de sessão gerencie as permissões automaticamente, mitigando riscos de injeção de código malicioso (XSS).

tracker_mobile.js
// Instância do cliente Supabase no Front-end
const db = supabase.createClient(SUPABASE_URL, SUPABASE_KEY);

async function fazerLoginMobile(email, senha, cliente) {
  try {
    // 1. O SDK faz a ponte segura com o cofre de senhas
    const { data: authData, error: authError } = await db.auth.signInWithPassword({
      email: email,
      password: senha,
    });

    if (authError) throw new Error('Acesso negado');

    // 2. Coleta os dados de filial do usuário autenticado
    const { data: userData, error: userError } = await db.schema(cliente)
      .from('usuarios')
      .select('Nome_Completo, Filial_Acesso')
      .eq('Login', email);

    if (userData && userData.length > 0) {
       iniciarDashboard(userData[0]); // Libera a tela de contagem de lotes
    }
  } catch (error) {
    console.error("Tentativa de acesso falhou:", error.message);
  }
}

Reflexões e Próximos Passos

Desenvolver o Tracker tem sido uma jornada de aprendizado contínuo. Entender que a tecnologia é um meio — e não o fim — nos ajuda a criar soluções que de fato facilitem a vida das pessoas que estão operando o negócio no dia a dia. Com a redução dos erros manuais e o abandono de pranchetas e papéis, o departamento financeiro recebe informações nas quais pode confiar.

Fico muito feliz em poder compartilhar um pouco dessa arquitetura com vocês. Para os gestores, contadores ou desenvolvedores que desejam ver a solução funcionando na prática e dar um passo além na gestão de suas cadeias de suprimentos, convido-os a testar a versão Desktop do sistema:

Gostou deste artigo?

Partilhe o conhecimento com a sua rede corporativa e académica.

Tem alguma dúvida ou necessita de aconselhamento estrutural?

Entrar em contacto