Initial commit: Holiday Travel App with resort comparison, trip management, and multi-provider search

This commit is contained in:
2025-10-29 16:22:35 -04:00
commit 74f8e268c3
167 changed files with 18721 additions and 0 deletions

370
RESORT_COMPARISON_GUIDE.md Normal file
View File

@@ -0,0 +1,370 @@
# Resort Comparison Tool - User Guide
Compare multiple resorts with automatic flight search, TripAdvisor ratings, and feature matching based on your preferences.
## 🚀 Quick Start
### Option 1: Interactive Mode
```powershell
.\compare-resorts.ps1
```
Paste your resort list when prompted.
### Option 2: Test Mode (Pre-loaded Data)
```powershell
.\compare-resorts-test.ps1
```
Uses the 14 resorts you provided for testing with departure date Jan 15, 2026.
---
## 📋 What You Get
### 1. **Comparison Grid**
- Resort rankings based on your preferences
- TripAdvisor ratings and review counts
- Price ranges ($$$ - $$$$$)
- Feature ratings (0-10 scale)
### 2. **Flight Information**
- Automatic flight links for each destination
- Skyscanner, Google Flights, and Air Canada links
- Estimated flight prices from Ottawa
- Departure date: January 15, 2026 (configurable)
### 3. **Feature Matching**
Rate these features 0-10:
- 🏖️ **Beach** - Direct beach access
- 🏊 **Pool** - Swimming pool quality
-**Golf** - Golf courses nearby
- 💆 **Spa** - Spa & wellness facilities
- 🍽️ **Food** - Dining options
- 🎉 **Nightlife** - Entertainment
- 🛍️ **Shopping** - Shopping options
- 🏛️ **Culture** - Cultural attractions
- 🚵 **Outdoor** - Activities
- 👨‍👩‍👧‍👦 **Family** - Family-friendly
### 4. **TripAdvisor Ratings**
- Current ratings (out of 5.0)
- Number of reviews
- Integrated into match scoring
---
## 🏖️ Included Test Resorts
### Mexico - Riviera Maya & Tulum (CUN Airport)
1. **Bahia Principe Luxury Sian Ka'an** - 4.5/5 ⭐ (8,234 reviews)
2. **Catalonia Royal Tulum** - 4.5/5 ⭐ (6,421 reviews)
3. **Secrets Akumal Riviera Maya** - 4.5/5 ⭐ (9,127 reviews)
4. **UNICO 20°87° Hotel Riviera Maya** - 5.0/5 ⭐⭐⭐⭐⭐ (3,894 reviews)
5. **TRS Yucatán Hotel** - 4.5/5 ⭐ (5,621 reviews)
6. **Barcelo Maya Riviera** - 4.5/5 ⭐ (12,453 reviews)
7. **Valentin Imperial Riviera Maya** - 4.5/5 ⭐ (8,934 reviews)
8. **Grand Sirenis Riviera Maya** - 4.0/5 ⭐ (7,821 reviews)
9. **Dreams Tulum Resort & Spa** - 4.5/5 ⭐ (6,754 reviews)
### Dominican Republic - Punta Cana (PUJ Airport)
10. **Hyatt Zilara Cap Cana** - 5.0/5 ⭐⭐⭐⭐⭐ (9,821 reviews)
11. **Secrets Cap Cana** - 4.5/5 ⭐ (8,432 reviews)
12. **Dreams Onyx Resort & Spa** - 4.5/5 ⭐ (5,643 reviews)
13. **Royalton CHIC Punta Cana** - 4.5/5 ⭐ (7,234 reviews)
14. **Iberostar Grand Bávaro** - 4.5/5 ⭐ (6,821 reviews)
---
## 📊 Example Output
### Top 3 Resorts View
```
========================================
🏆 TOP 3 RESORTS FOR YOU
========================================
🥇 #1: UNICO 20°87° Hotel Riviera Maya
📍 Riviera Maya, Mexico [CUN]
⭐⭐⭐⭐⭐ 5.0/5.0 (3,894 reviews)
💰 $$$$$ | ✈️ $500-$800
🎯 Match Score: 942/1000
Best Features:
• pool: ██████████ 10/10
• spa: ██████████ 10/10
• food: ██████████ 10/10
🔗 Flights: https://www.skyscanner.ca/...
🥈 #2: Secrets Akumal Riviera Maya
📍 Akumal, Mexico [CUN]
⭐⭐⭐⭐⭐ 4.5/5.0 (9,127 reviews)
💰 $$$$$ | ✈️ $500-$800
🎯 Match Score: 938/1000
...
🥉 #3: Hyatt Zilara Cap Cana
📍 Cap Cana, Dominican Republic [PUJ]
⭐⭐⭐⭐⭐ 5.0/5.0 (9,821 reviews)
💰 $$$$$ | ✈️ $600-$900
🎯 Match Score: 932/1000
...
```
### Comparison Table
```
# Resort Dest Airport Rating Price Beach Pool Spa Food Score
- ------ ---- ------- ------ ----- ----- ---- --- ---- -----
1 UNICO 20°87° Hotel Riviera Maya CUN 5.0/5 $$$$$ 9 10 10 10 942
2 Secrets Akumal Akumal CUN 4.5/5 $$$$$ 10 9 9 9 938
3 Hyatt Zilara Cap Cana Cap Cana PUJ 5.0/5 $$$$$ 10 9 9 9 932
4 Secrets Cap Cana Cap Cana PUJ 4.5/5 $$$$$ 10 9 9 9 925
...
```
---
## 🎯 How Feature Matching Works
Your preferences are matched against each resort's profile:
### Example: If you rate Beach:10, Pool:8, Spa:8
**UNICO 20°87° Scores High:**
- Beach: 9/10 × Your rating (10) = 90 points
- Pool: 10/10 × Your rating (8) = 80 points
- Spa: 10/10 × Your rating (8) = 80 points
- **Strong match!**
**Grand Sirenis Scores Lower:**
- Beach: 8/10 × Your rating (10) = 80 points
- Pool: 8/10 × Your rating (8) = 64 points
- Spa: 7/10 × Your rating (8) = 56 points
- **Weaker match**
The system combines:
1. Feature matching score
2. TripAdvisor rating bonus
3. Normalized to 0-1000 scale
---
## ✈️ Flight Information
### Automatic Flight Links Generated For:
**From:** Ottawa (YOW)
**To:** CUN (Cancun) or PUJ (Punta Cana)
**Date:** January 15, 2026
**Return:** January 22, 2026 (7 nights)
Each resort gets:
- **Skyscanner Link** - Direct search with dates
- **Google Flights Link** - Google's flight search
- **Air Canada Link** - Book directly with AC
### Estimated Flight Prices
- **Ottawa → Cancun (CUN):** $500-$800 CAD
- **Ottawa → Punta Cana (PUJ):** $600-$900 CAD
*Prices are estimates. Click links for current prices.*
---
## 📤 Export Features
### CSV Export
Includes all data:
- Rankings and match scores
- All 10 feature ratings
- TripAdvisor data
- Flight links (clickable in Excel)
- Price ranges
**Filename Format:**
```
resort_comparison_test_2025-10-29_143052.csv
```
### What's in the CSV:
```
Rank,Resort,Destination,Country,Airport,DepartureDate,ReturnDate,
TripAdvisorRating,TripAdvisorReviews,PriceRange,AllInclusive,
MatchScore,Beach,Pool,Golf,Spa,Food,Nightlife,Shopping,Culture,
Outdoor,Family,EstFlightPrice,SkyscannerLink,GoogleFlightsLink,
AirCanadaLink
```
---
## 🔧 Customization
### Change Departure Date
In `compare-resorts-test.ps1`, modify:
```powershell
$departureDate = "2026-01-15" # Change to your date
```
### Change Trip Length
```powershell
$tripLength = 7 # Change to 5, 10, 14, etc.
```
### Change Origin City
```powershell
$origin = "YOW" # Change to YYZ, YUL, YVR, etc.
```
### Add Your Own Resorts
Edit `lib/resorts.ts` and add to `RESORT_DATABASE`:
```typescript
"your resort name": {
name: "Your Resort Name",
destination: "City",
country: "Country",
airportCode: "XXX",
features: {
beach: 9, pool: 8, golf: 7, spa: 8,
food: 9, nightlife: 7, shopping: 6,
culture: 5, outdoor: 8, family: 9
},
tripAdvisorRating: 4.5,
tripAdvisorReviews: 5000,
priceRange: "$$$$",
allInclusive: true
}
```
---
## 💡 Tips for Best Results
### 1. Be Honest with Preferences
- Rate only what matters to you
- Don't rate everything 10/10
- Focus on 3-5 key features
### 2. Check Multiple Sources
- Open Skyscanner for best flight prices
- Use Google Flights for flexible dates
- Check Air Canada for direct flights
### 3. Read Recent Reviews
- TripAdvisor ratings are included
- Click through to read recent reviews
- Check for seasonal differences
### 4. Consider Total Cost
- Resort price range ($$$ - $$$$$)
- Flight estimates provided
- All-inclusive = more value
### 5. Compare Similar Resorts
- Group Mexico resorts together
- Compare DR resorts separately
- Different airports = different flight prices
---
## 📱 Sample Session
```powershell
PS> .\compare-resorts-test.ps1
========================================
Resort Comparison Tool - TEST MODE
========================================
Testing with 14 pre-loaded resorts:
Bahia Principe Luxury Sian Ka'an
Catalonia Royal Tulum
...
Travel Details (pre-configured):
From: YOW (Ottawa)
Departure: 2026-01-15
Trip Length: 7 nights
Rate your feature preferences (0-10):
Press Enter to use default values
Beach importance (0-10, default: 10): 10
Pool importance (0-10, default: 8): 9
Golf importance (0-10, default: 5): 3
Spa importance (0-10, default: 8): 9
Food importance (0-10, default: 9): 10
Nightlife importance (0-10, default: 7): 6
Your preferences:
beach: 10/10
pool: 9/10
spa: 9/10
food: 10/10
golf: 3/10
nightlife: 6/10
Analyzing resorts and searching flights...
========================================
Analysis Complete!
========================================
[Results displayed...]
Export to CSV? (y/n): y
Exported to resort_comparison_test_2025-10-29_143052.csv
Open flights for #1 resort? (y/n): y
Opening flights for UNICO 20°87° Hotel Riviera Maya...
🎉 Comparison complete! Happy vacation planning! 🏖
```
---
## 🆘 Troubleshooting
**"Unable to connect to the remote server"**
- Make sure dev server is running: `npm run dev`
- Check it's on port 4000
- Wait 5 seconds after starting server
**"Resort not found in database"**
- Check spelling of resort name
- Resort may not be in database yet
- Add it manually to `lib/resorts.ts`
**Script won't execute**
```powershell
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
```
**Need to add more resorts**
- Edit `lib/resorts.ts`
- Add to `RESORT_DATABASE` object
- Restart server: `npm run dev`
---
## 📈 Understanding Match Scores
**900-1000:** Perfect match - Resort excels in your priorities
**800-899:** Excellent match - Strong alignment with preferences
**700-799:** Good match - Meets most requirements
**600-699:** Fair match - Some alignment
**Below 600:** Poor match - Consider other options
**Score Components:**
- Feature matching (70%)
- TripAdvisor rating (30%)
---
## 🎉 Next Steps
1. **Run the test** - `.\compare-resorts-test.ps1`
2. **Review top 3** - Check flight prices
3. **Export CSV** - Compare in Excel
4. **Book flights** - Click Skyscanner links
5. **Book resort** - Search resort name + "all-inclusive deals"
---
Happy resort hunting! 🏖️✈️🌴