声明:本文档为项目需求文档,内容由 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,老铁们,我们知道我们项目的需求之后,后续我们开发就会参照这个需求进行有目标有方向的开发了。
那么通过这个需求文档,我们下一期将会遵照这个产品需求来制定出自己的开发需求,老铁们,咱们下一期见~

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐