1. 引言
1.1 编写目的
该文档是关于微信小程序自习吧的功能和性能描述,重点描述了小程序的功能需求,并作为小程序开发设计阶段的主要输入。
本文档的预期读者包括:triple兔成员,软件工程老师,用户。
1.2 项目背景
项目名称:自习吧。
项目提出者:华中农业大学信息学院Triple兔软件工程小组。
用户:全校学生。
1.3 缩写说明
华农:华中农业大学。
Triple兔:华中农业大学信息学院triple兔软件工程小组。
1.4 版本信息
版本编号
|
修改日期
|
修改后版本 |
修改内容概述
|
1.0.0
|
2019.6.20
|
|
对图进行修改
|
2. 任务概述
2.1 系统定义
2.1.1 小项目来源及背景
该项目起初源自Triple兔小组一名成员的想法,经过讨论权衡分析最终确定以该想法----华中农业大学空教室查询作为项目主题,并在此基础上进行功能拓展:约自习、蹭课,以微信小程序为应用平台,为华农全体学生提供便利的空教室查询途径。
2.1.2 项目要达到的目标
该软件是为了让学生时时刻刻都能方便找到空教室而研发的,避免每次在找空教室自习的时候浪费很多时间;并且会提供约自习的功能,这样可以让同学们找到合适的人一起结对学习,互相监督,有助于提高同学们的学习效率;另外还会提供蹭课功能,帮助同学们方便地根据兴趣充分利用校内资源拓展自己。
线上问卷调查显示该项目很具有实用性,是大多数同学们一致希望能研发出来的产品。
2.1.3 系统整体结构
下图给出了系统的物理组成结构:
2.1.4 系统各部分组成、与其他部分的关系、各部分的接口等
该软件是建立在微信原生系统之上,微信提供所有接口。
2.2 运行环境
2.2.1 设备环境
微信内置运行环境。
2.2.2 硬件环境
只针对移动端设备(手机/平板)使用。
2.2.3 软件环境
支持android、ios系统和各种屏幕尺寸。
2.2.4 网络环境
设备需要联网。
2.2.5 操作系统
手机登录微信小程序。
2.2.6 应用环境
系统总工作流程如下图所示:
该软件主要分为四大功能:
1. 登录
2. 查询空教室
3. 找同校生约自习
4. 蹭课
描述:
首先用户打开小程序,一开始的页面会停留在空教室信息页面上,在用户选择教学楼,楼栋,楼层之后,显示该楼层的教室的状态,空闲或忙碌。
点击tabbar左端页面,会检查是否已登录授权,如果未授权,跳转到授权页面;如果已授权,则进入约自习页面,会出现不同学生所发布的约自习动态,在这里你可以找到自己想要约自习的对象,发布自习邀约的同学会留下联系方式,用户自行联系该同学。注意,用户不可以在其他人的自习邀请下评论。当邀约达成,发出邀约者自行删除邀请,该邀请将不再展示在公共、个人页面中。用户填写了约自习信息后,将用户信息保存到服务器。在约自习界面添加邀约时,会要求用户填写邀约信息和个人信息。用户可在“我的”版块查看自己发布的邀约,并且可以修改或删除该条自习邀约。
点击tabbar右端页面,是蹭课界面,在这里你可以在页面上方的搜索栏里查询自己想蹭的课的课程信息,可以根据专业、课程名、教师名检索。
2.3 条件限制
2.3.1 列出进行本软件开发工作的假定和约束,如经费限制、开发期限等
本项目是在微信开发者工具上进行前端开发的,后端用java语言在idea上编程,本项目由Triple 兔小组成员自行完成,并由软工老师进行指导提建议而完成。无开发经费,并进行了长达半个学期的开发。
2.3.2 列出本软件的最终用户、用户的教育水平和技术专长
最终用户面向全体华中农业大学学生,使用微信即可登录此微信小程序。
2.3.3 列出本软件的预期使用频度等
经过前期问卷调查,发现该小程序得到广大华中农业大学学生一致认可,应该会被广泛运用,用户数量会很多,可支持很多人共同使用。
3. 数据描述
3.1 静态数据
1. 全校教学楼课程情况
2. 全校开设的所有课程信息
3. 用户身份信息
3.2 动态数据
1. 用户发布的约自习信息
3.3 数据库描述
本系统需要导入全校课表、需要存储用户身份信息、需要存储用户发布的约自习信息,涉及到数据库的使用,数据库用MySQL 5.7。
3.4 数据字典
数据字典描述系统的实体-关系图中实体和关系,以及数据流图中的过程、数据流、数据存储的部分内容。
数据项名
|
编号
|
数据类型
|
长度
|
用户ID
|
user_id
|
int
|
11
|
用户名
|
user_name
|
varchar
|
20
|
性别
|
sex
|
varchar
|
8
|
专业
|
major
|
varchar
|
40
|
学院
|
sdept
|
varchar
|
40
|
自习铭
|
motto
|
varchar
|
100
|
便签
|
note
|
varchar
|
255
|
微信开放ID
|
open_id
|
varchar
|
100
|
会话ID
|
session_key
|
varchar
|
255
|
约自习ID
|
invitation_id
|
int
|
11
|
期待性别
|
opposite_sex
|
char
|
8
|
描述
|
illustration
|
text
|
0
|
关键字
|
key_words
|
varchar
|
255
|
联系方式
|
contact_information
|
varchar
|
255
|
课程ID
|
id
|
varchar
|
20
|
星期几
|
weekday
|
varchar
|
20
|
上课节次
|
class_time
|
varchar
|
40
|
上课周
|
week
|
varchar
|
40
|
具体上课周
|
week_detail
|
varchar
|
255
|
课程编号
|
cno
|
varchar
|
20
|
课程名称
|
cname
|
varchar
|
100
|
教师名称
|
tname
|
varchar
|
100
|
教学楼名称
|
site_name
|
varchar
|
100
|
详细上课时间
|
class_time_detail
|
varchar
|
400
|
详细上课地点
|
site_name_detail
|
varchar
|
400
|
课程性质
|
course_nature
|
char
|
20
|
教学楼名称
|
building
|
varchar
|
100
|
专业
|
major
|
varchar
|
300
|
3.5 数据采集
系统运行时需要先预读数据,从数据库中导入教室及课程信息。系统启动时,需要读取用户选择的教学楼和座号的结果信息。
4. 功能需求
4.1 功能划分
4.1.1 系统功能组成
查询空教室、发布自习邀约、查看自习邀约、检索自习邀约、管理自己发布的自习邀约、展示可蹭课程的信息、检索想蹭的课、自习铭(用来激励自己自习的话)修改与展示
4.1.2 功能编号和优先级
系统功能优先级如表所示:
编号
|
名称
|
优先级
|
描述
|
主要发起者
|
1
|
查询空教室
|
极重要
|
展示华农所有教室的实时状态
|
系统
|
2
|
发布自习邀约
|
重要
|
发布者发布自习邀约
|
用户、系统
|
3
|
查看自习邀约
|
重要
|
展示自习邀约
|
系统
|
4
|
检索自习邀约
|
重要
|
提供按关键词检索自习邀约
|
用户
|
5
|
管理自己发布的自习邀约
|
重要
|
查看、修改、删除历史发布
|
用户
|
7
|
检索想蹭的课
|
重要
|
支持关键词检索相关课程
|
用户
|
8
|
自习铭修改与展示
|
次要
|
展示用户自定义(可随时修改)的自习铭
|
用户
|
4.1.3 功能定义
(1) 查询空教室:在小程序“首页”按教学楼、楼栋号、楼层展示华农所有教室的实时状态(暂时不支持显示教室是否被借用)
(2) 发布自习邀约:发布者点击发布按钮,留下邀约、联系方式,同时需要用户填写个人信息,最终生成一条自习邀约
(3) 查看自习邀约:在“约自习页面”,默认按发布时间先后顺序展示自习邀约
(4) 检索自习邀约:在“约自习页面”顶部的搜索栏内,用户可按发布者设置的关键词检索自习邀约
(5) 管理自己发布的自习邀约:在“我的发布”页面,用户可查看、修改、删除历史发布(默认按时间先后展示)
(6) 展示可蹭课程的信息:在“蹭一蹭”页面,按学院、年级、专业展示课程,点击课程可查看详情
(7) 检索想蹭的课:在“蹭一蹭”页面顶部的搜索栏内,用户可按关键词(专业名称、课程名称、教师名字)检索感兴趣的课程
(8) 设置个人信息:在“约自习”页面,点击添加约自习邀约button需要用户同时填写个人信息,包括:昵称、性别、专业、期待的对方性别和自习铭。
(9) 自习铭修改与展示:在小程序“首页”展示用户自定义(可随时修改)的自习铭,来勉励自己好好学习天天向上。
4.2 功能描述
4.2.1 板块组成
自习吧微信小程序包含四个板块:空教室查询、约自习、蹭课、信息管理。
4.2.1.1总数据流图:
4.2.2 功能划分
4.2.2.1查询空教室板块
1.外部用户
用户:合法用户
2.功能
查询空教室:查询某栋教学楼某楼层的空教室信息
3.数据流图
4.2.2.2约自习板块
1.外部用户
用户:合法用户
2.功能
发布自习邀约
浏览自习邀约
删改自己发布的自习邀约
3.数据流图
4.2.2.3蹭课板块
1.外部用户
用户:合法用户
2.功能
蹭课:查询用户感兴趣的课程信息
3.数据流图
4.2.2.4信息管理板块
1.外部用户
用户:合法用户
2.功能
信息管理:填写或修改个人信息和自习铭
3.数据流图
5. 性能需求
5.1 数据精确度:
要按照严格的数据格式输入,对符合数据格式要求的输入进行提示。
5.2 时间特性
1. 软件启动时间:
2. 系统实时响应时间:小程序使用过程中,对用户在各个功能模块点击操作的响应时间需在用户的容忍范围以内,一般要求小于1秒
3. 数据的转换传送时间:对小程序不同模块间的数据交互,要求数据的转换和传送时间不得超过0.5秒
4. 数据更新时间:用户刷新操作后0.1秒,进行数据更新
5.3 适应性
小程序构建于微信平台之上,为手机端程序,支持用户触屏点击。灵活性要求软件能够方便的适应精度和有效时限的变化。
6. 运行需求
6.1 用户界面
该软件主要功能为查询课表、约自习、蹭课,主界面要求简介易懂,便于操作。约自习界面采用卡纸模式,每位用户发布的帖子由时间顺序依次排列,方便用户进行查找,筛选。
6.2 软件接口
1. 该软件为基于微信平台开发的微信小程序,适用于各种手机系统,如安卓,ios等。
2. mysql数据库
3. JDK1.8以上
6.3 硬件接口
1. 微信云服务器
2. 远程腾讯云服务器
3. 用户手机微信小程序客户端
6.4 故障处理
1. 在软件的使用过程中,如果出现软件使用故障,应当具有报警信息提示。
2. 当软件依赖的文件损毁或丢失时,软件以对话框的形式进行提示,报告损毁或丢失的文件等相关错误,以帮助用户及时修复软件的正常功能。
3. 对软件需要用户输入项的情况,如果发生缺少输入项、输入项格式错误或不符合规则等情况,软件应以合理的方式予以提示。
4. 为了防止用户由于未及时保存而导致信息丢失的情况,软件提供定时保存机制,每隔一定时间自动对信息进行保存,从而保证用户数据的安全。