Pular para o conteúdo

Site Premium para Escritório de Advocacia

Site institucional para escritório de advocacia com painel admin, área do cliente e chatbot de triagem, tudo com autenticação real, banco de dados persistente e 39 testes automatizados.

2026-09-15
Node.jsTypeScriptExpressSQLiteJWT

Visão geral

Site institucional premium (projeto de demonstração, "Martins Advocacia" é uma empresa fictícia) com painel administrativo, blog jurídico, chatbot de triagem por área do direito, área do cliente com upload de documento e uma API própria em Node.js/TypeScript.

O que existia antes, e por que precisava mudar

A primeira versão parecia pronta por fora, mas por dentro era frágil: o formulário de contato fazia alert() de sucesso e descartava os dados sem nunca chamar a API. O painel admin não pedia login. A área do cliente tinha usuário e senha hardcoded em texto puro no JavaScript, visível em "ver código-fonte". Os leads ficavam num array em memória, sumindo a cada reinício do servidor. E o próprio painel renderizava dado de usuário via innerHTML sem escapar nada, um XSS armazenado clássico.

O que existe agora

Banco SQLite real (nada em memória, nada some ao reiniciar), autenticação com hash de senha e sessão JWT no admin e na área do cliente, upload e download de documento de verdade com isolamento entre clientes, todo formulário do site persistindo de fato, renderização sempre escapada, e rate limit nos formulários públicos. O chatbot de triagem casa a mensagem contra as áreas de atuação reais do escritório e é honesto sobre o que é: um assistente automático, não substitui orientação jurídica.

Testes

39 testes automatizados (Vitest + Supertest) cobrindo autenticação, leads, depoimentos, agendamentos, newsletter, upload/download de documento (incluindo que um cliente não acessa arquivo de outro) e as regras do chatbot.