基于 Web 的运动社交应用
项目需求
1. 引言
1.1. 目的
本文档描述了健康专家系统的功能和非功能需求,开发人员的软件系统实现与验证工作都以此文档为基础。
除特殊说明之外,本文档所包含的需求都是高优先级需求。
1.2. 范围
健康专家系统是方便用户对自己的健康进行管理检测,对运动、身体健康(如心率、血压等)、睡眠等进行管理,基于 RESTFul 实现可穿戴设备的数据采集。可以在教练医生的建议下进行身体调整,对历史数据进行分析展示。
希望用户使用此系统可以对自己的健康有所了解,并且可以获得专家和医生的建议,提高国民的健康水平。
1.3. 参考文献
- IEEE 标准
- 《Web 程序设计》
2. 总体描述
2.1. 商品前景
2.1.1. 背景与机遇
目前人们的健康水平逐渐下降,忙碌的工作,快节奏的生活让人们越来不关注自己的健康。但很多人想对自己的身体有较多的了解,因此本软件对人们的运动,身体健康(如心率,血压等)、睡眠等进行监控,让人们时刻的了解自己的身体状况。
健康专家系统提供对历史数据的统计分析展示,可以向教练、医生提出问题,同时,教练、医生还会对你的身体状况得出合理的建议。此系统就是为了满足广大人民对自己身体状况的监控和调节而开发的网站系统。
2.1.2. 业务需求
BR1:用户可以实时的监控自己的身体状况,并且向医生、教练提出保养方案,并获得合理的建议,为用户提供一个健康的生活。
2.2. 商品功能
SF1:健康管理:运动、身体健康(如心率、血压、身高、体重等)、睡眠等。
SF2:用户上传数据。
SF3:管理员发布活动,用户参与。
SF4:账户设置,用户管理。
SF5:用户发布动态,描述自己的运动情况。
SF6:教练、医生针对用户的建议。
SF7:对历史数据的统计分析展示。
SF8:根据运动排名机制。
SF9:用户发起或者参与竞赛
2.3. 用户特征
系统用户 | 任何使用本系统的用户,需要通过本系统方便快捷地统计自己的运动身体状况,可以分享自己的运动成果经验,向教练、医生提出自己的问题,并及时的获得回答。系统对用户的健康状况进行反馈,保证用户及时调节自己的身体状况。 |
---|---|
2.4. 约束
CON1:系统运行在目前流行的浏览器上。
CON2:系统具有图形化界面。
2.5. 假设与依赖
AE1:用户具有使用浏览器的知识。
AE2:用户会提供真实有效的数据。
3. 详细需求描述
3.1. 对外接口需求
3.1.1. 用户界面
UI1 首页
UI2 竞赛页面
UI3 活动页面
UI4 个人页面
3.1.2. 通信接口
CI:客户端与服务器端通过 Web Server 通信
3.2. 功能需求
3.2.1. 健康管理
3.2.1.1. 特性描述
用户可以查看自己的运动、身体健康(如心率、血压、身高、体重等)、睡眠等基本信息。
优先级=高
3.2.1.2. 刺激/相应序列
刺激:用户进入运动管理界面
响应:展示用户的当天运动情况、本周和总运动情况
刺激:用户选择某一天的运动情况
响应:展示选择的某一天的运动情况
刺激:用户设置一周的的运动目标
响应:系统录入用户设置
刺激:用户进入身体管理界面
响应:显示心率、血压、身高、体重,并且显示变化状况和应有的最佳的数据
刺激:用户设置自己当前的心率、血压、身高、体重
响应:系统录入当前数据
刺激:用户进入睡眠管理界面
响应:显示用户睡眠质量
3.2.1.3. 相关功能需求
编号 | 需求描述与度量 |
---|---|
Run.Select | 系统允许用户选择查看某一天的运动情况 |
Run.Show.dayRun.Show.weekRun.Show.total | 系统显示当天运动情况系统显示本周运动情况系统显示全部的运动状况 |
Body.ShowBody.Show. curveBody.Show.best | 显示心率、血压、身高、体重显示变化曲线显示最佳状况 |
Body.Set | 用户设置自己当前的心率、血压、身高、体重 |
Sleep.Show | 系统显示用户睡眠状况 |
3.2.2. 用户上传数据
3.2.2.1. 特征描述
用户可以上传自己的运动、身体健康(如心率、血压、身高、体重等)、睡眠等基本信息。
优先级=高
3.2.2.2. 刺激/响应序列
刺激:用户选择上传数据
响应:系统显示文件列表
刺激:用户选择上传文件
响应:系统显示上传成功,并且显示在界面上
刺激:用户取消上传
响应:系统取消上传
刺激:用户上传格式不正确
响应:提示数据格式不正确,上传失败
刺激:用户上传文件过大
响应:提示上传数据过大,上传失败
3.2.2.3. 相关功能需求
编号 | 需求描述与度量 |
---|---|
UploadUpload.CancelUpload.fail | 系统允许上传自身数据系统允许取消上传由于文件格式不正确或者太大导致上传失败,系统拒绝上传 |
Upload.ListUpload.List.Select | 系统在用户上传数据时,会显示文件列表系统允许用户从列表中选择文件进行上传 |
Upload.Data.UpdateUpload.Data.Show | 用户上传数据成功后,更新数据库中的数据用户成功上传数据后,系统展示数据在界面上 |
3.2.3. 活动发布与参与
3.2.3.1. 特征描述
管理员可以发布活动,用户选择性的参与,管理员可以删除修改活动,用户可以查看、参加、退出活动。管理员可以查看参加这个活动的人员
优先级=高
3.2.3.2. 刺激/响应序列
刺激:管理员填写并发布活动
响应:系统向用户显示活动
刺激:管理员修改活动
响应:系统更新活动并通知参加的用户
刺激:管理员删除活动
响应:系统删除活动并且通知参加的用户
刺激:用户进入活动界面
响应:系统展示所有可以参加的活动
刺激:用户点击某一活动
响应:返回活动的详细信息、时间、地点、奖励。
刺激:用户搜索活动
响应:系统返回用户搜索的活动
刺激:用户参加活动
响应:系统返回参与结果
刺激:用户退出活动
响应:系统返回退出结果
3.2.3.3. 相关功能需求
3.2.4. 用户管理
3.2.4.1. 特征描述
用户进入系统需要注册,用户分为普通用户,教练,医生。医生和教练包涵普通用户的全部信息,需要进行身份验证。用户注册需要填写用户名,密码,邮箱,医生和教练还需要进行身份认证。填写身份证号和上传证书。用户管理界面,用户可以修改昵称、头像、密码、邮箱、生日、所在城市、性别、个人描述。普通用户可以添加或者更改医生或者教练,医生或者教练同意后便可监管此用户。
3.2.4.2. 刺激/响应序列
刺激:用户进入注册界面
响应:系统显示注册需要填写的信息
刺激:用户填写注册信息,选择身份
响应:系统显示注册认证结果
刺激:填写格式不正确
响应:系统提示格式不正确
刺激:认证医生,教练失败
响应:系统提示认证失败
刺激:用户进入个人管理界面
响应:系统显示用户信息
刺激:用户修改个人信息
响应:系统更新用户数据
刺激:用户修改医生或者教练
响应:医生或者教练收到通知,系统暂时记录新的医生或者教练。
刺激:用户选择的医生或者教练不存在
响应:当前选择的医生或者教练不存在
刺激:医生或者教练同意用户请求
响应:系统激活此用户和医生或者教练的关系,并通知用户
刺激:医生或者教练拒绝用户的请求
响应:系统取消用户的请求,并通知用户
3.2.4.3. 相关功能需求
3.2.5. 发布动态
3.2.5.1. 特征描述
用户可以发布动态描述自己的运动历程和经历建议,也可以查看其他用户发送的动态,并且回复动态增加用户之间的交流合作,增加用户的积极性。
优先级=高
3.2.5.2. 刺激/响应序列
刺激:用户进入发布动态页面
响应:显示其他用户的动态,显示动态输入框
刺激:用户填写动态并发布
响应:系统发布动态
刺激:用户输入字数太多
响应:系统提示输入次数太多,发布失败
刺激:用户删除动态
响应:系统删除动态
刺激:用户回复动态
响应:显示用户的回复,通知被回复人
3.2.5.3. 相关功能需求
编号 | 需求描述与度量 |
---|---|
State.Show | 系统想用户显示全部用户的动态 |
State.AddState.Add.Fail | 系统允许用户添加动态用户发布动态失败 |
State.Delete | 系统允许用户删除动态 |
State.replyState.reply.Notice | 系统允许用户回复动态通知被回复人 |
3.2.6. 对用户的建议
3.2.6.1. 特征描述
用户的教练或者医生可以对用户的身体状况提出建议,用户进行调整
优先级=高
3.2.6.2. 刺激/响应序列
刺激:用户上传数据
响应:更新对应教练或者医生的用户数据
刺激:教练或者医生提出建议
响应:系统通知用户查看建议
3.2.6.3. 相关功能需求
编号 | 需求描述与度量 |
---|---|
Advice.HealthInfo.UploadAdvice.HealthInfo.Notice | 系统允许用户上传自身健康数据对应的医生或者教练收到用户数据 |
Advice.PromptAdvice.Prompt.Notice | 医生或者教练对用户的建议提示用户收到医生或者教练的建议 |
3.2.7. 统计分析
3.2.7.1. 特征描述
系统会根据用户上传的数据,对用户的运动,身体状况进行统计分析,并于历史数据进行比较或者展示用户一段时间内的数据变化。
3.2.7.2. 刺激/响应序列
刺激:用户进入统计界面
响应:显示最近一周的统计结果
刺激:用户输入开始时间和结束时间
响应:显示用户输入的时间的统计结果
刺激:用户选择的时间段没有统计数据
响应:系统提示无数据
3.2.7.3. 相关功能需求
3.2.8. 运动排名
3.2.8.1. 特征描述
根据最近一天、一周、一个月和全部的运动量进行排名,激励用户参与运动
优先级=高
3.2.8.2. 刺激/响应序列
刺激:用户进入排名界面
响应:默认显示当天运动量排名和当前用户排名
刺激:用户选择其他的排名方式
响应:显示用户选择的排名方式
3.2.8.3. 相关功能需求
编号 | 需求描述与度量 |
---|---|
Rank.ShowRank.Show.Select | 显示运动量排名和当前用户排名系统允许用户选择不同的排名方式进行显示 |
3.2.9. 竞赛机制
3.2.9.1. 特征描述
用户可以发布竞赛,也可以参加已经发布的竞赛,用户可以设置竞赛的标题、开始结束时间、竞赛奖励和竞赛限制人数,发布后可以对竞赛进行修改,但是不可以修改竞赛奖励。
优先级=高
3.2.9.2. 刺激/响应序列
刺激:用户进入竞赛界面
响应:系统显示全部可以参加的竞赛
刺激:用户发布竞赛
响应:系统显示需要填写的信息
刺激:用户填写竞赛并提交
响应:系统发布竞赛
刺激:用户修改竞赛
响应:系统通知参加竞赛的人员
刺激:用户搜索竞赛
响应:显示用户搜索的竞赛
刺激:用户搜索的竞赛不存在
响应:系统提示竞赛不存在
刺激:用户点击某一竞赛
响应:显示参与人员、数量和竞赛详细信息
刺激:用户参加竞赛
响应:提示用户是否参加成功
刺激:由于人数过多用户参加竞赛失败
响应:提示用户参与人数过多
刺激:用户退出竞赛
响应:系统提示退出成功
3.2.9.3. 相关功能需求
3.3. 非功能需求
3.3.1. 可维护性
Modifiability1: 添加新功能时候,不需要修改原有功能。
Modifiability2: 上传文件格式修改时候能够在一天内完成修改。
3.3.2. 易用性
Usability1: 用户上传文件方便。
Usability2: 用户可以流畅的浏览网站。
Usability3: 用户在第二次使用网站时候就可以熟练使用
3.3.3. 可靠性
Reliability1: 保证用户的数据不丢失。
Reliability2: 保证用户的隐私不泄露
Reliability3: 保证统计数据的正确性
Reliability4: 存储数据的服务器程序崩溃率不足 0.01%
3.4. 数据需求
3.4.1. 数据定义
DR1:系统应永久存储历史所有记录直到管理员主动删除。
DR2:系统需要存储的数据实体及其关系
3.4.2. 数据格式
Format1: 上传自身数据格式为 XML 文档
3.5. 其他需求
3.5.1. 安装需求
Install1:用户需要安装任何一款目前市面上流行的浏览器,进行访问网站
详细设计
1 引言
1.1 编制目的
本文档是 SportsZone 运动社交系统的详细设计文档,用于指导后续的软件开发,实现与测试及用户的沟通。
本文档说明的内容可能在项目实施过程中发生变更,但是必须由项目执行者仔细分析最终决定,建立持续有效的版本控制。
1.2 词汇表
无
1.3 参考资料
1)IEEE 标准
2)SportsZone 运动社交系统需求文档
2.总体设计
2.1 开发环境
本系统采用 PHP 作为主要开发语言,服务端主要使用 php+sqlite+Apache,客户端使用 html+css+js。用 Apache 作为服务器,采用 SQLite 作为后台数据管理系统。
开发环境:windows 10
开发工具:phpstorm
测试浏览器:chorme
服务器:Apache2.4
2.2 模块结构
2.3 系统设计模式
本系统采用 CodeIgnitor 框架进行开发,基于 MVC 设计模式
CI 基本框架:
- index.php 文件作为前端控制器,初始化运行 CodeIgniter 所需的基本资源;
- Router 检查 HTTP 请求,以确定如何处理该请求;
- 如果存在缓存文件,将直接输出到浏览器,不用走下面正常的系统流程;
- 在加载应用程序控制器之前,对 HTTP 请求以及任何用户提交的数据进行安全检查;
- 控制器加载模型、核心类库、辅助函数以及其他所有处理请求所需的资源;
- 最后一步,渲染视图并发送至浏览器,如果开启了缓存,视图被会先缓存起来用于后续的请求。
2.4 软件架构
RESTFul 架构
3 导航设计
3.1 整体导航设计
3.2 活动导航设计
3.3 社区导航设计
3.3.1 兴趣组导航
3.4 运动导航设计
3.5 个人中心导航设计
3.5.1 个人设置导航设计
4.详细设计
4.1 登录/注册
4.1.1 提供的接口设计
4.1.2 需要的接口
服务名 | 服务 |
---|---|
User::create | 创建用户并加入数据库 |
User::find | 查找用户 |
User::save | 保存用户信息并更新数据库 |
4.2 活动管理
4.2.1 提供的接口设计
4.2.2 需要的接口
服务名 | 服务 |
---|---|
Activity::getActivityList | 获取活动列表 |
Activity::getActivity | 获取对应活动的活动详情 |
Activity::createActivity | 新建活动并将该活动信息更新到数据库中 |
Activity::participateIn | 参与活动,更新活动参与者列表与用户个人活动列表 |
4.3 动态管理
4.3.1 提供的接口设计
4.3.2 需要的接口
服务名 | 服务 |
---|---|
Trend::getTrendsList | 获取动态列表 |
Trend::updateFavorList | 更新对应动态的点赞列表 |
Trend::createTrend | 添加发布的动态信息到数据库 |
Trend::deleteTrend | 删除数据库中对应动态信息 |
4.4 小组管理
4.4.1 提供的接口设计
4.4.2 需要的接口
服务名 | 服务 |
---|---|
Group::getGroupList | 获取对应情况下的小组列表 |
Group::createGroup | 添加对应的小组到数据库 |
Group::deleteGroup | 删除对应小组 |
Group::participateIn | 更新对应小组与用户的信息 |
Group::exitGroup | 更新对应小组与用户信息 |
Group::createTopic | 更新对应小组的话题列表 |
Group::deleteTopic | 更新对应小组的话题列表 |
4.5 个人管理
4.5.1 提供的接口设计
4.5.2 需要的接口
服务名 | 服务 |
---|---|
User::updateUserInfo | 更新用户基本信息 |
User::updatePassword | 更新用户密码 |
4.6 好友管理
4.6.1 提供的接口设计
4.6.2 需要的接口
服务名 | 服务 |
---|---|
User::addFollowers | 更新对应用户的粉丝列表 |
User::addFollowing | 更新对应用户的关注列表 |
User::removeFollowers | 更新对应用户的粉丝列表 |
User::removeFollowing | 更新对应用户的关注列表 |
User::getFollowers | 获取对应用户的粉丝列表 |
User::getFollowing | 获取对应用户的关注列表 |
4.7 运动管理
4.7.1 提供的接口设计
4.7.2 需要的接口
服务名 | 服务 |
---|---|
Statistic::distance | 返回用户运动距离数据 |
Statistic::kalorie | 返回用户消耗卡路里数据 |
Statistic::days | 返回用户运动天数数据 |
Statistic::rank | 返回所有用户列表中排名前十的用户 id |
Statistic::bodyUpdate | 更新用户身体数据设置 |
5.交互设计
用户界面跳转图
注:其中双箭头表示两个页面是一样的,单箭头表示跳转
6.数据设计
参考文献
- 基于PhoneGap的移动端SNS平台研建(北京林业大学·陈旭)
- 基于iOS平台的运动休闲客户端的设计与实现(西安电子科技大学·张盟)
- 基于Android的足球球迷综合服务平台的设计与实现(北京工业大学·陈鑫)
- 基于Opensocial规范的企业应用研究与实现(电子科技大学·宋波)
- ASP/JSP技术及WEB应用系统研究开发(西安理工大学·薛梅)
- 基于J2EE技术中国残疾人远程教育系统(吉林大学·卜祥川)
- 基于HTML5的多媒体资源交互SNS平台的实现(曲阜师范大学·陈丹)
- 基于web体育运动会管理系统平台的设计与实现(电子科技大学·徐芳)
- 基于iOS平台的运动休闲客户端的设计与实现(西安电子科技大学·张盟)
- ASP/JSP技术及WEB应用系统研究开发(西安理工大学·薛梅)
- 基于J2EE的辽油通信小灵通服务下载系统的设计与实现(电子科技大学·吴文哲)
- 基于SSH架构的个人空间交友网站的设计与实现(北京邮电大学·隋昕航)
- 基于J2EE的网上交友系统的设计与实现(大连理工大学·姚岚)
- 基于B/S架构的酷跑社区系统的设计与实现(内蒙古大学·张晓乐)
- 基于B/S架构的酷跑社区系统的设计与实现(内蒙古大学·张晓乐)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:源码码头 ,原文地址:https://bishedaima.com/yuanma/35863.html