✨ MAJOR FEATURES: • Auto-zoom intelligence với smart bounds fitting • Enhanced 3D GPS markers với pulsing effects • Professional route display với 6-layer rendering • Status-based parking icons với availability indicators • Production-ready build optimizations 🗺️ AUTO-ZOOM FEATURES: • Smart bounds fitting cho GPS + selected parking • Adaptive padding (50px) cho visual balance • Max zoom control (level 16) để tránh quá gần • Dynamic centering khi không có selection 🎨 ENHANCED VISUALS: • 3D GPS marker với multi-layer pulse effects • Advanced parking icons với status colors • Selection highlighting với animation • Dimming system cho non-selected items 🛣️ ROUTE SYSTEM: • OpenRouteService API integration • Multi-layer route rendering (glow, shadow, main, animated) • Real-time distance & duration calculation • Visual route info trong popup 📱 PRODUCTION READY: • SSR safe với dynamic imports • Build errors resolved • Global deployment via Vercel • Optimized performance 🌍 DEPLOYMENT: • Vercel: https://whatever-ctk2auuxr-phong12hexdockworks-projects.vercel.app • Bundle size: 22.8 kB optimized • Global CDN distribution • HTTPS enabled 💾 VERSION CONTROL: • MapView-v2.0.tsx backup created • MAPVIEW_VERSIONS.md documentation • Full version history tracking
77 lines
1.9 KiB
Bash
Executable File
77 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Smart Parking Finder - Global Access Script
|
|
echo "🌍 Starting Smart Parking Finder for GLOBAL ACCESS..."
|
|
|
|
# Function to check if a command exists
|
|
command_exists() {
|
|
command -v "$1" >/dev/null 2>&1
|
|
}
|
|
|
|
# Check if ngrok is installed
|
|
if ! command_exists ngrok; then
|
|
echo "❌ ngrok is not installed. Installing..."
|
|
brew install ngrok/ngrok/ngrok
|
|
fi
|
|
|
|
# Get local IP for reference
|
|
LOCAL_IP=$(ifconfig | grep -E "inet.*broadcast" | head -1 | awk '{print $2}')
|
|
|
|
echo "==============================================="
|
|
echo "🌍 GLOBAL ACCESS DEPLOYMENT"
|
|
echo "==============================================="
|
|
echo "📱 Local Access: http://localhost:3000"
|
|
echo "🏠 Network Access: http://$LOCAL_IP:3000"
|
|
echo "🌐 Global Access: Will be shown after ngrok starts"
|
|
echo "==============================================="
|
|
echo ""
|
|
echo "🚀 Starting development server..."
|
|
echo ""
|
|
|
|
# Navigate to frontend directory
|
|
cd frontend
|
|
|
|
# Start Next.js in background with network access
|
|
echo "📦 Starting Next.js server..."
|
|
npm run dev &
|
|
NEXTJS_PID=$!
|
|
|
|
# Wait for Next.js to start
|
|
echo "⏳ Waiting for Next.js to start..."
|
|
sleep 5
|
|
|
|
# Start ngrok tunnel
|
|
echo "🌐 Starting ngrok tunnel..."
|
|
echo ""
|
|
echo "==============================================="
|
|
echo "🔗 GLOBAL ACCESS URLS:"
|
|
echo "==============================================="
|
|
|
|
# Start ngrok and capture the URL
|
|
ngrok http 3000 --log=stdout &
|
|
NGROK_PID=$!
|
|
|
|
# Function to cleanup on exit
|
|
cleanup() {
|
|
echo ""
|
|
echo "🛑 Stopping services..."
|
|
kill $NEXTJS_PID 2>/dev/null
|
|
kill $NGROK_PID 2>/dev/null
|
|
exit
|
|
}
|
|
|
|
# Trap Ctrl+C
|
|
trap cleanup INT
|
|
|
|
# Keep script running
|
|
echo ""
|
|
echo "🎯 Your app is now accessible globally!"
|
|
echo "📋 Share the ngrok URL with anyone in the world"
|
|
echo "⚠️ Note: Free ngrok has session limits"
|
|
echo ""
|
|
echo "Press Ctrl+C to stop all services"
|
|
echo ""
|
|
|
|
# Wait for processes
|
|
wait
|