💗博主介绍:✌全网粉丝10W+,CSDN全栈领域优质创作者,博客之星、掘金/华为云/阿里云等平台优质作者。
👇🏻 精彩专栏 推荐订阅👇🏻
计算机毕业设计精品项目案例-200套
🌟文末获取源码+数据库+文档🌟
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以和学长沟通,希望帮助更多的人
一、前言
本课题研发的教学资源共享平台管理系统,就是提供教学资源共享平台信息处理的解决方案,它可以短时间处理完信息,并且这些信息都有专门的存储设备,而且数据的备份和迁移都可以设定为无人值守,从人力角度和信息处理角度以及信息安全角度,教学资源共享平台管理系统是完胜传统纸质操作的。
二、功能设计
本系统基于B/S模式,采用SpringBoot+VUE作为开发技术,MYSQL数据库设计开发,充分保证系统的稳定性。
教学资源共享平台管理系统按照操作主体分为管理员和用户。管理员的功能包括成绩管理、字典管理、交流论坛管理、公告信息管理、老师管理、用户管理、教学资源管理、教学资源收藏管理、教学资源留言管理、作业管理、作业提交管理、管理员管理。用户的功能包括论坛交流、查看公告信息、下载教学资源、留言、收藏教学资源、上交作业、查看作业成绩等等
系统功能模块图如下所示:
系统B/S架构原理图:
三、数据设计
概念模型的设计是为了抽象真实世界的信息,并对信息世界进行建模。它是数据库设计的强大工具。数据库概念模型设计可以通过E-R图描述现实世界的概念模型。系统的E-R图显示了系统中实体之间的链接。而且Mysql数据库是自我保护能力比较强的数据库,下图主要是对数据库实体的E-R图:
四、部分效果展示
4.1管理员功能模块
图4.1 即为编码实现的教学资源管理界面,管理员在教学资源管理界面中可以对界面中显示,可以对教学资源信息的教学资源状态进行查看,可以添加新的教学资源信息等。
图4.2 即为编码实现的作业管理界面,管理员在作业管理界面中查看作业种类信息,作业描述信息,新增作业信息等。
图4.3 即为编码实现的公告管理界面,管理员在公告管理界面中新增公告,可以删除公告。
4.2用户功能模块
图4.4 即为编码实现的教学资源界面。
图4.5 即为编码实现的作业界面。
图4.6 即为编码实现的公告管理界面。
个人中心包括了作业成绩、作业提交以及作业资源收藏等功能,作业提交列表界面如下所示:
部分功能代码
/**
* 上传文件
*/
@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);
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);
}
/**
* 下载文件
*/
@IgnoreAuth
@RequestMapping("/download")
public ResponseEntity<byte[]> download(@RequestParam String fileName) {
try {
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();
}
File file = new File(upload.getAbsolutePath()+"/"+fileName);
if(file.exists()){
/*if(!fileService.canRead(file, SessionManager.getSessionUser())){
getResponse().sendError(403);
}*/
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
headers.setContentDispositionFormData("attachment", fileName);
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);
}
} catch (IOException e) {
e.printStackTrace();
}
return new ResponseEntity<byte[]>(HttpStatus.INTERNAL_SERVER_ERROR);
}