Sistema fullstack PHP/JavaScript/GIS para pesquisa de propriedades imobiliárias com LAMP stack (Linux, Apache, MySQL, PHP).
project-root/
├── index.php # Formulário principal de entrada
├── README.md # Este arquivo
├── AI_PROPOSAL.md # Proposta de automação com AI/LLM
├── docker-compose.yml # Configuração dos containers
├── Dockerfile # Imagem PHP/Apache customizada
├── api/ # Endpoints da API
│ ├── db.php # Conexão com banco de dados
│ ├── property.php # API de propriedades
│ └── add_note.php # API para adicionar notas
├── public/ # Assets estáticos e páginas
│ └── map.html # Página do mapa interativo
├── sql/ # Scripts do banco de dados
│ └── schema.sql # Schema e dados iniciais
└── config/ # Configurações
├── php.ini # Configurações do PHP
└── 000-default.conf # Configurações do Apache
- Docker
- Docker Compose
- Porta 80, 3306 e 8080 disponíveis
git clone https://github.com/giancarlo-bacci/property-research-system.git property-research-system
cd property-research-system# Construir e iniciar todos os serviços
docker-compose up --build -d
# Aguardar inicialização (cerca de 30-60 segundos)
docker-compose ps# Verificar logs se necessário
docker-compose logs web
docker-compose logs db- Aplicação Principal: http://localhost
- phpMyAdmin: http://localhost:8080
- API de Propriedades: http://localhost/api/property.php
- Mapa Interativo: http://localhost/public/map.html
- Host:
db(dentro do container) /localhost:3306(externo) - Database:
property_research - Username:
gis_user - Password:
gis_password
- Username:
gis_user - Password:
gis_password - Ou usar root:
root/root_password
# Parar todos os serviços
docker-compose down
# Parar e remover volumes (ATENÇÃO: remove dados do banco)
docker-compose down -v
# Rebuild apenas o container web
docker-compose build web
# Acessar bash do container PHP
docker-compose exec web bash
# Acessar MySQL diretamente
docker-compose exec db mysql -u gis_user -p property_research# Ver logs em tempo real
docker-compose logs -f
# Ver logs de um serviço específico
docker-compose logs web
docker-compose logs db
# Ver status dos containers
docker-compose psRetorna dados da propriedade e suas notas em JSON:
{
"property": {
"id": 1,
"name": "Nome da Propriedade",
"address": "Endereço completo",
"latitude": -23.5618515,
"longitude": -46.6566639,
"extra_field": "{\"confidence\": 0.95}",
"created_at": "2024-01-01 10:00:00"
},
"notes": [
{
"id": 1,
"note": "Observação sobre a propriedade",
"created_at": "2024-01-01 10:30:00"
}
]
}Adiciona uma nova nota à propriedade:
{
"property_id": 1,
"note": "Nova observação"
}O schema inclui:
- Tabela
properties: dados principais das propriedades - Tabela
notes: observações associadas às propriedades - Índices otimizados para consultas geográficas
O sistema pode integrar com:
- OpenStreetMap Nominatim (gratuita)
- Google Geocoding API
- U.S. Census Geocoder
- Outros serviços de geocodificação
- Backend: PHP 8.2, Apache
- Banco de Dados: MySQL 8.0
- Frontend: HTML5, JavaScript, CSS3
- Mapas: Leaflet ou ArcGIS JS API
- Containerização: Docker, Docker Compose
- Gerenciamento BD: phpMyAdmin
# Parar tudo e remover volumes
docker-compose down -v
# Remover imagens
docker rmi $(docker images "property*" -q)
# Rebuild completo
docker-compose up --build -d