Graduation design management system|Graduation design management system based on SSM+VUE

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

  

Guess you like

Origin blog.csdn.net/whirlwind526/article/details/130438857