Files
Reiseplanuing/README.md
2026-03-16 15:36:42 +01:00

145 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# TravelDesk Reiseplanung für Firmenmonteure
Ein intelligenter **Deep-Link-Generator**: Das Tool bereitet Flug-, Hotel- und Mietwagensuchen vor und leitet direkt zu Booking.com weiter. Keine eigene Buchung, kein eigenes Inventar volles Booking.com Angebot, vertraute Oberfläche.
## Wie es funktioniert
1. Nutzer gibt Reisedaten + Fabrikadresse ein
2. Tool ermittelt IATA-Codes (Lookup-Tabelle + KI-Fallback)
3. Tool geocoded die Adressen (Google Maps oder Nominatim)
4. Optionaler Mietwagen-Check: Hotel-Adresse → Distanz zur Fabrik berechnen
5. Tool generiert 3 Booking.com Deep-Links:
- **flights.booking.com** mit Flughafen-Codes vorausgefüllt
- **booking.com/searchresults** mit Ort, Datum, Personen
- **booking.com/cars** mit Abholort und Datum
6. KI (GPT-4o-mini) erstellt kurze Reiseempfehlung
## Voraussetzungen
- **Node.js** (Version 18+) → https://nodejs.org
- API-Keys: Google Maps + OpenAI
## Setup
### 1. Abhängigkeiten installieren
```bash
cd c:\Users\Timo\Documents\Reiseplanung
npm install
```
### 2. .env Datei anlegen
```bash
copy .env.example .env
```
Dann in `.env` eintragen:
```env
GOOGLE_MAPS_API_KEY=dein_key
OPENAI_API_KEY=dein_key
PORT=3000
```
### 3. Server starten
```bash
npm start
```
→ Öffne **http://localhost:3000**
## API-Keys
### Google Maps (optional, aber empfohlen)
- https://console.cloud.google.com → APIs aktivieren:
- **Geocoding API** (Adresse → Koordinaten)
- **Distance Matrix API** (Mietwagen-Check)
- Ohne Google Maps: Nominatim (OpenStreetMap) als Fallback kostenlos, kein Key nötig
### OpenAI
- https://platform.openai.com → API Keys
- Verwendung: IATA-Code-Fallback (GPT-4o-mini) + KI-Zusammenfassung
## API-Endpoints
### POST /api/search
Generiert alle Deep-Links für eine Reise.
**Request:**
```json
{
"origin": "Stuttgart, Deutschland",
"destination": "ul. Marszałkowska 1, Warschau, Polen",
"checkin": "2026-04-15",
"checkout": "2026-04-20",
"adults": 1,
"directFlightsOnly": false,
"refundableOnly": true,
"hotelAddress": "ul. Nowogrodzka 35, Warschau",
"specialRequirements": "Parkplatz"
}
```
**Response:**
```json
{
"flightLink": "https://flights.booking.com/...",
"hotelLink": "https://www.booking.com/searchresults...",
"carLink": "https://www.booking.com/cars/...",
"originIATA": "STR",
"destIATA": "WAW",
"carNeeded": true,
"carMessage": "🚗 Mietwagen empfohlen 2.3 km zur Fabrik",
"distanceMeters": 2300,
"summary": "KI-Empfehlung...",
"meta": { ... }
}
```
### POST /api/check-distance
Prüft nachträglich ob ein Mietwagen nötig ist.
**Request:**
```json
{
"hotelAddress": "ul. Nowogrodzka 35, Warschau",
"fabrikAddress": "ul. Marszałkowska 1, Warschau, Polen",
"checkin": "2026-04-15",
"checkout": "2026-04-20"
}
```
**Response:**
```json
{
"distanceMeters": 800,
"carNeeded": false,
"carMessage": "✅ Kein Mietwagen nötig 800m",
"carLink": "https://www.booking.com/cars/..."
}
```
## IATA-Lookup
Das Tool enthält eine Tabelle mit 150+ Städten (Europa, Asien, Amerika, Afrika, Ozeanien).
Falls eine Stadt nicht in der Tabelle ist, fragt das Tool automatisch GPT-4o-mini nach dem IATA-Code. Falls auch das scheitert, wird ein Hinweis angezeigt und der Booking.com Flights Link öffnet ohne Vorausfüllung.
## Mietwagen-Logik
| Szenario | Ergebnis |
|---|---|
| Hotel-Adresse angegeben, < 1,5 km zur Fabrik | Kein Mietwagen nötig |
| Hotel-Adresse angegeben, ≥ 1,5 km zur Fabrik | Mietwagen empfohlen |
| Keine Hotel-Adresse | Unbekannt inline Distanz-Check möglich |
## Entwicklungs-Modus
```bash
npm run dev
```
(nodemon mit Auto-Reload)