袁 涛
(西北民族大学 数学与计算机科学学院,甘肃 兰州 730030)
随着社会的快速发展,人们对于学历的追求也在不断地提高。全国的考研人数不断地增加,增长速度极其惊人。通过统计发现,虽然每年录取人数也在增加,但是被录取的比率还是很低。为了能够更好地帮助准备考研的同学,在考研的过程中尽可能提供有帮助的信息,本研究研发一种针对有考研需求的学生的共享系统,根据对周围考研成功或者是准备考研的人的调查情况来开发。
目前,已经使用的与考研有关的系统或者APP,主要特点包括:(1)设置了考研交流论坛。(2)收集了最基础的考研学习资料。(3)整合了各大目标院校的相关资料,例如:优势科目、易考科目、报录比等。(4)销售考研课程。
通过走访调查西北民族大学以及周边院校学生发现,大多数人存在这些困难,比如:(1)有关考研的宣传力度不够,学生想考研却不知从何入手,不知道考研整体流程以及整体的考研计划。(2)有些同学找不到本校共同考研的研友。(3)对于目标院校的了解不够或者根本不知道如何选择心仪学校。(4)一些已经考上研究生的学长学姐分享考研经验时,绝大多数想考研的同学获取不到或者根本无法找到本校已经考上研究生的学长、学姐的联系方式,无法获得最好的学习经验以及报考技巧。
对于这些情况,本文研发一个系统,解决这些困难,系统可以做到以下几点:(1)在本校找到合适的研友,共同奋斗。(2)每当已经成功的学长学姐分享考研经验时,此系统提前通知。(3)已经成功考上研究生的同学可以在本系统上销售考研笔记以及书籍,并且尽可能地解答要考研同学的疑问。(4)与其他考研APP或者系统一样,提供考研目标院校资料。(5)在交流模块中,同学可以把考研时的疑问发表在上面,共同探讨。
考研的人数不断增长,被调查的人中很大一部分希望有这样一个平台。基于手机以及电脑的普及,本文所设计与实现的系统只要是有网络、有手机或者电脑、平板电脑不需要下载,只要用网址即可进入,既减少了对电脑或者手机存储容量的消耗,又方便。
Python是一种跨平台的计算机程序设计语言,具有解释性、编译性、互动性和面向对象的脚本语言,相比于其他语言,具有特色的语法结构,被称为“入门语音”。
超文本标记语言(Hypertext Marked Language,HTML)不是一种编程语言,而是一种标识性语言,用于创建网页,使用标签来描述网页。
Bootstrap是一种用于快速开发Web前端页面的框架,它是基于HTML,CSS,JavavScript的一种开源框架,非常容易上手,采用了响应式设计,很大程度上减少了前端工程师的工作量。
Flask是使用Python编写的Web微框架。Flask主要依赖两种工具,一个是Web服务器网关接口(Web Server Gateway Interface,WSGI)工具集—Werkzeug,另一个是Jinja2模板引擎,不需要关心底层的请求响应处理,能更方便、高效地编写Web程序。
2.1.1 用户的需求
该系统需要用户通过浏览器才能进入并使用系统内的资源,具体的用户需求如下:
(1)用户的登录。用户在进入系统时只能看到系统首页,要想使用其中的功能就必须登录。如果用户没有注册,点击注册在指定位置填写好信息后点击“立即注册”,会有弹框(使用CSS,HTML,JS封装好的函数,使用Ajax以及JS对函数的调用)告知注册的结果是否成功,再在指定地点填写好相关的信息点击立即登录,也会有弹框弹出告知结果。
(2)用户的权限。在本系统中用户只能操作权限范围之内功能,例如:完善个人信息、上传资料、交流、查找研友等。
(3)个人信息的完善。用户只需要点击头像即可进入个人信息界面,该界面中用户可以更换头像、填写个性签名、修改密码、昵称、性别等,填写完后点击“立即提交”同样有弹框告知结果。
2.1.2 管理员的需求
管理员同样需要通过浏览器进入系统,点击登录即可。登录后系统会自动对登录者的邮箱号、密码与数据库中的数据进行比较。如果是管理员,那么在此系统中由于权限的不一样,普通用户能进行的操作管理员也可以进行操作,除此之外,管理员还可以提升普通用户为管理员、修改普通用户的信息、删除普通用户、对普通用户上传的资料或者言论进行审核等。在审核过程中当用户出现多次恶意的言论或者资料时,管理员可以提出警告,如果不理会可以直接删除该用户。
2.2.1 系统的总体结构设计
系统的总体结构设计分为两部分,一部分是通过Flask框架对前端、后端进行设计,包含:资料模块、查找研友模块、交流模块等功能,将使用Flask中的Blueprint组织管理各个模块的内容。另一部分是数据的处理,包括数据的处理、分析、传输等功能。
2.2.2 模块设计
(1)资料模块:汇总所有上传的资料,考研成功的人在此系统售卖的资料都存放在该模块中,上传的资料都需要经过审核,资料的形式没有限制,可以是图片、文件、视频等。所有的资料按照内容进行分类存放。上传时会采用UEditor(由百度Web前端研发部开发的开源富文本编译器),上传的过程中对各种不同形式的资料可以提供更加方便的操作。
(2)查找研友模块:把所有准备考研的同学归在此模块下,有共同心仪学校的或者是处于同一所学校的只要在此系统中注册过,都可以一起奋斗、共同前进。当用户点击搜索时,Flask APP收到请求,会通过相应的函数从数据库中查找相关的数据返回给前端再渲染到Web页面中。
(3)交流模块:同资料模块一样,所发表的任何言论都需要经过审核,并且也是根据内容进行分类处理。可以是图片、视频、文件等形式发表言论。因交流会涉及不同形式的言论,所以也会采用UEditor获取帮助。评论发表成功后Ajax和JS使页面自动刷新,用户可以第一时间看到,不需要手动刷新观看。
(4)登录/注册:只需要按照提示在相关的地方填写相关的信息,按照提示即可完成登录或者注册,在登录过程中如果忘记密码,可以通过点击相应的链接,即可重新填写密码。为了保证用户的信息安全,使用session对象添加cookie,数据会使用密钥对信息进行加密,加密后的信息会存储在名为session的cookie里,即使能看到相关信息,如果没有密钥无法对session cookie中的值进行修改。
2.2.3 Flask框架
在Flask框架中,前端框架是由Bootstrap框架和jinja模板语言相结合展示出页面,当用户点击相关功能时,前端向Flask APP发送相应的请求,Flask APP从后端获取到数据,通过路由(route)把数据传送给前端,前端再把数据渲染到页面中。然而,Flask APP在接到前端发送的请求时,会对该请求进行分析,然后由特定的函数来执行这次请求操作。
2.2.4 后数据处理
该系统是将数据处理部分和Flask框架分开,数据处理和Flask框架并行处理,使系统的稳定性得到保证。如果数据处理出现问题,Flask APP运行不会受到影响,同时该系统的运行速度也会有所提高。
此系统采用轻量级的Web应用框架Flask和B/S模式开发,整个系统主要分为3大模块,各个模块的操作尽可能简洁,让使用该系统的用户更好地掌握需要的信息,在考研之路上尽可能提供更大的帮助。