尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗AI-powered travel itinerary platform that helps travelers discover authentic hidden gems and local favorites while avoiding tourist traps.
git clone https://github.com/yourusername/travelchat-ai.git
cd travelchat-ai
npm install
Copy .env.example to .env.local, then fill in your real keys. At minimum:
# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
CLERK_SECRET_KEY=your_clerk_secret_key
# Supabase
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
# Chat AI - GLM 5.2 primary
GLM_API_KEY=your_glm_or_zai_api_key
# ZAI_API_KEY=your_glm_or_zai_api_key # Optional alias supported by the app
GLM_MODEL=glm-5.2 # Optional, defaults to glm-5.2
# Optional, defaults to Z.AI's OpenAI-compatible endpoint. Blank values are ignored.
# GLM_BASE_URL=https://api.z.ai/api/paas/v4/
# Fallback AI providers
ANTHROPIC_API_KEY=your_anthropic_api_key # Chat fallback
OPENAI_API_KEY=your_openai_api_key # Itinerary fallback
# Viator (Optional)
VIATOR_API_KEY=your_viator_api_key
# Sentry (Optional)
NEXT_PUBLIC_SENTRY_DSN=your_sentry_dsn
# App URL
NEXT_PUBLIC_BASE_URL=http://localhost:3000
Run the SQL script in supabase/schema.sql in your Supabase SQL editor.
npm run dev
Open http://localhost:3000 in your browser.
├── app/ # Next.js App Router
│ ├── api/ # API routes
│ │ ├── chat/ # Chat with Alley
│ │ ├── itineraries/ # Itinerary CRUD
│ │ ├── spots/ # Spot discovery
│ │ ├── recommendations/ # Personalized recommendations
│ │ └── viator/ # Viator integration
│ ├── dashboard/ # Main dashboard
│ ├── itineraries/ # Itinerary management
│ ├── spots/ # Spot browsing
│ ├── templates/ # Itinerary templates
│ └── layout.tsx # Root layout
├── components/ # React components
│ ├── chat/ # Chat interface components
│ ├── dashboard/ # Dashboard widgets
│ ├── itineraries/ # Itinerary components
│ ├── spots/ # Spot components
│ └── ui/ # shadcn/ui components
├── lib/ # Utilities and helpers
│ ├── supabase.ts # Supabase client
│ ├── recommendations.ts # Recommendation engine
│ └── viator.ts # Viator API client
├── types/ # TypeScript type definitions
├── hooks/ # Custom React hooks
└── public/ # Static assets
The chat interface can detect and render itineraries as beautiful cards with save functionality:
**Day 1:** and ### Day 1: markdown formatsSee CHAT_ITINERARY_FIX_FINAL.md for detailed documentation.
Analyzes user's itinerary history to provide personalized spot recommendations:
# Development
npm run dev # Start dev server
npm run build # Build for production
npm run start # Start production server
# Code Quality
npm run lint # Run ESLint
npm run type-check # Run TypeScript compiler
# Testing
node scripts/pre-deployment-check.js # Run 44 automated checks
Key tables:
users - User profiles (synced with Clerk)itineraries - Saved travel plansspots - Hidden gems and local favoritesconversations - Chat historymessages - Individual chat messagesSee supabase/schema.sql for complete schema.
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)This project is licensed under the MIT License.
For issues and questions: