Files
tony d516e93323 chore: initial checkpoint - Tesla Roadtrip planner
- Proactive Grok integration (xAI API + local CLI fallback)
- Real road routing via OSRM (no more bird's-eye lines)
- Heavy structured logging for fast iteration
- Strong sanitization + geocoding + ErrorBoundary (no black screens)
- Playwright E2E tests (API diagnostic + full UI flow)
- scripts/dev.sh for one-command startup
- Clean .env.example + documentation

This is a stable checkpoint before further prompt/UI refinement.
2026-05-15 19:24:35 +01:00

172 lines
2.9 KiB
JSON

[
{
"id": "sc-london-heathrow",
"name": "London Heathrow",
"lat": 51.4706,
"lng": -0.4543,
"stalls": 24,
"maxKw": 250,
"country": "UK",
"status": "open"
},
{
"id": "sc-london-battersea",
"name": "London Battersea",
"lat": 51.477,
"lng": -0.17,
"stalls": 12,
"maxKw": 250,
"country": "UK",
"status": "open"
},
{
"id": "sc-folkestone",
"name": "Folkestone Eurotunnel",
"lat": 51.093,
"lng": 1.155,
"stalls": 8,
"maxKw": 250,
"country": "UK",
"status": "open"
},
{
"id": "sc-birmingham",
"name": "Birmingham",
"lat": 52.4862,
"lng": -1.8904,
"stalls": 16,
"maxKw": 250,
"country": "UK",
"status": "open"
},
{
"id": "sc-manchester",
"name": "Manchester",
"lat": 53.4808,
"lng": -2.2426,
"stalls": 12,
"maxKw": 250,
"country": "UK",
"status": "open"
},
{
"id": "sc-edinburgh",
"name": "Edinburgh",
"lat": 55.9533,
"lng": -3.1883,
"stalls": 10,
"maxKw": 250,
"country": "UK",
"status": "open"
},
{
"id": "sc-glasgow",
"name": "Glasgow",
"lat": 55.8642,
"lng": -4.2518,
"stalls": 8,
"maxKw": 250,
"country": "UK",
"status": "open"
},
{
"id": "sc-calais",
"name": "Calais",
"lat": 50.9513,
"lng": 1.8563,
"stalls": 20,
"maxKw": 250,
"country": "FR",
"status": "open"
},
{
"id": "sc-paris",
"name": "Paris South",
"lat": 48.8566,
"lng": 2.3522,
"stalls": 18,
"maxKw": 250,
"country": "FR",
"status": "open"
},
{
"id": "sc-lyon",
"name": "Lyon",
"lat": 45.764,
"lng": 4.8357,
"stalls": 12,
"maxKw": 250,
"country": "FR",
"status": "open"
},
{
"id": "sc-amsterdam",
"name": "Amsterdam",
"lat": 52.3676,
"lng": 4.9041,
"stalls": 14,
"maxKw": 250,
"country": "NL",
"status": "open"
},
{
"id": "sc-brussels",
"name": "Brussels",
"lat": 50.8503,
"lng": 4.3517,
"stalls": 10,
"maxKw": 250,
"country": "BE",
"status": "open"
},
{
"id": "sc-cologne",
"name": "Cologne",
"lat": 50.9375,
"lng": 6.9603,
"stalls": 12,
"maxKw": 250,
"country": "DE",
"status": "open"
},
{
"id": "sc-frankfurt",
"name": "Frankfurt",
"lat": 50.1109,
"lng": 8.6821,
"stalls": 16,
"maxKw": 250,
"country": "DE",
"status": "open"
},
{
"id": "sc-munich",
"name": "Munich",
"lat": 48.1351,
"lng": 11.582,
"stalls": 14,
"maxKw": 250,
"country": "DE",
"status": "open"
},
{
"id": "sc-zurich",
"name": "Zurich",
"lat": 47.3769,
"lng": 8.5417,
"stalls": 8,
"maxKw": 250,
"country": "CH",
"status": "open"
},
{
"id": "sc-madrid",
"name": "Madrid",
"lat": 40.4168,
"lng": -3.7038,
"stalls": 12,
"maxKw": 250,
"country": "ES",
"status": "open"
}
]