Elo — Sistema de Solicitações Pedagógicas
Sistema que substitui e-mail e WhatsApp na coordenação entre o Núcleo Pulsante e as 4 unidades do Programa Etim (Senac RJ), com rastreabilidade e histórico completo.
O Elo é um sistema web que substitui a troca de solicitações pedagógicas entre o Núcleo Pulsante — coordenação central do programa Etim, Senac RJ — e suas quatro unidades — Barra da Tijuca, Cápsula, Politécnico e Niterói — que antes acontecia por e-mail e WhatsApp, sem rastreabilidade, sem prazos claros e sem histórico centralizado.
Hoje o Núcleo cria uma solicitação, escolhe quais unidades devem responder, acompanha o status de cada uma em tempo real — pendente, respondido, atrasado — e mantém um histórico completo e exportável em PDF de tudo que já aconteceu. Sistema real, com autenticação própria por unidade, banco relacional e deploy público gratuito: é a ferramenta que o Núcleo Pulsante usa hoje para coordenar as quatro unidades, em produção desde julho de 2026.
Funcionalidades principais
- Autenticação real por login e senha, com cada uma das 5 contas — Núcleo mais 4 unidades — isolada ao que lhe cabe
- Criador de solicitações com 4 tipos de pergunta: texto curto, parágrafo, escolha única e link
- Rascunhos — o Núcleo monta uma solicitação aos poucos, salva, edita e só então envia
- Painel por unidade, mostrando só o que está pendente ou já foi respondido
- Histórico completo de eventos — criação, notificação, resposta, exclusão — com filtros
- Exportação em PDF das respostas e do histórico completo, gerada inteiramente no navegador
- Modo claro/escuro com persistência de preferência
- Notificações internas quando uma solicitação é criada ou respondida
Capturas de tela

Painel do Núcleo — rascunhos e solicitações enviadas, por status — texto borrado por preservação institucional

Nova solicitação — texto curto, parágrafo, escolha única ou link — texto borrado por preservação institucional

Detalhe da solicitação — respostas por unidade e exportação em PDF — texto borrado por preservação institucional

Painel da unidade — só o que é endereçado a ela, sem ruído das demais — texto borrado por preservação institucional
Stack técnica
- React 18 + Vite, CSS puro com design tokens
- Node.js + Express, como função serverless
- PostgreSQL (Supabase), acesso via Prisma ORM
- JWT + bcrypt para autenticação
- jsPDF, geração de PDF no cliente
- Vercel, região
gru1(São Paulo) — frontend estático e backend serverless
Decisões técnicas
- Performance de login em ambiente serverless. O login inicialmente levava de 1,3 a 2,4 segundos, pela combinação do custo padrão do bcrypt com a distância entre a região do servidor e a do banco. Resolvido fixando a função na mesma região do banco e reduzindo o custo do bcrypt, com migração automática e transparente do hash das contas existentes no próximo login bem-sucedido — resultado: login em 0,3 a 0,7 segundos.
- Paginação de PDF sem cortar texto. A primeira versão da exportação cortava respostas longas no fim da página; a correção final escreve o texto linha a linha, com verificação de quebra de página a cada linha, mantendo o cabeçalho colado ao início do conteúdo mesmo quando a resposta ocupa várias páginas.
- Disponibilidade do banco gratuito. O plano gratuito do Supabase pausa projetos após 7 dias de inatividade; resolvido com uma rota de keepalive chamada uma vez por dia por um cron job da própria Vercel.
Números
- 5 contas ativas — Núcleo Pulsante e as 4 unidades do programa
- 4 tipos de pergunta suportados na criação de solicitações
- Login em 0,3 a 0,7 segundos, após a otimização de performance
- Em produção desde julho de 2026, com solicitações reais criadas, respondidas e concluídas pelo fluxo completo