声明:本文档为项目需求文档,内容由 AI 辅助生成、博主整理优化,仅作本项目开发参考使用。
✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨
🎯 你正在阅读「Java项目-轻聊」系列文章 🎯
✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨
🔥 弹简特 个人主页
❄️ 个人专栏直通车:
✨ 靠热爱去书写自己,靠勇敢去书写生活!
✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨
🌟 博主简介:

写在最前-项目同步码云
📦 项目源码 | 码云仓库
点击👉 点我看项目同步代码
轻聊 · 产品需求文档(PRD)
| 属性 |
内容 |
| 文档编号 |
PRD-LIGHTCHAT-v1.0 |
| 产品名称 |
轻聊 |
| 产品版本 |
V1.0(MVP) |
| 文档版本 |
V1.0 |
| 文档状态 |
已定稿 |
| 撰写角色 |
AI模拟产品经理 |
| 目标读者 |
项目经理、开发、测试、UI、业务方 |
1. 文档目的
本文档定义「轻聊」业务目标、用户价值、功能范围与验收口径,作为研发与测试的唯一业务需求来源。
2. 项目背景
2.1 市场/场景背景
即时通讯是高频刚需。网页版微信等产品验证了「浏览器即可沟通、无需安装客户端」的模式,适合JavaEE课设、内网协作、轻量社交等场景。
2.2 产品定位
轻聊是一款面向 Web 端的一对一即时文字聊天产品,交互布局参考网页版微信:左侧会话/好友,右侧聊天区,强调轻量、易部署、易二次开发。
2.3 建设目标
| 目标编号 |
描述 |
衡量方式 |
| G-01 |
用户可完成注册、登录并在浏览器内稳定聊天 |
核心流程通过率 100% |
| G-02 |
用户可搜索并建立好友关系后再聊天 |
加好友到首条消息 ≤3 分钟(体验) |
| G-03 |
消息实时送达且刷新后可查历史 |
双人在线互发延迟可感知为实时;历史可加载 |
| G-04 |
单账号避免多处同时登录造成混乱 |
重复登录有明确提示且不影响先登录方 |
2.4 不在本期范围(Out of Scope)
| 编号 |
说明 |
| OOS-01 |
群聊、聊天室广播 |
| OOS-02 |
语音、视频通话 |
| OOS-03 |
图片/文件消息(仅头像上传) |
| OOS-04 |
消息撤回、编辑、@、表情商店 |
| OOS-05 |
服务端已读回执、多端同步策略 |
| OOS-06 |
手机号注册、短信验证码、第三方登录 |
| OOS-07 |
生产级安全(密码加密、HTTPS 强制) |
3. 用户与角色
3.1 目标用户
- 高校 JavaEE课设 / Web 实训学生(主场景)
- 需要简易内网沟通的小团队
3.2 用户角色定义
| 角色 ID |
角色名 |
描述 |
权限概要 |
| R-01 |
访客 |
未登录访问者 |
仅登录页、注册页 |
| R-02 |
注册用户 |
已完成注册并登录 |
好友、会话、聊天、头像等全部 MVP 功能 |
3.3 用户画像(简要)
| 画像 |
特征 |
核心诉求 |
| 学生甲 |
首次使用,无技术背景 |
注册后能马上找到同学并聊天 |
| 学生乙 |
多标签页、可能误开两个浏览器 |
重复登录时有清晰提示,不丢先登录会话 |
4. 产品信息架构
轻聊
├── 认证模块(注册 / 登录 / 退出)
├── 个人中心(头像、昵称展示)
├── 好友模块(列表 / 搜索 / 好友请求)
├── 会话模块(会话列表 / 创建会话)
└── 消息模块(实时消息 / 历史消息 / 未读提示)
主界面入口:登录成功后进入 client.html(主工作台)。
5. 用户故事(User Stories)
| 故事 ID |
作为… |
我希望… |
以便… |
优先级 |
| US-01 |
新用户 |
注册账号 |
使用轻聊 |
P0 |
| US-02 |
注册用户 |
登录系统 |
进入聊天主界面 |
P0 |
| US-03 |
注册用户 |
退出登录 |
账号可被其他设备登录 |
P0 |
| US-04 |
注册用户 |
上传头像 |
在列表中被识别 |
P1 |
| US-05 |
注册用户 |
查看好友列表 |
选择对象发起聊天 |
P0 |
| US-06 |
注册用户 |
搜索用户名并发送好友请求 |
与非好友建立联系 |
P0 |
| US-07 |
注册用户 |
同意或拒绝好友请求 |
控制我的好友关系 |
P0 |
| US-08 |
注册用户 |
查看会话列表及最后一条消息 |
快速找到聊天对象 |
P0 |
| US-09 |
注册用户 |
与好友实时收发文字消息 |
即时沟通 |
P0 |
| US-10 |
注册用户 |
查看历史聊天记录 |
回顾此前内容 |
P0 |
| US-11 |
注册用户 |
看到未读消息数量 |
知道哪些会话有新消息 |
P1 |
| US-12 |
系统 |
限制同账号重复登录 |
避免状态错乱 |
P0 |
6. 功能需求
需求编号规则:FR-{模块}-{序号}
优先级:P0=必须上线,P1=重要,P2=可延后
6.1 认证与个人
FR-AUTH-001 用户注册 【P0】
| 项 |
说明 |
| 描述 |
访客在注册页创建唯一用户名账号 |
| 前置条件 |
无 |
| 输入 |
用户名、密码(均非空) |
| 业务规则 |
① 用户名全局唯一;② 密码本期明文存储(技术债,见 OOS-07) |
| 成功结果 |
提示注册成功,引导至登录页;系统创建用户记录 |
| 失败结果 |
用户名重复时提示失败,不创建账号 |
| 异常/边界 |
空字段由前端拦截,不允许提交 |
FR-AUTH-002 用户登录 【P0】
| 项 |
说明 |
| 描述 |
注册用户凭用户名密码进入主界面 |
| 业务规则 |
① 用户名+密码完全匹配方可登录;② 同一账号若已在其他浏览器保持登录或 WebSocket 在线,拒绝本次登录,提示「该账号已在其他地方登录,请勿重复登录」,不踢下线先登录方 |
| 成功结果 |
进入主界面,保持登录态 |
| 失败结果 |
凭证错误:提示检查用户名或密码;重复登录:展示明确文案 |
FR-AUTH-003 退出登录 【P0】
| 项 |
说明 |
| 描述 |
用户主动退出,释放登录与实时连接 |
| 成功结果 |
回到登录页;同账号可再次登录 |
FR-AUTH-004 登录态访问控制 【P0】
| 项 |
说明 |
| 描述 |
未登录用户不得使用聊天主界面 |
| 规则 |
直接打开主界面时,若未登录则跳转登录页 |
FR-USER-001 个人头像 【P1】
| 项 |
说明 |
| 描述 |
用户可上传并展示自定义头像 |
| 业务规则 |
① 仅支持 jpg/jpeg/png;② 单文件 ≤2MB;③ 仅能修改本人头像 |
| 成功结果 |
主界面头像更新;好友侧可见(聊天/列表) |
| 失败结果 |
格式/大小/权限不符时给出明确原因 |
6.2 好友
FR-FRIEND-001 好友列表 【P0】
| 项 |
说明 |
| 描述 |
展示当前用户已建立好友关系的用户 |
| 展示信息 |
好友昵称、头像 |
| 交互 |
点击好友进入聊天流程 |
| 空状态 |
无好友时展示空列表,非报错 |
FR-FRIEND-002 搜索用户 【P0】
| 项 |
说明 |
| 描述 |
按关键词模糊搜索用户名,用于添加好友 |
| 业务规则 |
结果中不得包含:本人;已是好友;存在待处理好友请求(含我发出与对方发来)的用户 |
| 交互 |
搜索关键词不可为空 |
FR-FRIEND-003 发送好友请求 【P0】
| 项 |
说明 |
| 描述 |
向目标用户发起好友申请,可填写理由 |
| 业务规则 |
不可添加自己;目标须存在;不可重复申请;不可向已是好友用户申请 |
| 成功结果 |
提示已发送;对方在线时即时收到通知 |
| 失败结果 |
返回可读失败原因(已是好友、重复请求等) |
FR-FRIEND-004 处理好友请求 【P0】
| 项 |
说明 |
| 描述 |
接收方对好友请求同意或拒绝 |
| 业务规则 |
仅接收方可处理;同意后双方互为好友;拒绝则关系不建立 |
| 离线 |
用户上线后应能看到离线期间收到的待处理请求 |
| 同意结果 |
双方好友列表更新;双方收到「已成为好友」类通知 |
6.3 会话与消息
FR-SESSION-001 会话列表 【P0】
| 项 |
说明 |
| 描述 |
展示用户参与的单聊会话 |
| 展示信息 |
对方头像、昵称、最后一条消息摘要 |
| 业务规则 |
同一好友在列表中只展示一条会话(去重) |
| 排序 |
有新消息的会话优先置顶(体验要求) |
FR-SESSION-002 创建/进入会话 【P0】
| 项 |
说明 |
| 描述 |
与好友发起或进入一对一聊天 |
| 业务规则 |
两人之间已存在会话则复用,不重复创建 |
| 边界 |
会话 ID 未就绪时不允许发送消息,需提示用户 |
FR-CHAT-001 实时文字消息 【P0】
| 项 |
说明 |
| 描述 |
在会话中实时发送与接收文字消息 |
| 业务规则 |
① 消息持久化保存;② 发送方界面即时看到自己发送内容;③ 对方在线时即时收到;④ 两人多条会话记录时,消息归入统一会话(避免分裂) |
| 失败 |
连接异常时提示用户刷新 |
FR-CHAT-002 历史消息 【P0】
| 项 |
说明 |
| 描述 |
进入会话时加载历史聊天记录 |
| 业务规则 |
单会话最多展示最近 100 条;按时间正序排列 |
| 展示 |
自己与他人消息左右区分 |
FR-CHAT-003 未读提示 【P1】
| 项 |
说明 |
| 描述 |
会话列表展示未读消息条数角标 |
| 业务规则 |
① 收到他人消息且用户未正在该会话聊天界面时累计;② 用户进入该会话后清零;③ 用户停留在好友 Tab 或搜索页时仍累计 |
| 说明 |
未读状态本期由前端维护,不要求多端同步 |
6.4 系统规则
FR-SYS-001 单点在线 【P0】
| 项 |
说明 |
| 描述 |
同一账号在同一时刻仅允许一处有效 HTTP 登录与一条 WebSocket 连接 |
| 规则 |
后发起的登录或 WebSocket 连接被拒绝,先登录方不受影响 |
7. 非功能需求(NFR)
| 编号 |
类别 |
需求描述 |
验收口径 |
| NFR-01 |
性能 |
常规局域网环境下,消息收发用户可感知为「即时」 |
双人互发 10 条无肉眼可见分钟级延迟 |
| NFR-02 |
可用性 |
核心操作有明确成功/失败反馈 |
注册、登录、加好友、发消息均有提示 |
| NFR-03 |
兼容性 |
支持 Chrome/Edge/Firefox 等现代浏览器 |
测试矩阵内浏览器主流程通过 |
| NFR-04 |
可维护性 |
后端分层清晰,便于二次开发 |
符合 SRS 架构约束 |
| NFR-05 |
数据 |
用户名≤20 字;单条消息≤2048 字 |
超长由库表/接口约束 |
| NFR-06 |
安全 |
本期为学校JavaEE课设原型,密码明文、无 HTTPS 强制 |
文档声明,不纳入 V1.0 验收否决项 |
8. 界面与交互需求(UX)
8.1 页面清单
| 页面 |
路径 |
说明 |
| 登录页 |
login.html |
品牌「轻聊」,用户名/密码,跳转注册 |
| 注册页 |
register.html |
创建账号,返回登录 |
| 主工作台 |
client.html |
左栏+右栏 IM 布局 |
8.2 主界面布局要求
| 区域 |
要求 |
| 左栏顶部 |
当前用户头像(可点击上传)、昵称、退出 |
| 左栏 Tab |
「会话」「好友」切换 |
| 左栏搜索 |
关键词搜索用户 |
| 左栏列表 |
会话项 / 好友项 / 好友请求项(请求置顶) |
| 右栏 |
聊天标题、消息区、输入框、发送按钮;或搜索结果区 |
| 弹窗 |
好友请求:展示发起人、理由、同意/拒绝 |
8.3 交互原则
- 布局与操作习惯参考网页版微信,降低学习成本。
- 视觉风格:简洁、美观(视觉稿/CSS 可借助设计工具或 AI 辅助,由前端集成)。
- 未读角标:红色数字,大于 0 显示。
OK,老铁们,我们知道我们项目的需求之后,后续我们开发就会参照这个需求进行有目标有方向的开发了。
那么通过这个需求文档,我们下一期将会遵照这个产品需求来制定出自己的开发需求,老铁们,咱们下一期见~
所有评论(0)