尚未检测到更新。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: