项目功能规格说明书
1. 引言
1.1 编写目的
此功能规格说明书目的在于将网站想法具体化,并规划开发方向,明确功能需求,以提高开发效率。
本说明书仅供北航“烫烫烫烫烫”团队(hotcode5)参考。
1.2 项目背景
在北航的每一学期开始时,微信群中总是闪现着同学们要课件的身影;在北航的每一学期结束时,QQ群中总是充斥着同学们求考题的辛酸。北航目前最主要的课程资源平台——“课程中心”,由于全权交给授课教师管理,而学生并没有上传资源的权限,导致大部分课程的课件、考题等资源并没有出现在上面。一批批热爱学习的北航学子只得穿梭于各个Q群,四处问询课件和复习资料的踪迹,年复一年。2017年的秋天,在北航压抑了两年的老学长们,终于在一门名叫“软件工程基础”的课上明确了自己的价值——我们需要一个稳定的课程资源共享平台!
1.3 开发意图
该平台主旨在于“营造一个优良的课程学习环境”,提供资源共享、博文撰写等功能,让同学们更简单地取得提高成绩的途径,向学霸看齐。
1.4 用户群体
该平台面向北航在读的全体学生,无论知识层次或能力如何,都能在该平台找到自己的存在感。
2. 典型用户
A君:所谓大佬
不屑于学院安排的课程,对课外知识涉猎更多,利用平台进行知识与经验的分享。
用户信息 | 用户情况 |
---|---|
姓名 | A君 |
用户身份 | 某学院大三学生 |
知识层次和能力 | 大牛,在某一学科有一定深入的见解 |
生活工作情况 | 投入大量精力学习,对学习充满兴趣 |
用户动机 | 渴望将自己的收获分享给大家 |
用户困难 | 目前找不到针对北航学生的学习资源分享平台 |
典型场景 | 发布博文,整理自己的学习经验,并将自己的一些成果以资源的形式发布,共大家学习 |
用户偏好 | 可以有其他同学在博文下评论,起到交流的作用,让更多同学看到自己的成果 |
用户比例 | 3%左右 |
B君:普通学生
平时还算用功,单纯希望期末考个好成绩,对得起这一学期的努力。
用户信息 | 用户情况 |
---|---|
姓名 | B君 |
用户身份 | 某学院大一学生 |
知识层次和能力 | 成绩中等,不算太好也不算太差 |
生活工作情况 | 学习娱乐两不误 |
用户动机 | 期末考试取得高分 |
用户困难 | 大班群里资源太有限 |
典型场景 | 下载考题,准备期末考试,并看一看大神总结 |
用户偏好 | 要是有题解就更好了 |
用户比例 | 40%左右 |
C君:成绩较差
平时浪太多,期末压力大,利用平台进行知识恶补。
用户信息 | 用户情况 |
---|---|
姓名 | C君 |
用户身份 | 某学院大一学生 |
知识层次和能力 | 能力较差,对知识掌握不牢固 |
生活工作情况 | 基础很薄弱,跟不上老师进度,挂科近在咫尺 |
用户动机 | 想要及格 |
用户困难 | 要考试了,可是翻课件也太难理解了,只怪自己基础太薄弱 |
典型场景 | 通过阅读学长总结的笔记,以及部分同学针对专项总结的解题技巧,对考试有很大帮助 |
用户偏好 | 希望能够有一些深入浅出的讲解,一定狠狠地赞 |
用户比例 | 8%左右 |
D君:考研选手
即将面临研究生考试,有些方,希望能在平台上得到比较靠谱的指点。
用户信息 | 用户情况 |
---|---|
姓名 | D君 |
用户身份 | 某学院大四学生 |
知识层次和能力 | 成绩中等,不算太好也不算太差 |
生活工作情况 | 抓紧时间,复习考研 |
用户动机 | 考研想取得不错的成绩 |
用户困难 | 手头资源有限,也不知如何高效复习,也不懂考试技巧是什么,希望能有过来人替我讲讲 |
典型场景 | 在考研相关课程上下载考研资源,阅读学长总结的考研心得 |
用户偏好 | 希望能有一些标签,帮助我识别哪些是考研用的,哪些是平时或期末考试用的 |
用户比例 | 30%左右 |
E君:刻苦学霸
学习很努力,善于做笔记,记录自己学习的点滴收获
用户信息 | 用户情况 |
---|---|
姓名 | E君 |
用户身份 | 某学院大三学生 |
知识层次和能力 | 成绩优良,中等偏上,不属于顶尖学神阵营 |
生活工作情况 | 将学习放在第一位,认真完成作业,及时总结 |
用户动机 | 想要把学习过程中遇到的问题总结一下,一来以后复习的时候可以再回顾,二来供其他同学参考 |
用户困难 | 只能自我总结,也不知道自己总结得有没有道理 |
典型场景 | 将总结的学习笔记以资源或博文的形式发布到平台上 |
用户偏好 | 希望能得到认可或是中肯的评价 |
用户比例 | 8%左右 |
3. 产品界面原型设计
3.1 预定实现功能
- 核心功能
- 课程的分类
- 课程资源的上传和下载
- 课程基本信息的获取
- 用户贡献点及其排行
- Alpha阶段拓展功能
- 课程的搜索
- 添加课程
- 课程资源标签
- 课程资源的收藏和点赞
- 课程资源的审核与举报
- 用户登录/注册
- 个人资料的获取与编辑
- 首页公告栏
- 联系我们
- Beta阶段拓展功能
- 课程资源评论区
- 博文相关功能
- 私信/消息功能
- 关注用户
- 获取用户最近动态
- 首页推送热门博文
3.2 界面原型设计(Alpha)
我们使用MockPlus绘制了Alpha阶段的原型设计,该设计包含所有Alpha阶段中计划实现的功能,并包含少量Beta阶段中计划实现的功能。
3.2.1 菜单栏
菜单栏原型设计如下图所示:
菜单栏位于页面的最上端,供用户在首页、课程与联系我们三个页面之间相互切换。
此时菜单栏处于未登录状态,因此最右边的按钮为“登录/注册”,登录后该位置按钮会变为用户昵称和“注销”。
主要功能如下表所示:
元素 | 功能 | 验收标准 |
---|---|---|
登录/注册 | 弹出登录/注册窗口 | 在当前界面弹出登录/注册窗口,点击窗口外部窗口消失 |
用户名(若登录,出现在登录/注册位置) | 进入个人主页 | 通过新窗口进入用户个人中心 |
注销(若登录,出现在登录/注册位置) | 注销账号 | 界面刷新,账号注销 |
首页 | 进入首页 | 界面切换到首页 |
课程 | 进入课程相关页面 | 界面切换到选择课程界面 |
联系我们 | 进入联系我们页面 | 界面切换到联系我们界面 |
3.2.2 首页
首页原型设计如下图所示:
其中,公告栏后面为一张背景图片。在Alpha阶段,我们力求首页的简介,因此首页除了公告栏以外不设置其它功能。
主要功能如下表所示:
元素 | 功能 | 验收标准 |
---|---|---|
公告栏的某一个公告 | 查看公告详情 | 点击后弹出公告窗口,再点击窗口外面的部分窗口关闭 |
3.2.3 选择课程界面
我们点击课程进入选择课程界面。
选择课程界面原型设计如下图所示:
其中,“添加课程”功能我们决定暂时不实现。
主要功能如下表所示:
元素 | 功能 | 验收标准 |
---|---|---|
课程类别 | 显示所有课程分类 | 1.来回点击“开设院系”和“课程类别”,保证切换正常;2.在“课程类别”打开状态下点击“课程类别”,课程类别栏折叠 |
开设院系 | 显示学院列表 | 同上 |
一般专业类(核心通识、学院同理) | 1.显示该类别所有课程 | 在“核心通识类”和“一般专业类”之前切换,保证显示对应的课程;2.点击同一个类别两次,课程不发生变化;3.课程默认按照用户访问热度进行排序 |
课程列表中的课程 | 进入该课程界面 | 进入该课程界面 |
添加课程 | (暂时不实现) | (暂时不实现) |
搜索 | 在下拉菜单中选择搜索方式,并在输入框中键入关键字,点击搜索即可进行全局课程搜索 | 1.尝试不同搜索方式,搜索结果正确;2.如果不键入关键字,需弹出模态对话框,告知用户需键入关键字 |
3.2.4 课程界面
在上图中点击软件工程基础,进入软工课程的界面。
课程界面原型设计如下图所示:
该界面为Alpha阶段界面,而Beta阶段要实现的博文功能在课程资源的下方,暂时没有体现在原型图中。
课程信息中的图片可以为该课程所使用的教材封面,增加课程识别度。
主要功能如下表所示:
元素 | 功能 | 验收标准 |
---|---|---|
“返回选课界面”按钮 | 返回到选择课程界面 | 返回到选择课程界面 |
授课教师的名字 | 返回到选择课程界面,并以该教师名字为关键字进行课程搜索 | 搜索结果正确 |
我来补充 | 对课程简介进行修改或补充 | 弹出课程简介修改窗口 |
贡献度排行中的用户名 | 进入到该用户的个人中心 | 1.能以打开新窗口的方式正常进入该用户个人中心;2.测试姓名相同,但用户名不同的情况 |
课程资源栏中的某一个资源 | 弹出课程资源窗口 | 弹出课程资源窗口 |
课程资源后的“查看全部” | 进入到课程资源分类界面 | 进入到课程资源分类界面 |
3.2.5 课程资源分类界面
我们点击“查看全部”,进入课程资源分类界面。
课程资源原型设计如下图所示:
其中资源中的“♡”表示收藏量(感觉用“☆”代替会更好),如果这个资源被收藏了,那么“♡”会变为“♥”。
主要功能如下表所示:
元素 | 功能 | 验收标准 |
---|---|---|
任意资源 | 点击后会弹出资源窗口 | 1.无论点击“♡”还是用户名,均需弹出资源窗口;2.点击资源窗口外部,资源窗口消失 |
“返回课程界面”按钮 | 返回软工课程界面 | 返回的课程界面要正确,不能跑到别的课程界面去 |
资源类别(课件、考题、习题……) | 查看不同类别的资源 | 1.点击其他的资源类型,课件会有所改变;2.如果没有对应类型的资源,则需告知用户“没有该类型的资源”;3.点击当前的资源类型,没有任何变化,不会刷新一遍。 |
升序、降序排序 | 在左侧下拉菜单中选择排序方式,点击升序排序或降序排序对该类别资源进行排序 | 测试多种排序方式,结果正确 |
搜索资源 | 在左侧输入框里键入资源名称关键词,点击“搜索资源”进行全局搜索(全局的体现值得再深入设计) | 1.搜索结果完整且正确;2.如果不键入关键字,需弹出模态对话框,告知用户需键入关键字 |
3.2.6 资源窗口
点击上图中的全部课件,弹出该课件的资源窗口。
资源窗口原型设计如下图所示:
对于图片文件,窗口中的图片元素可以是文件的预览图;而对于一般文件,窗口中的图片元素为该文件类型的图标。
评论功能为Beta阶段范畴,在Alpha阶段中暂时不做考虑。
主要功能如下表所示:
元素 | 功能 | 验收标准 |
---|---|---|
举报 | 弹出举报窗口 | 点击举报窗口外部,窗口消失 |
“点击下载”或标签下方“↓”图标 | 下载课件,下载量+1 | 1.下载量可以不即时变更,但关闭窗口后再打开一定要有所变化;2.同一个用户多次下载同一资源,下载量不会多次增加 |
标签下方“♡”图标 | 收藏资源,同时图标变为“❤”,收藏量+1,再点击一次则为取消资源 | 1.测试收藏与取消功能皆正常(Alpha阶段暂不实现查看所有已收藏资源,因此只要有图标变化就好);2.收藏或取消收藏后,关闭资源窗口,回到课程资源界面,刷新,图标和收藏量需有所变化 |
好评/差评(在实际版本中用相应图标替代“好评”和“差评”文字) | 对资源进行评价,并更新评价数据 | 1.若未评价,点击好评或差评可以进行评价;2.若已评价,点击未选择的评价可以切换评价;3.若已评价,点击已选择的评价可以取消评价;4.对评价的变更需即时体现在数字上 |
上传者后面的用户名 | 进入该用户个人中心 | 通过新窗口的形式进入该用户个人中心,原窗口不变 |
3.2.7 举报窗口
我们发现这个zip文件里面是空的,原来是一个骗下载量的资源[滑稽],这时候我们点击右上方的举报,弹出举报窗口。
这里的功能就不必赘述了,选择举报的原因为“无意义资源”,并在详细原因下方写明“空zip文件”,并点击“举报”按钮,相关信息就会发送至管理员,等待管理员的处理。
3.2.8 登录/注册窗口
点击右上角的“登录/注册”按钮,弹出登录/注册窗口。
点击“登录”按钮和“注册”按钮可以在两个窗口之间进行切换。
忘记密码功能属于Beta阶段的范畴,在Alpha阶段不做考虑。
注册窗口中的邮箱暂定只能使用北航的邮箱,这是为了保证一名同学只拥有一个账号,且校外的同学无法获取校内的资源。
元素 | 验收标准 |
---|---|
登录/注册切换 | 1.在“登录”窗口时,“登录”为蓝色状态,在“注册”窗口时,“注册”为蓝色状态;2.不同时存在登录和注册两个窗口 |
登录密码 | 输入内容以暗文显示 |
登录按钮 | 窗口关闭,界面刷新为已登录状态 |
注册用户名 | 1.合法用户名为英文/数字/下划线,长度在12个字符以内,否则为不合法用户名,大小写不敏感;2.若用户输入的用户名不合法,或用户名已被注册,则需要在输入框下方即时进行提示 |
注册密码 | 1.合法密码为英文/数字/下划线,长度在8~20个字符内,否则为不合法密码,大小写敏感;2.若用户输入的密码不合法,则需要在输入框下方即时进行提示;3.输入内容以暗文显示 |
注册确认密码 | 1.若确认密码和密码不符,则需要在输入框下方即时进行提示;2.输入内容以暗文显示 |
注册北航邮箱 | 1.需检测是否为北航邮箱,否则需要在输入框下方即时进行提示;2.需检测该邮箱是否已经被注册过,否则也要提示 |
注册按钮 | 界面会提示用户“确认邮件”,系统会向该北航邮箱发送一封邮件,用户点击邮件上的链接,页面跳转到登录状态的首页,用户信息方存入数据库 |
3.2.9 个人中心
登录成功后,在原“登录/注册”位置会显示用户的头像与昵称,点击即可进入个人中心。
个人中心原型设计如下图所示:
在Alpha阶段暂时只实现个人资料和主要贡献两个功能。点击“编辑资料”可以变更用户资料,这一功能在访问其他用户的个人中心时是不存在的。
4. 副作用分析
感觉最大的副作用还是管理的成本问题:
- 尽管贡献分这个功能在一定程度上起到了鼓励用户分享资源的作用,但也有可能导致出现一批刷分用户,由此为管理带来许多成本。
- 一些不允许公布的资源(如部分课程的考题)也可能出现在这个网站上,该如何界定这些资源,如何处理这些资源,是一个值得讨论的问题
- 上传资源的审核成本较大,要是用户上传了恶意程序该怎么办?如果管理员以身试险,那么管理员恐怕就要遭殃了。如何尽可能减少受害者的出现?