上次文章基本描述了整个项目的设计和一些业务逻辑的细节,但是感觉有一点点怎么说都没有说清楚的感觉,其实就是细节太琐碎整体没有逻辑感。感觉对开发也有也有一定的影响。于是我找了一个产品说明文档规范,来使得自己对于项目开发的功能描述更加清晰和规范。
上一篇文章↓
java学习笔记(二十六)——开发一个小项目(VMeeting1.0)_Biangbangbing的博客-CSDN博客
本次比上次新增功能:登录;新用户注册;服务器转变功能【由与客户端进行交互改变成转发消息】;将单纯的消息协议统一为更广泛的消息/操作协议,并设置消息包【消息头固定】。
产品需求文档目录:
模板和一个示例的链接我都挂链接:
XXX 产品需求文档_V1.0_Build_01_20141116.docx_免费高速下载|百度网盘-分享无限制
读书人频道产品需求0627.doc_免费高速下载|百度网盘-分享无限制
显然不是所有内容都用的上的,我准备完成其中几个部分。
用户角色 | 用户描述 |
---|---|
普通用户 | 所有使用软件的客户端 |
管理员 | 软件后台监控人员【服务器端也需要可视化界面】 |
【ps:所有标蓝的部分都是页面。】
功能模块 | 主要功能点 | 优先级 |
登录 | 用户登录、递交个人信息给服务器;新用户注册(递交新用户token给服务器) | 高 |
聊天界面 | 显示聊天记录(日期、用户名、对话)、侧边显示消息列表(/好友列表) | 高 |
消息列表 | 显示消息列表 | 中 |
好友列表 | 显示好友列表,好友/群申请,加群、加好友,创建群选择 | 中 |
个人信息设置 | 个人信息修改 | 低 |
数据库字段 | 数据 | 数据说明 |
UID | 账号 | 用户的唯一标识符,前期自行设计不允许重复;后期可以分配【int】 |
name | 用户名 | 用户自行设计,可重复【string】 |
password | 密码 | 用户自行设计,可重复【string】 |
online | 在线标记 | 是否在线【bool】 |
friendList | 好友列表 | user数组,细节待设计 |
groupList | 群列表 | 待设计 |
ChatHistory | 聊天记录 | 待设计 |
localID:自己的id【int】
targetID:对方的id【int】
dataStr:时间戳【String】
messageType:消息类型【int】
消息内容主体。
消息类型 | 消息发送方 | 接收对象 | 消息内容说明 | 消息码 | 回复 |
消息 | 用户 | 用户 | 文字消息 | 1 | |
消息 | 用户 | 用户 | 涂鸦消息 | 2 | |
操作 | 用户 | 服务器 | 用户离线 | 253 | |
操作 | 用户 | 服务器 | 新用户注册 | 254 | 0 账号冲突 1 注册成功 |
操作 | 用户 | 服务器 | 用户登录 | 255 | 0 账号或密码错误 1 登录成功 2 用户已在线 |
【后续还会添加不同的操作和消息,以及有不同消息内容主体的设计】
打开软件第一个页面。
实现用户登录/注册。【将用户登录请求消息包发送给服务器,修改服务器内用户在线信息】【用户注册是一个新页面,要搜集用户名,用户账号,密码,确认密码】
成功登录之后第一个页面。
通过上面的操作栏可以选择切换显示3个页面。
将用户近期聊天记录列表按条目显示,点击条目打开聊天页面,如果没有显示为空。【条目显示:头像,用户名,消息最后时间】
将用户的新朋友申请/好友/群按条目显示,点击之后打开聊天页面。
个人设置可以修改个人信息。【用户名、密码】。
【待开发。】
选择好友或者消息列表之后显示的页面。
【为了先实现必要逻辑,目前登录之后会直接显示这个页面,选择聊天好友会通过左侧搜索框确定好友账号】
显示与某个好友的聊天页面。聊天页面title为:好友用户名
右侧为聊天记录:上半截为消息记录,中间部分为工具栏【选择消息类型:文字,涂鸦,照片、文件,清空输入框,清空聊天记录】,下半截为消息输入框,消息发送键。