[Open Source] Online course teaching system based on Vue and SpringBoot

Insert image description here

Project number: S 014, get the source code at the end of the article. \color{red}{Project number: S014, get the source code at the end of the article. }Item name: S014, End of sentence: Genka.



1. Abstract

1.1 System introduction

The online course teaching system based on JAVA+Vue+SpringBoot+MySQL includes course type module, course file module, class file module, class collection module, class comment module, and also includes the system's own user management, department management, and role management. , menu management, log management, data dictionary management, file management, chart display and other basic modules, the online course teaching system has role-based access control for students, teachers, and university administrators. The permissions can be precise to the button level. You can Customize roles and assign permissions, and the system is suitable for designing precise permission restriction requirements.

1.2 Project screen recording

Source code download


2. Research content

The IT online course system is a system for students to learn online. The IT training online course system is used by universities or training institutions. It supports the two roles of teachers and students. Teachers can maintain training course types, training course files, and training course files. During the class period, students can watch the course videos, collect and comment on their favorite classes, and complete interactive operations.

module. The basic module of the system includes basic user management, file management, log management, and data dictionary management. The training course module includes a training course type module and a training course archive module, which are used to add, delete, modify, check and maintain data. Class hours are sub-contents under training courses. A course will have multiple class hours for students to learn. The course interaction module includes collection and comment functions for students and teachers to interact.

In general, the IT training online course system can realize students' online learning, conforms to the digital teaching concept, and can reduce teachers' workload.

2.1 Course type management module

The course type management module is used by administrators to maintain course type data, including type name, status, sorting value, remarks, creation time, creator, last updated time, and last updated person information.

2.2 Course Management Module

The course management module is used by administrators to maintain course data, including course name, course classification, course introduction, instructor, pictures, notes, creator, creation time and other information.

2.3 Class management module

The class management module is used by administrators to maintain class data, including class name, class introduction, courses, knowledge points, videos, notes, creator, creation time and other information.

2.4 Course interactive module

The course interaction module is used by administrators to maintain class interaction information, which mainly includes class comments and class collections. The class collection module includes course name, class name, collector, collection time, creation time, creator, last update time, and last updater information; the class comment module includes course name, class name, reviewer, comment time, creation time, Creator, last updated time, comment content information.

2.5 System basic modules

The basic modules of the system include user management, department management, file management, authority management and data dictionary management modules. Since the basic modules of the system are built into the development framework, there is no need to carry out system logic design.


3. System design

3.1 Use case design

Insert image description here
Insert image description here
Insert image description here

3.2 Database design

Insert image description here
Insert image description here
Insert image description here


4. System display

4.1 Management background

Insert image description here
Insert image description here
Insert image description here
Insert image description here
Insert image description here
Insert image description here
Insert image description here
Insert image description here

4.2 User web page

Insert image description here

Insert image description here

Insert image description here


5. Sample code

5.1 New course types

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增培训课程类型")
public Result<TrainType> insert(TrainType trainType){
    
    
    if(trainType.getSortOrder() == null || Objects.equals(0,trainType.getSortOrder().compareTo(BigDecimal.ZERO))) {
    
    
        trainType.setSortOrder(BigDecimal.valueOf(iTrainTypeService.count() + 1));
    }
    iTrainTypeService.saveOrUpdate(trainType);
    return new ResultUtil<TrainType>().setData(trainType);
}

5.2 Website login

@RequestMapping(value = "/loginOnWeb", method = RequestMethod.GET)
@ApiOperation(value = "网站前台登陆")
public Result<String> loginOnWeb(@RequestParam String userName, @RequestParam String password){
    
    
    QueryWrapper<User> qw = new QueryWrapper<>();
    qw.eq("username",userName);
    List<User> userList = iUserService.list(qw);
    if(userList.size() < 1) {
    
    
        return ResultUtil.error("用户不存在");
    }
    User user = userList.get(0);
    if(!new BCryptPasswordEncoder().matches(password, user.getPassword())){
    
    
        return ResultUtil.error("密码不正确");
    }
    String accessToken = securityUtil.getToken(user.getUsername(), true);
    UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(new SecurityUserDetails(user), null, null);
    SecurityContextHolder.getContext().setAuthentication(authentication);
    return new ResultUtil<String>().setData(accessToken);
}

5.3 Lesson Collection

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增收藏")
public Result<TrainCollection> addOne(@RequestParam String id){
    
    
    TrainItem ti = iTrainItemService.getById(id);
    if(ti == null) {
    
    
        return ResultUtil.error("课时不存在");
    }
    User currUser = securityUtil.getCurrUser();
    QueryWrapper<TrainCollection> qw = new QueryWrapper<>();
    qw.eq("user_id",currUser.getId());
    qw.eq("item_id",ti.getId());
    if(iTrainCollectionService.count(qw) > 0L) {
    
    
        return ResultUtil.success("您已收藏");
    }
    TrainCollection tc = new TrainCollection();
    tc.setItemId(ti.getId());
    tc.setItemName(ti.getTitle());
    tc.setVideo(ti.getVideo());
    tc.setUserId(currUser.getId());
    tc.setUserName(currUser.getNickname());
    tc.setTime(DateUtil.now());
    iTrainCollectionService.saveOrUpdate(tc);
    return ResultUtil.success();
}

5.4 Class comments

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增评论")
public Result<TrainComment> addOne(@RequestParam String id,@RequestParam String content){
    
    
    TrainItem item = iTrainItemService.getById(id);
    if(item == null) {
    
    
        return ResultUtil.error("课时不存在");
    }
    User currUser = securityUtil.getCurrUser();
    TrainComment tc = new TrainComment();
    tc.setItemId(item.getId());
    tc.setItemName(item.getTitle());
    tc.setUserId(currUser.getId());
    tc.setUserName(currUser.getNickname());
    tc.setTime(DateUtil.now());
    tc.setContent(content);
    iTrainCommentService.saveOrUpdate(tc);
    return ResultUtil.success();
}

6. Disclaimer

  • This project is for personal study only. For commercial authorization, please contact the blogger, otherwise you will be responsible for the consequences.
  • The blogger owns all content and independent intellectual property rights of the application system built by this software, and has the final right of interpretation.
  • If you have any questions, please leave a message in the warehouse Issue. We will reply as soon as possible after seeing it. Relevant opinions will be considered as appropriate, but there is no promise or guarantee that they will be adopted.

Users who download this system code or use this system must agree to the following content, otherwise please do not download!

  1. You use/develop this software voluntarily, understand the risks of using this software, and agree to bear the risks of using this software.
  2. Any information content of the website built using this software and any resulting copyright disputes, legal disputes and consequences have nothing to do with the blogger, and the blogger does not bear any responsibility for this.
  3. Under no circumstances will the blogger be liable for any loss that is difficult to reasonably predict (including but not limited to loss of commercial profits, business interruption, and loss of business information) resulting from the use or inability to use this software.
  4. You must understand the risks of using this software. The blogger does not promise to provide one-on-one technical support or use guarantee, nor does it assume any responsibility for unforeseen problems caused by this software.

Insert image description here

Guess you like

Origin blog.csdn.net/yangyin1998/article/details/134803360