Files
flutter_tank_web_app/proxy-server

Lokaler Reverse Proxy Server

Dieser Proxy-Server umgeht CORS-Probleme während der Entwicklung, indem er Anfragen an die PTV Geocoding API weiterleitet.

🚀 Installation & Start

1. Dependencies installieren (nur Node.js Standard-Module, keine Installation nötig)

Der Server verwendet nur Node.js Built-in Module (http, https, url), daher ist kein npm install erforderlich.

2. Server starten

cd proxy-server
node server.js

Oder mit npm:

npm start

Der Server läuft dann auf http://localhost:3000

📡 API Verwendung

Endpoint:

GET http://localhost:3000/?lat={latitude}&lon={longitude}&apiKey={ptv_api_key}

Beispiel:

http://localhost:3000/?lat=47.9385165&lon=13.762887&apiKey=YOUR_API_KEY

Response (Erfolg):

{
  "success": true,
  "location": "Hauptstraße 123, 5020 Salzburg",
  "coordinates": {
    "lat": 47.9385165,
    "lon": 13.762887
  },
  "rawData": { ... }
}

Response (Fehler):

{
  "success": false,
  "error": "Error message",
  "fallbackLocation": "Lat: 47.938517, Lon: 13.762887"
}

🔧 In Flutter App verwenden

Der Flutter Code wurde bereits angepasst, um den lokalen Proxy zu verwenden.

  1. Starten Sie den Proxy-Server:

    cd proxy-server
    node server.js
    
  2. Starten Sie die Flutter App:

    flutter run -d chrome
    
  3. Die App verwendet automatisch http://localhost:3000 wenn verfügbar.

⚠️ Wichtige Hinweise

  • Nur für Entwicklung! Dieser Server ist nicht für Produktionsumgebungen geeignet.
  • Der Server muss laufen, während Sie die Flutter App im Development-Modus verwenden.
  • Für Produktion: Verwenden Sie die Appwrite Function (siehe DEPLOYMENT.md)

🛑 Server stoppen

Drücken Sie Strg+C im Terminal, wo der Server läuft.

🐛 Troubleshooting

Port bereits belegt

Problem: Error: listen EADDRINUSE: address already in use :::3000

Lösung:

  1. Anderen Port verwenden: Ändern Sie PORT = 3000 in server.js
  2. Oder den bestehenden Prozess beenden:
    # Port finden
    lsof -i :3000
    # Prozess beenden
    kill -9 PID
    

Flutter App findet Proxy nicht

Problem: "Failed to fetch" oder Connection Error

Lösung:

  1. Prüfen Sie ob der Proxy läuft (http://localhost:3000 im Browser öffnen)
  2. Stellen Sie sicher, dass Port 3000 korrekt ist
  3. Prüfen Sie die Browser Console für Fehler

CORS immer noch ein Problem

Problem: CORS-Fehler trotz Proxy

Lösung:

  1. Stellen Sie sicher, dass die Flutter App localhost:3000 verwendet
  2. Browser-Cache leeren
  3. Entwickler-Tools → Network → "Disable cache" aktivieren