6.5 KiB
Interactive Terminal Search Scripts
Two PowerShell scripts for searching travel deals via interactive prompts.
🚀 Quick Start
1. Start the Server
npm run dev
2. Run a Search Script
Option A: Full Interactive Search (with detailed feature preferences)
.\search-interactive.ps1
Option B: Quick Search (simplified prompts)
.\search-quick.ps1
📋 What You'll Be Asked
Basic Travel Info
-
Where are you leaving from?
- Enter IATA airport code (e.g.,
YOW,YYZ,YUL,YVR)
- Enter IATA airport code (e.g.,
-
Where do you want to go?
- Enter destinations separated by commas (e.g.,
CUN,PUJ,MBJ)
- Enter destinations separated by commas (e.g.,
-
When do you want to travel?
- Earliest departure date:
2025-12-15 - Latest return date:
2026-01-15
- Earliest departure date:
-
How long do you want to stay?
- Minimum nights:
5 - Maximum nights:
9
- Minimum nights:
-
What's your budget?
- Enter amount in CAD or leave blank for no limit
-
Flight preferences
- Non-stop flights only? (y/n)
Destination Features (Rate 0-10)
The script will ask you to rate the importance of:
- 🏖️ Beach - Direct beach access
- 🏊 Pool - Swimming pool facilities
- ⛳ Golf - Golf courses nearby
- 💆 Spa - Spa and wellness facilities
- 🍽️ Food - Dining options and local cuisine
- 🎉 Nightlife - Bars, clubs, entertainment
- 🛍️ Shopping - Shopping centers and markets
- 🏛️ Culture - Museums, historical sites
- 🚵 Outdoor - Hiking, water sports, activities
- 👨👩👧👦 Family - Family-friendly amenities
Rating Guide:
0= Not important at all5= Nice to have10= Must have
Search Sources
Choose which sources to include:
- Deal sites (YOWDeals, YYZDeals, etc.)
- Skyscanner
- Google Flights
- Air Canada
🎯 Example Session
========================================
Holiday Travel Deal Finder
========================================
Where are you leaving from?
(Enter IATA airport code, e.g., YOW, YYZ, YUL, YVR)
Origin: YOW
Where do you want to go?
(Enter one or more IATA codes, separated by commas)
Examples: CUN,PUJ,MBJ (Caribbean) or LHR,CDG,FCO (Europe)
Destinations: CUN,PUJ,MBJ
When do you want to travel?
Earliest departure date (YYYY-MM-DD):
Start date: 2025-12-15
Latest return date (YYYY-MM-DD):
End date: 2026-01-15
How long do you want to stay?
Minimum nights: 7
Maximum nights: 9
What's your budget?
(Leave blank for no budget limit)
Budget (CAD): 1000
Flight preferences:
Non-stop flights only? (y/n): n
========================================
Destination Features
========================================
Rate the importance of these features (0-10):
0 = Not important, 10 = Must have
Beach access:
Rating (0-10): 10
Swimming pool:
Rating (0-10): 8
Golf course nearby:
Rating (0-10): 2
Spa & wellness:
Rating (0-10): 7
Food & dining options:
Rating (0-10): 9
Nightlife & entertainment:
Rating (0-10): 6
Shopping:
Rating (0-10): 3
Cultural attractions:
Rating (0-10): 4
Outdoor activities (hiking, water sports):
Rating (0-10): 8
Family-friendly:
Rating (0-10): 7
========================================
Search Sources
========================================
Which sources do you want to search?
Deal sites (YOWDeals, etc)? (y/n): y
Skyscanner? (y/n): y
Google Flights? (y/n): y
Air Canada? (y/n): y
========================================
Search Summary
========================================
From: YOW
To: CUN, PUJ, MBJ
Dates: 2025-12-15 to 2026-01-15
Stay: 7-9 nights
Budget: $1000 CAD
Non-stop only: False
Sources: Deals, Skyscanner, GoogleFlights, AirCanada
Top priorities:
beach: ██████████ 10/10
food: █████████ 9/10
pool: ████████ 8/10
========================================
Search now? (y/n): y
Searching for deals...
(This may take 10-30 seconds)
✓ Found 47 results!
========================================
Top Deals
========================================
[1] Ottawa → Cancun (7 nights)
Price: $685 CAD
Duration: 7 nights
Dates: 2025-12-20 → 2025-12-27
Source: Skyscanner Link
Link: https://www.skyscanner.ca/...
Score: 10542
[2] YOW → PUJ (8 nights)
Price: $712 CAD
Duration: 8 nights
Dates: 2025-12-22 → 2025-12-30
Source: yowdeals.com
Link: https://www.yowdeals.com/...
Score: 10235
...
Export all results to CSV? (y/n): y
✓ Exported to travel_deals_2025-10-29_143052.csv
Open top deal in browser? (y/n): y
✓ Opening in browser...
Happy travels! ✈️🏖️
🎨 How Feature Weighting Works
The app matches your preferences with destination profiles:
Example: Cancun (CUN)
- Beach: 10/10 ⭐⭐⭐⭐⭐
- Pool: 9/10 ⭐⭐⭐⭐⭐
- Golf: 6/10 ⭐⭐⭐
- Spa: 8/10 ⭐⭐⭐⭐
- Food: 8/10 ⭐⭐⭐⭐
- Nightlife: 9/10 ⭐⭐⭐⭐⭐
- Shopping: 7/10 ⭐⭐⭐⭐
- Culture: 5/10 ⭐⭐⭐
- Outdoor: 8/10 ⭐⭐⭐⭐
- Family: 9/10 ⭐⭐⭐⭐⭐
If you rate Beach: 10 and Food: 9, destinations like Cancun will score higher because they excel in those areas.
Supported Destinations
Caribbean: CUN, PUJ, MBJ, NAS
Europe: LHR, CDG, FCO, BCN, AMS
USA: LAX, LAS, MIA, MCO, HNL
Other destinations use average ratings
💡 Tips
- Be specific with priorities - Rate 3-5 features as 8+ for best matching
- Set realistic budgets - Add 10-15% buffer for better results
- Multiple destinations - Enter 3-5 options to see more deals
- Flexible dates - Wider date ranges (30-60 days) find more options
- Save results - Export to CSV for comparison and analysis
🔧 Troubleshooting
"Unable to connect to the remote server"
- Make sure the dev server is running:
npm run dev - Check that it's on port 4000: look for "Local: http://localhost:4000"
"No deals found"
- Try removing or increasing the budget
- Expand your date range
- Add more destination options
- Set non-stop to
ninstead ofy
Script won't run
- Enable script execution:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned - Or run with:
powershell -ExecutionPolicy Bypass -File .\search-interactive.ps1
📊 Understanding Results
Results are sorted by a composite score that considers:
- Price (lower is better)
- Flight type (non-stop gets bonus)
- Trip length (closer to 7 nights is ideal)
- Source reliability (curated deal sites get bonus)
- Feature match (how well destination matches your priorities)
Higher scores = better matches for your criteria!
Happy searching! 🌴✈️