# 🗺️ Sistema de Rastreamento de Veículos

Guia de Instalação e Configuração

⚠️ Importante: Certifique-se de que o MySQL está instalado e rodando antes de continuar.

## 1 Criar Banco de Dados

Escolha uma das opções abaixo:

### 📊 Opção A: MySQL Workbench (Recomendado)

1. Abra o MySQL Workbench
2. Conecte ao servidor MySQL (localhost, usuário: root)
3. Clique em File → Open SQL Script
4. Selecione o arquivo `database.sql`
5. Clique no ícone de raio ⚡ para executar

### 💻 Opção B: PowerShell

Execute no PowerShell (na pasta do projeto):

# Se o MySQL estiver no PATH do sistema:
mysql -u root -p@Ntonio010111 < database.sql
# Ou apenas crie o banco primeiro:
mysql -u root -p@Ntonio010111 < create-database-only.sql

### 🛠️ Opção C: Execução Manual

Copie e execute no MySQL Workbench ou similar:

CREATE DATABASE IF NOT EXISTS mapa CHARACTER SET utf8mb4;
USE mapa;

Depois execute todo o conteúdo do arquivo `database.sql`

## 2 Instalar Dependências

Execute no PowerShell na pasta do projeto:

npm install

## 3 Iniciar o Servidor

Execute no PowerShell:

npm start
✓ O servidor estará disponível em: http://localhost:3000

## 4 Importar Dados Iniciais (Opcional)

Para importar os dados do arquivo `veiculos.json`:

### 🔷 PowerShell

$json = Get-Content veiculos.json -Raw
Invoke-RestMethod -Uri "http://localhost:3000/api/veiculos" `
-Method Post -Body $json -ContentType "application/json"

### 🟢 Node.js

node import.js

### 🔧 Teste com Dados de Exemplo

Ou acesse a API manualmente pelo navegador/Postman:

POST http://localhost:3000/api/veiculos
Content-Type: application/json
Body: [conteúdo do veiculos.json]

## 5 Acessar o Sistema

Abra seu navegador e acesse:

🚀 Abrir Sistema

### 🐛 Problemas Comuns

- Erro: Unknown database 'mapa' → O banco não foi criado. Execute o database.sql
- Erro: Access denied → Verifique usuário e senha no arquivo .env
- Mapa não carrega → Verifique se o servidor está rodando e acesse F12 para ver erros
- Sem internet → O mapa usa tiles online do OpenStreetMap (requer internet)

### ✨ Funcionalidades do Sistema

- 🗺️ Mapa interativo com localização em tempo real
- 🔍 Filtro de busca por placa
- 🎨 Marcadores coloridos por status:
  - 🟢 Verde: Últimos 5 minutos
  - 🟡 Amarelo: Últimos 15 minutos
  - 🟠 Laranja: Últimos 30 minutos
  - 🔴 Vermelho: Mais de 1 hora
- 🔄 Atualização automática a cada 1 minuto
- 📊 Estatísticas em tempo real