kurihada
|
e10e3c8230
|
ui: 全站统一暗色主题设计系统
- globals.css 定义语义化 token (background/surface/elevated/border/muted/dim/accent)
- 所有页面和组件迁移至暗色 token,移除硬编码 bg-white/text-zinc-*/bg-gray-*
- RestaurantCard 和 MatchResult 适配暗色卡片风格
- 按钮颜色分层:系统CTA(accent)/模式强调(橙/紫)/危险(rose)/次级(surface)
- 修复 room 页深色文字在深背景不可见的可访问性问题
|
2026-02-26 11:27:18 +08:00 |
|
kurihada
|
7d51f5200d
|
feat: 新增周末契约盲盒功能,首页重构为双模式入口
- 新增 BlindBoxIdea 数据模型及 migration
- 新增盲盒 API (提交想法/查询/抽取)
- 新增周末契约盲盒页面 (动效震动+彩带开奖)
- 原首页功能拆分至 /panic 路由
- 首页重构为极速救场 + 周末契约双卡片入口
|
2026-02-26 11:27:10 +08:00 |
|
kurihada
|
30d5ad5ff2
|
ui: 缩小房间页卡片和操作按钮,适配小屏手机
|
2026-02-25 14:51:12 +08:00 |
|
kurihada
|
4f164fecdf
|
fix: 修复数据目录权限,确保容器用户可写入数据库
|
2026-02-25 14:40:43 +08:00 |
|
kurihada
|
45b31e9319
|
ui: 压缩首页布局适配小屏手机
- Logo 与标题改为横排显示
- 缩小图标和间距,整体高度减少
- 确保创建房间按钮在小屏上可见
|
2026-02-25 14:37:00 +08:00 |
|
kurihada
|
77914672e0
|
feat: 注入高德地图 API Key 到 Docker 构建和运行环境
|
2026-02-25 14:30:24 +08:00 |
|
kurihada
|
6ceedddce9
|
feat: 加入 nginx 外部网络,支持反向代理
|
2026-02-25 14:25:19 +08:00 |
|
kurihada
|
d2e0b2a1f9
|
fix: 修正 template.db 构建路径
|
2026-02-25 14:14:30 +08:00 |
|
kurihada
|
20acf045f3
|
fix: 构建时生成数据库模板,运行时无需 prisma CLI
|
2026-02-25 14:12:29 +08:00 |
|
kurihada
|
76a3effb5e
|
fix: 修复容器内 prisma CLI 路径找不到的问题
|
2026-02-25 14:10:40 +08:00 |
|
kurihada
|
9f29fec453
|
fix: 修复容器内 Prisma 版本不匹配导致启动失败
- 复制项目的 prisma 二进制到 runner 阶段,避免 npx 下载最新版
- 移除已废弃的 --skip-generate 参数
|
2026-02-25 13:21:51 +08:00 |
|
kurihada
|
f564658508
|
fix: 切换到 Generic Webhook Trigger 解决 403 认证问题
|
2026-02-25 13:13:25 +08:00 |
|
kurihada
|
39213bb71e
|
fix: 修复 Restaurant 类型转换的 TypeScript 编译错误
|
2026-02-25 13:11:59 +08:00 |
|
kurihada
|
3b6910e6e8
|
perf: Prisma 引擎下载使用国内镜像加速
|
2026-02-25 13:06:52 +08:00 |
|
kurihada
|
e614129784
|
perf: npm 使用国内镜像源加速 Docker 构建
|
2026-02-25 12:28:35 +08:00 |
|
kurihada
|
7bc18ce503
|
refactor: 数据库持久化改用宿主机目录挂载
- Prisma DATABASE_URL 改为环境变量注入
- 数据挂载从 Docker Volume 改为 /data/no-whatever/
- 本地开发通过 .env 文件配置数据库路径
|
2026-02-25 12:24:44 +08:00 |
|
kurihada
|
54ccb9fb40
|
fix: 简化 Jenkinsfile,移除未配置的凭据依赖
|
2026-02-25 12:17:39 +08:00 |
|
kurihada
|
76bd7b4756
|
ci: 添加 Docker + Jenkins 自动化部署配置
- Dockerfile 多阶段构建,standalone 模式输出
- Jenkinsfile 定义 GitLab 触发的 CI/CD 流水线
- docker-compose.yml 简化部署
- next.config.ts 开启 standalone 输出
|
2026-02-25 12:10:32 +08:00 |
|
kurihada
|
cc7f6d55a7
|
feat: 添加品牌 Logo、favicon、Apple Touch Icon 和 OG 分享图
- 新增 icon.png (96x96) 和 apple-icon.png (180x180) 作为浏览器/iOS 图标
- 新增 opengraph-image.png 用于微信等社交媒体分享预览
- 新增 BrandLogo SVG 组件,首页标题上方展示品牌图标
|
2026-02-25 11:58:05 +08:00 |
|
kurihada
|
079feddf0e
|
feat: 商家卡片支持多图展示,点击左右切换带 crossfade 过渡
- Restaurant.image 改为 images: string[],API 层从高德取最多 5 张图
- RestaurantCard 新增 ImageGallery:点击图片左右区域切换、顶部圆点指示器、
左右箭头提示、首次查看时文字引导气泡(2.5s 自动消失)
- 图片切换使用 crossfade 动画(旧图渐隐 280ms),过渡平滑
- MatchResult / Profile 页面兼容新旧数据格式,无图时条件渲染
|
2026-02-25 11:51:42 +08:00 |
|
kurihada
|
c86a6c0909
|
feat: 新增「喝什么」场景,支持奶茶/咖啡/酒吧等饮品店搜索
引入场景系统(SceneType),首页增加「吃什么」「喝什么」切换 Tab,
不同场景使用不同的高德 POI 类型、热门标签、价格区间和全链路文案。
场景信息存储在房间数据中,邀请/分享/匹配结果等页面自动适配。
|
2026-02-25 01:12:44 +08:00 |
|
kurihada
|
6866b70278
|
feat: 优化定位体验——反向地理编码显示地名,定位失败明确提示
- 新增 /api/location/regeo 接口,通过高德逆地理编码将 GPS 坐标转为地名
- 页面加载时自动定位,成功后显示"当前位置:浦东新区 xxx"
- 定位失败/权限被拒时显示明确提示+重试按钮,不再静默默认上海
- 无可用位置时阻止创建房间,引导用户手动搜索选择地点
|
2026-02-25 00:53:50 +08:00 |
|
kurihada
|
04c7b547aa
|
feat: 用户名密码登录注册系统
- 新增 /api/auth/register 和 /api/auth/login 接口,使用 bcryptjs 哈希密码
- User 模型改为 username + passwordHash,id 自动生成 cuid
- 新增 AuthModal 组件(登录/注册双标签页),替换旧的 ProfileSetupModal
- 重写 /profile 页面:支持修改用户名、密码、头像、绑定邮箱、退出登录
- /api/user PUT 支持密码修改(需验证当前密码)和用户名唯一性校验
- 游客模式保留,右上角显示"登录"按钮;登录后显示头像和用户名
- 全局 nickname -> username 重命名(types、SwipeDeck、RoomManageModal、buildRoomStatus)
- 新增 logout() 清除登录态并重新生成游客 UUID
|
2026-02-25 00:21:03 +08:00 |
|
kurihada
|
a28f4405e9
|
feat: 美食类型改为输入框+热门推荐,移除顶部 logo
- 菜系选择从固定标签改为自由输入框,支持任意关键词搜索
- 输入框下方展示热门推荐标签(火锅、日料、烧烤等),点击自动填入
- 筛选卡片内顺序调整为:美食 > 距离 > 人均
- 移除顶部绿色图标 logo,页面直接从标题开始
|
2026-02-24 23:03:28 +08:00 |
|
kurihada
|
801e922bb6
|
feat: 全员一致时增加 confetti 粒子特效、庆祝音效和默契度文案
|
2026-02-24 22:03:49 +08:00 |
|
kurihada
|
43d3ff0fa3
|
fix: 移除静默 fallback 数据,API 失败时明确提示用户
|
2026-02-24 21:16:55 +08:00 |
|
kurihada
|
07ffe42176
|
feat: 房间创建者管理权限——锁定房间、踢人、结束投票
|
2026-02-24 21:01:24 +08:00 |
|
kurihada
|
fc0a2a018b
|
feat: 拦截浏览器返回键,退出房间前弹窗确认
|
2026-02-24 20:21:47 +08:00 |
|
kurihada
|
a6fc523f4f
|
feat: 添加二维码邀请功能,扫码即可加入房间
|
2026-02-24 20:00:55 +08:00 |
|
kurihada
|
25eb228e09
|
fix: 房间不存在时展示错误页面,替代无限加载转圈
|
2026-02-24 19:53:34 +08:00 |
|
kurihada
|
8c0d89af6d
|
feat: 用 SSE 替代 SWR 轮询,实现房间状态实时推送
SSE 断连时自动降级为 2s 轮询,重连后切回 SSE。
|
2026-02-24 19:51:30 +08:00 |
|
kurihada
|
f6949a062f
|
feat: 房间 24 小时自动过期,添加 TTL 清理机制
|
2026-02-24 19:46:14 +08:00 |
|
kurihada
|
b5fe3f6cc8
|
feat: 匹配结果页增加"分享结果到群里"按钮,支持 Web Share 和剪贴板
|
2026-02-24 19:39:57 +08:00 |
|
kurihada
|
ee636838d1
|
feat: 新增邀请中间页,分享链接带上下文引导新用户加入
|
2026-02-24 19:36:47 +08:00 |
|
kurihada
|
cb9f4a3d0f
|
feat: 拆分"再来一轮"为 Top N 决赛和换一批餐厅两个选项
|
2026-02-24 19:34:35 +08:00 |
|
kurihada
|
5d297684fc
|
feat: best 匹配结果页展示 Top 3 候选排行,支持折叠查看备选餐厅
|
2026-02-24 19:30:10 +08:00 |
|
kurihada
|
30329df136
|
fix: 0 票最佳匹配时展示"都不太满意"引导页,替代尴尬的 Trophy 展示
|
2026-02-24 19:26:54 +08:00 |
|
kurihada
|
b406acc813
|
feat: 显示每个人的实时滑卡进度,用 emoji 头像区分用户
滑卡时进度条下方展示所有人的进度(如 🐸你 12/15 🐱 8/15),
等待页面也改为详细进度卡片,减少等待焦虑并增强社交临场感。
每个用户根据 userId 确定性分配 emoji 头像,无需手动输入。
|
2026-02-24 19:23:06 +08:00 |
|
kurihada
|
998d0a4e15
|
fix: 刷新页面后恢复滑动进度,防止重复 swipe
服务端 GET room 返回 swipeCounts,前端据此恢复 currentIndex、
swipeHistory 和引导状态;swipe API 增加幂等性检查,跳过已滑过的卡片。
|
2026-02-24 18:40:42 +08:00 |
|
kurihada
|
d83e5ec6c4
|
feat: 创建房间时支持自定义筛选条件(距离/人均/菜系)
替换硬编码搜索参数,用户可选择距离范围(1/3/5km)、
人均价格区间(50以下/50-100/100+)和菜系偏好(火锅、
日料、烧烤等),直接提升推荐质量。
|
2026-02-24 18:29:38 +08:00 |
|
kurihada
|
059c009a8b
|
feat: 首页增加 3 步玩法图示,降低新用户认知门槛
在 slogan 与操作区之间加入"创建房间 → 各自滑卡 → 匹配结果"的极简流程说明,
帮助新用户快速理解核心机制。同时将布局改为 min-h-dvh 以适配小屏滚动。
|
2026-02-24 18:12:29 +08:00 |
|
kurihada
|
4e2d11f0a5
|
feat: 支持创建房间时指定位置搜索餐厅
新增位置搜索框,通过高德输入提示 API 提供地点联想,
用户可选择指定位置或使用默认当前定位来查询周边餐厅。
|
2026-02-24 18:06:48 +08:00 |
|
kurihada
|
48e74c03e6
|
feat: 撤回滑动功能,按钮移至进度条旁
- 新增 POST /api/room/[id]/undo 端点,撤回 like 和 swipeCount
- 进度条右侧显示"↩ 撤回"按钮,可一直撤回到第一张
- ActionButtons 恢复干净的两按钮布局,避免误触
|
2026-02-24 17:48:47 +08:00 |
|
kurihada
|
1b06f4fc0e
|
feat: 新用户滑动引导,首次进入展示手势提示
- 首张卡片叠加半透明引导层,左滑不想去/右滑想去动画提示
- 支持点击消失、拖拽消失、3秒自动消失
- localStorage 记录标记,每个用户只展示一次
- 修复 React Strict Mode 下 effect 双执行导致引导不显示的问题
|
2026-02-24 17:43:12 +08:00 |
|
kurihada
|
fb49e21eb2
|
feat: 增加滑动参与感 - 进度条、实时气泡、热度标签
- 卡片上方显示滑动进度条和计数 (3/15)
- 轮询检测到当前卡片新增 like 时弹出"有人也想去这家!"气泡
- 卡片图片角落显示"🔥N 人想去"热度标签
- 后端 GET /api/room/[id] 新增 likeCounts 字段
|
2026-02-24 17:36:04 +08:00 |
|
kurihada
|
a72f7ed884
|
fix: 修复滑完后卡在等待状态的问题
- findBestMatch 不再返回 null,无人 like 时按评分兜底推荐
- 移除即时匹配的 users.length > 1 限制,支持单人房间
|
2026-02-24 17:30:59 +08:00 |
|
kurihada
|
e2c3b869eb
|
feat: 两级匹配机制 - 全票通过即时匹配 + 滑完自动推荐得票最高
- 后端 GET /api/room/[id] 新增 findBestMatch,滑完后选出得票最高餐厅
- 平票时取高德评分更高的一家,永远不会出现"无结果"死局
- 返回 matchType (unanimous/best) 和 matchLikes 区分匹配类型
- 全票通过:绿色庆祝 + "大家一拍即合!"
- 得票最高:橙色推荐 + "N/M 人想去这家"
- 移除 noMatch 死局页面,简化 SwipeDeck 状态管理
|
2026-02-24 17:26:16 +08:00 |
|
kurihada
|
bdab39d866
|
feat: 卡片增加高德详情和大众点评外链按钮
|
2026-02-24 17:22:01 +08:00 |
|
kurihada
|
19cd336443
|
feat: 顶部导航栏添加退出房间按钮
|
2026-02-24 17:07:38 +08:00 |
|
kurihada
|
77d15f29e3
|
fix: 修复竞态条件、重置逻辑、无匹配终态等关键问题
- 用 Prisma $transaction 实现 atomicUpdateRoom,防止并发写入覆盖
- 新增 POST /api/room/[id]/reset 端点,修复"再来一轮"按钮死循环
- 新增 swipeCounts 字段追踪滑动进度,检测"无人匹配"终态
- 着陆页 handleCreate 增加 res.ok 检查,防止跳转到无效房间
- 匹配或无匹配后停止轮询,减少无效请求
|
2026-02-24 17:04:16 +08:00 |
|