【开源】基于JAVA+Vue+SpringBoot的教学资源共享平台
作者:mmseoamin日期:2024-02-22

【开源】基于JAVA+Vue+SpringBoot的教学资源共享平台,在这里插入图片描述,第1张


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
    • 二、功能模块
      • 2.1 数据中心模块
      • 2.2 课程档案模块
      • 2.3 课程资源模块
      • 2.4 课程作业模块
      • 2.5 课程评价模块
      • 三、系统设计
        • 3.1 用例设计
        • 3.2 类图设计
        • 3.3 数据库设计
          • 3.3.1 课程档案表
          • 3.3.2 课程资源表
          • 3.3.3 课程作业表
          • 3.3.4 课程评价表
          • 四、系统展示
          • 五、核心代码
            • 5.1 查询课程
            • 5.2 新增留言
            • 5.3 查询教师信息
            • 5.4 生成课程作业
            • 5.5 添加课程评价
            • 六、免责说明

              一、摘要

              1.1 项目介绍

              基于JAVA+Vue+SpringBoot+MySQL的教学资源共享平台,包含了课程管理、课程课件、授课中心、作业发布、课程评价、课程质量分析、交流互动模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,教学资源共享平台基于角色的访问控制,给教师、学生使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

              【开源】基于JAVA+Vue+SpringBoot的教学资源共享平台,在这里插入图片描述,第2张

              1.2 项目录屏


              二、功能模块

              近年来,计算机技术、网络技术的迅猛发展,给传统办学提供了新的模式。绝大部分大学和学院都已介入互联网领域,并建成校园网,各校的硬件设施也已经比较完善。通过设计网络拓扑架构、数据库基础结构,建设网络安全系统、信息共享与管理系统、信息的发布与管理系统,方便了管理者、老师和学生间的信息发布、信息交流和信息共享。以现代计算机技术、网络技术为基础的数字化教学,主要是朝着信息化、网络化、现代化的目标迈进。

              【开源】基于JAVA+Vue+SpringBoot的教学资源共享平台,在这里插入图片描述,第3张

              本文设计的教学资源共享平台的包括了系统数据中心模块,用来存放管理系统通用的模块,另外分别设计了课程档案模块、课程资源模块、课程作业模块、课程评价模块、授课管理模块和学习质量分析模块这六大模块,用于存放系统的核心业务逻辑。

              2.1 数据中心模块

              数据中心模块包含了对教学资源共享平台的基础模块,比如管理谁可以登录这套系统,记录这些人登录系统做了什么,不同的人拥有不同权限的管理。

              2.2 课程档案模块

              课程档案模块用于对课程的数据进行管理,其中包括课程标题、课程介绍、课程图片、课程状态、创建人、创建时间、更新人、更新时间等,可以通过此模块对课程数据进行添加、编辑更新、删除、查询操作。

              2.3 课程资源模块

              课程资源管理模块是对课程的资源信息进行管理,课程有了资源才能更好的被学生所接受,课程资源的字段包括课程ID、课程名称、资源名称、文件、创建人、创建时间、更新人、更新时间等,教师可以新增课程的资源数据,学生可以查询教师发布的课程资源信息。

              2.4 课程作业模块

              课程作业模块是为了管理课程的作业数据,有了课程后,教师可以发布指定课程的作业数据,支持一键生成课程作业,其中课程作业的字段包括课程ID、课程名称、作业名称、作业附件、完成附件、学生ID、学生姓名、创建人等,教师可以增加、删除、编辑和条件查询课程作业,学生可以提交属于自己的作业数据。

              2.5 课程评价模块

              课程评价模块是维护关于课程的评价信息,学生学习完课程后,可以对课程进行评价,撰写评语,以便于改进课程的质量。其中课程评价字段包括课程ID、课程名称、评价人、评价内容、评价时间、备注、创建人、创建时间等,学生可以增加、删除、编辑和条件查询自己的课程评价,教师可以查询课程的评价内容。


              三、系统设计

              3.1 用例设计

              UML是面向对象的图形化建模语言,具有表示容易,定义友好,适用范畴广泛,功能强大。用例图是用例模型的一种,需求分析人员可采用用例图表示用户操作行为。教学资源共享平台的用例图设计主要包括学生用户用例图设计、教师用户用例设计。

              【开源】基于JAVA+Vue+SpringBoot的教学资源共享平台,在这里插入图片描述,第4张

              3.2 类图设计

              【开源】基于JAVA+Vue+SpringBoot的教学资源共享平台,在这里插入图片描述,第5张

              3.3 数据库设计

              3.3.1 课程档案表

              【开源】基于JAVA+Vue+SpringBoot的教学资源共享平台,在这里插入图片描述,第6张

              3.3.2 课程资源表

              【开源】基于JAVA+Vue+SpringBoot的教学资源共享平台,在这里插入图片描述,第7张

              3.3.3 课程作业表

              【开源】基于JAVA+Vue+SpringBoot的教学资源共享平台,在这里插入图片描述,第8张

              3.3.4 课程评价表

              【开源】基于JAVA+Vue+SpringBoot的教学资源共享平台,在这里插入图片描述,第9张


              四、系统展示

              【开源】基于JAVA+Vue+SpringBoot的教学资源共享平台,在这里插入图片描述,第1张

              【开源】基于JAVA+Vue+SpringBoot的教学资源共享平台,在这里插入图片描述,第11张

              【开源】基于JAVA+Vue+SpringBoot的教学资源共享平台,在这里插入图片描述,第12张

              【开源】基于JAVA+Vue+SpringBoot的教学资源共享平台,在这里插入图片描述,第13张

              【开源】基于JAVA+Vue+SpringBoot的教学资源共享平台,在这里插入图片描述,第14张

              【开源】基于JAVA+Vue+SpringBoot的教学资源共享平台,在这里插入图片描述,第15张

              【开源】基于JAVA+Vue+SpringBoot的教学资源共享平台,在这里插入图片描述,第16张

              【开源】基于JAVA+Vue+SpringBoot的教学资源共享平台,在这里插入图片描述,第17张


              五、核心代码

              5.1 查询课程

              @RequestMapping(value = "/getByPage", method = RequestMethod.GET)
              @ApiOperation(value = "查询课程")
              public Result> getByPage(@ModelAttribute Curriculum curriculum ,@ModelAttribute PageVo page){
                  QueryWrapper qw = new QueryWrapper<>();
                  if(!ZwzNullUtils.isNull(curriculum.getTitle())) {
                      qw.like("title",curriculum.getTitle());
                  }
                  if(!ZwzNullUtils.isNull(curriculum.getContent())) {
                      qw.like("content",curriculum.getContent());
                  }
                  if(!ZwzNullUtils.isNull(curriculum.getStatus())) {
                      qw.eq("status",curriculum.getStatus());
                  }
                  IPage data = iCurriculumService.page(PageUtil.initMpPage(page),qw);
                  return new ResultUtil>().setData(data);
              }
              

              5.2 新增留言

              @RequestMapping(value = "/insert", method = RequestMethod.POST)
              @ApiOperation(value = "新增留言")
              public Result insert(Message message){
                  User currUser = securityUtil.getCurrUser();
                  message.setUserId(currUser.getId());
                  message.setUserName(currUser.getNickname());
                  message.setTime(DateUtil.now());
                  message.setReplyContent("");
                  message.setReplyId("");
                  message.setReplyName("");
                  message.setReplyTime("");
                  iMessageService.saveOrUpdate(message);
                  return new ResultUtil().setData(message);
              }
              

              5.3 查询教师信息

              @RequestMapping(value = "/getByPage", method = RequestMethod.GET)
              @ApiOperation(value = "查询教师信息")
              public Result> getByPage(@ModelAttribute TeacherData teacherData ,@ModelAttribute PageVo page){
                  QueryWrapper qw = new QueryWrapper<>();
                  if(!ZwzNullUtils.isNull(teacherData.getName())) {
                      qw.like("name",teacherData.getName());
                  }
                  if(!ZwzNullUtils.isNull(teacherData.getLevel())) {
                      qw.eq("level",teacherData.getLevel());
                  }
                  IPage data = iTeacherDataService.page(PageUtil.initMpPage(page),qw);
                  return new ResultUtil>().setData(data);
              }
              

              5.4 生成课程作业

              @RequestMapping(value = "/create", method = RequestMethod.GET)
              @ApiOperation(value = "生成课程作业")
              public Result create(@RequestParam String id,@RequestParam String title,@RequestParam String file){
                  Curriculum curriculum = iCurriculumService.getById(id);
                  if(curriculum == null) {
                      return ResultUtil.error("课程不存在");
                  }
                  // 删除原作业
                  QueryWrapper assQw = new QueryWrapper<>();
                  assQw.eq("curriculum_id",curriculum.getId());
                  iAssignmentService.remove(assQw);
                  // 查询所有授课
                  QueryWrapper tQw = new QueryWrapper<>();
                  tQw.eq("curriculum_id",curriculum.getId());
                  List timetableList = iTimetableService.list(tQw);
                  for (Timetable t : timetableList) {
                      Assignment a = new Assignment();
                      a.setCurriculumId(curriculum.getId());
                      a.setCurriculumName(curriculum.getTitle());
                      a.setTitle(title);
                      a.setFile1(file);
                      a.setFile2("");
                      a.setUserId(t.getUserId());
                      a.setUserName(t.getUserName());
                      iAssignmentService.saveOrUpdate(a);
                  }
                  return ResultUtil.success();
              }
              

              5.5 添加课程评价

              @RequestMapping(value = "/addOne", method = RequestMethod.GET)
              @ApiOperation(value = "添加课程评价")
              public Result addOne(@RequestParam String id,@RequestParam String content){
                  Curriculum curriculum = iCurriculumService.getById(id);
                  if(curriculum == null) {
                      return ResultUtil.error("课程不存在");
                  }
                  User currUser = securityUtil.getCurrUser();
                  Appraise a = new Appraise();
                  a.setCurriculumId(curriculum.getId());
                  a.setCurriculumName(curriculum.getTitle());
                  a.setUserId(currUser.getId());
                  a.setUserName(currUser.getNickname());
                  a.setContent(content);
                  a.setTime(DateUtil.now());
                  iAppraiseService.saveOrUpdate(a);
                  return ResultUtil.success();
              }
               
              

              六、免责说明