同时还能为用户提供一个方便实用的考研互助交流系统,使得用户能够及时地找到合适自己的考研信息。管理员在使用本系统时,可以通过后台管理员界面管理用户的信息,也可以发布系统公告,让用户及时了解考研信息。这样,用户就可以安全高效地找到考研信息。
前端技术:nodejs+vue+elementui,
Express 框架于Node运行环境的Web框架,
语言 node.js
框架:Express
前端:Vue.js
数据库:mysql
数据库工具:Navicat
开发软件:VScode
视图层其实质就是vue页面,通过编写vue页面从而展示在浏览器中,编写完成的vue页面要能够和控制器类进行交互,从而使得用户在点击网页进行操作时能够正常。
代码结构讲解
1、 node_modules文件夹(有npn install产生)
这文件夹就是在创建完项目后,cd到项目目录执行npm install后生成的文件夹,下载了项目需要的依赖项。
2、package.json文件
此文件是项目的配置文件(可定义应用程序名,版本,依赖项等等)。node_modules文件夹下的依赖项是从哪里知道的呢?原因就是项目根目录下的这个package.json文件,执行npm install时会去找此文件中的dependencies,并安装指定的依赖项。
3、public文件夹(包含images、javascripts、stylesheets)
这个文件夹做过Web开发的应该一看就知道,为了存放图片、脚本、样式等文件的。
4、routes文件夹
用于存放路由文件。
5、views文件夹
存放视图。
随着社会的发展,大学生考研的管理形势越来越严峻。越来越多的用户利用互联网获得信息,但考研信息鱼龙混杂,信息真假难以辨别。为了方便用户更好的获得本考研信息,因此,设计一种安全高效的考研互助交流系统极为重要。
为设计一个安全便捷,并且使用户更好获取本考研信息,本文主要有安全、简洁为理念,实现用户快捷寻找考研信息,从而解决考研信息复杂难辨的问题。该系统采用nodejs语言和mysql数据库进行开发设计,通过对考研互助交流管理流程的分析,分析了其功能性和非功能性需求,设计了考研互助交流系统,该平台包括管理员和用户两部分。目录
第1章 概 述 3
1.1 开发背景及研究意义 3
1.2 国内外研究现状和发展趋势 3
1.3 本文主要研究的内容 4
第2章 关键技术介绍 5
2.1 开发环境 5
2.2 nodejs技术 5
2.3 MySQL数据库 6
2.5 本章小结 6
第3章 系统分析 7
3.1 系统概述 7
3.2 需求分析 7
3.3 可行性分析 7
3.3.1 技术可行性分析 8
3.3.2 经济可行性分析 8
3.4 系统流程分析 8
3.4.1 登录流程图 8
3.4.2 添加新用户流程图 9
3.5 本章小结 10
第4章 系统设计 11
4.1 系统基本结构设计 11
4.2 数据库设计 11
4.2.1 数据库E-R图设计 12
4.2.2 数据库表设计 13
4.3 本章小结 21
第5章 界面设计与功能实现 22
5.1系统功能实现 22
5.2 后台功能实现 25
5.2.1管理员模块实现 25
5.2.2用户模块实现 32
5.3 本章小结 32
第6章 系统测试 33
6.1 系统测试的目的 33
6.2 系统功能测试 33
6.2.1 登录注册功能测试 33
6.2.2. 用户管理功能测试 34
6.3 本章小结 34
结 论 35
参考文献 36
致 谢 37
第1章 概 述
通过对本文的开发背景、研究意义以及国内外研究现状和发展趋势的分析,确定本文的研究内容是系统开发的前提。
1.1 开发背景及研究意义
如今越来越多的高校学生选择通过考研来提升自己的学历及自我价值,随着考研人数的不断增加,考研也逐步成为了众多大学生所关心的热门话题。随之而来的是市场规模庞大的各类辅导机构以及各种学习系统。因此,设计、开发一个考研互助交流系统有较大的发展空间。一个具备多元化,优秀交互功能的学习交流系统,可以为所有考研的高校学生提供一个分享知识、信息的场所,为关心考研动向的备考学生规划有效的学习途径和方法。相比于线下的考研辅导机构,线上考研信息交流系统更为灵活和方便,学生可以根据自己的情况挑选适合自己的学习方式,掌握更全面的信息,拥有一个更加广阔的经验交流的空间。
1.2 国内外研究现状和发展趋势
在根据美国2017年秋季入学人数的统计数据,美国有290万名学生从各个高中毕业,但只有190万名毕业生进入了大学,这是67%的比例。根据bls.org的数据,2019年高中毕业生立即进入大学的比例为66.2%。
2022年美国预计将有1467万学生进入公立大学,524万学生将进入私立院校。
经统计,2020年美国高中学子毕业选择升入大学的67%的比例中,美国高等教育中研究生占比为33%,其中博士生占比约为6%。在新增就业人口当中,美国具有研究生学历的占比约为15%。
而其中,有关考研的系统,大多为美国各州当地的系统,例如:加州州立系统,这是美国加利福尼亚州的研究生申请系统,可以申请加州内的各个大学。
随着我国大学生人数的日益增长,毕业生大体分为三个部分:一部分毕业生选择了就业,一部分毕业生选择了进行公务员考试,剩下的毕业生则选择了考研进行学术深造。
经统计,我国2018年考研人数为238万人;2019年,考研人数为290万人,比2018年增长了52万人;2020年,考研人数为341万人,增长了51万人;2021年,考研人数为377万人,增长了36万人;2022年考研人数为457万人,相较去年增长了80万人。
随着考研热浪的掀起,市场上出现了大量的考研信息平台,例如小白考研、考虫、番茄钟等。这些平台的出现使用户能够在网络上轻松获取信息,帮助选择专业、院校,也有利于他们复习考研知识。这些平台的特点大多为:门槛低、方便性和信息资源较为分散。除此之外,部分平台的收费内容也为用户增加了些许负担,那么,一个免费且具有交流平台的系统的出现就符合了当前的需求。
1.3 本文主要研究的内容
该系统采用nodejs技术进行开发设计,后台使用MySQL数据库进行数据存储。系统主要分为两大模块:即管理员模块和用户模块。本文从考研互助交流流程分析入手,分析了其功能性需求和非功能性需求,设计了一个由管理员和用户两部分组成的考研互助交流系统。用户可在前端网页浏览备考信息、交流论坛、课程资料等;管理员可通过后台管理界面管理用户信息和系统管理。
第3章 系统分析
系统分析是软件开发的关键。但在实际工作中却往往容易被人们忽视或误解。其实需求分析在软件开发过程中起着重要作用,它不仅为软件产品提供了一个基本框架和基础结构,而且还能够提高软件开发效率及质量。大多数软件的故障都是由于需求分析错误造成的,因为需求分析可以分析用户的业务,并根据用户的需求进行定制分析。
3.1 系统概述
该系统由管理员和用户两部分组成。其中:用户注册登录后,在我的页面可以对首页、院校信息、备考经验、考研政策、课程资料、历年真题、考研倒计时、测评信息、交流论坛、复试调剂、后台管理、个人中心等进行详细操作;管理员则是根据不同需求设置了不同功能,可以通过后台管理接口管理用户信息。
3.2 需求分析
需求分析,也称为软件需求分析、系统需求分析或需求分析工程,是指开发人员经过充分的研究和分析,准确地理解用户和项目在功能、性能、可靠性等方面的具体需求,并将用户的非正式需求表述转化为确定系统必须执行的需求的完整定义的过程[11]。
功能需求分析是系统设计的前提,它要求开发者和用户定义开发什么样的体系和系统需要什么样的功能。本文主要介绍了一种基于nodejs的考研互助交流系统。该系统为用户找到考研信息提供了更安全、更高效、更便捷的途径。本系统有两个角色:管理员和用户,要求具备以下功能:
(1)用户可以浏览主页了解考研政策和交流论坛等,并对课程进行在线测评、评论或收藏等操作;
(2)管理员通过后台管理员界面,实现对用户信息管理,或发布系统公告,让用户实时知道最新的考研信息;
3.3 可行性分析
可行性分析是指通过比较项目的主要内容和支撑条件,如市场需求、资源供应、环境影响、资金筹措情况、盈利能力等,预测项目建成后可能产生的资金、经济效益、社会和环境影响,为项目决策提供依据的综合性系统分析方法。可行性研究报告编制的质量直接影响着投资决策的成,而可行性研究报告编制程序又决定了可行性研究报告能否得到有效执行。因此,必须重视可行性研究工作,提高其编制水平。可行性分析应当具有预见性、公正性、可靠性和科学性[13]。
3.3.1 技术可行性分析
本系统是为了为用户考研互助交流提供更加安全、高效、便捷的方式,本系统需要运用到nodejs、MySQL和B/S结构等技术,这些技术在国内外已经非常成熟[14],在大学期间也有所涉及,相关的知识和工具在网络上也可以查到,再加上老师的指导,在技术上的难题可以得到解决。
3.3.2 经济可行性分析
该系统的主题是基于nodejs的考研互助交流系统的设计与实现。开发所需的软件资源是Eclipse。我们可以在它的网站上安装一个免费的版本,这对我们的开发和使用是足够好的。数据库就是MySQL数据库。是开源是免费的,浏览器使用日常IE浏览器。经过可行性评估,软件资源支出符合经济可行性[15]。硬件方面,配备齐全的笔记本电脑作为工具在经济上是可行的。
3.4 系统流程分析
3.4.1 登录流程图
登录流程是该系统的第一个流程,登录的第一步是输入账号、密码登录,系统会验证账号与密码是否正确,正确时系统会判断账号类型再进入不同的后台;不正确时,会返回到登录的第一步,输入用户重新执行登录流程。
4.2.2 数据库表设计
数据表是用来保存多种数据的表,它是所有数据库的核心对象,且对于软件开发有着不可替代的作用。其相关数据表如下:
表4-1 复试调剂
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
title varchar 200 标题
introduction longtext 4294967295 简介
picture longtext 4294967295 图片
content longtext 4294967295 内容
表4-2:历年真题
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
biaoti varchar 200 标题
fengmian longtext 4294967295 封面
nianfen varchar 200 年份
timuleibie varchar 200 题目类别
neirong longtext 4294967295 内容
表4-3:课程资料
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
kechengmingcheng varchar 200 课程名称
kechengfenlei varchar 200 课程分类
kechengfengmian longtext 4294967295 课程封面
kechengshipin longtext 4294967295 课程视频
kaikeshijian date 开课时间
jiaoshixingming varchar 200 教师姓名
kechengneirong longtext 4294967295 课程内容
clicktime datetime 最近点击时间
clicknum int 点击次数 0
表4-4:在线测评
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
biaoti varchar 200 标题
ceshijieguo longtext 4294967295 测试结果
ceshishijian date 测试时间
yonghuzhanghao varchar 200 用户账号
yonghuxingming varchar 200 用户姓名
sfsh varchar 200 是否审核 待审核
shhf longtext 4294967295 审核回复
表4-5:考研政策
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
biaoti varchar 200 标题
fengmian longtext 4294967295 封面
diqu varchar 200 地区
kaoyanxuzhi longtext 4294967295 考研须知
zhengceneirong longtext 4294967295 政策内容
faburiqi date 发布日期
clicktime datetime 最近点击时间
clicknum int 点击次数 0
表4-6:院校信息
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
yuanxiaomingcheng varchar 200 院校名称
yuanxiaotupian longtext 4294967295 院校图片
yuanxiaozhuanye varchar 200 院校专业
fuzeren varchar 200 负责人
lianxidianhua varchar 200 联系电话
yuanxiaodizhi varchar 200 院校地址
zhaoshengrenshu int 招生人数
fenshuxian varchar 200 分数线
chengliriqi date 成立日期
zhaoshengjianjie longtext 4294967295 招生简介
yuanxiaojianjie longtext 4294967295 院校简介
clicktime datetime 最近点击时间
clicknum int 点击次数 0
表4-7:考研倒计时
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
biaoti varchar 200 标题
fengmian longtext 4294967295 封面
daojishi varchar 200 倒计时
neirong longtext 4294967295 内容
fabushijian date 发布时间
表4-8:用户
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
yonghuzhanghao varchar 200 用户账号
mima varchar 200 密码
yonghuxingming varchar 200 用户姓名
xingbie varchar 200 性别
lianxifangshi varchar 200 联系方式
touxiang longtext 4294967295 头像
表4-9:交流论坛
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
title varchar 200 帖子标题
content longtext 4294967295 帖子内容
parentid bigint 父节点id
userid bigint 用户id
username varchar 200 用户名
isdone varchar 200 状态
表4-10:打卡信息
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
dakabianhao varchar 200 打卡编号
biaoti varchar 200 标题
yonghuzhanghao varchar 200 用户账号
yonghuxingming varchar 200 用户姓名
dakashijian date 打卡时间
dakabeizhu longtext 4294967295 打卡备注
表4-11:配置文件
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
name varchar 100 配置参数名称
value varchar 100 配置参数值
表4-12:用户表
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
username varchar 100 用户名
password varchar 100 密码
role varchar 100 角色 管理员
addtime timestamp 新增时间 CURRENT_TIMESTAMP
表4-13:测评信息
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
biaoti varchar 200 标题
tupian longtext 4294967295 图片
cepingtimu longtext 4294967295 测评题目
cepingjianjie longtext 4294967295 测评简介
faburiqi date 发布日期
表4-14:关于我们
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
title varchar 200 标题
subtitle varchar 200 副标题
content longtext 4294967295 内容
picture1 longtext 4294967295 图片1
picture2 longtext 4294967295 图片2
picture3 longtext 4294967295 图片3
表4-15:备考经验
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
biaoti varchar 200 标题
fengmian longtext 4294967295 封面
jianjie longtext 4294967295 简介
neirong longtext 4294967295 内容
faburiqi date 发布日期
表4-16:收藏表
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
userid bigint 用户id
refid bigint 商品id
tablename varchar 200 表名
name varchar 200 名称
picture longtext 4294967295 图片
type varchar 200 类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注) 1
inteltype varchar 200 推荐类型
remark varchar 200 备注
4.3 本章小结
通过本章针对考研互助交流系统功能的总体结构、E-R属性图和数据表的大概介绍,对在开发系统时所要涉及到的数据库进行简单设计,为下一章系统的实现做好铺垫。
第5章 界面设计与功能实现
5.1系统功能实现
当人们打开系统的网址后,首先看到的就是首页界面。在这里,人们能够看到系统的导航条,通过导航条导航进入各功能展示页面进行操作。
第6章 系统测试
系统测试是检验软件产品是否满足预期需求,确保产品无缺陷的重要手段。系统测试侧重于评估系统是否满足指定的要求,并帮助检查整个系统的功能性需求。通过对系统功能和非功能两个方面的测试用例进行分析与比较可以发现软件存在的问题以及需要改进之处。软件可靠性设计是一项系统性工程,涉及到多个学科领域,因此其难度较大。测试将侧重于功能测试,这是黑盒测试的一部分,黑盒测试的重点是用户提供的要求,而不是系统的实际代码。
6.1 系统测试的目的
系统测试(System Testing)是为了向使用者提供有关被测试产品或服务的质量信息而进行的检查。系统测试还可以提供客观和独立的系统评估,以使运营者能够了解和系统实施所面临的潜在问题。系统测试涉及软件组件或系统组件的执行,以评估一个或多个系统属性。通常这些属性表明被测组件或系统满足系统预期开发需求,在各种预期的时间内,正确响应各种系统输入,在可接受的时间内执行其功能,足够可用,同时可以满足分析设计时要求的程度。在预期的环境中运行,并达到用户期望的总体结果。经过一系列严格功能测试,以发现系统功能方面潜在的问题,保证系统的正常运行。
6.2 系统功能测试
在系统的功能性测试中,开发人员需要按照操作要求使考研互助交流系统软件的各项功能,并准确记录测试期间的每个功能的运行数据,判定软件系统开发的功能是否符合预期的结果,主要是对MySQL数据库里的数据进行增删改查等。
6.2.1 登录注册功能测试
软件测试的第一步是考研互助交流系统的用户注册登录功能模块进行测试,测试用户在初次进入软件系统时,是否可以使用注册后登录的功能,具体测试的步骤如表6-1所示。
表6-1 登录注册管理功能测试数据表
编号 测试的功能 步骤 预期结果 实际结果
1 用户注册 正确填写注册信息,然后点击注册按钮 可以完成用户注册 注册成功
2 用户登录 正确输入账号、密码,然后点击登录按钮 可以完成用户登录 用户登录成功
6.2.2. 用户管理功能测试
系统的管理层可在此模块进行以下操作:对用户基础信息的修改;对用户的登录密码进行重置;删除用户;新增用户;根据关键词进行检索。以用户名:abo 密码:123456为例对该功能进行测试。测试操作如表5-2所示:
表5-2 用户管理测试过程及结果
测试项 测试用例 测试特性 用例描述 系统反应 测试结果
用户管理操作 用户名:abo
密码:123456 功能测试 添加一个新用户,基础信息与已有用户完全一致 添加失败,提示“该用户已存在” 通过
用户管理操作 用户名:abo
密码:999999 功能测试 添加一个新用户,基础信息与已存在用户均有所不同 添加成功 通过
用户管理操作 用户名:abo
密码:123456 功能测试 修改系统中用户名 修改成功 通过
用户管理操作 用户名:abo
密码:123456 功能测试 删除系统中用户 删除成功 通过
用户管理操作 用户名:abo
密码:123456 功能测试 按关键词搜索用户信息 查找成功 通过
用户管理操作 用户名:abo
密码:88888888 功能测试 重置用户密码 密码修改成功 通过
6.3 本章小结
本章所做的主要工作是对系统进行功能性测试。网站管理系统的正确性是网站的不可或缺的因素,系统的功能性测试是其中必不可少的步骤,也是占有很大比重的部分,这个过程中遇到的最多的问题是当界面跳转的时候系统终止运行。使用Eclipse中的Log Cat功能能够实现对程序每一个步骤进行跟踪,且定位出错误的位置十分方便。通过对各功能模块的测试结果和预期结果的比较,发现系统功能满足项目要求。
结 论
在设计考研互助交流管理系统的过程中采用了nodejs技术来呈现给用户,后台数据采用MySQL数据库来进行存储。
此系统为考研经验分享平台,为了达成预期效果该系统拥有管理员和用户两种角色。对于用户可以实现在网页前端浏览首页、院校信息、备考经验、考研政策、课程资料、历年真题、考研倒计时、测评信息、交流论坛、复试调剂、后台管理、个人中心等功能。管理员则可以通过后台管理功能对整个系统的信息进行管理,如每个用户发布在论坛上的信息,都需要经过管理员审核才能被其他用户所看到,用户所发布的考研信息也需要通过审核,除此之外平台的所有公告也是由管理员直接发布,以此来达到维护整个平台信息健康的目的。
基于nodejs的考研互助交流系统的设计与实现的设计与实现基本上自己在大学生活中学习的大部分知识都融入了进去,但是还不够,在许多方面还没有考虑全面,相信自己在进入工作中会更加努力,做出更加完美的系统。
致 谢
时光荏苒,四年的大学生活使我收获良多,感谢学校给我们提供了一个创新思维、思考问题和解决问题的平台,感谢老师们在过去给予我的知识和帮助。在这里我要向你们表达最真挚的谢意——感谢大家对我门课程教学的支持与鼓励!我想说的话:努力掌握专业知识、不断提高自己的综合素质。通过四年的学习和实验,老师不仅教会了我们知识,还培养了我们自主学习的能力,让我们可以用课堂上所学到的知识去钻研专业的其它方面。
从校园兼职开发系统的选择,到系统的详细设计,再到系统各个功能模块的编码,再到论文的撰写,作为一名没有实际开发经验学员,我的第一感觉就是不知从何说起,非常感谢老师们在系统架构设计、进度安排、关键技术等方面的宝贵经验和投入,让我备受鼓舞,顺利完成了课题。我相信在今后的工作中将会得到更多的收获!互联网时代已经到来了。随着信息技术的不断发展,网络技术也越来越成熟,它改变着人们的生活方式,同时对传统行业产生巨大影响。互联网时代我们提供了丰富的资源,解决了我在发展过程中遇到的许多问题,在前辈的指导下,我一直有一种开放的感觉。
一般来说,不付出艰苦的努力就不会有预期的结果,一个从最初的想法到实践到具体目标的软件系统需要反复的设计、改进、实验、耐心、细心和信心,以及坚持不懈、不断尝试和探索未知事物的精神与勇气。