
⼀.项⽬概述
本项⽬的选课系统以微信⼩程序为平台,采⽤线上收集数据,实时收集数据,避免了线下调查收集的弊端,节约了资源。并且客户群体⼤,市场⼤既能为⼴⼤学⽣提供⼀个⾼质量的受教体验,⼜能提⾼教学质量的机会。⼀⽅⾯,⼩程序完全是免费的⼀个平台,学⽣可以在⼿机上使⽤,完全不存在任何费⽤。另⼀⽅⾯,使⽤⼩程序存在便捷性,随时随地都已可以查看,不⽤使⽤电脑,这⼀定程度上也节约了我们的时间资源。
⼆、实现的相关技术
(1)云函数
在微信开发者的云开发平台上,我们不⽤通过太多的路径,我们只需编写我们的业务逻辑函数。并部署在云端,在云端运⾏的代码,因为云函数是在云端运⾏的代码,并且微信私有协议天然鉴权,所以以后开发者⽆需维护复杂的鉴权机制,并且也⽆需⾃⼰搭建和购买服务器,这样就简化了⼩程序后台的操作,轻松即可完成⼩程序后端的搭建,使我们更加便捷的完成微信⼩程序的开发。当我们要使⽤这些函数时,只需在对应的js页⾯进⾏云函数初始化。这样的功能给开发⼀些⼩型项⽬能带来便利以及实惠。
(2)微信开发者⼯具数据库
这是微信开发者⼯具⾃带的数据库,我们可以通过调⽤数据库提供的api直接对数据库进⾏操作,也可以通过后台管理员对数据库的数据进⾏导⼊和导出,但格式必须为json。当我们通过前端想对应数据表插⼊记录时,数据库还会⾃动帮我们⽣成⼀个_id字段,这是这条记录的唯⼀标识,也会⾃动⽣成_openid字段,通过这个字段来唯⼀标识记录是哪个⽤户添加的。所以这个数据库是⼀个既可在⼩程序前端操作,也能在云函数中读写的 JSON 数据库。
(3)微信开发者⼯具
微信开发者⼯作针对进⾏⼩程序开发的开发⼈员的开发⼯具,与其他开发⼯具类似,它也具有开发,预览,调试等主要功能,但是还有很多功能不够完善,⽤户体验⼀般[12]。在此⼯具中我们可以通过编辑wxml⽂件和xcss⽂件来渲染界⾯,相当于web开发中的.html⽂件和.css⽂件,通过.js⽂件和.json进⾏数据的处理。这也类似于web开发中的前端和后台。
(4)微信⼩程序开发⽂档
微信⼩程序开发⽂档是微信提供的⼀个学习⽂档,⾥⾯包括了组件,框架,以及相关的API。我们可以通过调⽤相关的api得到⾃⼰想要的功能,例如请求服务器的api,获取⽤户信息的api。也有⼀些关于云函数以及数据库操作的教程,这些都可以让开发⼈员尽快的上⼿⼩程序开发,为我们开发带来的便携性。
三、系统架构
本项⽬的基于MVC框架模式进⾏开发,即Model(模型)-View(视图)-Controller(控制器):V即View视图是指⽤户看到并与之交互的界⾯。⽐如我们平时上⽹所见的由WXML和XCSS编写⽽成的⽹页界⾯,或者软件app的⽤户交互界⾯。要注意的是,在视图层中其实没有真正的处理发⽣,这交由其他两层进⾏处理,它只是作为⼀种输出数据并允许⽤户操纵的⽅式。M即model模型是是应⽤程序中⽤于处理应⽤程序数据逻辑的部分。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中⽴的,模型与数据格式⽆关,具有复⽤性,这样使得⼀个模型能为多个视图提供数据,由于应⽤于模型的代码只需写⼀次就可以被多个视图重⽤,所以减少了代码的重复性。C即controller控制器是指控制器接受⽤户的输⼊并调⽤模型和视图去完成⽤户的需求,控制器本⾝不输出任何东西和做任何处理。它只是接收请求并决定调⽤哪个模型构件去处理请求,然后再确定⽤哪个视图来显⽰返回的数据。正是由于它的存在,使得视图层与模型层能够解耦合。
因此我们⽤⼀张直观的图来描述其三者之间的关系:
四、系统分析4.1、系统功能模块分析
该系统主要分为6个功能模块,每个功能模块都相互独⽴,实现解耦合。
4.2、业务流程分析
(1)为课程添加评论和推荐的流程
(2)学⽣⽤户查询⾃⼰评论的流程图4.3、数据流程分析
(1)⼩程序主要功能的数据流程分析
五、数据库设计
5.1、E-R图设计
(1)课程评论与推荐⼩程序学⽣⽤户主要功能的E-R图设计如图(2)⽤户实体,如图
(3)课程实体,如图(4)院系实体,如图
(5)评论实体,如图5.2、数据库表设计
(1)学⽣⽤户表
字段名数据类型代码主键是否允许为null openid varchar(50)Openid 是否
⽤户名varchar(50)Nickname否否
学号char(10)Sno否否
院系varchar(20)Sdepartment否否
电话号码varchar(15)Phonenumber否是
专业varchar(20)Major否否
(2)评论表
字段名数据类型代码主键是否允许为null openid varchar(50)openid 是否
评论内容varchar(255)course_comment否是
课程名称varchar(20)coursename否否
(3)课程表
字段名数据类型代码主键是否允许为null 课程名称varchar(20)Coursename 是否
课程⽼师varchar(10)Course_teacher否否
否
课程学分Int(10)Course_credit否
院系 varchar(20)Sdepartment否否
六、系统部分实现图
6.1、⽤户⾸页
⽤户⾸页包括课程搜索框,课程排⾏榜,院系选择
6.2、课程评论图
添加课程评论和推荐是此⼩程序最主要的功能模块,推荐功能主要是⼀个推荐按钮,点击即推荐此课程
6.3、个⼈主页
个⼈主页主要包括个⼈信息和历史评论,其主要页⾯如下图七、系统设计总结:
课程评价⼩程序是基于xwml,json,js,语⾔,利⽤微信开发者⼯具来进⾏系统编写,动态页⾯视图通过JSP技术和xwml技术来实现。前端采⽤微信开发者⼯具的wxml语⾔,后台则是采⽤通过js⽂件中的函数进⾏数据处理,数据接⼝采⽤api技术,利⽤微信开发者⼯具⾃带数据库存取数据
(1)系统的基本功能
⽤户操作页功能包括授权登录、⾸页、⽤户页⾯、搜索课程评论、查看历史评论、推荐课程、资料设置等。⽽本⼩程序主要是⾯向学⽣⽤户,管理员只需执⾏⽤户管理和数据管理即可,因此管理员的主要功能有⽤户管理、课程、评论管理。
(2)详细评论和推荐流程概述
①发布评论:当学⽣⽤户想选课时,可以登录⼩程序,选择⾃⼰的院系和学号,或者⽤搜索框进⾏课程搜索,会出现⾃⼰可选的课程,点击课程即可以对课程进⾏评论。
②推荐:与上⼀个功能相似,点击新建评论时,进⼊课程评论页⾯,只需输⼊课程部分字,后台调⽤模糊搜索的api进⾏课程搜索,则出现相应的课程列表,此时即可点击推荐按钮进⾏推荐
