Author Homepage: Programming Compass
About the author: High-quality creator in the Java field, CSDN blog expert, invited author of Nuggets, many years of architect design experience, resident lecturer in Tencent Classroom
Main content: Java project, graduation design, resume template, learning materials, interview question bank, technical mutual assistance
Favorites, likes, don't get lost, it's good to follow the author
Get the source code at the end of the article
Item number: BS-GX-063
1. Environmental introduction
Locale: Java: jdk1.8
Database: Mysql: mysql5.7
Application server: Tomcat: tomcat8.5.31
Development tools: IDEA or eclipse
Development technology: SSM+VUE front-end and back-end separation development mode
2. Project introduction
Today in the 21st century, with the continuous development and progress of society, people's understanding of information science has developed from a low level to a high level, from the original perceptual knowledge to rational knowledge, and the importance of management has gradually been recognized by people. As we know, scientific management makes information storage accurate, fast and perfect, and can improve work management efficiency and promote its development.
The thesis mainly introduces the graduation design management system, including the current research status and the development background involved, and then discusses the design goals of the system, as well as the requirements of the system, as well as the entire design plan, and the system The design and implementation of the paper are also discussed in detail, and finally some specific tests are carried out on the graduation design management system.
This paper uses Java as the development technology to realize a graduation design management system. The main functions of the graduation design management system include: administrator: home page, personal center, personal information, student management, teacher management, file template management, forum management, system management, online topic selection management, topic opening report management, mid-term report management, Dissertation management, etc. , Teacher management: personal center, personal information, file template management, online topic selection management, teacher Q&A management, topic opening report management, mid-term report management, graduation thesis management, student question management, thesis progress management, etc. Student management: personal center, personal information, student question management, , teacher answer management, opening report management, mid-term report management, graduation thesis management, student question management, thesis progress management, my collection management and other functions. Through the design of these functional modules, the entire graduation project management system process is basically realized.
Specifically, in the system design, the B/S structure is adopted. At the same time, Java technology is also used to design on the dynamic page, and the Mysql database is used in the background. It is a very excellent graduation design management system.
In the past, relevant information management of the graduation project management system was performed manually by the staff. This method not only has low timeliness, but also is very inconvenient when it needs to be searched and changed. With the advancement of science, the maturity of technology, and the rapid development of computer informatization, society has also deeply understood that computers are very powerful. Computers have entered various fields of human social development and play a very important role. This system uses network communication and computer information storage management, which has advantages that cannot be replaced by traditional methods. For example, the calculation and retrieval speed is extremely fast, the reliability is extremely high, the storage capacity is extremely large, the confidentiality is extremely good, the storage time is extremely long, and the cost is extremely low. In terms of work efficiency, it can be greatly improved, and it can also be extended to the service level. With the network, the management of all aspects of the graduation design management system is more scientific and systematic, and more standardized and convenient.
The core teacher in the system is the system administrator. After the administrator logs in, he can manage the background system through the administrator menu. The main functions are: home page, personal center, personal information, student management, teacher management, file template management, forum management, system management, online topic selection management, topic opening report management, interim report management, graduation thesis management, student problem management, Thesis progress management and other functions. An administrator use case is shown in Figure 1 below.
Teachers: Personal center, personal information, file template management, online topic selection management, teacher Q & A management, topic opening report management, mid-term report management, graduation thesis management, student question management, thesis progress management and other functions. An example of a teacher's use is shown in Figure 2.
Students: personal center, personal information, student question management, teacher question answer management, topic opening report management,
Mid-term report management, graduation thesis management, student question management, thesis progress management, my collection and other functions. An example of student use is shown in Figure 3.
The overall functional architecture of the system is shown in Figure 4 below.
Three, system display
3.1 Front desk function module
Home page
The movie booking system modules on the homepage of the web page are as follows: homepage, online topic selection, forum, personal center background management and other functions Figure 5-1
The effect diagram of online topic selection at the front desk of the web page is shown in Figure 5-2
student registration
student login
3.1 Background management module
Administrator login
Student information management: The administrator can edit the student number, student name , password , gender, grade, class , ID card, contact number, add, delete, modify, view, and modify the password for the student information.
Teacher management: administrators can add, delete, modify, and view the teacher's name, password, title, contact number, and ID card for teachers.
System management: administrators can view carousels, news information, etc. through the system management page, upload pictures, add, delete, modify, view and maintain the entire system, etc.
Online topic selection management: administrators can add, view, modify, and delete information such as online topic selection, subject topic pictures, teacher account release time review, reply review and other information.
Interim report management: administrators modify, review, delete, and view the interim report management information
Graduation thesis management: administrators modify, review, delete and view the graduation thesis management information
Student question management: administrators can modify, review, delete, and view student question information.
File template management: Teachers can add, view, modify, delete and other operations on the system file template management .
Fourth, the core code display
package com.controller;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
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.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;
import com.entity.XueshengtitiEntity;
import com.entity.view.XueshengtitiView;
import com.service.XueshengtitiService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MPUtil;
import com.utils.CommonUtil;
/**
* 学生提题
* 后端接口
* @author
* @email
* @date 2023-04-02 10:24:02
*/
@RestController
@RequestMapping("/xueshengtiti")
public class XueshengtitiController {
@Autowired
private XueshengtitiService xueshengtitiService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,XueshengtitiEntity xueshengtiti, HttpServletRequest request){
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("xuesheng")) {
xueshengtiti.setXueshengxuehao((String)request.getSession().getAttribute("username"));
}
if(tableName.equals("jiaoshi")) {
xueshengtiti.setJiaoshigonghao((String)request.getSession().getAttribute("username"));
}
EntityWrapper<XueshengtitiEntity> ew = new EntityWrapper<XueshengtitiEntity>();
PageUtils page = xueshengtitiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xueshengtiti), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,XueshengtitiEntity xueshengtiti, HttpServletRequest request){
EntityWrapper<XueshengtitiEntity> ew = new EntityWrapper<XueshengtitiEntity>();
PageUtils page = xueshengtitiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xueshengtiti), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( XueshengtitiEntity xueshengtiti){
EntityWrapper<XueshengtitiEntity> ew = new EntityWrapper<XueshengtitiEntity>();
ew.allEq(MPUtil.allEQMapPre( xueshengtiti, "xueshengtiti"));
return R.ok().put("data", xueshengtitiService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(XueshengtitiEntity xueshengtiti){
EntityWrapper< XueshengtitiEntity> ew = new EntityWrapper< XueshengtitiEntity>();
ew.allEq(MPUtil.allEQMapPre( xueshengtiti, "xueshengtiti"));
XueshengtitiView xueshengtitiView = xueshengtitiService.selectView(ew);
return R.ok("查询学生提题成功").put("data", xueshengtitiView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
XueshengtitiEntity xueshengtiti = xueshengtitiService.selectById(id);
return R.ok().put("data", xueshengtiti);
}
/**
* 前端详情
*/
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") String id){
XueshengtitiEntity xueshengtiti = xueshengtitiService.selectById(id);
return R.ok().put("data", xueshengtiti);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody XueshengtitiEntity xueshengtiti, HttpServletRequest request){
xueshengtiti.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(xueshengtiti);
xueshengtitiService.insert(xueshengtiti);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody XueshengtitiEntity xueshengtiti, HttpServletRequest request){
xueshengtiti.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(xueshengtiti);
xueshengtitiService.insert(xueshengtiti);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody XueshengtitiEntity xueshengtiti, HttpServletRequest request){
//ValidatorUtils.validateEntity(xueshengtiti);
xueshengtitiService.updateById(xueshengtiti);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
xueshengtitiService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
* 提醒接口
*/
@RequestMapping("/remind/{columnName}/{type}")
public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
@PathVariable("type") String type,@RequestParam Map<String, Object> map) {
map.put("column", columnName);
map.put("type", type);
if(type.equals("2")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date remindStartDate = null;
Date remindEndDate = null;
if(map.get("remindstart")!=null && !map.get("remindstart").toString().equals("")) {
Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindStart);
remindStartDate = c.getTime();
map.put("remindstart", sdf.format(remindStartDate));
}
if(map.get("remindend")!=null && !map.get("remindend").toString().equals("")) {
Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindEnd);
remindEndDate = c.getTime();
map.put("remindend", sdf.format(remindEndDate));
}
}
Wrapper<XueshengtitiEntity> wrapper = new EntityWrapper<XueshengtitiEntity>();
if(map.get("remindstart")!=null && !map.get("remindstart").toString().equals("")) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null && !map.get("remindend").toString().equals("")) {
wrapper.le(columnName, map.get("remindend"));
}
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("xuesheng")) {
wrapper.eq("xueshengxuehao", (String)request.getSession().getAttribute("username"));
}
if(tableName.equals("jiaoshi")) {
wrapper.eq("jiaoshigonghao", (String)request.getSession().getAttribute("username"));
}
int count = xueshengtitiService.selectCount(wrapper);
return R.ok().put("count", count);
}
}
package com.controller;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
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.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;
import com.entity.ZhongqibaogaoEntity;
import com.entity.view.ZhongqibaogaoView;
import com.service.ZhongqibaogaoService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MPUtil;
import com.utils.CommonUtil;
/**
* 中期报告
* 后端接口
* @author
* @email
* @date 2023-04-02 10:24:01
*/
@RestController
@RequestMapping("/zhongqibaogao")
public class ZhongqibaogaoController {
@Autowired
private ZhongqibaogaoService zhongqibaogaoService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,ZhongqibaogaoEntity zhongqibaogao, HttpServletRequest request){
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("xuesheng")) {
zhongqibaogao.setXueshengxuehao((String)request.getSession().getAttribute("username"));
}
if(tableName.equals("jiaoshi")) {
zhongqibaogao.setJiaoshigonghao((String)request.getSession().getAttribute("username"));
}
EntityWrapper<ZhongqibaogaoEntity> ew = new EntityWrapper<ZhongqibaogaoEntity>();
PageUtils page = zhongqibaogaoService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, zhongqibaogao), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,ZhongqibaogaoEntity zhongqibaogao, HttpServletRequest request){
EntityWrapper<ZhongqibaogaoEntity> ew = new EntityWrapper<ZhongqibaogaoEntity>();
PageUtils page = zhongqibaogaoService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, zhongqibaogao), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( ZhongqibaogaoEntity zhongqibaogao){
EntityWrapper<ZhongqibaogaoEntity> ew = new EntityWrapper<ZhongqibaogaoEntity>();
ew.allEq(MPUtil.allEQMapPre( zhongqibaogao, "zhongqibaogao"));
return R.ok().put("data", zhongqibaogaoService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(ZhongqibaogaoEntity zhongqibaogao){
EntityWrapper< ZhongqibaogaoEntity> ew = new EntityWrapper< ZhongqibaogaoEntity>();
ew.allEq(MPUtil.allEQMapPre( zhongqibaogao, "zhongqibaogao"));
ZhongqibaogaoView zhongqibaogaoView = zhongqibaogaoService.selectView(ew);
return R.ok("查询中期报告成功").put("data", zhongqibaogaoView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
ZhongqibaogaoEntity zhongqibaogao = zhongqibaogaoService.selectById(id);
return R.ok().put("data", zhongqibaogao);
}
/**
* 前端详情
*/
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") String id){
ZhongqibaogaoEntity zhongqibaogao = zhongqibaogaoService.selectById(id);
return R.ok().put("data", zhongqibaogao);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody ZhongqibaogaoEntity zhongqibaogao, HttpServletRequest request){
zhongqibaogao.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(zhongqibaogao);
zhongqibaogaoService.insert(zhongqibaogao);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody ZhongqibaogaoEntity zhongqibaogao, HttpServletRequest request){
zhongqibaogao.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(zhongqibaogao);
zhongqibaogaoService.insert(zhongqibaogao);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody ZhongqibaogaoEntity zhongqibaogao, HttpServletRequest request){
//ValidatorUtils.validateEntity(zhongqibaogao);
zhongqibaogaoService.updateById(zhongqibaogao);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
zhongqibaogaoService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
* 提醒接口
*/
@RequestMapping("/remind/{columnName}/{type}")
public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
@PathVariable("type") String type,@RequestParam Map<String, Object> map) {
map.put("column", columnName);
map.put("type", type);
if(type.equals("2")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date remindStartDate = null;
Date remindEndDate = null;
if(map.get("remindstart")!=null && !map.get("remindstart").toString().equals("")) {
Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindStart);
remindStartDate = c.getTime();
map.put("remindstart", sdf.format(remindStartDate));
}
if(map.get("remindend")!=null && !map.get("remindend").toString().equals("")) {
Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindEnd);
remindEndDate = c.getTime();
map.put("remindend", sdf.format(remindEndDate));
}
}
Wrapper<ZhongqibaogaoEntity> wrapper = new EntityWrapper<ZhongqibaogaoEntity>();
if(map.get("remindstart")!=null && !map.get("remindstart").toString().equals("")) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null && !map.get("remindend").toString().equals("")) {
wrapper.le(columnName, map.get("remindend"));
}
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("xuesheng")) {
wrapper.eq("xueshengxuehao", (String)request.getSession().getAttribute("username"));
}
if(tableName.equals("jiaoshi")) {
wrapper.eq("jiaoshigonghao", (String)request.getSession().getAttribute("username"));
}
int count = zhongqibaogaoService.selectCount(wrapper);
return R.ok().put("count", count);
}
}
V. Project Summary
The table information of the database is part of the design, and the detailed information of each table in the database is introduced below.
Form guanliyuanxinxi Form
column name |
type of data |
length |
constraint |
id |
int |
11 |
PRIMARY KEY |
username |
varchar |
50 |
DEFAULT NULL |
pwd |
varchar |
50 |
DEFAULT NULL |
cx |
varchar |
50 |
DEFAULT NULL |
Table 3 xuesheng table
column name |
type of data |
length |
constraint |
id |
int |
10 |
PRIMARY KEY |
xueshengxuehao |
int |
50 |
DEFAULT NULL |
xueshengxingming |
varchar |
50 |
DEFAULT NULL |
xingbie |
varchar |
50 |
DEFAULT NULL |
nianji |
varchar |
50 |
DEFAULT NULL |
I'm not |
varchar |
50 |
DEFAULT NULL |
shenfenzheng |
varchar |
50 |
DEFAULT NULL |
lianxidianhua |
varchar |
50 |
DEFAULT NULL |
Table 5 jiaoshi data table
column name |
type of data |
length |
constraint |
id |
int |
11 |
PRIMARY KEY |
jiaoshigonghao |
varchar |
50 |
DEFAULT NULL |
jiaoshixingming |
varchar |
50 |
DEFAULT NULL |
mima |
varchar |
50 |
DEFAULT NULL |
zhicheng |
varchar |
50 |
DEFAULT NULL |
lianxidianhua |
int |
10 |
DEFAULT NULL |
shenfenzheng |
int |
500 |
DEFAULT NULL |
Table 6 `zaixianxuanti data sheet
column name |
type of data |
length |
constraint |
id |
int |
11 |
PRIMARY KEY |
your titi |
varchar |
10 |
DEFAULT NULL |
tupian |
varchar |
500 |
DEFAULT NULL |
jianjie |
varchar |
20 |
DEFAULT NULL |
jiaoshigonghao |
varchar |
4 |
DEFAULT NULL |
fabushijian |
varchar |
20 |
DEFAULT NULL |
sfsh |
varchar |
20 |
DEFAULT NULL |
shhf |
varchar |
20 |
DEFAULT NULL |
Table 6 `xueshengtiwen data sheet
column name |
type of data |
length |
constraint |
id |
int |
11 |
PRIMARY KEY |
woyaotiwen |
varchar |
10 |
DEFAULT NULL |
xueshengxuehao |
varchar |
500 |
DEFAULT NULL |
xueshengxingming |
varchar |
20 |
DEFAULT NULL |
jiaoshigonghao |
varchar |
4 |
DEFAULT NULL |
jiaoshixingming |
varchar |
20 |
DEFAULT NULL |
tiwenshijian |
varchar |
20 |
DEFAULT NULL |
Table 6 `laoshidayi data table
column name |
type of data |
length |
constraint |
id |
int |
11 |
PRIMARY KEY |
laoshidayi |
varchar |
10 |
DEFAULT NULL |
xueshengxuehao |
varchar |
500 |
DEFAULT NULL |
xueshengxingming |
varchar |
20 |
DEFAULT NULL |
jiaoshigonghao |
varchar |
4 |
DEFAULT NULL |
jiaoshixingming |
varchar |
20 |
DEFAULT NULL |
dayishijian |
varchar |
20 |
DEFAULT NULL |