Integrate OpenFlights API for free, no-auth flight data generation

- Added openFlightsService.js to fetch and cache OpenFlights airport/airline/routes data
- Validates airport codes exist in OpenFlights database (6072+ airports)
- Generates realistic flights using major international airlines
- Creates varied routing options: direct, 1-stop, 2-stop flights
- Updated flightService.js to use OpenFlights as primary source before Amadeus
- OpenFlights as fallback if Amadeus unavailable or returns no results
- No API keys or authentication required
- Cached locally to avoid repeated network requests
- Realistic pricing, times, and stop locations

Docker container rebuilt with OpenFlights integration.
This commit is contained in:
2026-01-13 10:32:05 -05:00
parent 969ba062f7
commit 66b72d5f74
15 changed files with 82237 additions and 40 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

67663
data/openflights/routes.dat Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -2,45 +2,49 @@
{
"price": 1295.00,
"currency": "CAD",
"duration": "PT16H10M",
"durationHours": 16.2,
"duration": "PT13H25M",
"durationHours": 13.4,
"businessClassEligible": true,
"stops": 1,
"stopCodes": ["LHR"],
"carrier": "AC",
"departureTime": "2025-11-15T08:00:00",
"arrivalTime": "2025-11-15T16:10:00"
"departureTime": "2026-04-28T08:00:00",
"arrivalTime": "2026-04-28T21:25:00"
},
{
"price": 1420.50,
"currency": "CAD",
"duration": "PT14H25M",
"durationHours": 14.4,
"duration": "PT14H40M",
"durationHours": 14.7,
"businessClassEligible": true,
"stops": 2,
"stops": 1,
"stopCodes": ["CDG"],
"carrier": "BA",
"departureTime": "2025-11-15T09:30:00",
"arrivalTime": "2025-11-15T16:55:00"
"departureTime": "2026-04-28T09:30:00",
"arrivalTime": "2026-04-29T00:10:00"
},
{
"price": 980.25,
"currency": "CAD",
"duration": "PT20H05M",
"durationHours": 20.1,
"duration": "PT15H50M",
"durationHours": 15.8,
"businessClassEligible": true,
"stops": 2,
"carrier": "QF",
"departureTime": "2025-11-15T07:15:00",
"arrivalTime": "2025-11-15T16:20:00"
"stopCodes": ["FRA", "VIE"],
"carrier": "LH",
"departureTime": "2026-04-28T07:15:00",
"arrivalTime": "2026-04-28T23:05:00"
},
{
"price": 875.75,
"currency": "CAD",
"duration": "PT18H40M",
"durationHours": 18.7,
"duration": "PT16H35M",
"durationHours": 16.6,
"businessClassEligible": true,
"stops": 3,
"stops": 2,
"stopCodes": ["ARN", "TLL"],
"carrier": "SQ",
"departureTime": "2025-11-15T06:45:00",
"arrivalTime": "2025-11-15T15:25:00"
"departureTime": "2026-04-28T06:45:00",
"arrivalTime": "2026-04-28T23:20:00"
}
]