“This is the 16th day of my participation in the First Challenge 2022. For details: First Challenge 2022

Introduction:

The online course of epidemic will also be operated intelligently by computer. There are a lot of management and data preservation involved in the management system of the online course of epidemic, such as administrators. Home page, personal center, student management, teacher management, class management, course classification management, curriculum management, course information management, homework information management, leave information management, class check-in management, forum exchange, system management, students; Home page, personal center, curriculum management, course information management, homework information management, leave information management, class check-in management, teachers; Home page, personal center, student management, class management, course classification management, curriculum management, course information management, homework information management, leave information management, class check-in management, system management, front desk home page; Home page announcements, syllabus, BBS communication, school, personal center, background management, teachers and students chat, and other functions, this brought a huge challenge to the manager’s job, in the face of large amounts of information, the traditional management system, is by way of notes in detail information statistics, computer, to come through the computer input software will print information statistics to computer, This method is more traditional, and it is more troublesome to obtain statistical data and information, but also affected by time and space, so the development of the epidemic online course management system; It provides a convenient management platform for students, which is convenient for administrators to view and maintain, and can edit and maintain the content according to requirements. For students and teachers, can at any time of the query information, the administrator can never leave home can access to the system of data information, etc, but also can save a lot of time, students and teachers so development network class epidemic management system to management has brought great convenience, but also convenient for the administrator to process information for students and teachers.

Language Technology:

Development tools: IDEA 2021.3, Navicat for mysql, Postman.

Development language: Java, JDk1.8, mysql5, Node.js 14.

Hardware environment: Windows 10 operating system, Google Browser, etc.

Main technologies: Springboot, Mybatis – Plus, Vue, Element UI, Shiro, mysql, etc

Functional design:

Administrator: administrator login can carry out home page, personal center, student management, teacher management, class management, course classification management, curriculum management, course information management, homework information management, leave information management, class check-in management, forum exchange, system management, etc.

Student user: after registration and login, students can carry out home page, personal center, curriculum management, course information management, homework information management, leave information management, class check-in management

Function screenshots:

System multi-role login, different users have different permissions.

Students can click into the system operation interface to view the home page, personal center, curriculum management, course information management, homework information management, leave information management, class check-in management and other functional modules.

Student registration: On the student registration page, you can fill in the student ID, password, student, age, mobile phone, email and other information to register

Enter the account and password on the login page, as shown in Figure 5-16. On the forum page, fill in the title, type, content and other information to publish posts.

Forum Communication Module

 

The curriculum:

Learning bulletin module:

Forum communication module:

School Announcement module:

User personal Center:

Background modules for ordinary students:

Change password:

View course schedule information:

View course information:

View job information:

Leave information:

Class check-in, etc. :

Background administrator: administrators can log in the system after the home page, personal center, student management, teacher management, class management, course classification management, curriculum management, curriculum information management, homework information management, leave information management, class check-in management, forum exchange, system management and other operations.

Student Management:

 

Teacher management:

Class management:

Course Management:

Course classification management:

Schedule management:

Course Information Management:

Job information Management:

Class attendance management:

Forum exchange:

System home page rotation diagram:

The school bulletin

Data design:

## table banji

Serial number The name of the The data type The length of the Decimal places Allows null values A primary key instructions
1 id bigint 20 0 N Y A primary key
2 addtime timestamp 19 0 N N Creation time
3 banji varchar 200 0 Y N The class

Chat with teachers and students

Serial number The name of the The data type The length of the Decimal places Allows null values A primary key instructions
1 id bigint 20 0 N Y A primary key
2 addtime timestamp 19 0 N N Creation time
3 userid bigint 20 0 N N The user id
4 adminid bigint 20 0 Y N Administrator id
5 ask longtext 2147483647 0 Y N Ask questions
6 reply longtext 2147483647 0 Y N reply
7 isreply int 10 0 Y N Whether the reply

Table config (Configuration file)

Serial number The name of the The data type The length of the Decimal places Allows null values A primary key instructions
1 id bigint 20 0 N Y A primary key
2 name varchar 100 0 N N Configuration Parameter Name
3 value varchar 100 0 Y N Setting Parameter Values

Table forum

Serial number The name of the The data type The length of the Decimal places Allows null values A primary key instructions
1 id bigint 20 0 N Y A primary key
2 addtime timestamp 19 0 N N Creation time
3 title varchar 200 0 Y N Post title
4 content longtext 2147483647 0 N N Post content
5 parentid bigint 20 0 Y N The parent node id
6 userid bigint 20 0 N N The user id
7 username varchar 200 0 Y N The user name
8 isdone varchar 200 0 Y N state
# #Table Jiaoshi (teacher)
Serial number The name of the The data type The length of the Decimal places Allows null values A primary key instructions
1 id bigint 20 0 N Y A primary key
2 addtime timestamp 19 0 N N Creation time
3 gonghao varchar 200 0 N N Work number
4 mima varchar 200 0 N N password
5 jiaoshi varchar 200 0 N N Teachers’
6 xingbie varchar 200 0 Y N gender
7 nianling int 10 0 Y N age
8 zhicheng varchar 200 0 Y N The title
9 shouji varchar 200 0 Y N Mobile phone
10 youxiang varchar 200 0 Y N email
11 zhaopian varchar 200 0 Y N photo

Table KEChengbiao

Serial number The name of the The data type The length of the Decimal places Allows null values A primary key instructions
1 id bigint 20 0 N Y A primary key
2 addtime timestamp 19 0 N N Creation time
3 biaoti varchar 200 0 Y N The title
4 banji varchar 200 0 Y N The class
5 fengmian varchar 200 0 Y N The cover
6 kebiao varchar 200 0 Y N schedule

Table KECHengFENlei (Course Classification)

Serial number The name of the The data type The length of the Decimal places Allows null values A primary key instructions
1 id bigint 20 0 N Y A primary key
2 addtime timestamp 19 0 N N Creation time
3 fenlei varchar 200 0 Y N classification

Table KECHengxinxi (Course information)

Serial number The name of the The data type The length of the Decimal places Allows null values A primary key instructions
1 id bigint 20 0 N Y A primary key
2 addtime timestamp 19 0 N N Creation time
3 biaoti varchar 200 0 Y N The title
4 gonghao varchar 200 0 Y N Work number
5 jiaoshi varchar 200 0 Y N Teachers’
6 kecheng varchar 200 0 Y N course
7 banji varchar 200 0 Y N The class
8 zuoye varchar 200 0 Y N homework

Table NEWS (School Bulletin)

Serial number The name of the The data type The length of the Decimal places Allows null values A primary key instructions
1 id bigint 20 0 N Y A primary key
2 addtime timestamp 19 0 N N Creation time
3 title varchar 200 0 N N The title
4 introduction longtext 2147483647 0 Y N Introduction to the
5 picture varchar 200 0 N N The picture
6 content longtext 2147483647 0 N N content

Table Qingjiaxinxi

Serial number The name of the The data type The length of the Decimal places Allows null values A primary key instructions
1 id bigint 20 0 N Y A primary key
2 addtime timestamp 19 0 N N Creation time
3 xuehao varchar 200 0 Y N Student id
4 xuesheng varchar 200 0 Y N students
5 banji varchar 200 0 Y N The class
6 qishishijian date 10 0 Y N Starting time
7 jieshushijian date 10 0 Y N The end of time
8 qingjialiyou longtext 2147483647 0 Y N Leave reason
9 sfsh varchar 200 0 Y N Whether the audit
10 shhf longtext 2147483647 0 Y N Review the reply

Shangkeqiandao (Class check-in)

Serial number The name of the The data type The length of the Decimal places Allows null values A primary key instructions
1 id bigint 20 0 N Y A primary key
2 addtime timestamp 19 0 N N Creation time
3 daka varchar 200 0 Y N Clock in
4 xuehao varchar 200 0 Y N Student id
5 xuesheng varchar 200 0 Y N students
6 banji varchar 200 0 Y N The class
7 tiwen varchar 200 0 Y N Body temperature
8 kecheng varchar 200 0 Y N course
9 dakashijian datetime 19 0 Y N Clock time

Table storeup

Serial number The name of the The data type The length of the Decimal places Allows null values A primary key instructions
1 id bigint 20 0 N Y A primary key
2 addtime timestamp 19 0 N N Creation time
3 userid bigint 20 0 N N The user id
4 refid bigint 20 0 Y N The collection id
5 tablename varchar 200 0 Y N The name of the table
6 name varchar 200 0 N N The name of the collection
7 picture varchar 200 0 N N Collect pictures

Table Token (Token table)

Serial number The name of the The data type The length of the Decimal places Allows null values A primary key
1 id bigint 20 0 N Y
2 userid bigint 20 0 N N
3 username varchar 100 0 N N
4 tablename varchar 100 0 Y N
5 role varchar 100 0 Y N
6 token varchar 200 0 N N
7 addtime timestamp 19 0 N N
8 expiratedtime timestamp 19 0 N N

Table users

Serial number The name of the The data type The length of the Decimal places Allows null values A primary key The default value instructions
1 id bigint 20 0 N Y A primary key
2 username varchar 100 0 N N The user name
3 password varchar 100 0 N N password
4 role varchar 100 0 Y N The administrator role
5 addtime timestamp 19 0 N N CURRENT_TIMESTAMP The new time

Table Xuesheng (student)

Serial number The name of the The data type The length of the Decimal places Allows null values A primary key instructions
1 id bigint 20 0 N Y A primary key
2 addtime timestamp 19 0 N N Creation time
3 xuehao varchar 200 0 N N Student id
4 mima varchar 200 0 N N password
5 xuesheng varchar 200 0 N N students
6 xingbie varchar 200 0 Y N gender
7 nianling int 10 0 Y N age
8 shouji varchar 200 0 Y N Mobile phone
9 youxiang varchar 200 0 Y N email
10 banji varchar 200 0 Y N The class
11 zhaopian varchar 200 0 Y N photo

Table zuoyexINXI (Job information)

Serial number The name of the The data type The length of the Decimal places Allows null values A primary key instructions
1 id bigint 20 0 N Y A primary key
2 addtime timestamp 19 0 N N Creation time
3 biaoti varchar 200 0 Y N The title
4 gonghao varchar 200 0 Y N Work number
5 jiaoshi varchar 200 0 Y N Teachers’
6 kecheng varchar 200 0 Y N course
7 banji varchar 200 0 Y N The class
8 xuehao varchar 200 0 Y N Student id
9 xuesheng varchar 200 0 Y N students
10 tijiaozuoye varchar 200 0 Y N Submit a job
11 tijiaoshijian datetime 19 0 Y N Submit time
12 sfsh varchar 200 0 Y N Whether the audit
13 shhf longtext 2147483647 0 Y N Review the reply

Key code:

package com.controller;

import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;

/** * Login related */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;

	/** * login */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null| |! user.getPassword().equals(password)) {return R.error("Incorrect account number or password");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/** * Register */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) ! =null) {
    		return R.error("User already exists");
    	}
        userService.insert(user);
        return R.ok();
    }

	/** * exit */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("Exit successful");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("Account does not exist");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("Password reset to 123456");
    }
	
	/** * list */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }

	/** * list */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }

    /** * info */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /** * Get user session user information */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }

    /** * save */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) ! =null) {
    		return R.error("User already exists");
    	}
        userService.insert(user);
        return R.ok();
    }

    /** * modify */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
    	UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
    	if(u! =null&& u.getId()! =user.getId() && u.getUsername().equals(user.getUsername())) {return R.error("User name already exists.");
    	}
        userService.updateById(user);// All updates
        return R.ok();
    }

    /** * delete */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}
`

```java
package com.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

import com.interceptor.AuthorizationInterceptor;

@Configuration
public class InterceptorConfig extends WebMvcConfigurationSupport{
	
	@Bean
    public AuthorizationInterceptor getAuthorizationInterceptor(a) {
        return new AuthorizationInterceptor();
    }
	
	@Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(getAuthorizationInterceptor()).addPathPatterns("/ * *").excludePathPatterns("/static/**");
        super.addInterceptors(registry);
	}
	
	/ * * * 2.0 configuration springboot WebMvcConfigurationSupport, leads to the default configuration is covered, static resource needs to be rewritten to allow access to * / addResourceHandlers method
	@Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
		registry.addResourceHandler("/ * *")
        .addResourceLocations("classpath:/resources/")
        .addResourceLocations("classpath:/static/")
        .addResourceLocations("classpath:/admin/")
        .addResourceLocations("classpath:/front/")
        .addResourceLocations("classpath:/public/");
		super.addResourceHandlers(registry); }} ' '> ## Paper report:! [](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/072ddbacf92a4e0e852448b56e728ace~tplv-k3u1fbpfcp-zoom-1.image)! [](<> "Click and drag to move ")! [](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/23539f3e916e40e59c54f3a5d6bf25fe~tplv-k3u1fbpfcp-zoom-1.image)! [](<> "Click and drag to move ")> < span style = "max-width: 100%; clear: both; Outbreak online classes the realization of the overall management system function module, mainly for their content in the university over the past few years time a test, for the system, mainly through lesson outbreak of intelligent network management system for now system implementation, and can according to the requirements for data information such as the increase of modification and deletion operation, It perfectly solves the problems encountered in the current epidemic online course management system. After a semester of graduation design implementation is nearing the end, so far, when I think back to the whole semester of system development day, harvest a lot. The main task of the graduation project is to establish an intelligent epidemic online course management system information system, mainly using SpringBoot framework and Mysql database development tools, each function module of the system corresponding to the operation, finally, the system debugging results show that the system can basically meet the functional requirements. The development of the epidemic online course management system is of great help to the improvement of my university study. It allows me to learn computer knowledge of related technical issues and communicating with people, let me realize that no matter what we do, we all need perseverance, hard work, only in this way to try and stick to it, we can succeed, can obtain the joy of success, if there is no try, just want to, it doesn't even have the chance of success, The actual operation is done, will be closer and closer to success, with the road all the way forward, the future road is beautiful. For the realization of the epidemic online course management system, it is my first time to complete a management system design. In the design process of the project, I overcame various difficulties, and in the face of these difficulties, I positive face, to find a way to solve the problem, and better grasp the theoretical knowledge and hands-on practice ability, from the development of the system to the design is completed, I completed a more comprehensive, more perfect, more secure platform management system, this also let me have made great achievement, It also makes me more confident about my future life.Copy the code