← Voltar ao site
Rede Libras
Manual oficial

Manual completo da plataforma
Rede Libras

Guia técnico e operacional cobrindo todos os perfis de uso — do Super Admin do SaaS ao paciente surdo que inicia um atendimento.

  • Versão do documento: 21 de abril de 2026
  • Edição: 1.0
  • Restrito a clientes e operadores autorizados

Sumário

  1. IIntrodução
    • O que é a Rede Libras
    • Arquitetura em alto nível
    • Perfis de usuário
  2. IISuper Admin — Operação do SaaS
    • Acesso ao painel /super
    • Dashboard SaaS
    • Cadastrar empresa cliente (tenant)
    • Criar o primeiro admin do cliente
    • Planos comerciais
    • Integrações (pagamento, e-mail, IA…)
    • Faturas globais
    • Webhooks
    • Suspender / reativar tenant
    • Visão global de intérpretes
  3. IIIAdmin do Tenant — Gestão do hospital/cliente
    • Primeiro login
    • Dashboard operacional
    • Cadastrar intérpretes
    • Pontos de atendimento e QR Codes
    • Operadores (usuários)
    • SLA customizado
    • Canais de TV
    • Minha fatura
    • Jornadas contínuas
    • Configurações (logo, cor, dados)
  4. IVIntérprete — Rotina de atendimento
    • Login em interprete.rede-libras
    • Status: online, standby, pausa
    • Aceitar uma oferta
    • Durante o atendimento
    • Gravação com consentimento
    • Handoff ao vivo
    • Treinamento e glossário
    • Perfil e histórico
  5. VUsuário final (paciente surdo)
    • Acesso por QR Code
    • Informar motivo (gera prioridade)
    • Aguardar na fila
    • Durante a chamada — vídeo + chat
    • Adicionar acompanhante
    • Avaliar o atendimento
  6. VICasos de uso por setor
    • Saúde
    • Segurança pública / justiça
    • Educação
    • Corporativo
  7. VIISegurança e LGPD
    • Isolamento multi-tenant
    • Criptografia
    • Auditoria
    • Direitos do titular (DSAR)
    • Consentimento de gravação
  8. VIIICanais de TV com Libras
    • Criar canal
    • Configurar OBS/Streamlabs
    • Layout ABNT NBR 15290
    • Assistir
  9. IXIntegrações e automações
    • Gateways de pagamento
    • Provedor de e-mail
    • Inteligência artificial
    • Armazenamento S3
    • Webhooks externos
  10. XPerguntas frequentes e solução de problemas
    • Câmera/mic bloqueados
    • QR Code expirado
    • Intérprete não aparece
    • Gravação não salvou
    • Fatura não chegou
Parte I

Introdução

1.1O que é a Rede Libras

A Rede Libras é uma plataforma SaaS brasileira de interpretação remota em Libras voltada a empresas, hospitais, órgãos públicos e instituições que precisam oferecer acessibilidade comunicacional plena ao cidadão surdo. Seu diferencial é a jornada contínua — enquanto outras soluções atendem apenas ao ponto de entrada (recepção), a Rede Libras acompanha o usuário em todas as etapas: triagem, consulta, exame, alta, depoimento, audiência, aula, reunião.

A plataforma é multi-tenant: cada empresa cliente ("tenant") tem seus próprios intérpretes, operadores, pontos de atendimento, faturas e configurações. Um operador de um tenant nunca enxerga dados de outro.

1.2Arquitetura em alto nível

A plataforma é composta por cinco aplicações web independentes:

  • Portal público (108-174-144-144.sslip.io) — landing, fluxo de atendimento por QR Code, canais de TV, página de status.
  • Hub de acessos (hub.108-174-144-144.sslip.io) — índice interno com todos os painéis administrativos.
  • Painel administrativo (admin.108-174-144-144.sslip.io) — compartilhado entre admin do tenant e super admin (seção /super).
  • Painel do intérprete (interprete.108-174-144-144.sslip.io).
  • API REST + WebSocket (api.108-174-144-144.sslip.io) — NestJS + Prisma + PostgreSQL + Redis; Swagger em /api/docs.

Para mídia em tempo real (vídeo, áudio, screen share), a plataforma usa um SFU dedicado LiveKit em livekit.108-174-144-144.sslip.io. Gravações são feitas por RoomCompositeEgress; transmissões de TV usam Ingress (SRT/RTMP/WHIP) do mesmo LiveKit.

Onde começar?
Se você é o primeiro a usar o sistema, vá ao Hub: hub.108-174-144-144.sslip.io. De lá, todos os outros painéis têm link direto — sem precisar decorar subdomínios.

1.3Perfis de usuário

Existem cinco perfis distintos, cada um com seu painel e permissões:

Super Admin

Opera o SaaS. Cria tenants, planos, configura integrações, vê MRR.

admin.xxx/super

Admin do Tenant

Gestor do hospital/empresa. Cadastra intérpretes, pontos, operadores.

admin.xxx

Operador

Acompanha atendimentos, gera QR, sem permissão de CRUD sensível.

admin.xxx

Intérprete

Atende chamadas, gerencia disponibilidade, consulta glossário.

interprete.xxx

Usuário final (surdo)

Abre o QR Code, inicia o atendimento em Libras. Sem cadastro.

portal público
Parte II

Super Admin — Operação do SaaS

Papel: Super Admin (role SUPER_ADMIN). Email inicial: admin@rede-libras.com.br.

2.1Acesso ao painel /super

  1. Acesse https://admin.108-174-144-144.sslip.io e faça login com um usuário que possua o papel SUPER_ADMIN.
  2. Após login bem-sucedido, o sistema redireciona automaticamente para /super (Dashboard SaaS). Se você cair em /dashboard, o usuário não é super admin — volte e peça a promoção.
  3. O painel super admin tem fundo escuro com detalhes em âmbar (cor) para diferenciar visualmente do painel do tenant, que é claro (cor ).
Troque a senha inicial
A senha padrão admin123 do seed deve ser trocada no primeiro acesso em produção. Use senha forte (mínimo 12 caracteres, mistura de classes).

2.2Dashboard SaaS

O dashboard principal (/super) exibe oito métricas-chave:

  • MRR — receita recorrente mensal, soma dos planos ativos.
  • Receita do mês — faturas pagas no período, com delta % vs. mês anterior.
  • Tenants ativos, em trial, suspensos.
  • Faturas abertas / em atraso — atenção se > 0.
  • Novos tenants (30d) e cancelados (30d).

Dois painéis abaixo dos cards mostram os últimos tenants cadastrados (com link para o detalhe) e os últimos webhooks recebidos — útil pra diagnosticar integrações de pagamento.

2.3Cadastrar uma nova empresa cliente (tenant)

Papel: Super Admin apenas. Admin do tenant não pode criar outros tenants.

Esse é o fluxo que você usa quando fecha um contrato comercial manualmente. Signup público auto-serviço ainda não está habilitado.

  1. No menu lateral, clique em Tenants. Você verá a lista de todos os clientes cadastrados.
  2. Clique no botão Novo tenant (canto superior direito, amber). Um diálogo se abre.
  3. Preencha:
    • Slug — identificador único na URL (letras minúsculas, números, hífen). Exemplo: hospital-sirio-libanes. Não pode ser alterado depois.
    • Nome — nome fantasia (aparece no painel e em QR Codes).
    • Razão social — nome legal para faturamento.
    • CNPJ — obrigatório para emissão de nota fiscal.
    • E-mail financeiro — destino das faturas mensais.
    • Cor primária — usada no painel do cliente e em customização de marca.
    • Plano — escolha entre os planos cadastrados (Start, Business, Enterprise, etc).
  4. Clique em Criar tenant. O tenant é criado em statusTRIAL (ou ACTIVE se você já vinculou plano pago).

2.4Criar o primeiro admin do cliente

Um tenant recém-criado não tem usuários — o cliente não consegue fazer login ainda. Você precisa criar o primeiro admin.

  1. Na lista de tenants, clique no nome do tenant recém-criado. Você cai na página de detalhe.
  2. Role até a seção Usuários administradores. Ela estará vazia, com a mensagem "Nenhum usuário ainda".
  3. Clique em Novo usuário. O diálogo abre com tenant travado e papel pré-selecionado como ADMIN.
  4. Preencha nome, e-mail do responsável do cliente, e uma senha inicial (mínimo 8 caracteres — o cliente vai trocar no primeiro acesso).
  5. Clique em Criar usuário. O sistema envia automaticamente um e-mail de boas-vindas para o endereço informado, contendo URL de acesso (admin.108-174-144-144.sslip.io) e a senha inicial.
E-mail não chegou?
Verifique se o provedor de e-mail (SMTP, Resend, SendGrid) está configurado e ativo em Configurações → E-mail (Seção 2.6). Em modoconsole, o e-mail é apenas logado no systemd —journalctl -u rede-libras-api -n 50.

2.5Planos comerciais

Planos são o catálogo que define franquia de minutos, valor mensal e valor do minuto excedente. São globais — todos os tenants veem os mesmos planos cadastrados.

2.5.1Criar um plano

  1. No menu, clique em Planos comerciais.
  2. Clique em Novo plano.
  3. Preencha:
    • Código — identificador curto em maiúsculas (ex: HOSPITAL_PREMIUM).
    • Nome — como aparece na UI.
    • Tipo — categoria interna (START, BUSINESS, ENTERPRISE_500, CORPORATE_1500, JOURNEY_HEALTH, PAY_PER_USE, etc).
    • Franquia (minutos) — incluídos por mês.
    • Valor mensal (R$) — cobrado de forma recorrente.
    • Valor excedente (R$/min) — cobrado após estourar franquia.
    • Descrição — texto comercial (aparece pro tenant na listagem).
  4. Salvar. O plano fica active=true por padrão.

2.5.2Editar plano ou desativar

Clique em qualquer card de plano na listagem. Para desativar, desmarque Ativo — o plano some da listagem de novos tenants, mas tenants já vinculados continuam operando.

Nunca delete — desative
Planos são usados em faturas e contratos passados. Mesmo desativados, os dados históricos permanecem íntegros.

2.6Integrações (Configurações do SaaS)

Toda integração externa (gateway de pagamento, provedor de e-mail, IA, NFe, armazenamento S3) é configurada pela UI em Configurações. Os segredos são criptografados com AES-256-GCM usando a chaveSETTINGS_MASTER_KEY do servidor — nunca ficam em texto puro.

O menu é dividido em abas:

Pagamento
  • Asaas
  • Stripe
  • Pagar.me
  • Mercado Pago
E-mail
  • SMTP genérico
  • Resend
  • SendGrid
IA
  • Anthropic (Claude)
  • OpenAI
NFe
  • Focus NFe
Armazenamento
  • S3 / R2 / MinIO
Geral
  • Nome da plataforma
  • Dias de trial
  • Plano padrão
  • Signup público on/off
Legal
  • URL de termos de uso
  • URL de política de privacidade

2.6.1Configurar um gateway (exemplo: Asaas)

  1. No menu, Configurações. Aba Pagamento.
  2. Encontre o card Asaas.
  3. Marque Usar sandbox se estiver testando. Preencha:
    • apiKey — chave API do Asaas.
    • webhookToken — token secreto usado pra validar webhooks recebidos.
    • walletId (opcional) — carteira de split.
  4. Ligue o toggle Ativa e marque Usar como integração padrão desta categoria (só 1 gateway pode ser padrão).
  5. Clique em Testar conexão. Deve retornar "Credenciais presentes".
  6. Clique em Salvar.
Segredos nunca vêm em claro do backend
Quando você abrir a integração novamente, os campos de segredo aparecem vazios (com placeholder ••••). Isso é proposital: o backend nunca expõe os valores; apenas uma flag hasSecrets=true. Deixe vazio pra manter o valor atual, ou preencha pra sobrescrever.

2.7Faturas globais

Em Faturas, você vê todas as faturas de todos os tenants. Filtre por status (OPEN, CLOSED, INVOICED,PAID, OVERDUE, CANCELED). Clique no nome do tenant pra ir direto à página de detalhe.

O total agregado aparece no cabeçalho: X faturas · R$ Y pagas · R$ Z totais.

2.8Webhooks

Todos os webhooks recebidos dos gateways de pagamento são registrados em Webhooks. Cada linha mostra provider, tipo de evento, ID externo, status (RECEIVED, PROCESSED, FAILED,IGNORED) e timestamp.

Se um webhook falhou, a coluna status mostra a mensagem de erro em vermelho. Use esse log para diagnosticar problemas de cobrança.

2.9Suspender / reativar tenant

Inadimplência, violação de contrato ou pedido do cliente — há situações em que você precisa bloquear o acesso de um tenant sem excluir seus dados.

  1. Vá em Tenants.
  2. Na linha do tenant, clique em Suspender.
  3. Confirme. O status vai pra SUSPENDED.

Enquanto suspenso: admins do tenant conseguem fazer login mas qualquer ação que crie atendimento é bloqueada; QR Codes da unidade param de gerar conexão; intérpretes daquele tenant não recebem ofertas.

Para reativar, clique em Reativar na mesma linha. O status volta pra ACTIVE.

2.10Visão global de intérpretes

A página Intérpretes (visão global) é read-only. Mostra todos os intérpretes de todos os tenants. Use um filtro por tenant pra diagnosticar problemas específicos ou atender requisições DSAR/LGPD.

Super admin não cria intérpretes
Quem cadastra intérpretes é o admin do tenant — cada hospital mantém seu próprio time. Super admin tem só visão consolidada. Se for necessário criar intérprete durante implantação, faça via impersonação do admin do tenant (Seção 2.4) ou diretamente no banco.
Parte III

Admin do Tenant — Gestão do hospital/cliente

Papel: Admin do Tenant (role ADMIN). E-mail e senha inicial recebidos por e-mail do super admin.

3.1Primeiro login

  1. Acesse admin.108-174-144-144.sslip.io (ou o domínio customizado do seu tenant, quando configurado).
  2. Digite o e-mail e a senha temporária recebidos.
  3. Altere imediatamente a senha em Configurações → Segurança. Use mínimo 12 caracteres, misturando letras, números e símbolos.
Câmera e microfone exigem HTTPS
Atendimentos em vídeo só funcionam em contexto seguro (https://). Todas as URLs oficiais já são HTTPS — não compartilhe links em texto plano ou via http://.

3.2Dashboard operacional

A tela inicial mostra em tempo real:

  • Na fila agora — atendimentos em espera.
  • Em chamada — atendimentos ativos.
  • Intérpretes online — disponíveis para receber oferta.
  • Atendimentos hoje — acumulado do dia.
  • Intérpretes cadastrados — total no pool deste tenant.
  • Últimos 7 dias — breakdown por status (COMPLETED, CANCELED, etc).

Os dados atualizam a cada 10 segundos via WebSocket.

3.3Cadastrar intérpretes

Cada tenant contrata e gerencia seu próprio pool. Um intérprete contratado pelo Hospital A nunca recebe atendimentos do Hospital B — isso é garantido no nível do banco de dados (Parte VII — Segurança).

  1. No menu, IntérpretesNovo intérprete.
  2. Preencha:
    • Nome completo.
    • E-mail (será o login).
    • Senha inicial (o intérprete troca no primeiro acesso).
    • CPF (opcional, necessário pra emissão de RPA).
    • TierBRONZE, SILVER,GOLD ou PLATINUM. Influencia matchmaking: tier maior tem preferência quando há múltiplos online.
    • Especializações — lista de códigos que marcam áreas em que o intérprete atua melhor: HEALTH_GENERAL,HEALTH_CRITICAL, LEGAL_GENERAL,LEGAL_PROCESS, EDUCATIONAL, CORPORATE,PSYCHOSOCIAL etc.
    • Bio — texto curto mostrado ao cliente durante a fila (opcional).
  3. Salvar. O intérprete recebe e-mail com instruções de login.
Dica de composição do pool
Recomendação para cobertura 24/7: mínimo 3 intérpretes, com pelo menos 1 de tier GOLD+, e cobertura redundante em especializações críticas (HEALTH_CRITICAL, LEGAL_PROCESS). Use Hot-standby para emergências — um segundo intérprete é reservado automaticamente em atendimentos EMERGENCY.

3.4Pontos de atendimento e QR Codes

Um ponto de atendimento representa um local físico onde o usuário surdo pode iniciar um atendimento. Cada ponto gera um QR Code único que pré-identifica o contexto (categoria, especialização preferida).

  1. No menu, Pontos / QR CodeNovo ponto.
  2. Preencha:
    • Slug — identificador no URL (ex: triagem-ps).
    • Rótulo — nome legível (ex: "Triagem do Pronto-Socorro").
    • Categoria — define contexto e prioridade:RECEPTION, TRIAGE, CONSULTATION,EXAM, PHARMACY, DISCHARGE,LEGAL_PROTOCOL, LEGAL_HEARING,EDUCATIONAL, CORPORATE.
    • Especialização preferida — prioriza intérpretes com essa skill.
    • Auto-recording — marque pra gravar atendimentos deste ponto sem pedir consent (requer contexto compliance/jurídico).
  3. Salve. O sistema gera automaticamente um QR Code apontando para https://108-174-144-144.sslip.io/t/SEU_SLUG/p/SLUG_DO_PONTO.
  4. Clique em Baixar QR para imprimir e afixar no local. Recomendado: A5 com moldura, altura dos olhos na parede, com texto auxiliar "Toque ou escaneie para falar em Libras".

3.5Operadores (usuários)

Operadores são usuários que ajudam na operação (gerar QR, acompanhar fila, emitir relatórios) mas não têm permissão de CRUD sensível. Diferente de Admin do tenant — admin pode editar intérpretes, planos (ver) e configurações; operador só consulta.

Papéis disponíveis:

  • ADMIN — controle total do tenant.
  • OPERATOR — acompanha fila e atendimentos, gera QR Codes.
  • VIEWER — só leitura, ideal para gestores/compliance.

O papel SUPER_ADMIN só pode ser atribuído por outro super admin.

3.6SLA customizado

SLA (Service Level Agreement) define tempo máximo de espera por prioridade. Se o tempo estourar, gera breach automaticamente e uma fração do valor do minuto vira crédito na próxima fatura.

  1. No menu, SLANovo contrato.
  2. Configure por prioridade:
    • EMERGENCY — ex: máx 60s de espera, 20% de crédito por breach.
    • URGENT — ex: máx 180s, 15%.
    • ROUTINE — ex: máx 600s, 10%.
    • LOW — ex: máx 1800s, 5%.

A página de SLA lista breaches dos últimos 30 dias com valor acumulado de crédito.

3.7Canais de TV

Veja a Parte VIII — Canais de TV com Libras deste manual para instruções completas de criação e operação.

3.8Minha fatura

A página Meu faturamento mostra a fatura do mês corrente (minutos usados, franquia restante, valor a pagar estimado) e histórico de faturas passadas. Clique em qualquer fatura para ver o detalhamento por ponto de atendimento.

Quando o Asaas/Stripe está configurado e vinculado ao tenant, a fatura fechada automaticamente gera uma cobrança recorrente — o link de pagamento aparece no campo URL da fatura.

3.9Jornadas contínuas

O diferencial da Rede Libras é a jornada contínua: o mesmo atendimento acompanha o usuário por múltiplos pontos sem perder contexto.

  1. O usuário inicia atendimento no ponto Recepção — abre uma jornada do tipo HEALTH com priorityInterpreterId.
  2. Ao mudar de local (ex: vai pra Triagem), escaneia o QR do novo ponto. Como existe uma jornada ativa, o sistema oferece continuar com o mesmo intérprete (stickiness) — evita recontextualização.
  3. A jornada permanece ACTIVE até ser encerrada manualmente ou expirar por inatividade (política configurável).

Na página Jornadas contínuas, admin do tenant vê jornadas ativas, pausadas e históricas. Clique numa jornada pra ver a timeline de pontos visitados, handoffs e tempo total.

3.10Configurações do tenant (logo, cor, dados)

Em Configurações:

  • Identidade visual — logo (upload PNG), cor primária (aparece no portal público do tenant).
  • Dados cadastrais — razão social, CNPJ, endereço, telefone.
  • E-mails — financeiro (fatura), administrativo, DPO.
  • Preferências — idioma padrão, fuso horário, notificações.
Parte IV

Intérprete — Rotina de atendimento

Papel: Intérprete (não é User; autentica via modelo Interpreter separado). Painel: interprete.108-174-144-144.sslip.io.

4.1Login

  1. Acesse interprete.108-174-144-144.sslip.io.
  2. Digite o e-mail e senha recebidos do admin do seu tenant.
  3. No primeiro acesso, confirme dados pessoais e troque a senha.
Requisitos técnicos
Câmera, microfone e conexão estável são obrigatórios. Use fones com microfone (evita eco) e luz frontal adequada. Teste sua câmera em interprete.xxx/me antes do primeiro plantão.

4.2Status: online, standby, pausa

O intérprete controla sua disponibilidade no cabeçalho do painel:

  • Online — disponível para receber oferta de atendimento. Entra na fila de matchmaking.
  • Em atendimento (BUSY) — marcado automaticamente ao aceitar.
  • Standby — reservado como backup de um atendimento crítico. Não recebe outras ofertas até o principal terminar.
  • Pausa — indisponível, não recebe ofertas. Use pra lanche, reunião interna, ida ao banheiro.
  • Offline — saiu do plantão, não aparece no pool.

Transições automáticas:

  • ONLINE → BUSY ao aceitar uma oferta.
  • BUSY → ONLINE ao terminar atendimento.
  • ONLINE → OFFLINE ao fechar a aba sem logout (fantasma detectado em 30s).

4.3Aceitar uma oferta

Quando um usuário inicia um atendimento, o sistema seleciona intérpretes do mesmo tenant (pool isolado) ordenando por:

  1. Intérprete da jornada em curso (stickiness).
  2. Especialização compatível com a categoria do ponto.
  3. Tier maior (PLATINUM > GOLD > SILVER > BRONZE).
  4. Menor totalAttendances — balanceamento de carga.
  5. Maior ratingAverage.

Quando chega uma oferta, o intérprete vê um card na tela com:

  • Ponto de origem (ex: "Triagem PS · Hospital Demo").
  • Prioridade (EMERGENCY, URGENT, ROUTINE, LOW).
  • Motivo informado pelo usuário (opcional).
  • Contador regressivo de 15 segundos.
  • Botões Aceitar e Recusar.
Se você recusar ou não atender em 15s
A oferta vai pro próximo da fila automaticamente. Seu status permanece ONLINE mas este atendimento não volta pra você (tracking em Redis). Tome cuidado com ofertas de prioridade EMERGENCY — impacto direto em SLA.

4.4Durante o atendimento

A tela do atendimento contém:

  • Vídeo do usuário — em destaque ao centro.
  • Sua câmera — preview pequeno no canto.
  • Chat de texto — lado direito. Use pra termos técnicos, nomes próprios, números.
  • Badge de prioridade — canto superior esquerdo.
  • Motivo do usuário — exibido no início (se informado).
  • Botões de controle: mic on/off, cam on/off, compartilhar tela, encerrar, gravar (requer consent).

4.5Gravação com consentimento

Gravação não ocorre por padrão. Exige consentimento recíproco na tela: intérprete clica em "Gravar" → usuário recebe prompt → ambos precisam concordar. Um carimbo criptográfico é emitido para trilha de auditoria.

  1. Durante o atendimento, clique no botão REC (ícone de círculo).
  2. Um diálogo aparece explicando o que será gravado e por quanto tempo retido.
  3. Ambos os participantes precisam clicar em Concordo e autorizo na tela respectiva.
  4. A gravação inicia. Aparece indicador vermelho piscando na borda da tela de ambos.
  5. Ao encerrar o atendimento, a gravação é finalizada em MP4 (Egress do LiveKit), encriptada e enviada ao armazenamento S3 configurado (veja Parte IX).
Gravações são material protegido
Acesso só por admin do tenant e por meio de audit log (registro de quem viu). Em caso de DSAR/LGPD, é fornecida via bundle assinado com SHA-256 (Seção 7.4).

4.6Handoff ao vivo

Se você precisa sair de um atendimento longo (fim de plantão, emergência pessoal), use o Handoff — transfere para outro intérprete online sem derrubar a chamada.

  1. Clique em Handoff no painel de controle.
  2. Escreva um briefing curto (contexto do atendimento, o que foi resolvido, o que falta).
  3. O sistema oferta simultaneamente para até 5 intérpretes online do mesmo tenant (ordenados por tier + rating). O primeiro a aceitar ganha.
  4. Quando o substituto aceita: você sai da sala LiveKit, ele entra com token novo, o usuário vê mensagem "Intérprete trocado — [Nome] assumiu".

4.7Treinamento e glossário

O painel do intérprete oferece duas ferramentas de aprimoramento contínuo:

  • Glossário Libras — consulta de termos por especialização, com vídeo demonstrando o sinal, linguagem simplificada para explicar ao paciente, e sinônimos.
  • Treinamento — escolha um cenário simulado (ex: "Consulta cardiológica com paciente em crise"), grave sua sinalização ou descreva em texto o que faria, e receba feedback estruturado via IA (scores de fluência, vocabulário, timing + sugestões de melhoria).

4.8Perfil e histórico

Em Perfil: edite nome, foto, bio visível ao cliente, e especializações. Dados bancários (chave PIX, banco/agência/conta) ficam criptografados em JSON — só o admin do tenant com permissão específica consegue ver.

Em Histórico: lista dos seus últimos 20 atendimentos, com rating recebido, categoria e duração. Estatísticas do dia aparecem no cabeçalho do dashboard.

Parte V

Usuário final (paciente surdo)

Papel: Cidadão surdo atendido pela unidade. Não precisa cadastro.

5.1Acesso por QR Code

  1. Localize o QR Code afixado no ponto de atendimento (recepção, triagem, guichê).
  2. Abra a câmera do celular e aponte para o QR. Toque no link que aparece.
  3. A página do portal abre identificando o ponto (ex: "Hospital Demo · Triagem PS"). Clique em Iniciar atendimento em Libras.
  4. No primeiro acesso, o navegador pede permissão de câmera e microfone. Toque em Permitir.
Sem cadastro, sem app
Não é preciso criar conta nem baixar aplicativo. O atendimento funciona em qualquer navegador moderno com HTTPS.

5.2Informar motivo (gera prioridade)

Antes de entrar na fila, aparece um campo opcional "Qual o motivo?". Exemplos: "Dor no peito", "Febre alta no bebê", "Renovar receita".

O sistema faz triagem automática:

  • Heurística síncrona (palavras-chave em PT-BR) classifica em EMERGENCY / URGENT / ROUTINE / LOW.
  • Reclassificação assíncrona via IA (Claude Haiku) confirma ou ajusta a prioridade.
  • Intérpretes de especialização compatível (ex: HEALTH_CRITICAL para dor no peito) recebem oferta primeiro.
Informar motivo melhora o atendimento
O intérprete chega sabendo o contexto e pode se preparar com vocabulário adequado. Reduz tempo de recontextualização.

5.3Aguardar na fila

A tela mostra "Procurando intérprete..." com estimativa de tempo. Ordem média: menos de 10 segundos. Se não houver intérprete online do tenant, aparece mensagem explicativa com horário de retomada.

5.4Durante a chamada

Tela de vídeo com:

  • Intérprete em destaque ao centro.
  • Sua câmera em preview pequeno.
  • Chat de texto lateral — para termos escritos, nomes próprios, anotações.
  • Botão "Encerrar" quando terminar.
  • Botão "Adicionar acompanhante" se precisar trazer um familiar pra sala.

5.5Adicionar acompanhante

Útil quando um familiar ouvinte precisa participar (acompanhar consulta, tradução adicional).

  1. Clique em Adicionar acompanhante durante a chamada.
  2. Escolha o papel: LISTEN_ONLY (só ouve/vê) ou CO_SPEAK (pode falar).
  3. O sistema gera um link /companion?t=TOKEN único. Compartilhe via WhatsApp/SMS.
  4. Ao abrir o link, o acompanhante recebe token LiveKit com grants apropriados e, se a sessão já começou, um recap automático em texto resumindo o que foi dito até ali (IA Haiku).

5.6Avaliar o atendimento

Ao encerrar, aparece modal com 5 estrelas e campo de comentário opcional. A avaliação alimenta o ratingAverage do intérprete e ajuda no matchmaking futuro. Comentários são anônimos pro intérprete (só admin do tenant vê quem escreveu).

Parte VI

Casos de uso por setor

6.1Saúde — hospital geral

Jornada típica: paciente surdo chega à recepção com QR afixado → abre atendimento categoria RECEPTION (intérprete generalista) → ao ser chamado para triagem, escaneia QR da triagem → jornada continua com mesmo intérprete se ainda online (stickiness), ou novo da especializaçãoHEALTH_GENERAL → consulta → exame → farmácia → alta.

Pontos recomendados: Recepção, Triagem, 1 por consultório (ou 1 por especialidade), Exame de imagem, Farmácia, Alta.

Intérpretes: pool com pelo menos 1 HEALTH_CRITICAL GOLD+ em plantão 24/7 (emergência), 2 HEALTH_GENERAL em horário comercial.

Auto-recording: desligado por padrão; ativado apenas em áreas de alto risco jurídico (UTI, centro cirúrgico) com consentimento formal do paciente na admissão.

6.2Segurança pública / justiça

Jornada típica: cidadão surdo vai registrar BO → escaneia QR na delegacia → abre atendimento LEGAL_PROTOCOL → depoimento formal é gravado com consentimento (material probatório) → em caso de audiência, usa jornada LEGAL_PROCESS com intérprete JURAMENTADO (especializaçãoLEGAL_PROCESS).

Especializações críticas: LEGAL_GENERAL (BO, boletins),LEGAL_PROCESS (audiências, oitivas formais). Este último exige certificação complementar do intérprete — atestada no campocertifications (JSON).

SLA sugerido: EMERGENCY (ex: vítima em flagrante) ≤ 60s; URGENT (oitiva marcada) ≤ 300s; rotineiro 15min. Breach gera crédito em fatura.

6.3Educação

Aula ao vivo: professor liga a câmera em plataforma externa (Meet, Zoom), e o aluno surdo abre paralelo o portal Rede Libras com intérprete que traduz em tempo real. O intérprete pode usar o chat para anotações e nomenclaturas técnicas.

Aula gravada institucional: use Canal de TV (Parte VIII) — a instituição transmite o conteúdo com intérprete sobreposto seguindo layout ABNT NBR 15290. Alunos assistem em /tv/slug-da-instituicao.

Secretaria acadêmica: ponto de atendimento físico na secretaria, categoria EDUCATIONAL, para matrícula, rematrícula, boletim, reuniões com coordenação.

6.4Corporativo

SAC acessível: empresa coloca QR no site e no app dela que abre atendimento Rede Libras. Reduz barreira de canais de voz para cliente surdo.

Entrevistas de emprego: ponto categoria CORPORATE, com intérprete especialização CORPORATE. Use sala privada para confidencialidade.

Treinamentos internos: canal TV temporário durante evento, com gravação automática para biblioteca interna.

Parte VII

Segurança e LGPD

7.1Isolamento multi-tenant

A plataforma garante que dados de um cliente nunca sejam acessíveis por outro. Isso é aplicado em três camadas:

  1. Schema: todas as entidades sensíveis têm colunatenantId obrigatória (Attendance, AccessPoint, User, Interpreter, Recording, TvChannel, SlaContract, Billing, Audit).
  2. Controllers: helper tenantWhere(actor, extra) forçawhere.tenantId = actor.tenantId em toda listagem, exceto quando o ator é SUPER_ADMIN. Mutations passam porresolveMutationTenantId e assertTenantOwnership.
  3. Matchmaking: a seleção de intérprete, handoff e hot-standby filtram pool por attendance.tenantId — impossível um intérprete do Hospital A atender chamado do Hospital B.

7.2Criptografia

  • TLS 1.3 em toda comunicação web (Let's Encrypt, auto-renova).
  • AES-256-GCM para segredos em repouso — credenciais de integrações (gateways, SMTP, IA) são encriptadas com a chave mestraSETTINGS_MASTER_KEY antes de gravar em banco.
  • Argon2id para hash de senhas (resistente a ataques com GPU).
  • JWT assinado com JWT_SECRET, tempo de expiração curto (15min), refresh tokens com rotação.
  • Dados bancários de intérprete (banco/agência/conta/chave PIX) guardados em JSON encriptado no campo bankData.

7.3Auditoria

Toda ação administrativa (criar, editar, excluir, suspender) gera uma linha na tabela audit_logs com:

  • Tipo do ator (user / interpreter / system).
  • ID do ator.
  • Tenant onde ocorreu.
  • Ação (USER_CREATED, TENANT_SUSPENDED, etc).
  • Target — ID do objeto afetado.
  • Payload JSON com detalhes.
  • IP de origem.
  • Timestamp.

Admin do tenant acessa audit logs em Audit (só os do próprio tenant). Super admin vê global. Export CSV/JSON disponível em/api/audit/export?format=csv&from=&to=.

7.4Direitos do titular (DSAR)

Conforme art. 18 da LGPD, o titular pode solicitar confirmação, acesso, correção, anonimização, portabilidade, eliminação ou revogação de consentimento. A Rede Libras implementa DSAR automatizado:

  1. Titular envia requisição via dpo@rede-libras.com.br (ou formulário no site).
  2. DPO usa endpoint POST /api/admin/dsar/export informando email, userIdentifier (hash) ou nicknameLike. Pode ativar includeAiSweep para varredura semântica adicional (via Claude Sonnet) em logs e mensagens buscando menções indiretas.
  3. API retorna bundle JSON com todos os dados encontrados + hash SHA-256 do bundle para integridade.
  4. DPO entrega o bundle ao titular em até 15 dias corridos.

7.5Consentimento de gravação

Gravação nunca ocorre sem consentimento recíproco e explícito:

  1. Iniciado por qualquer parte (intérprete ou usuário).
  2. Outra parte recebe prompt com descrição do que será gravado.
  3. Ambos precisam autorizar na própria tela (clique em botão).
  4. Carimbo criptográfico (timestamp + hash) é gerado e anexado à gravação, provando consentimento no momento.

Exceção: pontos com flag Tenant.autoRecording = true gravam sem pedir consent explícito — caso de compliance/licitação onde o usuário foi informado na admissão/contratação. Requer documentação formal externa.

Parte VIII

Canais de TV com Libras

8.1Conceito

Um canal de TV é uma transmissão ao vivo pública do tenant com intérprete de Libras sobreposto seguindo norma ABNT NBR 15290 (tamanho do quadro do intérprete, posicionamento, contraste). Ideal para aulas, cultos, sessões de câmara municipal, eventos corporativos.

8.2Criar canal

  1. Como admin do tenant, vá em Canais de TVNovo canal.
  2. Preencha:
    • Slug (ex: camara-municipal-pleno).
    • Nome (ex: "Sessão Plenária - Câmara Municipal").
    • Descrição.
    • Tipo de ingress: SRT (mais estável), RTMP (mais compatível com OBS/Streamlabs) ou WHIP (WebRTC direto).
    • Intérprete prioritário (opcional) — se definir, esse intérprete é quem sinaliza por padrão.
  3. Salvar. O sistema gera stream key e URL do publisher. Guarde esses dados — use na configuração do OBS.

8.3Configurar OBS / Streamlabs

Guia passo a passo também disponível em /tv-help.

  1. Baixe OBS Studio (gratuito, obsproject.com).
  2. Abra OBS → ConfiguraçõesStream.
  3. Em Serviço, escolha Personalizado.
  4. Em Servidor, cole a streamUrl do canal.
  5. Em Chave de transmissão, cole a streamKey.
  6. Configure a cena: fonte principal (câmera da emissora) + webcam do intérprete no canto (ABNT: 1/4 da tela, lado direito, fundo contrastante).
  7. Clique em Iniciar Transmissão. O canal vira LIVE em segundos.

8.4Layout ABNT NBR 15290

A Rede Libras aplica automaticamente o layout recomendado pela norma ABNT NBR 15290 (janela do intérprete ocupando pelo menos 1/2 da altura da tela, no lado direito, com fundo contrastante e enquadramento do meio do peito pra cima).

Essa composição acontece do lado do viewer (página /tv/[slug]) — o publisher envia vídeo principal e vídeo do intérprete separados, e o layout é aplicado no navegador. Vantagem: zero impacto no publisher.

8.5Assistir

Qualquer pessoa pode assistir sem cadastro:

  • Via link direto: https://108-174-144-144.sslip.io/tv/SLUG
  • Via QR Code gerado no admin do canal
  • Via índice público: /tv lista todos os canais LIVE e fora do ar
Parte IX

Integrações e automações

9.1Gateways de pagamento

Suportados: Asaas (recomendado para Brasil, aceita PIX + boleto + cartão), Stripe (global, cartão internacional), Pagar.me, Mercado Pago. Configuração em/super/settings → Pagamento.

Fluxo típico de cobrança recorrente (em desenvolvimento nas próximas rodadas):

  1. Super admin cria tenant + vincula plano.
  2. Sistema cria customer no gateway e registra Subscription local.
  3. Ao fim de cada ciclo mensal, job fecha a fatura com minutos usados.
  4. Gateway cobra automaticamente (cartão salvo ou gera boleto/PIX).
  5. Webhook chega do gateway → atualiza Subscription.status e Billing.status.
  6. Tenant inadimplente após X dias → suspensão automática.

9.2Provedor de e-mail

Todos os e-mails transacionais (boas-vindas, reset de senha, fatura fechada) saem por um dos três provedores configurados:

  • SMTP genérico — host, porta, user, pass, remetente padrão. Use com Gmail, Outlook, servidor próprio.
  • Resend — API moderna; mais barato pra baixo volume.
  • SendGrid — robustez para alto volume.

Apenas um é primário por vez. Marcar "Usar como integração padrão" desmarca os outros automaticamente.

9.3Inteligência artificial

Features de IA usam Anthropic Claude (recomendado) ou OpenAI. Exemplos:

  • Triagem de prioridade — Haiku reclassifica pri assincronamente com base no motivo.
  • Glossário tradutor — Haiku traduz fala clínica → linguagem simplificada.
  • Feedback de treinamento — Sonnet avalia sinalização do intérprete.
  • Recap automático de chat ao adicionar acompanhante — Haiku.
  • Resumo de auditoria — Sonnet gera resumo executivo de período.
  • DSAR semântico — Sonnet varre logs buscando menções indiretas do titular.
Sem IA, tudo continua funcionando
Se a chave de API não estiver configurada, cada feature cai em heurística/fallback silencioso. A plataforma nunca depende de IA para atendimento humano.

9.4Armazenamento S3

Gravações de atendimento são armazenadas em bucket S3 compatível (AWS S3, Cloudflare R2, MinIO self-hosted, Wasabi). Configure em/super/settings → Armazenamento.

9.5Webhooks externos

Todos os webhooks de gateway que chegam são logados emwebhook_events com dedup por externalId. Veja em/super/webhooks.

Parte X

Perguntas frequentes

Q1Câmera ou microfone bloqueados

O navegador só libera getUserMedia em contexto seguro (HTTPS). Verifique se a URL começa com https://. Se sim, clique no ícone de cadeado ao lado da URL → permissões de câmera/mic → Permitir. Em iOS Safari, vá em Ajustes → Safari → Câmera.

Q2QR Code parece não funcionar

Certifique que o QR está nítido, bem iluminado, sem reflexo. Se o link abrir mas der 404, confirme com o admin do tenant se o ponto ainda está ativo (não foi excluído).

Q3Intérprete não aparece

Pode significar que nenhum intérprete do seu tenant está online no momento. A tela informa horário estimado de retomada. Em emergências médicas, não espere — procure atendimento convencional.

Q4Gravação não salvou

Gravações exigem: (1) consentimento duplo, (2) armazenamento S3 configurado em /super/settings, (3) serviço livekit-egress rodando (docker-compose.media.yml). Se algum falhar, a UI mostra erro.

Q5Fatura não chegou no e-mail

Verifique: (a) e-mail financeiro correto em /configurações do tenant, (b) provedor de e-mail ativo em /super/settings, (c) pasta de spam. Gere a fatura manualmente em /billing se necessário.

Q6Como testar o sistema sem afetar dados reais

Use o tenant de demo (slug hospital-demo). Todas as credenciais de teste estão no README do projeto. Para gateway, use o modo sandbox do Asaas/Stripe em Configurações.

Q7Como trocar o logo do nosso hospital no portal do paciente

Admin do tenant → Configurações → Identidade visual → Upload PNG. O logo aparece automaticamente nas páginas /t/seu-slug/* do portal público.

Q8Esqueci a senha de super admin

Acesse o banco de dados diretamente via SSH e execute um UPDATE na tabela users trocando o campo passwordHash pelo hash Argon2 da nova senha. Gere o hash offline com ferramentas como argon2-cli. Esse é o único caminho, pois não há fluxo de "esqueci senha" automatizado para SUPER_ADMIN — isso é intencional para reduzir superfície de ataque.

AGlossário de termos técnicos

Tenant
Empresa cliente da Rede Libras (hospital, órgão, escola).
Handoff
Transferência de um atendimento ativo para outro intérprete sem derrubar a sala.
Hot-standby
Segundo intérprete reservado automaticamente em atendimentos críticos.
Ingress
Entrada de stream externo para canal de TV (via SRT/RTMP/WHIP).
Egress
Saída de gravação do LiveKit em formato MP4.
SFU
Selective Forwarding Unit — arquitetura de mídia eficiente usada pelo LiveKit.
DSAR
Data Subject Access Request — requisição LGPD de acesso/portabilidade de dados.
MRR
Monthly Recurring Revenue — receita mensal recorrente do SaaS.
SLA
Service Level Agreement — compromisso de tempo máximo de espera por prioridade.
Breach
Violação de SLA — gera crédito automático na fatura.

BRequisitos técnicos mínimos

  • Navegador: Chrome, Edge, Firefox ou Safari atualizados (últimas 2 versões).
  • Conexão: mínimo 2 Mbps upload e 2 Mbps download por participante.
  • Câmera e microfone: funcionais, com permissão concedida.
  • HTTPS: obrigatório (não há fallback HTTP).
  • JavaScript: habilitado.
  • Cookies: essenciais habilitados (sem eles, não mantém sessão).
  • Dispositivos: smartphone, tablet, notebook ou desktop. Mobile-first.

CSuporte e contato

Comercial e contratação: contato@rede-libras.com.br

Suporte técnico: suporte@rede-libras.com.br

DPO (LGPD): dpo@rede-libras.com.br

Incidentes de segurança: security@rede-libras.com.br

— Fim do manual —