Nova Lar Imobiliária: portal de imóveis com CRM próprio em React e PHP




Projeto conceitual desenvolvido pela ALB Seven. A Nova Lar Imobiliária não é um cliente real: a imobiliária, os imóveis e os contatos exibidos são fictícios. O que é real é a plataforma por trás do nome, escrita pela ALB Seven: um portal público de imóveis em React e TypeScript, uma API em PHP com banco MySQL e um painel administrativo que funciona como CRM da imobiliária. O sistema foi batizado internamente de Home Hub e a Nova Lar é a marca de demonstração que o veste.
O problema do setor
Imobiliária pequena costuma viver em dois mundos que não se falam. O site é uma vitrine feita por terceiros, difícil de atualizar; a operação (quem ligou, qual imóvel interessou, com quem está a chave, quando vence o contrato) mora em planilha e WhatsApp. Cada novo anúncio exige republicar em vários portais à mão. O resultado é um site sempre desatualizado e um histórico de atendimento que depende da memória do corretor.
As decisões de projeto
- Catálogo com filtro na URL. A página de imóveis lê finalidade (venda ou aluguel), tipo, cidade, bairro, faixa de preço, área, quartos, vagas e código de referência direto da query string, com ordenação por data, preço ou área e visualização em grade ou lista. Um filtro vira um link compartilhável, e o visitante cadastrado pode salvar a busca.
- Página própria para cada imóvel. Rota
/imovel/:slugcom carrossel de fotos, abas de mídia, mapa aproximado do bairro, lista de itens do imóvel, imóveis similares, formulário de dúvida, agendamento de visita e botão de WhatsApp. Os tipos de imóvel vão de kitnet a galpão, passando por chácara e sala comercial. - Painel administrativo que é um CRM. Além do cadastro de imóveis com gerenciador de imagens e seção de destaques ordenável por arrastar, o painel traz funil de leads em kanban, agenda de tarefas, controle de retirada e devolução de chaves, contratos de locação, metas de venda, painel de desempenho por imóvel (visualizações, cliques no WhatsApp, favoritos), gerador de proposta em PDF, automação de e-mail para leads, cruzamento entre o perfil de busca de cada lead e os imóveis cadastrados, e exportação em XML para portais como ZAP e OLX.
- Backend em PHP puro, sem framework. A API tem um controller por domínio (imóveis, leads, favoritos, chaves, contratos, tarefas, webhooks, entre outros), roteamento próprio, middleware de autenticação, de limite de requisições e de upload, e migrations versionadas em SQL. O projeto nasceu no Lovable com Supabase e foi migrado para esse backend próprio, com a troca de provedor concentrada em um único arquivo de configuração.
- Segurança escrita como regra, não como intenção. A documentação interna fixa JWT em cookie HttpOnly em vez de localStorage, prepared statements sem exceção, validação de MIME por
finfono upload com renomeação para UUID, whitelist de origens no CORS e limite de tentativas no login e nos webhooks. O robots.txt libera o catálogo e bloqueia admin, login e favoritos. - SEO pensado para um SPA. Cada página define título, descrição e JSON-LD (RealEstateAgent na home, FAQPage com as perguntas sobre documentação, financiamento e ITBI), e o site publica
llms.txte sitemap. As fontes são carregadas por link no HTML, não por import no CSS, para não atrasar a primeira pintura.
Stack
React 18, Vite 5, TypeScript, Tailwind CSS, shadcn/ui, TanStack Query 5, React Hook Form com Zod, React Router 6 e Recharts no frontend. PHP 8.2 com PDO e MySQL no backend. Testes unitários com Vitest e Testing Library no frontend e PHPUnit na API.
O que isso demonstra
Que um portal imobiliário não precisa ser só vitrine: dá para colocar o site e a operação no mesmo sistema, com hospedagem comum em PHP e MySQL, sem depender de SaaS por assento. A imobiliária é inventada; o código que a sustenta, não.