sec commit

This commit is contained in:
2026-04-02 00:59:42 +08:00
parent ab7dabc6a8
commit 881cca3fe6
1835 changed files with 207016 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
# FE 通知:API 已就绪
- **发送者**: dev-backend
- **时间**: 2026-03-28 23:20
- **任务ID**: TASK-2026-0328-001
## 通知内容
用户注册登录模块后端 API 已完成,FE 可对接。
## API 基础信息
- **服务地址**: `http://localhost:3000`
- **接口前缀**: `/api/auth`
## 已实现接口
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/auth/captcha` | 获取图形验证码(返回 captchaKey + captchaCode) |
| POST | `/api/auth/send-code` | 发送短信验证码(入参: phone, captchaKey, captchaCode) |
| POST | `/api/auth/register` | 注册(入参: phone, code, password) |
| POST | `/api/auth/login` | 登录(入参: phone, password,返回 token) |
| POST | `/api/auth/change-password` | 修改密码(入参: phone, code, newPassword) |
| GET | `/api/auth/devices` | 设备列表(需 Authorization: Bearer {token}) |
| DELETE | `/api/auth/devices/:id` | 删除设备(需 Authorization: Bearer {token}) |
## 响应格式
```json
{ "code": 0, "message": "...", "token": "...", "user": {...}, "devices": [...] }
```
错误时 `code` 非 0。
## 开发环境调试
- `/api/auth/captcha` 在开发环境下会直接返回 `captchaCode`(方便调试)
- `/api/auth/send-code` 在开发环境下会返回 `debugCode`(实际短信验证码)
## 注意事项
- Token 有效期 7 天
- 最多 3 个设备同时在线,第 4 个登录时最早设备自动踢出
- 所有需认证接口 Header: `Authorization: Bearer {token}`

View File

@@ -0,0 +1,30 @@
# [FE] 新任务通知:个人作品展示网站
- **通知ID**: FE-NOTIFICATION-TASK-2026-0331-001
- **创建时间**: 2026-03-31 21:50
- **任务ID**: TASK-2026-0331-001
- **优先级**: P1(紧急)
## 任务概要
开发一个个人作品展示单页面网站,深色主题,响应式设计,包含Hero、关于我、技能展示、项目案例、联系方式五个区块。
## 技术要求
- 纯 HTML/CSS/JavaScript(无框架)
- 固定导航栏 + 锚点滚动
- 移动端汉堡菜单
- 项目卡片悬停动画
- 邮箱点击复制功能
- 返回顶部按钮
## 交付路径
`shared/code/portfolio/`
## 截止日期
2026-04-02
## 关联规格
`shared/specs/portfolio-website-spec.md`
---
请认领任务并开始开发!

View File

@@ -0,0 +1,36 @@
# 🚨 [FE] 紧急催办:招聘H5页面
- **通知ID**: FE-NOTIFICATION-TASK-2026-0331-002
- **创建时间**: 2026-03-31 23:52
- **催办时间**: 2026-04-01 00:16
- **任务ID**: TASK-2026-0331-002
- **优先级**: P0(紧急)
## ⚠️ 紧急:截止时间临近!
剩余时间约45分钟,请**立即开始**!
## 任务概要
开发招聘H5单页面,移动端优先,包含公司介绍、职位列表、申请表单。
## 技术要求
- 单HTML文件(内嵌CSS/JS)
- 移动端适配,最大宽度750px
- 职位列表点击展开/收起
- 申请表单 + 验证
- 表单提交用mailto:方式
## 交付路径
`shared/code/frontend/recruitment/`
## 关联规格
`shared/specs/recruitment-h5-spec.md`
## 状态确认
- [x] 规格说明书已创建
- [x] 占位文本已确认可用
- [x] PM已催促
---
**请立即回复预计完成时间!**

View File

@@ -0,0 +1,44 @@
# QA 通知:后端已就绪,请开始测试
- **发送者**: dev-backend
- **时间**: 2026-03-28 23:20
- **任务ID**: TASK-2026-0328-001
## 通知内容
用户注册登录模块后端 API 已完成,请 QA 开始测试。
## 服务信息
- 后端服务地址: `http://localhost:3000`
- 启动命令: `cd shared/code/backend && npm start`
## 接口列表
| 接口 | 说明 |
|------|------|
| GET `/api/auth/captcha` | 获取图形验证码(开发模式返回 captchaCode) |
| POST `/api/auth/send-code` | 发送短信验证码(入参: phone, captchaKey, captchaCode) |
| POST `/api/auth/register` | 注册(入参: phone, code, password) |
| POST `/api/auth/login` | 登录(入参: phone, password) |
| POST `/api/auth/change-password` | 修改密码(入参: phone, code, newPassword) |
| GET `/api/auth/devices` | 设备列表(需 Header: Authorization: Bearer {token}) |
| DELETE `/api/auth/devices/:id` | 删除设备(需 Header: Authorization: Bearer {token}) |
## 验收标准测试方法
| ID | 标准 | 测试方式 |
|----|------|---------|
| V1 | 同一手机号不能重复注册 | 注册两次同一手机号,第二次应返回错误 |
| V2 | 验证码5分钟内有效 | 获取验证码后等待6分钟再注册,应提示过期 |
| V3 | 密码6位以下注册被拒绝 | 用5位密码注册,应返回错误 |
| V4 | Token过期后无法访问需认证接口 | 使用过期/伪造 Token 访问 /devices,应返回401 |
| V5 | 第4个设备登录时最早的设备被自动踢出 | 登录4个设备,检查是否只保留3个且最早被踢 |
## 测试账号
暂无固定测试账号,可自行注册。
## 重点关注
1. 图形验证码校验流程
2. 短信验证码 5 分钟有效期
3. 密码 bcrypt 哈希存储(数据库中不应明文)
4. JWT Token 过期处理
5. 设备数限制(最多3个)自动踢出逻辑

View File

@@ -0,0 +1,28 @@
# QA 通知
- **发送者**: dev-frontend
- **时间**: 2026-03-28 23:20
- **任务ID**: TASK-2026-0328-001
## 通知内容
用户注册登录模块前端开发已完成,请 QA 开始测试。
## 交付物
| 文件 | 说明 |
|------|------|
| `shared/code/frontend/login.html` | 登录页(手机号+密码) |
| `shared/code/frontend/register.html` | 注册页(手机号+图形验证码+短信验证码+密码) |
| `shared/code/frontend/change-password.html` | 修改密码页(短信验证后修改) |
| `shared/code/frontend/devices.html` | 设备管理页(设备列表+下线功能) |
## 测试账号说明
- 后端服务地址: `http://localhost:3000`
- 前端页面路径: `shared/code/frontend/*.html`
- 启动后端后可进行完整测试
## 重点验收项
1. 同一手机号不能重复注册(V1)
2. 验证码5分钟内有效(V2)
3. 密码6位以下注册被拒绝(V3)
4. Token过期后无法访问需认证接口(V4)
5. 第4个设备登录时最早的设备被自动踢出(V5)