From 0d9d6e7a8f97425eb115908fb9ab03205f8a9da4 Mon Sep 17 00:00:00 2001 From: wangdongpo <544209413@qq.com> Date: Sat, 31 Jan 2026 19:30:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=A1=B9=E7=9B=AE=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E8=A7=84=E5=88=92=E5=92=8CAGENTS=E6=96=87=E6=A1=A3?= =?UTF-8?q?=EF=BC=8C=E8=AF=A6=E7=BB=86=E6=8F=8F=E8=BF=B0=E7=8E=B0=E5=9C=BA?= =?UTF-8?q?=E4=BA=92=E5=8A=A8SaaS=E5=B9=B3=E5=8F=B0=E7=9A=84=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E6=A6=82=E8=BF=B0=E3=80=81=E5=9B=A2=E9=98=9F=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E3=80=81=E9=A2=84=E7=AE=97=E8=A7=84=E5=88=92=E3=80=81?= =?UTF-8?q?=E4=BA=A7=E5=93=81=E5=8A=9F=E8=83=BD=E5=8F=8A=E8=BF=90=E8=90=A5?= =?UTF-8?q?=E7=AD=96=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 331 ++++++++++++++++++++++++ doc/thinking/platform_setup.md | 446 +++++++++++++++++++++++++++++++++ 规划/项目启动规划.md | 401 +++++++++++++++++++++++++++++ 3 files changed, 1178 insertions(+) create mode 100644 AGENTS.md create mode 100644 doc/thinking/platform_setup.md create mode 100644 规划/项目启动规划.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..f761037 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,331 @@ +# 现场互动SaaS平台 - 项目上下文 + +## 项目概述 + +这是一个创业项目,旨在打造轻量化现场大屏幕互动SaaS平台,专注500元以下小型活动市场。项目对标Hi现场(https://www.hixianchang.com/),以极致性价比和稳定性抢占下沉市场。 + +### 核心定位 +- **目标市场**:小型活动主办方(部门年会、小型沙龙、公司年会、经销商会等) +- **差异化策略**:低价、轻量、专注小B客户 +- **核心优势**:技术自主(2名程序员)、轻量部署、抖音获客、快速响应 + +### 团队配置(3人) +- **程序员A**:后端开发+部署运维 +- **程序员B**:前端开发+大屏幕 +- **推广客服C**:抖音运营+客户对接 + +### 预算规划 +- **启动资金**:3-5万元 +- **最大亏损底线**:不超过3万元 +- **验证期**:最多12个月 + +--- + +## 技术栈(已确定) + +### 后端 +- **语言**:Go 1.21+ LTS +- **Web框架**:Gin(轻量高性能) +- **ORM**:GORM +- **数据库**:MySQL 8.0 +- **实时通信**:HTTP长轮询(暂不用WebSocket) +- **配置管理**:Viper +- **日志**:Zap +- **JWT**:golang-jwt/jwt + +### 前端 +- **框架**:Vue 3 +- **构建工具**:Vite +- **UI组件库**: + - 管理后台:Element Plus + - 移动端:Vant +- **动画**:Canvas 2D(不用WebGL,保持轻量) + +### 部署 +- **云服务**:阿里云ECS(2核4G) +- **Web服务器**:Nginx(反向代理 + 静态文件) +- **数据库**:MySQL 8.0(本地部署) +- **监控**:阿里云免费监控 + Server酱微信推送 + +--- + +## 项目结构(规划中) + +``` +live_cloud/ +├── backend/ # 后端项目(Go + Gin) +│ ├── cmd/ +│ │ └── server/ +│ │ └── main.go # 程序入口 +│ ├── internal/ +│ │ ├── api/ # HTTP路由和控制器 +│ │ ├── model/ # 数据模型 +│ │ ├── service/ # 业务逻辑层 +│ │ ├── repository/ # 数据访问层 +│ │ ├── middleware/ # 中间件 +│ │ ├── pkg/ # 工具包 +│ │ └── config/ # 配置 +│ ├── config/ +│ │ ├── config.yaml # 配置文件 +│ │ └── config.prod.yaml # 生产环境配置 +│ ├── scripts/ +│ │ ├── build.sh # 构建脚本 +│ │ └── deploy.sh # 部署脚本 +│ ├── go.mod +│ └── go.sum +├── frontend/ # 前端项目(Vue 3) +│ ├── admin/ # 管理后台 +│ ├── screen/ # 大屏幕 +│ └── mobile/ # 移动端H5 +├── 规划/ # 项目规划文档 +│ └── 项目启动规划.md +└── AGENTS.md # 本文件 +``` + +--- + +## MVP功能规划(V1.0) + +### 核心功能(4个) +1. **扫码签到** + - 用户扫码填写:姓名 + 手机号 + - 大屏幕实时显示:头像 + 姓名 + - 管理后台:查看签到列表 + 导出Excel + +2. **弹幕互动** + - 用户扫码发送弹幕 + - 大屏幕实时显示弹幕池(最近50条) + - 后台敏感词过滤 + +3. **头像滚动抽奖** + - 支持设置:奖品名称、数量、单次抽取人数 + - 大屏幕动画:Canvas 2D滚动 + - 中奖结果:弹窗显示 + 自动保存 + 防重复中奖 + +4. **数钱游戏** + - 比拼手速的游戏玩法 + - 大屏幕实时显示排名 + - 游戏结束后导出成绩 + +### 管理后台功能 +- 活动管理:创建、编辑、删除 +- 数据查看:签到人数、中奖记录、弹幕列表 +- 导出功能:签到名单、中奖名单 + +### 砍掉的功能(暂不开发) +- ❌ 3D签到墙(兼容性问题多) +- ❌ 红包功能(涉及支付,合规复杂) +- ❌ 复杂游戏功能(开发周期长) +- ❌ 投票功能(需求频次低) +- ❌ 多主题切换(维护成本高) + +--- + +## 数据库设计(规划中) + +### 核心表 +- **users**:用户表 +- **activities**:活动表 +- **checkins**:签到表 +- **danmakus**:弹幕表 +- **lotteries**:抽奖表 +- **lottery_winners**:中奖记录表 +- **money_games**:数钱游戏表 +- **money_game_records**:游戏记录表 +- **orders**:订单表 + +### 技术要点 +- 单库单表,无分库分表(简化架构) +- 合理设计索引(activity_id, user_id) +- 使用GORM ORM框架 +- 支持软删除(deleted_at字段) + +--- + +## 产品定价 + +| 套餐 | 价格 | 人数限制 | 核心功能 | +|-----|------|---------|---------| +| **体验版** | 0元 | ≤30人 | 签到+1轮抽奖(带水印) | +| **单次版** | 199元 | ≤100人 | 签到+3轮抽奖+弹幕 | +| **月度版** | 399元 | ≤300人 | 全功能+导出数据,不限场次,30天 | +| **年度版** | 1999元 | ≤500人 | 全功能,不限场次,365天 | + +--- + +## 运营策略 + +### 获客渠道 +- **主要渠道**:抖音运营(客服C执行) +- **内容策略**: + - 客户案例展示(60%) + - 功能演示(30%) + - 优惠活动(10%) +- **关键词布局**:年会抽奖软件、现场互动、大屏幕抽奖、地域词(北京年会、上海活动等) + +### 客户服务 +- **响应时间**:3分钟内 +- **服务时间**:7×24小时 +- **交付流程**:付款后30分钟内创建活动,活动前1天发送操作手册,活动前1小时客服在线值班 + +--- + +## 稳定性保障方案 + +### 三道防线 +1. **架构简化**:单体应用、HTTP轮询、单库单表、无Redis、Canvas 2D +2. **冗余备份**:离线版HTML文件、手机热点+本地服务器、PPT抽奖动画 +3. **监控告警**:CPU > 80%告警、响应时间 > 2秒告警、错误日志推送、心跳检测 + +### 活动前检查 +- 24小时前:服务器余额、数据库备份、功能测试、离线文件生成 +- 1小时前:操作手册确认、大屏幕设备测试、数据清空、客服在线 + +### 应急预案 +- 服务器宕机:启动离线版,重启服务器,退款50% +- 抽奖卡顿:关闭动画,降低帧率,赠送免费活动 +- 数据误删:从备份恢复,电话指导 + +--- + +## 开发计划(8周) + +### 第1周:准备工作 +- 确定技术栈(已确定Go) +- 注册阿里云账号 +- 注册域名 +- 创建GitHub私有仓库 + +### 第2-3周:后端开发 +- 搭建Go项目骨架 +- 设计数据库表 +- 实现用户注册登录(JWT) +- 实现活动CRUD接口 +- 实现签到、弹幕、抽奖、数钱游戏接口 + +### 第4-5周:前端开发 +- 搭建Vue 3管理后台 +- 实现活动管理页面 +- 实现大屏幕Canvas动画 +- 实现移动端H5扫码页 + +### 第6周:联调与测试 +- 前后端接口联调 +- 压力测试(100人并发) +- 兼容性测试 +- 灾难恢复测试 + +### 第7周:内测与优化 +- 三人内部测试 +- 3-5个朋友公司免费试用 +- 收集反馈,修复Bug +- 完善操作手册 + +### 第8周:上线准备 +- 部署到阿里云 +- 配置监控告警 +- 设置数据库自动备份 +- 准备抖音内容 + +--- + +## 成功关键要素 + +### 产品层面 +- **稳定性 > 功能丰富度**:宁可功能少,不能出故障 +- **简单易用**:3步完成活动创建 +- **快速响应**:客服5分钟内回复 + +### 运营层面 +- **抖音获客**:持续输出内容,建立信任 +- **口碑传播**:每个客户都变成推荐者 +- **数据驱动**:每周复盘,优化转化率 + +### 团队层面 +- **明确分工**:各司其职,不越界 +- **充分沟通**:每日同步进展 +- **共担风险**:收益共享,亏损共担 + +--- + +## 风险控制 + +### 退出条件(满足任一) +- 连续3个月收入 < 1000元 +- 出现2次以上重大故障 +- 核心成员退出且无法补充 + +### 止损底线 +- **最大亏损**:不超过3万元 +- **时间投入**:最多12个月 +- **机会成本**:如全职工作收入更高,可转为兼职 + +--- + +## 关键里程碑 + +### 第一个月 +- V1.0 MVP上线 +- 3-5个种子用户免费试用 +- 系统可用性 > 95% + +### 第三个月 +- 首单付费订单(199元) +- 累计服务10场活动 +- 0重大投诉 + +### 第六个月 +- 月收入 > 3000元 +- 累计服务50场活动 +- 考虑扩充兼职设计 + +### 第十二个月 +- 月收入 > 10,000元 +- 累计服务200场活动 +- 决策是否全职投入/融资扩张 + +--- + +## 重要说明 + +1. **成本控制**:月度服务器成本 ≤ 500元,单活动成本 ≤ 5元 +2. **协作模式**:重大决策三人投票,简单多数通过;每周一次线上会议复盘 +3. **退出机制**:任意成员可随时退出,需提前1个月告知 +4. **技术原则**:极简架构,降低故障率;HTTP轮询替代WebSocket;Canvas 2D替代WebGL + +--- + +## 参考资源 + +- **对标产品**:https://www.hixianchang.com/ +- **Vue 3文档**:https://cn.vuejs.org/ +- **Gin文档**:https://gin-gonic.com/docs/ +- **GORM文档**:https://gorm.io/docs/ +- **Canvas动画**:https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API + +--- + +## 模块开发流程 +1. **需求澄清阶段** + - 列出所有关键问题,尽量考虑周全。同时你可以提供一些你的建议和思路 + - 等待用户逐一回答或确认,一些不合理或有漏洞的设计你可以提出质疑和一些优化建议 + - 在讨论过程中的一些细节设计需要记录文档到doc/thinking文件夹,后续完成模块设计讨论之后将内容同步到正式的设计文档中(文档使用utf-8进行编码,避免乱码) + +2. **方案与计划阶段** + - 技术选型对比(如有必要) + - 模块边界划分 + - 文件清单与职责 + - 核心数据结构/接口定义 + - 任务拆分(建议拆到能2-30行代码完成的粒度) + - 同时需要输出到对应的模块设计文档中 + +3. **计划确认** + - 明确询问:"以上计划是否确认可以开始编码?如有修改请指出。" + - 只有得到明确"是"、"确认"、"可以开始"、"go"、 "ok"等词才可进入编码 + +4. **编码阶段** + - 严格按照设计文档中的要求执行 + - 编码过程中有必要在一些关键地方增加一些日志说明 + - 完成编码任务之后需要同步更新相关设计文档。如有必要需要更新相关的使用文档和注意事项。 + +**最后更新**:2026年1月31日 \ No newline at end of file diff --git a/doc/thinking/platform_setup.md b/doc/thinking/platform_setup.md new file mode 100644 index 0000000..706140f --- /dev/null +++ b/doc/thinking/platform_setup.md @@ -0,0 +1,446 @@ +# 平台搭建设计方案 + +## 一、技术选型确认 + +### 后端技术栈 +- **语言**:Go 1.21+ LTS +- **Web框架**:Gin +- **ORM**:GORM +- **数据库**:MySQL 8.0 +- **配置管理**:Viper +- **日志**:Zap +- **JWT**:golang-jwt/jwt +- **参数验证**:go-playground/validator +- **实时通信**:HTTP长轮询(暂不用WebSocket) + +### 前端技术栈 +- **框架**:Vue 3.4+ +- **构建工具**:Vite +- **状态管理**:Pinia +- **HTTP客户端**:Axios +- **管理后台UI**:Element Plus +- **移动端UI**:Vant +- **动画**:Canvas 2D + +### 部署环境 +- **云服务**:阿里云ECS(2核4G) +- **Web服务器**:Nginx +- **数据库**:MySQL 8.0 +- **容器化**:Docker Compose(开发环境) + +--- + +## 二、模块边界划分 + +### 后端模块 +1. **api层**:HTTP路由和控制器 +2. **model层**:数据模型定义 +3. **service层**:业务逻辑处理 +4. **repository层**:数据访问层 +5. **middleware层**:中间件(CORS、Auth、Logger、RateLimit) +6. **pkg层**:工具包(JWT、密码、验证、响应) +7. **config层**:配置管理 + +### 前端模块(3个独立项目) +1. **admin**:管理后台 +2. **screen**:大屏幕展示 +3. **mobile**:移动端H5 + +--- + +## 三、文件清单与职责 + +### 后端文件结构 +``` +backend/ +├── cmd/ +│ └── server/ +│ └── main.go # 程序入口,初始化配置、数据库、路由 +├── internal/ +│ ├── api/ +│ │ ├── v1/ +│ │ │ ├── auth.go # 认证相关接口 +│ │ │ ├── activity.go # 活动管理接口 +│ │ │ ├── checkin.go # 签到接口 +│ │ │ ├── danmaku.go # 弹幕接口 +│ │ │ ├── lottery.go # 抽奖接口 +│ │ │ ├── moneygame.go # 数钱游戏接口 +│ │ │ └── order.go # 订单接口 +│ │ └── router.go # 路由配置 +│ ├── model/ +│ │ ├── user.go # 用户模型 +│ │ ├── activity.go # 活动模型 +│ │ ├── checkin.go # 签到模型 +│ │ ├── danmaku.go # 弹幕模型 +│ │ ├── lottery.go # 抽奖模型 +│ │ ├── moneygame.go # 数钱游戏模型 +│ │ └── order.go # 订单模型 +│ ├── service/ +│ │ ├── auth.go # 认证业务逻辑 +│ │ ├── activity.go # 活动业务逻辑 +│ │ ├── checkin.go # 签到业务逻辑 +│ │ ├── danmaku.go # 弹幕业务逻辑 +│ │ ├── lottery.go # 抽奖业务逻辑 +│ │ ├── moneygame.go # 数钱游戏业务逻辑 +│ │ └── order.go # 订单业务逻辑 +│ ├── repository/ +│ │ ├── user.go # 用户数据访问 +│ │ ├── activity.go # 活动数据访问 +│ │ ├── checkin.go # 签到数据访问 +│ │ ├── danmaku.go # 弹幕数据访问 +│ │ ├── lottery.go # 抽奖数据访问 +│ │ ├── moneygame.go # 数钱游戏数据访问 +│ │ └── order.go # 订单数据访问 +│ ├── middleware/ +│ │ ├── cors.go # 跨域中间件 +│ │ ├── auth.go # 认证中间件 +│ │ ├── logger.go # 日志中间件 +│ │ └── rate_limit.go # 限流中间件 +│ ├── pkg/ +│ │ ├── jwt.go # JWT工具 +│ │ ├── password.go # 密码加密工具 +│ │ ├── validator.go # 参数验证工具 +│ │ └── response.go # 统一响应格式 +│ └── config/ +│ └── config.go # 配置加载和管理 +├── config/ +│ ├── config.yaml # 开发环境配置 +│ └── config.prod.yaml # 生产环境配置 +├── scripts/ +│ ├── build.sh # 构建脚本 +│ └── deploy.sh # 部署脚本 +├── go.mod +└── go.sum +``` + +### 前端文件结构(admin示例) +``` +frontend/admin/ +├── public/ +│ └── favicon.ico +├── src/ +│ ├── api/ # API接口定义 +│ │ ├── auth.js +│ │ ├── activity.js +│ │ ├── checkin.js +│ │ ├── danmaku.js +│ │ ├── lottery.js +│ │ ├── moneygame.js +│ │ └── order.js +│ ├── assets/ # 静态资源 +│ ├── components/ # 公共组件 +│ ├── router/ # 路由配置 +│ ├── stores/ # Pinia状态管理 +│ ├── utils/ # 工具函数 +│ ├── views/ # 页面视图 +│ │ ├── auth/ +│ │ ├── activity/ +│ │ ├── checkin/ +│ │ ├── lottery/ +│ │ └── moneygame/ +│ ├── App.vue +│ └── main.js +├── .env.development # 开发环境变量 +├── .env.production # 生产环境变量 +├── index.html +├── package.json +└── vite.config.js +``` + +--- + +## 四、核心数据结构定义 + +### 配置结构 +```go +type Config struct { + Server ServerConfig + Database DatabaseConfig + JWT JWTConfig + Log LogConfig +} + +type ServerConfig struct { + Port string + Mode string // debug/release +} + +type DatabaseConfig struct { + Host string + Port string + User string + Password string + DBName string +} + +type JWTConfig struct { + Secret string + Expire int // hours +} + +type LogConfig struct { + Level string + Output string +} +``` + +### 统一响应格式 +```go +type Response struct { + Code int `json:"code"` + Message string `json:"message"` + Data interface{} `json:"data,omitempty"` +} +``` + +--- + +## 五、核心接口定义 + +### 认证接口 +- `POST /api/v1/auth/register` - 用户注册 +- `POST /api/v1/auth/login` - 用户登录 + +### 活动接口(需认证) +- `POST /api/v1/activity` - 创建活动 +- `GET /api/v1/activity` - 获取活动列表 +- `GET /api/v1/activity/:id` - 获取活动详情 +- `PUT /api/v1/activity/:id` - 更新活动 +- `DELETE /api/v1/activity/:id` - 删除活动 + +### 签到接口 +- `POST /api/v1/mobile/checkin` - 扫码签到(公开) +- `GET /api/v1/activity/:activityId/checkin` - 获取签到列表(需认证) +- `GET /api/v1/activity/:activityId/checkin/export` - 导出签到列表(需认证) + +### 弹幕接口 +- `POST /api/v1/mobile/danmaku` - 发送弹幕(公开) +- `GET /api/v1/mobile/danmaku/:activityId` - 获取弹幕列表(公开,长轮询) + +### 抽奖接口 +- `POST /api/v1/activity/:activityId/lottery` - 创建抽奖(需认证) +- `GET /api/v1/activity/:activityId/lottery` - 获取抽奖列表(需认证) +- `POST /api/v1/activity/:activityId/lottery/:id/draw` - 执行抽奖(需认证) +- `GET /api/v1/activity/:activityId/lottery/:id/winners` - 获取中奖名单(需认证) + +### 数钱游戏接口 +- `POST /api/v1/activity/:activityId/moneygame` - 创建游戏(需认证) +- `GET /api/v1/activity/:activityId/moneygame` - 获取游戏列表(需认证) +- `POST /api/v1/activity/:activityId/moneygame/:id/start` - 开始游戏(需认证) +- `POST /api/v1/mobile/moneygame/:id/tap` - 点击数钱(公开) +- `GET /api/v1/activity/:activityId/moneygame/:id/rank` - 获取排名(公开) + +### 订单接口 +- `POST /api/v1/order` - 创建订单(需认证) +- `GET /api/v1/order` - 获取订单列表(需认证) +- `POST /api/v1/order/:id/pay` - 支付订单(需认证) + +--- + +## 六、数据库表创建顺序 + +1. **users** - 用户表(基础表) +2. **activities** - 活动表(依赖users) +3. **checkins** - 签到表(依赖activities) +4. **danmakus** - 弹幕表(依赖activities) +5. **lotteries** - 抽奖表(依赖activities) +6. **lottery_winners** - 中奖记录表(依赖lotteries和checkins) +7. **money_games** - 数钱游戏表(依赖activities) +8. **money_game_records** - 游戏记录表(依赖money_games和checkins) +9. **orders** - 订单表(依赖users和activities) + +--- + +## 七、任务拆分 + +### 阶段1:后端项目初始化 +1. 创建backend目录 +2. 初始化Go模块(go mod init) +3. 创建项目目录结构(cmd/internal/config/scripts) +4. 安装依赖包(gin, gorm, viper, zap, jwt等) +5. 创建配置文件(config.yaml和config.prod.yaml) +6. 实现配置加载功能(internal/config/config.go) +7. 实现日志初始化功能(使用Zap) +8. 实现统一响应格式工具(internal/pkg/response.go) +9. 实现JWT工具(internal/pkg/jwt.go) +10. 实现密码加密工具(internal/pkg/password.go) +11. 实现参数验证工具(internal/pkg/validator.go) + +### 阶段2:数据库初始化 +1. 创建数据库(live_cloud) +2. 实现数据库连接初始化(internal/config/config.go中添加InitDB函数) +3. 创建用户模型(internal/model/user.go) +4. 创建活动模型(internal/model/activity.go) +5. 创建签到模型(internal/model/checkin.go) +6. 创建弹幕模型(internal/model/danmaku.go) +7. 创建抽奖模型(internal/model/lottery.go) +8. 创建中奖记录模型(internal/model/lottery_winner.go) +9. 创建数钱游戏模型(internal/model/moneygame.go) +10. 创建游戏记录模型(internal/model/moneygame_record.go) +11. 创建订单模型(internal/model/order.go) +12. 实现数据库自动迁移(在main.go中调用AutoMigrate) + +### 阶段3:中间件开发 +1. 实现CORS中间件(internal/middleware/cors.go) +2. 实现认证中间件(internal/middleware/auth.go) +3. 实现日志中间件(internal/middleware/logger.go) +4. 实现限流中间件(internal/middleware/rate_limit.go) + +### 阶段4:Repository层开发 +1. 实现用户Repository(internal/repository/user.go) +2. 实现活动Repository(internal/repository/activity.go) +3. 实现签到Repository(internal/repository/checkin.go) +4. 实现弹幕Repository(internal/repository/danmaku.go) +5. 实现抽奖Repository(internal/repository/lottery.go) +6. 实现数钱游戏Repository(internal/repository/moneygame.go) +7. 实现订单Repository(internal/repository/order.go) + +### 阶段5:Service层开发 +1. 实现认证Service(internal/service/auth.go) +2. 实现活动Service(internal/service/activity.go) +3. 实现签到Service(internal/service/checkin.go) +4. 实现弹幕Service(internal/service/danmaku.go) +5. 实现抽奖Service(internal/service/lottery.go) +6. 实现数钱游戏Service(internal/service/moneygame.go) +7. 实现订单Service(internal/service/order.go) + +### 阶段6:API层开发 +1. 实现路由配置(internal/api/router.go) +2. 实现认证接口(internal/api/v1/auth.go) +3. 实现活动接口(internal/api/v1/activity.go) +4. 实现签到接口(internal/api/v1/checkin.go) +5. 实现弹幕接口(internal/api/v1/danmaku.go) +6. 实现抽奖接口(internal/api/v1/lottery.go) +7. 实现数钱游戏接口(internal/api/v1/moneygame.go) +8. 实现订单接口(internal/api/v1/order.go) + +### 阶段7:主程序入口 +1. 实现main.go(cmd/server/main.go) +2. 加载配置 +3. 初始化日志 +4. 初始化数据库 +5. 设置路由 +6. 启动HTTP服务器 + +### 阶段8:前端项目初始化(3个独立项目) +1. 创建frontend目录 +2. 初始化admin项目(npm create vite@latest) +3. 安装admin依赖(vue-router, pinia, axios, element-plus) +4. 创建admin项目目录结构(src/api, src/components, src/router, src/stores, src/views, src/utils) +5. 初始化screen项目(npm create vite@latest) +6. 安装screen依赖(vue-router, pinia, axios) +7. 创建screen项目目录结构 +8. 初始化mobile项目(npm create vite@latest) +9. 安装mobile依赖(vue-router, pinia, axios, vant) +10. 创建mobile项目目录结构 + +### 阶段9:前端基础配置 +1. 配置Vite(vite.config.js) +2. 配置环境变量(.env.development和.env.production) +3. 配置Axios(src/utils/request.js) +4. 配置路由(src/router/index.js) +5. 配置Pinia(src/stores/index.js) +6. 配置Element Plus(admin项目) +7. 配置Vant(mobile项目) + +### 阶段10:Docker开发环境 +1. 创建docker-compose.yml +2. 配置MySQL服务 +3. 创建启动脚本 + +### 阶段11:构建和部署脚本 +1. 创建后端构建脚本(scripts/build.sh) +2. 创建后端部署脚本(scripts/deploy.sh) +3. 配置前端打包(vite build) + +--- + +## 八、配置文件模板 + +### config.yaml(开发环境) +```yaml +server: + port: "8080" + mode: "debug" + +database: + host: "localhost" + port: "3306" + user: "root" + password: "123456" + dbname: "live_cloud" + +jwt: + secret: "your-secret-key-change-in-production" + expire: 24 + +log: + level: "debug" + output: "stdout" +``` + +### config.prod.yaml(生产环境) +```yaml +server: + port: "8080" + mode: "release" + +database: + host: "your-mysql-host" + port: "3306" + user: "your-mysql-user" + password: "your-mysql-password" + dbname: "live_cloud" + +jwt: + secret: "your-production-secret-key" + expire: 24 + +log: + level: "info" + output: "file" +``` + +### docker-compose.yml +```yaml +version: '3.8' + +services: + mysql: + image: mysql:8.0 + container_name: live_cloud_mysql + environment: + MYSQL_ROOT_PASSWORD: 123456 + MYSQL_DATABASE: live_cloud + ports: + - "3306:3306" + volumes: + - mysql_data:/var/lib/mysql + +volumes: + mysql_data: +``` + +--- + +## 九、注意事项 + +1. **编码规范**:使用`gofmt`格式化Go代码,使用ESLint和Prettier格式化前端代码 +2. **日志记录**:在关键操作处添加日志记录,便于问题排查 +3. **错误处理**:统一错误处理和响应格式 +4. **参数验证**:所有输入参数都需要验证 +5. **安全防护**: + - 密码使用BCrypt加密 + - JWT Token有效期控制 + - SQL注入防护(使用GORM参数化查询) + - XSS防护(前端输入过滤) +6. **性能优化**: + - 数据库查询使用索引 + - 避免N+1查询 + - 合理使用连接池 +7. **测试**:后续需要添加单元测试和集成测试 + +--- + +**记录时间**:2026年1月31日 +**状态**:待确认 \ No newline at end of file diff --git a/规划/项目启动规划.md b/规划/项目启动规划.md new file mode 100644 index 0000000..bc432d6 --- /dev/null +++ b/规划/项目启动规划.md @@ -0,0 +1,401 @@ +# 现场互动SaaS平台项目启动规划 + +## 一、项目概述 + +### 1.1 项目定位 +打造轻量化现场大屏幕互动SaaS平台,专注500元以下小型活动市场,以极致性价比和稳定性抢占下沉市场。 + +### 1.2 对标产品 +- 对标:思讯互动(SessionHD) +- 差异化:低价、轻量、专注小B客户 + +### 1.3 核心优势 +- 技术自主:2名程序员团队,零开发成本 +- 轻量部署:极简架构,运维成本低 +- 抖音获客:精准触达中小活动主办方 +- 快速响应:3人团队,决策执行高效 + +--- + +## 二、团队配置 + +### 2.1 核心团队(3人) + +| 角色 | 职责 | 时间投入 | 核心产出 | +|-----|------|---------|---------| +| **程序员A** | 后端开发+部署运维 | 全职/兼职 | 稳定API、服务器运维、数据安全 | +| **程序员B** | 前端开发+大屏幕 | 全职/兼职 | 流畅交互、大屏动画、移动端适配 | +| **推广客服C** | 抖音运营+客户对接 | 全职 | 每月20-30条线索、客户满意度>90% | + +### 2.2 协作模式 +- **决策机制**:重大决策三人投票,简单多数通过 +- **沟通工具**:微信群(日常)+ 每周一次线上会议(复盘) +- **退出机制**:任意成员可随时退出,需提前1个月告知 + +--- + +## 三、预算规划(启动资金:3-5万元) + +### 3.1 资金分配表 + +| 项目 | 预算金额 | 占比 | 说明 | +|-----|---------|------|------| +| **云服务器** | 3,000元/年 | 10% | 阿里云按量计费,设置月度消费上限500元 | +| **域名与认证** | 500元 | 2% | 域名注册 + 企业备案 | +| **应急备用金** | 20,000元 | 67% | 仅用于服务器突发费用或客户退款 | +| **设计外包** | 3,000元 | 10% | 图标、模板设计(可缓) | +| **测试推广** | 3,000元 | 10% | 抖音DOU+投放测试 | +| **合计** | **29,500元** | 100% | **总亏损底线:不超过3万元** | + +### 3.2 成本控制红线 +- **月度服务器成本**:≤500元(超过则降级配置) +- **单活动成本**:≤5元(按量计费) +- **推广成本**:≤500元/月(仅限测试) + +--- + +## 四、产品规划 + +### 4.1 MVP版本(V1.0) + +**开发周期**:4周(1个月) +**核心功能**:只做3个,做到极致稳定 + +#### 功能清单 +1. **扫码签到** + - 用户扫码填写:姓名 + 手机号 + - 大屏幕实时显示:头像 + 姓名(默认头像) + - 管理后台:查看签到列表 + 导出Excel + +2. **头像滚动抽奖** + - 支持设置:奖品名称、数量、单次抽取人数 + - 大屏幕动画:Canvas 2D滚动,3秒完成 + - 中奖结果:弹窗显示 + 自动保存 + 防重复中奖 + +3. **基础管理后台** + - 活动管理:创建、编辑、删除 + - 数据查看:签到人数、中奖记录 + - 导出功能:签到名单、中奖名单 + +#### 技术选型(极简稳定版) +```yaml +后端: + - 待定 + +前端: + - 管理后台:Vue 3 + Element Plus + - 大屏幕:Vue 3 + Canvas 2D(不用WebGL) + - 移动端:Vue 3 + Vant(H5) + - 脚手架:Vite(构建速度快) + +其他: + - 版本控制:Git + GitHub私有仓库 + - 监控:阿里云免费监控 + Server酱微信推送 + - 备份:每小时自动导出SQL到OSS(保留24小时) +``` + +#### 砍掉的功能(暂不开发) +- ❌ 弹幕系统(实时性要求高,易卡顿) +- ❌ 3D签到墙(兼容性问题多) +- ❌ 红包功能(涉及支付,合规复杂) +- ❌ 游戏功能(开发周期长) +- ❌ 投票功能(需求频次低) +- ❌ 多主题切换(维护成本高) + +### 4.2 产品定价 + +| 套餐 | 价格 | 人数限制 | 核心功能 | 适合场景 | +|-----|------|---------|---------|---------| +| **体验版** | **0元** | ≤30人 | 签到+1轮抽奖(带水印) | 朋友聚会、测试体验 | +| **基础版** | **199元** | ≤100人 | 签到+3轮抽奖+弹幕 | 部门年会、小型沙龙 | +| **标准版** | **399元** | ≤300人 | 全功能+导出数据 | 公司年会、经销商会 | +| **定制版** | **499元** | ≤500人 | +Logo定制+优先支持 | 品牌活动、发布会 | + +**推广策略**:抖音主推199元和399元套餐 + +--- + +## 五、运营策略 + +### 5.1 抖音推广方案(客服C执行) + +#### 账号定位 +- **昵称**:XX现场互动 / XX大屏幕抽奖 +- **头像**:简洁文字logo(设计外包) +- **简介**:专注企业年会/活动抽奖 | 199元起 | 已服务XXX场活动 +- **定位**:企业服务商 + +#### 内容模板(每周3-5条) + +**类型1:客户案例展示(60%)** +``` +标题:北京某科技公司年会抽奖现场 +内容:实拍客户活动现场(10-15秒) +配文:399元大屏幕抽奖效果,现场氛围超嗨! +标签:#年会抽奖 #现场互动 #北京年会 +``` + +**类型2:功能演示(30%)** +``` +标题:3分钟搞定年会抽奖系统 +内容:录屏演示创建活动全流程 +配文:无需下载,扫码即用,199元/场 +标签:#抽奖软件 #年会策划 #活动执行 +``` + +**类型3:优惠活动(10%)** +``` +标题:199元年会抽奖系统,限10单! +内容:真人出镜讲解产品优势 +配文:评论区扣"1"领取优惠 +标签:#年会抽奖软件推荐 #企业年会 +``` + +#### 关键词布局 +- **核心词**:年会抽奖软件、现场互动、大屏幕抽奖 +- **地域词**:北京年会、上海活动、深圳策划、广州企业 +- **长尾词**:小型公司年会、199元抽奖、免费签到系统 + +### 5.2 客户服务SOP + +#### 咨询响应(3分钟内) +``` +客户:怎么收费? +客服:老板您好!我们199元(100人内)和399元(300人内)两个套餐,含签到+抽奖+弹幕。发您演示视频看看? + +客户:系统稳定吗? +客服:已服务200+场活动,有备用方案和7×24小时技术支持。活动当天专属客服在线,出问题全额退款。 + +客户:能便宜点吗? +客服:首次合作优惠30元,199元套餐169元。活动结束后帮忙发个朋友圈好评就行~ +``` + +#### 交付流程 +1. **付款后30分钟内**:创建活动,生成测试链接 +2. **活动前1天**:发送操作手册 + 测试确认 +3. **活动前1小时**:客服微信提醒 + 技术在线值班 +4. **活动结束后**:回访要好评截图 + +--- + +## 六、稳定性保障方案 + +### 6.1 三道防线 + +#### 防线1:架构简化(降低故障率) +- **后端**:单体应用,无微服务 +- **通信**:HTTP轮询,无WebSocket +- **数据库**:单库单表,无分库分表 +- **缓存**:无Redis,纯数据库查询 +- **动画**:Canvas 2D,无WebGL + +#### 防线2:冗余备份(出问题可切换) +- **备用方案1**:离线版HTML文件(本地运行,断网可用) +- **备用方案2**:手机热点 + 本地服务器 +- **备用方案3**:PPT抽奖动画(终极兜底) + +#### 防线3:监控告警(提前发现问题) +- **服务器监控**:CPU > 80% 微信告警 +- **接口监控**:响应时间 > 2秒 微信告警 +- **错误日志**:出现Exception立即推送 +- **心跳检测**:5分钟无响应自动重启 + +### 6.2 活动前检查清单 + +#### 24小时前检查 +- [ ] 服务器余额充足(>100元) +- [ ] 数据库备份成功(手动导出SQL) +- [ ] 活动链接可访问(手机+电脑测试) +- [ ] 签到功能正常(扫码测试3次) +- [ ] 抽奖功能正常(抽10次测试) +- [ ] 离线文件已生成(邮件备份) +- [ ] 客服微信在线(响应时间<5分钟) + +#### 1小时前最终确认 +- [ ] 客户收到操作手册 +- [ ] 大屏幕设备连接正常(视频通话) +- [ ] 测试数据已清空 +- [ ] 专属客服在线 +- [ ] 应急预案已同步 + +### 6.3 应急预案 + +#### 场景1:服务器宕机 +``` +1. 立即启动离线版HTML(本地运行) +2. 客服微信通知客户"系统升级中,已切换备用方案" +3. 程序员A重启服务器(5-10分钟) +4. 事后退款50%并道歉 +``` + +#### 场景2:抽奖卡顿 +``` +1. 关闭动画特效,切换文字模式 +2. 客服微信安抚"网络波动,已优化" +3. 程序员B降低动画帧率 +4. 事后赠送一次免费活动 +``` + +#### 场景3:客户误删数据 +``` +1. 立即从数据库备份恢复(每小时自动备份) +2. 客服电话指导重新操作 +3. 事后更新操作手册,增加二次确认 +``` + +--- + +## 七、开发时间表 + +### 第1周:准备工作 +- [ ] 三人启动会,明确分工和退出机制 +- [ ] 注册阿里云账号,充值5000元 +- [ ] 注册域名(100元) +- [ ] 创建GitHub私有仓库 +- [ ] 确定技术栈(Java/Node.js) + +### 第2-3周:后端开发(程序员A) +- [ ] 搭建Spring Boot项目骨架 +- [ ] 设计数据库表(用户、活动、签到、中奖) +- [ ] 实现用户注册登录(JWT) +- [ ] 实现活动CRUD接口 +- [ ] 实现签到接口(扫码) +- [ ] 实现抽奖接口(随机算法) +- [ ] 实现中奖记录查询 + +### 第4-5周:前端开发(程序员B) +- [ ] 搭建Vue 3管理后台 +- [ ] 实现活动管理页面 +- [ ] 实现大屏幕Canvas动画 +- [ ] 实现移动端H5扫码页 +- [ ] 实现中奖结果弹窗 + +### 第6周:联调与测试 +- [ ] 前后端接口联调 +- [ ] 压力测试(模拟100人签到) +- [ ] 兼容性测试(3款手机+3款浏览器) +- [ ] 灾难恢复测试(服务器断电恢复) +- [ ] 生成离线版HTML + +### 第7周:内测与优化 +- [ ] 三人内部测试(每人模拟一场活动) +- [ ] 找3-5个朋友公司免费试用 +- [ ] 收集反馈,修复Bug +- [ ] 完善操作手册 + +### 第8周:上线准备 +- [ ] 部署到阿里云 +- [ ] 配置监控告警 +- [ ] 设置数据库自动备份 +- [ ] 客服C准备抖音内容 +- [ ] 制定客服话术 + +--- + +## 八、风险控制 + +### 8.1 风险矩阵 + +| 风险 | 概率 | 影响 | 应对方案 | +|-----|------|------|---------| +| 系统崩溃 | 中 | 极高 | 备用方案 + 退款 + 道歉 | +| 获客成本过高 | 高 | 中 | 专注抖音免费流量 + 口碑传播 | +| 客户投诉 | 中 | 中 | 7×24小时客服 + 快速响应 | +| 团队成员退出 | 低 | 高 | 明确退出机制,提前1个月告知 | +| 资金耗尽 | 低 | 极高 | 严格成本控制,月度复盘 | + +### 8.2 退出机制 + +**触发条件**(满足任一): +- [ ] 连续3个月收入 < 1000元 +- [ ] 出现2次以上重大故障(影响活动进行) +- [ ] 核心成员退出且无法补充 + +**退出动作**: +1. 立即停止市场推广 +2. 通知现有客户停止续费 +3. 导出所有数据,提供给客户 +4. 服务器降级到最低配置(保留数据) +5. 复盘总结,决定是否重启 + +### 8.3 止损底线 +- **最大亏损**:不超过3万元(本金) +- **时间投入**:最多12个月(验证期) +- **机会成本**:如全职工作收入更高,可转为兼职 + +--- + +## 九、关键里程碑 + +### 第一个月 +- **产品**:V1.0 MVP上线 +- **用户**:3-5个种子用户免费试用 +- **稳定性**:系统可用性 > 95% + +### 第三个月 +- **收入**:首单付费订单(199元) +- **用户**:累计服务10场活动 +- **口碑**:0重大投诉 + +### 第六个月 +- **收入**:月收入 > 3000元 +- **用户**:累计服务50场活动 +- **团队**:考虑扩充兼职设计 + +### 第十二个月 +- **收入**:月收入 > 10,000元 +- **用户**:累计服务200场活动 +- **决策**:是否全职投入/融资扩张 + +--- + +## 十、成功关键要素 + +### 10.1 产品层面 +- ✅ **稳定性 > 功能丰富度**:宁可功能少,不能出故障 +- ✅ **简单易用**:3步完成活动创建 +- ✅ **快速响应**:客服5分钟内回复 + +### 10.2 运营层面 +- ✅ **抖音获客**:持续输出内容,建立信任 +- ✅ **口碑传播**:每个客户都变成推荐者 +- ✅ **数据驱动**:每周复盘,优化转化率 + +### 10.3 团队层面 +- ✅ **明确分工**:各司其职,不越界 +- ✅ **充分沟通**:每日同步进展 +- ✅ **共担风险**:收益共享,亏损共担 + +--- + +## 十一、附录 + +### 11.1 技术栈参考 +- **后端**:Spring Boot 2.7 + MyBatis + MySQL 5.7 +- **前端**:Vue 3 + Vite + Element Plus + Canvas 2D +- **部署**:阿里云ECS + Nginx +- **监控**:阿里云监控 + Server酱 + +### 11.2 账号清单 +- [ ] 阿里云账号(实名认证) +- [ ] 域名注册(建议:xxhudong.com) +- [ ] GitHub账号(私有仓库) +- [ ] 抖音账号(企业认证) +- [ ] 微信公众号(服务号,后期需要) + +### 11.3 学习资源 +- Vue 3官方文档:https://cn.vuejs.org/ +- Spring Boot教程:https://spring.io/projects/spring-boot +- Canvas动画:https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API +- 抖音运营:关注10个竞品账号,模仿学习 + +--- + +**文档更新日志**: +- 2026年1月31日:V1.0 初始版本 + +**下一步行动**: +1. 三人会议确认本规划 +2. 分配第一周任务 +3. 确定技术栈细节 +4. 准备开发环境