“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 | |
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 | |
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