项目编号:BS-GX-042
本项目主要实现一下为学校各学科举办的竞赛进行信息化管理,通过springboot来实现后台管理系统的开发,通过Node+Vue+ElementUI实现前端页面的开发和交互,并提供了小程序端供参赛者使用查看相关的比赛信息。系统的整个业务流程十分完整,功能也比较完整,适合做毕业设计使用。
系统共涉及四个角色的使用人员:学校管理员、院系管理员、老师、学生
系统采用前后端分离开发模式开发设计,并使用三层架构和MVC设计模式。
学校管理员登陆系统:
院系管理员登陆系统:
老师登陆系统:
学生登陆系统:
微信小程序端:
语言环境:Java: jdk1.8
数据库:Mysql: mysql5.7
应用服务器:Tomcat: tomcat8.5.31
开发工具:IDEA或eclipse
语言环境:Java: jdk1.8
数据库:Mysql: mysql5.7
应用服务器:Tomcat+Nodejs
开发工具:IDEA、VSCODE、微信小程序
开发技术:
后台开发:springboot
前端开发:Nodejs+vue+ElementUI+微信小程序
后台管理人员登陆
管理员登陆
查看系统公告
竞赛管理
项目查看
竞赛申请与审报审核结果
公告管理
通知管理
信息统计
各院系管理员登陆系统
个人中心
项目管理
作品管理
学院端申请管理
信息统计
学生登陆系统
个人中心
项目列表
作品管理
竞赛列表
我的申请管理
信息通知管理
老师登陆系统
个人中心
项目管理
竞赛列表:
我的申请管理
学生申请
老师申请
学生登陆小程序端
个人中心
package com.sang.subjectcompetition.controller;
import com.sang.subjectcompetition.entity.Comp;
import com.sang.subjectcompetition.entity.Project;
import com.sang.subjectcompetition.entity.Teacher_Project;
import com.sang.subjectcompetition.entity.resultInfo.CompResult;
import com.sang.subjectcompetition.service.CompService;
import com.sang.subjectcompetition.service.ProjectService;
import org.apache.logging.log4j.util.PropertySource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Comparator;
import java.util.List;
@RestController
@RequestMapping("/comp")
public class CompController {
@Autowired
private CompService compService;
@Autowired
private ProjectService projectService;
/**
* 返回全部的竞赛信息
* @return
*/
@PostMapping("/getAllComps")
public List selectAllComp(){
List allComps = compService.getAllComps();
allComps.sort(Comparator.naturalOrder());
return allComps;
}
/**
* 发布竞赛/更新
* @param comp
* @return
*/
@PostMapping("/addComp")
public String addComp(Comp comp){
CompResult compResult = compService.createComp(comp);
return compResult.getMessage();
}
/**
* 多条件模糊查询
* @return
*/
@PostMapping("/moreSearch")
public List moreSearch(Comp comp){
String compName=comp.getCompName();
String organizer=comp.getOrganizer();
Integer level=comp.getLevel();
String subjectType=comp.getSubjectType();
String place=comp.getPlace();
Integer compState=comp.getCompState();
return compService.getCompsBySelf(compName,organizer,level,subjectType,place,compState);
}
/**
* 根据Id返回竞赛的项目
*/
@GetMapping("/getProjectLists/{compId}")
public List getProjectLists(@PathVariable Integer compId){
List projectsBycompId = projectService.getProjectsBycompId(compId);
return projectService.getProjectsBycompId(compId);
}
}
package com.sang.subjectcompetition.controller;
import com.sang.subjectcompetition.entity.*;
import com.sang.subjectcompetition.entity.resultInfo.MessageResult;
import com.sang.subjectcompetition.respository.AdminRepository;
import com.sang.subjectcompetition.respository.CollegeRepository;
import com.sang.subjectcompetition.respository.StudentRepository;
import com.sang.subjectcompetition.respository.TeacherRepository;
import com.sang.subjectcompetition.service.MessageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/msg")
public class MessageController {
@Autowired
private MessageService messageService;
@Autowired
private AdminRepository adminRepository;
@Autowired
private StudentRepository studentRepository;
@Autowired
private CollegeRepository collegeRepository;
@Autowired
private TeacherRepository teacherRepository;
@GetMapping("/getUnReadListPopup/{receiver}")
public List getUnReadListPopup(@PathVariable String receiver ){
return messageService.findUnReadMessage(receiver);
}
@GetMapping("/getUnReadList/{receive}")
public List
package com.sang.subjectcompetition.controller;
import com.sang.subjectcompetition.entity.Project;
import com.sang.subjectcompetition.entity.resultInfo.ProResult;
import com.sang.subjectcompetition.service.ProjectService;
import com.sang.subjectcompetition.service.StudentService;
import com.sang.subjectcompetition.service.TeacherService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Comparator;
import java.util.List;
import java.util.TreeSet;
/**
* 项目管理
*/
@RestController
@RequestMapping("/project")
public class ProjectController {
@Autowired
private ProjectService projectService;
@Autowired
private TeacherService teacherService;
@Autowired
private StudentService studentService;
/**
* 得到参加项目的老师
* @param projectId
* @return
*/
@GetMapping("/getProjectJoinTeacher/{projectId}")
public List getProjectJoinTeacher(@PathVariable Integer projectId){
return projectService.getProjectJoinTeacher(projectId);
}
/**
* 得到参加项目的学生
* @param projectId
* @return
*/
@GetMapping("/getProjectJoinStudent/{projectId}")
public List getProjectJoinStudent(@PathVariable Integer projectId){
return projectService.getProjectJoinStudent(projectId);
}
/**
* 根据学院id来得到模糊查询
* @param project
* @param collegeId
* @return
*/
@PostMapping("/getMoreSearchProjectByCollege")
public List getMoreSearchProjectByCollege(Project project,Integer collegeId){
List moreSearchProjectByCollege = projectService.getMoreSearchProjectByCollege(collegeId, project);
moreSearchProjectByCollege.sort(Comparator.naturalOrder());
return moreSearchProjectByCollege;
}
/**
* 根据学院id来得到模糊查询
* @param project
* @param teacherId
* @return
*/
@PostMapping("/getMoreSearchProjectByTeacher")
public List getMoreSearchProjectByTeacher(Project project,Integer teacherId){
Integer collegeId=teacherService.getTeacherById(teacherId).getCollege().getId();
List projects = projectService.getMoreSearchProjectByCollege(collegeId, project);
projects.sort(Comparator.naturalOrder());
return projects;
}
/**
* 根据学院id来得到模糊查询
* @param project
* @param studentId
* @return
*/
@PostMapping("/getMoreSearchProjectByStudent")
public List getMoreSearchProjectByStudent(Project project,Integer studentId){
Integer collegeId=studentService.getStudentById(studentId).getCollege().getId();
List moreSearchProjectByCollege = projectService.getMoreSearchProjectByCollege(collegeId, project);
moreSearchProjectByCollege.sort(Comparator.naturalOrder());
return moreSearchProjectByCollege;
}
/**
* 根据学院id来得到模糊查询
* @param project
* @return
*/
@PostMapping("/getMoreSearchAllProjects")
public List getMoreSearchAllProjects(Project project){
List moreSearchAllProject = projectService.getMoreSearchAllProject(project);
moreSearchAllProject.sort(Comparator.naturalOrder());
return moreSearchAllProject;
}
/**
* 得到学生参与的项目集合
* @param studentId
* @return
*/
@GetMapping("/getStudentProjects/{studentId}")
public List getStudentProjects(@PathVariable Integer studentId){
List studentProjects = projectService.getStudentProjects(studentId);
studentProjects.sort(Comparator.naturalOrder());
return studentProjects;
}
/**
* 得到教师领队的项目
* @param teacherId
* @return
*/
@GetMapping("/getTeacherJoinProjects/{teacherId}")
public List getTeacherJoinProjects(@PathVariable Integer teacherId){
List teacherJoinProjects = projectService.getTeacherJoinProjects(teacherId);
teacherJoinProjects.sort(Comparator.naturalOrder());
return teacherJoinProjects;
}
/**
* 解散项目组
* @param projectId
* @return
*/
@GetMapping("/invokeProject/{projectId}")
public ProResult invokeProject(@PathVariable Integer projectId) {
return teacherService.invokeProject(projectId);
}
}
本项目设计功能丰富,所使用的技术比较符合现在毕业设计的要求,使用springboot开发后台服务接口,使用Node+Vue开发前端操作界面,并使用微信小程序开发小程序端供用户使用。项目比较适合做毕业设计使用。