# 🚛 TransFrota — MVP de Gestão de Transportes Pesados

Aplicação **single-page** (só frontend, sem servidor) para gerir uma empresa de
transporte/frete de cargas por via terrestre: **trajetos, tempos, finanças e
gestão interna**. Os dados ficam guardados no próprio navegador (`localStorage`).

## Como correr

Não precisa de instalação. Duas opções:

**A) Abrir diretamente**
Faça duplo-clique em `index.html` (ou abra-o no navegador).

**B) Servidor local (recomendado)**
```bash
cd gestao-transportes
python3 -m http.server 8000
# abrir http://localhost:8000
```

> É necessária ligação à internet (o mapa, a geocodificação e o routing usam
> serviços open source online). Para carregar dados de teste: **Definições →
> "Carregar dados de exemplo"**.

## Tecnologias (todas open source)

| Função | Tecnologia | Chave? |
|---|---|---|
| Mapa | **Leaflet** + tiles **OpenStreetMap** | Não |
| Geocodificação (morada → coordenadas) | **Nominatim** (OSM) | Não |
| Cálculo de rotas para pesados | **OpenRouteService** (perfil `driving-hgv`) | Sim (grátis) |

### Chave OpenRouteService (opcional mas recomendada)
1. Registo grátis em https://openrouteservice.org/sign-up
2. Copiar a chave e colar em **Definições → Chave da API ORS**

Com chave, o cálculo de rota respeita **peso, altura, largura e comprimento** do
camião (evita estradas com restrições para pesados). **Sem chave**, a app usa uma
estimativa (distância geodésica × fator de estrada + velocidade média de pesado).

## Funcionalidades

- **Dashboard** — receita/custo/lucro do mês, km, utilização da frota e **alertas**
  (inspeção, seguro e carta de condução a expirar; excesso de tempo de condução).
- **Viagens & Rotas** — mapa interativo, cálculo de trajeto e tempo por camião,
  estimativa de custo (combustível + motorista + portagens) e **margem por frete**.
  Deteção de conflitos (camião/motorista com dupla marcação no mesmo dia).
- **Camiões** — frota, capacidades, dimensões e prazos legais (inspeção/seguro).
- **Motoristas** — equipa, categorias e validade da carta, contactos.
- **Financeiro** — receitas, custos operacionais, despesas e **rentabilidade por camião**.
- **Definições** — parâmetros de custo, chave ORS e backup (exportar/importar/apagar).

Regras do **Regulamento (UE) 561/2006** integradas: aviso de pausa às 4h30 e de
limite de 9h de condução diária.

## Estrutura

```
gestao-transportes/
├── index.html          # Shell + navegação
├── css/styles.css      # Estilos
└── js/
    ├── store.js        # Persistência (localStorage) + dados de exemplo
    ├── geo.js          # Geocodificação (Nominatim) + routing (ORS/estimativa)
    └── app.js          # Interface e lógica de negócio
```

## Ideias para evoluir (pós-MVP)

- Backend real (multi-utilizador, autenticação) e base de dados.
- Rastreio GPS em tempo real dos camiões e ETA dinâmico.
- Otimização de múltiplas paragens (VRP) e sugestão do camião ideal por carga.
- Registo do tacógrafo e cálculo automático de horas/descansos por motorista.
- Faturação/PDF de fretes, integração contabilística e mapa de portagens (Via Verde).
- App móvel para o motorista (estado da viagem, documentos, comprovativo de entrega).
- Manutenção preventiva por km e histórico por veículo.
```
