Java毕业设计项目实战篇|Java项目:大学生实习管理系统(java+SpringBoot+Thymeleaf+html+JQuery+bootstrap)

源码获取:博客首页 "资源" 里下载!
项目介绍
本系统的用户可以分为三种:管理员、教师、学生。三种角色登录后会有不同菜单界面;
管理员主要功能:
信息管理
学生信息管理、教师信息管理、生产实习信息管理、顶岗实习信息管理;
生产实习
生产实习申请、我的生产实习、我的成绩、我的申请
顶岗实习
顶岗实习申请、我的顶岗实习、我的成绩、我的申请
实习管理
生产实习管理
生产实习过程管理
生产实习成绩统计
顶岗实习审核
顶岗实习过程管理
顶岗实习成绩统计
分享
系统管理
用户管理
菜单管理
角色信息管理
教师主要功能:
信息管理
学生信息管理;
实习管理
生产实习审核
生产实习过程管理
生产实习成绩统计
顶岗实习审核
顶岗实习过程管理
顶岗实习成绩统计
分享
信息审核;
我的分享、讨论区;
【Java毕业设计项目实战篇|Java项目:大学生实习管理系统(java+SpringBoot+Thymeleaf+html+JQuery+bootstrap)】学生主要功能:
生产实习:
生产实习申请;
我的生产实习;
我的成绩;
我的申请;
顶岗实习:
顶岗实习申请;
我的顶岗实习;
我的成绩;
我的申请;
分享:
我的分享;
讨论区;
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目
6.数据库:MySql 5.7版本;
技术栈
1.核心框架:Spring Boot。
2.安全框架:Apache Shiro。
3.模板引擎:Thymeleaf。
4.持久层框架:MyBatis。
5.定时任务:Quartz。
6.数据库连接池:Druid。
7.工具类:Fastjson。
8.前端:Thymeleaf+html+JQuery+bootstrap
使用说明
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 将项目中ruoyi-admin/src/main/resources/application-druid.yml配置文件中的数据库配置改为自己的配置;
3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean; maven install命令,配置tomcat,然后运行;
4. 运行项目,输入localhost:8092 登录
Java毕业设计项目实战篇|Java项目:大学生实习管理系统(java+SpringBoot+Thymeleaf+html+JQuery+bootstrap)
文章图片


Java毕业设计项目实战篇|Java项目:大学生实习管理系统(java+SpringBoot+Thymeleaf+html+JQuery+bootstrap)
文章图片

Java毕业设计项目实战篇|Java项目:大学生实习管理系统(java+SpringBoot+Thymeleaf+html+JQuery+bootstrap)
文章图片


Java毕业设计项目实战篇|Java项目:大学生实习管理系统(java+SpringBoot+Thymeleaf+html+JQuery+bootstrap)
文章图片

Java毕业设计项目实战篇|Java项目:大学生实习管理系统(java+SpringBoot+Thymeleaf+html+JQuery+bootstrap)
文章图片

Java毕业设计项目实战篇|Java项目:大学生实习管理系统(java+SpringBoot+Thymeleaf+html+JQuery+bootstrap)
文章图片


管理员信息 前端控制器:
/** * * 管理员信息 前端控制器 *
* * @author yy */ @RestController @RequestMapping("/stu-user") public class StuUserController {@Autowired private Producer producer; @Autowired private IStuUserService iStuUserService; @Autowired private AuthenticationManager authenticationManager; private final Logger log = Logger.getLogger(StuUserController.class); @GetMapping("/user-list") public HttpResponse getUserList(NormalQueryInfo normalQueryInfo){ return HttpResponse.success(iStuUserService.getUserList(normalQueryInfo)); }@PostMapping("/edit") public HttpResponse editUser(@RequestBody StuUser stuUser){ return HttpResponse.success(iStuUserService.editUser(stuUser)); }@DeleteMapping("/del") public HttpResponse delUser(@RequestBody StuUser stuUser){ return HttpResponse.success(iStuUserService.deleteUser(stuUser)); } /** * 验证码 */ @GetMapping("/captcha.jpg") public void captcha(HttpServletResponse response, HttpServletRequest request) throws IOException { response.setHeader("Cache-Control", "no-store, no-cache"); response.setContentType("image/jpeg"); // 生成文字验证码 String text = producer.createText(); // 生成图片验证码 BufferedImage image = producer.createImage(text); // 保存到验证码到 session request.getSession().setAttribute(Constants.KAPTCHA_SESSION_KEY, text); ServletOutputStream out = response.getOutputStream(); ImageIO.write(image, "jpg", out); IOUtils.closeQuietly(out); }/** * 登录接口 */ @PostMapping(value = "https://www.it610.com/login") public HttpResponse login(@RequestBody LoginRequest loginRequest, HttpServletRequest request) throws IOException { String username = loginRequest.getAccount(); String password = loginRequest.getPassword(); //String captcha = loginBean.getCaptcha(); // 从session中获取之前保存的验证码跟前台传来的验证码进行匹配 //Object kaptcha = request.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY); //if(kaptcha == null){ //return HttpResult.error("验证码已失效"); //} //if(!captcha.equals(kaptcha)){ //return HttpResult.error("验证码不正确"); //} //// 用户信息 //System.out.println(username+"|"+password+"|"+captcha+" "); StuUser user = iStuUserService.findByName(username); // 账号不存在、密码错误 if (user == null) { return HttpResponse.error("账号不存在"); } if (!PasswordUtils.matches(user.getSalt(), password, user.getPassword())) { return HttpResponse.error("密码不正确"); } JwtAuthenticatioToken token = SecurityUtils.login(request, username, password, authenticationManager); log.info("user:"+token.getName()+"login Success! [In "+token.getDetails().toString()+"]"); return HttpResponse.success(new LoginResponse(token.getName(),token.getToken(),"OK!")); }@PostMapping(value="https://www.it610.com/save") public HttpResponse addUser(@RequestBody StuUser stuUser) { return HttpResponse.success(iStuUserService.addUser(stuUser)); }@GetMapping(value="https://www.it610.com/findByName") public HttpResponse findByUserName(@RequestParam String name) { return HttpResponse.success(iStuUserService.findByName(name)); } }

教师个人详细信息 前端控制器:
/** * * 教师个人详细信息 前端控制器 *
* * @author yy */ @RestController @RequestMapping("/stu-teacher-info") public class StuTeacherInfoController {@Autowired private IStuTeacherInfoService iStuTeacherInfoService; @GetMapping("/get") public HttpResponse getTeacherInfosList(NormalQueryInfo normalQueryInfo){ return HttpResponse.success(iStuTeacherInfoService.getTeacherInfosList(normalQueryInfo)); }@PostMapping("/add") public HttpResponse addTeacherInfosList(@RequestBody StuTeacherInfo stuTeacherInfo){ String res = iStuTeacherInfoService.addTeacherInfosList(stuTeacherInfo); return res == null ? HttpResponse.success() : HttpResponse.error(res) ; }@PostMapping("/edit") public HttpResponse editTeacherInfosList(@RequestBody StuTeacherInfo stuTeacherInfo){ return HttpResponse.success(iStuTeacherInfoService.editTeacherInfosList(stuTeacherInfo)); }@DeleteMapping("/del") public HttpResponse delTeacherInfosList(@RequestBody StuTeacherInfo stuTeacherInfo){ return HttpResponse.success(iStuTeacherInfoService.delTeacherInfosList(stuTeacherInfo)); }@GetMapping("/remove-course-teacher") public HttpResponse delCourse(@RequestParam("teacherId") Integer teacherId){ return HttpResponse.success(iStuTeacherInfoService.setCourseTeacherById(teacherId,-1)); }@GetMapping("/get-no-course") public HttpResponse getAllTeacherInfosListNoCourse(){ return HttpResponse.success(iStuTeacherInfoService.getAllTeacherInfosListNoCourse()); }@GetMapping("/set-course") public HttpResponse setCourseTeacher(@RequestParam(value = "https://www.it610.com/article/teacherId") Integer teacherId, @RequestParam(value = "https://www.it610.com/article/courseId") Integer courseId){ return HttpResponse.success(iStuTeacherInfoService.setCourseTeacherById(teacherId,courseId)); }}

学生信息 前端控制器:
/** * * 学生信息 前端控制器 *
* * @author yy */ @RestController @RequestMapping("/stu-info") public class StuInfoController {@Autowired private IStuInfoService iStuInfoService; /** * 分页查询全部信息 * */ @GetMapping("/get") public HttpResponse getPageStudentInfo(QueryStuInfoListRequest queryStuInfoListRequest){ return HttpResponse.success(iStuInfoService.getPageStudentInfo( queryStuInfoListRequest.getPageNum(), queryStuInfoListRequest.getPageSize() )); }/** * 对基本信息进行高级查询 * */ @GetMapping("/get-test") public HttpResponse getPageStudentInfoByCondition(QueryStuInfoListRequest queryStuInfoListRequest){ iStuInfoService.getStudentInfoByCondition(queryStuInfoListRequest); QueryListResponse queryStuInfoListResponse = iStuInfoService.getStudentInfoByCondition(queryStuInfoListRequest); //如果stuInfoListResponse.getNumOfTotalRecord() < 0 ,则表明输入类型和预期不符且发生异常,则返回错误 return queryStuInfoListResponse.getNumOfTotalRecord() < 0 ? HttpResponse.error("输入信息类型错误!") : HttpResponse.success(queryStuInfoListResponse); }/** * 添加学生信息 * */ @PostMapping("/add") public HttpResponse addStudentInfo(@RequestBody StuInfo stuInfo){ String res = iStuInfoService.addStudentInfo(stuInfo); //返回信息的长度大于0,则表示有错误或有提示信息 return res.length() > 0 ? HttpResponse.error(res) : HttpResponse.success("成功插入一条记录") ; }/** * 编辑学生性别或手机号信息 * */ @PostMapping("/edit") public HttpResponse editStudentSexOrPhoneInfo(@RequestBody StuInfo stuInfo){ return HttpResponse.success(iStuInfoService.editStudentInfo(stuInfo)); }/** * 根据学号删除学生信息 * */ @DeleteMapping("/delete") public HttpResponse deleteStudentInfoByNumber(@RequestBody StuInfo stuInfo){ return HttpResponse.success(iStuInfoService.deleteStudentInfo(stuInfo)); }/** * 修改学生违纪状态 * */ @PostMapping("/change") public HttpResponse changeStudentStatus(@RequestBody StuInfo stuInfo){ return HttpResponse.success(iStuInfoService.changeStudentStatus(stuInfo)); } }


源码获取:博客首页 "资源" 里下载!

    推荐阅读