Skip to content

Repository files navigation

SnowPeak

🏔️ SnowPeak — 中国滑雪资讯聚合平台

一站式获取滑雪场天气 / 雪况 / 票价 / 住宿 / 交通信息

Next.js NestJS Prisma Playwright DeepSeek


✨ 功能亮点

功能 说明
🏔️ 雪场百科 42+ 雪场档案,含海拔、雪道、缆车、开放季
🌤️ 实时天气 和风天气 API 接入,7 日预报 + 逐小时温度曲线
🎫 票价查询 各雪场官方票价结构化数据
🏨 住宿推荐 雪场周边酒店信息
🚆 交通指引 自驾/高铁/班车方案
🤖 AI 滑雪顾问 DeepSeek 大模型 + Playwright 实时抓取携程/网页

🛠️ 技术栈

┌─────────────────────────────────────────────────────────┐
│                    apps/web (Next.js)                    │
│              React 19 · Tailwind · RSC                  │
├─────────────────────────────────────────────────────────┤
│                    apps/api (NestJS)                     │
│     REST API · SSE 流式响应 · Playwright 爬虫           │
├─────────────────────────────────────────────────────────┤
│                    apps/worker (NestJS)                  │
│              定时采集天气 · 数据同步任务                 │
├─────────────────────────────────────────────────────────┤
│              packages/db (Prisma + PostgreSQL)           │
├─────────────────────────────────────────────────────────┤
│                  packages/shared (Zod)                   │
└─────────────────────────────────────────────────────────┘
层级 技术
前端 Next.js 15 · React 19 · Tailwind CSS · RSC
后端 NestJS 11 · Express · SSE
AI DeepSeek API · LangChain-style Tool Calling
爬虫 Playwright · Chromium · 携程自动化
数据库 PostgreSQL 16 · Prisma 6
缓存 Redis 7
部署 Docker · Caddy (HTTPS) · Turborepo

🚀 快速开始

# 1. 启动基础设施(需 Docker Desktop)
docker compose -f docker-compose.dev.yml up -d

# 2. 安装依赖
pnpm install

# 3. 配置环境变量
copy .env.example .env

# 4. 初始化数据库
pnpm db:migrate && pnpm db:seed

# 5. 启动开发服务
pnpm dev          # 同时启动 API + Web

访问:


🌐 API 接口

路径 说明
GET /api/v1/health 健康检查
GET /api/v1/resorts 雪场列表(含天气聚合)
GET /api/v1/resorts/:slug 雪场详情
GET /api/v1/resorts/:slug/weather 实况 + 7 日预报
GET /api/v1/resorts/:slug/tickets 票价
POST /api/v1/chat/sessions 创建 AI 会话
POST /api/v1/chat/message 发送消息(SSE 流式响应)

🤖 AI 滑雪顾问

内置智能聊天机器人,支持:

  • 多工具调用:实时搜索携程酒店/机票、网页搜索
  • 上下文记忆:多轮对话保持上下文
  • 行程规划:根据雪场数据生成滑雪行程建议
  • 实时数据:通过 Playwright 抓取携程最新价格

📦 项目结构

ski/
├── apps/
│   ├── api/          # NestJS 后端 (HTTP API + Worker)
│   └── web/          # Next.js 网站
├── packages/
│   ├── api-client/   # 类型安全的 API 客户端
│   ├── db/           # Prisma Schema + Client
│   └── shared/       # Zod Schema + 共享类型
├── data/seeds/       # 种子数据
├── deploy/           # 部署脚本
└── docs/             # 文档

🚢 部署

支持两种部署方式:

方式 适用场景 命令
Cloudflare Tunnel 家用自托管 --profile tunnel
Caddy 反代 云服务器 --profile caddy
# 云服务器部署
docker compose -f docker-compose.prod.yml --profile caddy up -d --build

📄 License

MIT


Made with ❄️ by hanxiaoyu

About

中国滑雪场资讯聚合平台:天气/雪况/票价/住宿 · NestJS + Next.js + Prisma monorepo

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages