文末获取源码
开发语言:Java
框架:ssm
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql 5.7/8.0
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven3.3.9
浏览器:谷歌浏览器
小程序框架:uniapp
小程序开发软件:HBuilder X
小程序运行软件:微信开发者
一、前言介绍
首先,论文一开始便是清楚的论述了小程序的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了小程序的需求基础上需要进一步地设计系统,主要包罗软件架构模式、整体功能模块、数据库设计。本项目软件架构选择B/S模式,总体功能模块运用自顶向下的分层思想。再然后就是实现系统并进行代码编写实现功能。论文的最后章节总结一下自己完成本论文和开发本项目的心得和总结。通过高校课堂教学管理小程序将会使高校课堂教学各个方面的工作效率带来实质性的提升。
二、系统功能分析
考虑到实际生活中在高校课堂教学管理方面的需要以及对该系统认真的分析,将系统分为小程序端模块和后台管理员模块,权限按管理员,教师和学生这三类涉及用户划分。
2.1管理员功能分析
管理员使用本系统涉到的功能主要有首页、个人中心、教师管理、学生管理、课程分类管理、课程资源管理、互动论坛、系统管理等功能。管理员用例图如图
2.2教师功能分析
教师主要包括首页、个人中心、课程资源管理、试题管理、课堂测试管理等功能进行详细操作。教师用例图如图
2.3学生功能分析
学生进入小程序可以实现首页、课程资源、测试、互动论坛、我的等功能,在我的页面可以对个人中心、我的收藏管理、测试记录、错题本、我要发贴、我的发贴等功能进行详细操作。学生用例图如图
2.4小程序整体功能
三、小程序端
3.1登录
用户通过输入账号和密码,选择角色并点击登录进行系统登录操作,如图
3.2学生注册
在学生注册页面通过填写学号、密码、确认密码、学生姓名、性别、院系、学生手机等信息进行学生注册操作;如图
3.3首页
用户登陆小程序端,可以对首页、课程资源、测试、互动论坛、我的等功能进行详细操作,如图
3.4课程资源
在课程资源页面可以查看课程名称、课程分类、图片、视频、发布时间、教师工号、教师姓名、资源介绍等信息,并根据需要进行评论或收藏操作;如图
3.5我的
学生,在我的页面可以对个人中心、我的收藏管理、测试记录、错题本、我要发贴、我的发贴等详细信息进行操作,如图
3.6学生信息
在用户信息页面通过填写学号、密码、学生姓名、性别、头像、院系、学生手机等详细信息进行保存或退出登录操作,如图
四、后台功能模块
4.1后台登录
管理员和教师通过输入账号、密码,选择角色并点击登录进入系统操作界面,如图
4.2管理员功能模块
管理员登陆系统后,可以对首页、个人中心、教师管理、学生管理、课程分类管理、课程资源管理、互动论坛、系统管理等功能进行详细操作,如图
4.3教师管理
在教师管理页面可以对索引、教师工号、老师姓名、性别、照片、职称、联系电话、院系等内容进行详情,修改和删除操作,如图
4.4学生管理
在学生管理页面可以对索引、学号、学生姓名、性别、头像、院系、学生手机等内容进行详情,修改和删除操作,如图
4.5课程分类管理
在课程分类管理页面可以对索引、课程分类等内容进行修改和删除等操作,如图
4.6课程资源管理
在课程资源管理页面可以对索引、课程名称、课程分类、课程视频、发布时间、资源图片、教师工号、教师姓名等内容进行详情,修改,查看评论或删除操作,如图
4.7系统管理
在系统公告页面可以对索引,标题,图片等内容进行详情,修改和删除等操作,还可以对轮播图管理进行详细操作;如图
五、教师功能模块
教师登陆系统后,可以对首页、个人中心、课程资源管理、试题管理、课堂测试管理等功能进行详细操作,如图
5.1课程资源管理
在课程资源管理页面可以对索引、课程名称、课程分类、课程视频、发布时间、资源图片、教师工号、教师姓名等内容进行详情,修改,查看评论或删除操作,如图
5.2试题管理
在试题管理页面可以对课堂测试、试题名称、分值、答案、类型等内容进行修改和删除操作,如图
5.3课堂测试管理
在课堂测试管理页面可以对索引、课堂测试名称、测试时长(分钟)、课堂测试状态等内容进行详情,修改和删除操作,如图
六、部分核心代码
6.1登录系统主要代码
/**
* 登录
*/
@IgnoreAuth
@RequestMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
YonghuEntity user = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuzhanghao", username));
if(user==null || !user.getMima().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(), username,"yonghu", "用户" );
return R.ok().put("token", token);
}
6.2上传文件关键代码
@RequestMapping("/upload")
public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception {
if (file.isEmpty()) {
throw new EIException("上传文件不能为空");
}
String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);
File path = new File(ResourceUtils.getURL("classpath:static").getPath());
if(!path.exists()) {
path = new File("");
}
File upload = new File(path.getAbsolutePath(),"/upload/");
if(!upload.exists()) {
upload.mkdirs();
}
String fileName = new Date().getTime()+"."+fileExt;
File dest = new File(upload.getAbsolutePath()+"/"+fileName);
file.transferTo(dest);
/**
* 如果使用idea或者eclipse重启项目,发现之前上传的图片或者文件丢失,将下面一行代码注释打开
* 请将以下的"D:\\springbootq33sd\\src\\main\\resources\\static\\upload"替换成你本地项目的upload路径,
* 并且项目路径不能存在中文、空格等特殊字符
*/
// FileUtils.copyFile(dest, new File("D:\\springbootq33sd\\src\\main\\resources\\static\\upload"+"/"+fileName)); /**修改了路径以后请将该行最前面的//注释去掉**/
if(StringUtils.isNotBlank(type) && type.equals("1")) {
ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile"));
if(configEntity==null) {
configEntity = new ConfigEntity();
configEntity.setName("faceFile");
configEntity.setValue(fileName);
} else {
configEntity.setValue(fileName);
}
configService.insertOrUpdate(configEntity);
}
return R.ok().put("file", fileName);
}