900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 微信小程序|Springboot+Node+Vue实现学科竞赛管理系统

微信小程序|Springboot+Node+Vue实现学科竞赛管理系统

时间:2020-01-15 10:46:48

相关推荐

微信小程序|Springboot+Node+Vue实现学科竞赛管理系统

作者主页:编程千纸鹤

作者简介:Java、前端、Pythone开发多年,做过高程,项目经理,架构师

主要内容:Java项目开发、毕业设计开发、面试技术整理、最新技术分享

项目编号: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.p;import com.sang.subjectcompetition.entity.Project;import com.sang.subjectcompetition.entity.Teacher_Project;import com.sang.subjectcompetition.pResult;import com.sang.pService;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 parator;import java.util.List;@RestController@RequestMapping("/comp")public class CompController {@Autowiredprivate CompService compService;@Autowiredprivate ProjectService projectService;/*** 返回全部的竞赛信息* @return*/@PostMapping("/getAllComps")public List<Comp> selectAllComp(){List<Comp> 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<Comp> 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<Project> getProjectLists(@PathVariable Integer compId){List<Project> 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 {@Autowiredprivate MessageService messageService;@Autowiredprivate AdminRepository adminRepository;@Autowiredprivate StudentRepository studentRepository;@Autowiredprivate CollegeRepository collegeRepository;@Autowiredprivate TeacherRepository teacherRepository;@GetMapping("/getUnReadListPopup/{receiver}")public List<Message> getUnReadListPopup(@PathVariable String receiver ){return messageService.findUnReadMessage(receiver);}@GetMapping("/getUnReadList/{receive}")public List<Map<String ,Object>> getUnReadList(@PathVariable String receive){List<Map<String ,Object>> result=new ArrayList<>();List<Message> unReadMessage = messageService.findUnReadMessage(receive);for (Message message : unReadMessage) {Map<String ,Object> map=new HashMap<>();map.put("id",message.getId());map.put("date",message.getMsgDate());map.put("title",message.getTitle());map.put("content",message.getContent());if(message.getSenderRole()==0){Student student = studentRepository.findStudentByTargetId(message.getSender());map.put("sendUsername",student.getUsername());map.put("sendName",student.getNickname());}else if(message.getSenderRole()==1){Teacher teacher = teacherRepository.findTeacherByTargetId(message.getSender());map.put("sendUsername",teacher.getUsername());map.put("sendName",teacher.getNickname());}else if(message.getSenderRole()==2){College college = collegeRepository.findCollegeByTargetId(message.getSender());map.put("sendUsername",college.getUsername());map.put("sendName",college.getNickname());}else{Admin admin = adminRepository.findAdminByTargetId(message.getSender());map.put("sendUsername",admin.getUsername());map.put("sendName",admin.getNickname());}result.add(map);}return result;}@GetMapping("/getReadList/{receive}")public List<Map<String ,Object>> getReadList(@PathVariable String receive){List<Map<String ,Object>> result=new ArrayList<>();List<Message> readMessage = messageService.findReadMessage(receive);for (Message message : readMessage) {Map<String ,Object> map=new HashMap<>();map.put("id",message.getId());map.put("date",message.getMsgDate());map.put("title",message.getTitle());map.put("content",message.getContent());if(message.getSenderRole()==0){Student student = studentRepository.findStudentByTargetId(message.getSender());map.put("sendUsername",student.getUsername());map.put("sendName",student.getNickname());}else if(message.getSenderRole()==1){Teacher teacher = teacherRepository.findTeacherByTargetId(message.getSender());map.put("sendUsername",teacher.getUsername());map.put("sendName",teacher.getNickname());}else if(message.getSenderRole()==2){College college = collegeRepository.findCollegeByTargetId(message.getSender());map.put("sendUsername",college.getUsername());map.put("sendName",college.getNickname());}else{Admin admin = adminRepository.findAdminByTargetId(message.getSender());map.put("sendUsername",admin.getUsername());map.put("sendName",admin.getNickname());}result.add(map);}return result;}@GetMapping("/markMessage/{messageId}")public MessageResult markMessage(@PathVariable Integer messageId){return messageService.markRead(messageId);}@GetMapping("/deleteMessage/{messageId}")public MessageResult deleteMessage(@PathVariable Integer messageId){return messageService.deleteMessage(messageId);}}

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 parator;import java.util.List;import java.util.TreeSet;/*** 项目管理*/@RestController@RequestMapping("/project")public class ProjectController {@Autowiredprivate ProjectService projectService;@Autowiredprivate TeacherService teacherService;@Autowiredprivate 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<Project> getMoreSearchProjectByCollege(Project project,Integer collegeId){List<Project> moreSearchProjectByCollege = projectService.getMoreSearchProjectByCollege(collegeId, project);moreSearchProjectByCollege.sort(Comparator.naturalOrder());return moreSearchProjectByCollege;}/*** 根据学院id来得到模糊查询* @param project* @param teacherId* @return*/@PostMapping("/getMoreSearchProjectByTeacher")public List<Project> getMoreSearchProjectByTeacher(Project project,Integer teacherId){Integer collegeId=teacherService.getTeacherById(teacherId).getCollege().getId();List<Project> projects = projectService.getMoreSearchProjectByCollege(collegeId, project);projects.sort(Comparator.naturalOrder());return projects;}/*** 根据学院id来得到模糊查询* @param project* @param studentId* @return*/@PostMapping("/getMoreSearchProjectByStudent")public List<Project> getMoreSearchProjectByStudent(Project project,Integer studentId){Integer collegeId=studentService.getStudentById(studentId).getCollege().getId();List<Project> moreSearchProjectByCollege = projectService.getMoreSearchProjectByCollege(collegeId, project);moreSearchProjectByCollege.sort(Comparator.naturalOrder());return moreSearchProjectByCollege;}/*** 根据学院id来得到模糊查询* @param project* @return*/@PostMapping("/getMoreSearchAllProjects")public List<Project> getMoreSearchAllProjects(Project project){List<Project> moreSearchAllProject = projectService.getMoreSearchAllProject(project);moreSearchAllProject.sort(Comparator.naturalOrder());return moreSearchAllProject;}/*** 得到学生参与的项目集合* @param studentId* @return*/@GetMapping("/getStudentProjects/{studentId}")public List<Project> getStudentProjects(@PathVariable Integer studentId){List<Project> studentProjects = projectService.getStudentProjects(studentId);studentProjects.sort(Comparator.naturalOrder());return studentProjects;}/*** 得到教师领队的项目* @param teacherId* @return*/@GetMapping("/getTeacherJoinProjects/{teacherId}")public List<Project> getTeacherJoinProjects(@PathVariable Integer teacherId){List<Project> 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开发前端操作界面,并使用微信小程序开发小程序端供用户使用。项目比较适合做毕业设计使用。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。