🗺️ 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:

🐛 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