Skip to content
yH3rcul3SyPublic

About

plataforma web para centralização da busca de imóveis em lançamento, na planta, em construção e recém-entregues

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

146 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo do NaPlanta

NaPlanta

Mapa gratuito de lançamentos imobiliários na planta
Foco em Mogi das Cruzes e no Alto Tietê, cobrindo também a Grande São Paulo e outras capitais.

Site Coleta diária

Python Leaflet OpenStreetMap GitHub Pages

Acessar o site · Sobre os dados · Como funciona


Os dados vêm direto dos sites das próprias incorporadoras e são atualizados automaticamente todo dia. Cada empreendimento leva à página oficial, sem corretor nem intermediário.

Projeto acadêmico da Universidade de Mogi das Cruzes (UMC), submetido ao UMC Summit.

Destaques

🗺️ Mapa e lista Mais de 900 empreendimentos de 23 incorporadoras. Por padrão mostra só o que está na planta (breve lançamento, lançamento e em obras); os prontos aparecem com a opção "Prontos".
🔎 Filtros Cidade, tipo (apartamento, casa em condomínio, lote), etapa, construtora, dormitórios, área mínima e distância até a estação.
🚆 Arredores Estação de trem ou metrô em operação mais próxima (até 3 km) e escolas, saúde, mercados e parques a até 1 km.
🆕 O que mudou Lançamentos novos, mudanças de etapa e empreendimentos que saíram, comparando cada coleta com a do dia anterior.
📋 Sobre os dados Situação de cada fonte, data da última coleta, regras e limites, tudo à vista.
📱 Celular Layout próprio para telas pequenas e pode ser adicionado à tela inicial como um app.

Como funciona

flowchart LR
    A[GitHub Actions<br>todo dia] --> B[coletar.py]
    B --> C[12 coletores<br>um por incorporadora]
    C --> D[geo.py<br>localização]
    D --> E[arredores.py<br>estação e serviços]
    E --> F[fotos.py<br>miniaturas]
    F --> G[(dados.json<br>mudancas.json<br>status.json)]
    G --> H[GitHub Pages<br>site estático]
Loading
  1. Coleta: cada coletor lê as páginas públicas de uma incorporadora e extrai nome, etapa, endereço, dormitórios, área, entrega e foto.
  2. Localização: a coordenada da fonte é conferida no Nominatim. Se o ponto cai fora da cidade, o endereço é procurado de novo. O pino vai para o prédio de mesmo nome no OpenStreetMap quando ele existe. Sem posição confiável, o pino fica no bairro, com aviso de "localização aproximada".
  3. Arredores: estação e serviços próximos vêm do OpenStreetMap, pela API Overpass.
  4. Fotos: cada foto é baixada uma vez e vira uma miniatura WebP servida pelo próprio site.
  5. Publicação: o site é uma página estática (index.html + módulos em site/js/) que lê o dados.json e desenha o mapa com Leaflet. Não há servidor nem banco de dados.

Regras da coleta

  • ✅ Só lê o que o robots.txt de cada site permite. Bloqueios nunca são contornados.
  • ✅ Identifica-se como NaPlantaBot/0.1 (projeto academico UMC) e espera 1 segundo entre páginas (ou o Crawl-delay do site, se for maior).
  • ✅ Guarda só informações públicas do empreendimento. Não coleta preços nem dados pessoais.
  • ✅ Empreendimentos 100% vendidos ficam de fora.
  • ✅ Se um site falha, responde vazio ou perde mais de 30% dos empreendimentos de um dia para o outro, os dados anteriores são mantidos. Uma queda que se repete por 3 coletas seguidas é aceita como real. Fonte parada há mais de um dia ganha aviso no card e na aba Actions.

Fontes

Incorporadora Região principal
Helbor Mogi das Cruzes, São Paulo e outras capitais
C.A.C Engenharia Mogi das Cruzes
Integra Urbano Mogi das Cruzes e Suzano
Sousa Araujo Mogi das Cruzes e interior de SP
Damebe Mogi das Cruzes
Cury São Paulo e Rio de Janeiro
Tenda Diversas capitais
EZTEC São Paulo, Guarulhos, Osasco e ABC
Econ São Paulo e Guarulhos
Metrocasa São Paulo
Vibra Residencial São Paulo
Árbore Engenharia Suzano, Poá, Grande SP e interior
J.Bianchi / BRI Mogi das Cruzes
GFR Empreendimentos Loteamentos em Mogi das Cruzes, Campinas e interior
Scopel Loteamentos em Mogi das Cruzes, Arujá, Itaquaquecetuba, Guarulhos e interior
Ribeira Mogi das Cruzes
Lumiar Mogi das Cruzes, Itaquaquecetuba, Suzano e Zona Leste de SP
Jeronimo da Veiga Poá, Taboão da Serra e Grande Rio
Evo Life Zona Leste de São Paulo
Lumy São Paulo, Guarulhos, Cajamar e Jundiaí
Graal Engenharia Zonas Leste e Norte de São Paulo
Longitude São Paulo e interior de SP
Direcional São Paulo, Campinas, Ribeirão Preto e outras capitais
Incorporadoras que ficaram de fora
Incorporadora Motivo
MRV O robots.txt proíbe a coleta das páginas de imóveis
Plano&Plano O robots.txt proíbe a coleta das páginas de empreendimentos
Habras O site bloqueia acessos automatizados
Cyrela O site bloqueia acessos automatizados

Cury, Sousa Araujo e J.Bianchi não respondem às coletas feitas pelos servidores do GitHub; o mapa mantém os dados da última coleta que funcionou e avisa a data no card. Para atualizá-las, rode a coleta num computador (veja abaixo).

Documentação

Arquitetura · PRD · TRD · Fluxos · Backend · Design · Plano · Futuro e escala

Rodar localmente

Requer Python 3.12 ou mais novo.

pip install -r coleta/requirements.txt
python coleta/coletar.py
python coleta/paginas.py   # opcional: páginas por empreendimento e sitemap
python -m http.server 8000 --directory site

Depois é só abrir http://localhost:8000. A primeira coleta demora mais, porque preenche os caches de localização e arredores e gera as miniaturas.

Estrutura do projeto
coleta/
  coletar.py · paginas.py   pontos de entrada (coleta diária; páginas e sitemap)
  cache/                    respostas do Nominatim e do Overpass
  naplanta/
    config.py               caminhos, URL, fuso e identificação do robô
    dominio/                regras puras: validação, etapas, mudanças, texto
    fontes/                 um adaptador por incorporadora + registro FONTES
    infra/                  rede (robots.txt), geo, arredores, fotos, repositório JSON
    app/coleta_diaria.py    caso de uso que orquestra a coleta
    publicacao/paginas.py   páginas por empreendimento e sitemap
site/
  index.html · transparencia.html
  js/main.js                composição do app
  js/nucleo/                filtros, formatação, situação (sem DOM)
  js/ui/                    mapa (Leaflet), lista, filtros, cabeçalho, novidades, boas-vindas
  dados.json · mudancas.json · status.json · fotos/   gerados pela coleta
.github/workflows/coleta.yml   coleta diária e publicação

Detalhes em docs/arquitetura.md.

Limites conhecidos
  • A etapa da obra é a que a incorporadora informa no site dela.
  • Alguns pinos são aproximados: ficam na rua ou no bairro quando nem a fonte nem o OpenStreetMap têm a posição do prédio. O card avisa quando o pino está no bairro.
  • As distâncias até estações e serviços são em linha reta, não o caminho a pé.

Tecnologias

Todas gratuitas e abertas: Python (httpx, BeautifulSoup, Pillow), Leaflet com Leaflet.markercluster, OpenStreetMap (mapa, Nominatim e Overpass), GitHub Actions e GitHub Pages.

Direitos

© 2026 autores do NaPlanta. Todos os direitos reservados. O código está visível para fins acadêmicos e de transparência; uso, cópia ou redistribuição dependem de autorização dos autores.

Os dados de mapa são © colaboradores do OpenStreetMap (ODbL). Nomes, informações e fotos dos empreendimentos pertencem às respectivas incorporadoras.

About

plataforma web para centralização da busca de imóveis em lançamento, na planta, em construção e recém-entregues

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages