Neuroredes
Visão Geral

Neuroredes

Plataforma de Análise de Redes Organizacionais (ONA) que mapeia relacionamentos formais e informais dentro das empresas. Esta documentação é uma referência funcional: descreve o que cada módulo faz, quem pode acessar o quê, e como as peças se conectam.

Capítulo 01

O que é o Neuroredes

Neuroredes coleta respostas de pessoas sobre suas conexões com colegas — quem pede ajuda a quem, quem influencia quem, em quem se confia — e transforma esses dados em três artefatos principais: um grafo navegável da rede, um dashboard com métricas analíticas, e relatórios em Excel para uso executivo.

O ciclo de uso é: a equipe da empresa cria uma pesquisa, cadastra os respondentes, dispara magic links por email ou WhatsApp, acompanha o status do envio, e — à medida que as respostas chegam — consulta dashboard, grafo e relatórios.

Capítulo 02

Stack

CamadaTecnologias
Frontend Next.js 16 (App Router, Server Components), React 19, TypeScript, Tailwind CSS v4 + CSS Modules, fonte Montserrat
Validação Zod (schemas em lib/zod/)
Visualização Sigma.js + Graphology (grafos), Recharts (gráficos do dashboard)
Banco & Auth Supabase — PostgreSQL, Supabase Auth (email/senha + convites), Edge Functions, Storage
Computação pesada AWS Lambda — três funções HTTP (dashboard, grafo, excel) e duas SQS-triggered (envio em massa de email e WhatsApp)
Mensageria assíncrona AWS SQS, AWS SES (email), Meta WhatsApp Business API
Idioma da UI Português (pt-br), inclusive nas mensagens de erro
Capítulo 03

Arquitetura macro

O navegador conversa com o Next.js. O Next.js, por sua vez, distribui o trabalho entre três caminhos conforme a operação: chamadas RPC diretas ao Postgres do Supabase para CRUDs simples, Edge Functions para lógica de domínio que envolve múltiplas tabelas e regras, e Lambdas HTTP para computação pesada que retorna dados prontos para visualização. Tarefas assíncronas (envios em massa) saem da Edge Function, passam por uma fila SQS, e são consumidas por Lambdas que escrevem o status de volta no Supabase.

Supabase AWS Browser cliente Next.js Next.js (App Router) Server Components & services RPC (PostgREST) CRUDs simples Edge Functions orquestração de domínio Lambda HTTP dashboard · graph · excel SQS (fila) Lambda consumer bulk-email · bulk-whatsapp PostgreSQL chamada síncrona fluxo assíncrono (SQS)
Fluxo de dados entre browser, Next.js, Supabase e AWS

Padrões de chamada

RPC
Operações simples (listagens, CRUDs diretos). Vivem em rpc/<dominio>/ e são chamadas direto via supabase.rpc(). Substituíram parte das Edge Functions originais.
Edge Functions
Lógica que orquestra múltiplas tabelas, validações ou efeitos colaterais (envio de email, exclusão em cascata). Em supabase/functions/.
Lambda HTTP
Computação pesada com Neurocalc ou geração de Excel. URLs em variáveis NEXT_PUBLIC_*_PROCESSOR_URL; o Lambda lê credenciais do Supabase via AWS Secrets Manager.
Lambda SQS
Disparados por mensagens em filas SQS. Consomem em lotes, executam o envio e atualizam o status no Supabase.
Capítulo 04

Papéis & permissões

A plataforma tem três papéis autenticados e um modo público (sem login). O papel é resolvido a partir do perfil do usuário e armazenado no cookie user_profile, lido pelas Server Components e validado pelo middleware do Next.js.

Papel Acesso Observação
ADMIN CRUD total em todas as organizações, todas as pesquisas, todos os respondentes. Pode gerar relatórios executivos e detalhados. company_id é null; usar empresa_id do recurso-alvo.
SURVEYOR Gerencia pesquisas, respondentes e envios da própria organização. Vê dashboard e grafo dos próprios dados. Tem company_id definido; backend impõe escopo por empresa.
VIEWER Apenas leitura: relatórios Excel, grafo, dashboard. Sem botões de gestão. Bloqueado de /companies, /surveyors e ações de envio.
Público Acesso à pesquisa via magic link em /responder-pesquisa/[token]. Sem login. Token validado em runtime — pode estar expirado, revogado ou invalidado.
Nota

ADMIN e SURVEYOR convivem com perfis distintos: ADMIN vive em mydb.users, SURVEYOR em mydb.surveyors, VIEWER em mydb.survey_viewers. Todos compartilham auth.users do Supabase para credenciais. Detalhes em Autenticação & Papéis.

Capítulo 05

Mapa de módulos

Cada módulo tem sua própria página com regras de negócio, fluxos e referências cruzadas.

Capítulo 06

Como rodar localmente

O projeto não usa Supabase local — desenvolvedores se conectam direto ao ambiente em nuvem. Não há seed nem stack Docker; basta credenciais válidas no .env.

terminal bash
cp .env.example .env.local
# preencha NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY,
# SUPABASE_SERVICE_ROLE_KEY e as URLs das Lambdas (opcionais — se ausentes,
# o frontend cai em Edge Functions equivalentes para dashboard/graph/excel)

npm install
npm run dev        # Turbopack
npm run build      # build de produção
npm run lint       # ESLint
npm run format     # Prettier
Atenção

Existem migrations antigas que não estão versionadas neste repositório. Subir um Postgres local a partir de supabase/migrations/ não vai resultar num esquema completo — use o ambiente em nuvem.

Capítulo 07

Sobre esta documentação

Esta documentação é uma referência funcional: serve para consultar como cada módulo se comporta, quais regras de negócio se aplicam e como as integrações fluem. Não é um tutorial de onboarding nem um whitepaper executivo.

O conteúdo é construído de forma incremental — cada página de módulo será preenchida em iterações separadas. As páginas marcadas como em construção ainda não têm conteúdo, mas a navegação e a estrutura já estão prontas.

Convenções

  • Todo texto está em português brasileiro, espelhando a UI do produto.
  • Nomes de tabela aparecem qualificados pelo schema (mydb.users).
  • Caminhos de arquivo são relativos à raiz pesquisa/.
  • Blocos Nota esclarecem detalhes; blocos Atenção sinalizam pegadinhas.