Negócios Rurais em Minas Gerais: portal de fazendas, sítios e chácaras




Plataforma imobiliária desenvolvida pela ALB Seven para a venda de fazendas, sítios e chácaras em Minas Gerais, no ar em negociosruraismg.com.br.
Por que imóvel rural não cabe num portal comum
Os portais de imóveis foram desenhados para apartamento: metragem, quartos, vagas, bairro. Um sítio se descreve por outra coisa. Quantos hectares, se tem água corrente ou nascente, curral, casa de sede, pastagem formada, energia trifásica, quantos quilômetros de estrada de terra até o asfalto e quanto tempo de carro até a cidade mais próxima. Quem procura também compra diferente: visita, volta, compara por meses. Uma ficha que só mostra preço e foto não sustenta essa decisão.
As decisões de projeto
- Catálogo de características próprio. Os atributos do imóvel rural são cadastrados no painel, não fixados no código, e alimentam ao mesmo tempo a ficha e os filtros da busca. Acrescentar um novo atributo não exige deploy.
- Ficha construída para uma decisão longa. Carrossel de imagens, aba de vídeo, mapa de vizinhança e calculadora de distância até os pontos de referência, para o comprador entender a localização sem depender de uma visita só para se situar.
- Marca d’água automática nas fotos. Anúncio de imóvel rural é copiado com frequência por terceiros, então a marca é aplicada no servidor, no momento do upload.
- Conta do visitante com propósito. Favoritos e buscas salvas existem para quem acompanha o mercado por meses, com verificação de e-mail e recuperação de senha.
- Painel que é um CRM enxuto. Imóveis, pastas, leads, perfis de busca do lead, modelos de e-mail, depoimentos, tarefas e analytics, tudo no mesmo lugar, para o corretor não operar o negócio numa planilha paralela.
- Autenticação em cookie HTTP-only. O JWT não passa pelo
localStorage, o que fecha a superfície mais comum de roubo de sessão por XSS.
Stack e engenharia
React 18, TypeScript, Vite, Tailwind e shadcn/ui no frontend, com TanStack Query cuidando do estado de servidor e React Hook Form somado a Zod em todo formulário. Backend em PHP 8.2 com PDO sobre MySQL, hospedado na Hostinger, e uma camada de serviços que é a única parte do frontend que conhece a API.
Os testes rodam em dois níveis por um motivo prático: a suíte unitária em jsdom não calcula layout, então não enxerga texto cortado nem transbordo. Existe uma segunda suíte que builda o app real, troca só a camada de serviços por mocks e mede geometria num Chromium de verdade, via Playwright. É a única que pega essa família de bug.
O que isso demonstra
Que vale mais modelar o domínio do cliente do que adaptar um tema de portal genérico, e que um projeto pequeno pode carregar autenticação segura, painel administrativo e teste de layout automatizado sem virar um monstro de manter.