Skip to content

giancarlo-bacci/property-research-system

Repository files navigation

Property Research System - Ambiente Docker

Sistema fullstack PHP/JavaScript/GIS para pesquisa de propriedades imobiliárias com LAMP stack (Linux, Apache, MySQL, PHP).

Estrutura do Projeto

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

Pré-requisitos

  • Docker
  • Docker Compose
  • Porta 80, 3306 e 8080 disponíveis

Instalação e Execução

1. Clone/Baixe o projeto

git clone https://github.com/giancarlo-bacci/property-research-system.git property-research-system
cd property-research-system

2. Construa e execute os containers

# Construir e iniciar todos os serviços
docker-compose up --build -d

# Aguardar inicialização (cerca de 30-60 segundos)
docker-compose ps

3. Verificar se os serviços estão rodando

# Verificar logs se necessário
docker-compose logs web
docker-compose logs db

Acessos aos Serviços

Credenciais do Banco de Dados

Para a aplicação:

  • Host: db (dentro do container) / localhost:3306 (externo)
  • Database: property_research
  • Username: gis_user
  • Password: gis_password

Para phpMyAdmin:

  • Username: gis_user
  • Password: gis_password
  • Ou usar root: root / root_password

Comandos Úteis

Gerenciamento dos containers:

# 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

Logs e debugging:

# 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 ps

Desenvolvimento

Estrutura da API

GET /api/property.php?id={id}

Retorna 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"
    }
  ]
}

POST /api/add_note.php

Adiciona uma nova nota à propriedade:

{
  "property_id": 1,
  "note": "Nova observação"
}

Banco de Dados

O schema inclui:

  • Tabela properties: dados principais das propriedades
  • Tabela notes: observações associadas às propriedades
  • Índices otimizados para consultas geográficas

APIs de Geolocalização Suportadas

O sistema pode integrar com:

  • OpenStreetMap Nominatim (gratuita)
  • Google Geocoding API
  • U.S. Census Geocoder
  • Outros serviços de geocodificação

Tecnologias Utilizadas

  • 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

Reset completo:

# Parar tudo e remover volumes
docker-compose down -v

# Remover imagens
docker rmi $(docker images "property*" -q)

# Rebuild completo
docker-compose up --build -d

About

Sistema fullstack PHP/JavaScript/GIS para pesquisa de propriedades imobiliárias com LAMP stack (Linux, Apache, MySQL, PHP).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors