基于springboot的学生实习信息管理系统

收藏关注不迷路,源码文章末


一、项目介绍

  学生实习信息管理系统利用Java的SpringBoot框架开发的一款Web程序,数据存储到MySQL中,前台使用Html技术进行设计和实现。本文先充分调查学生实习信息管理系统的需求分析,深入剖析系统应该具有的功能,并设计完善的数据库。利用成熟的开发技术完成编码工作,最后进行投入前的测试工作。最终,完成前台和后台的学生实习信息管理系统的功能,主要包括学生信息管理、实习材料管理、学生实习管理等,通过前后台实现数据的传递。
关键词:学生实习、Java语言、MYSQL数据库、实习材料

二、开发环境

开发语言:Java
框架:springboot
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven
————————————————

三、功能介绍

本文设计实现的学生实习信息管理系统根据用户角色又分为管理员、老师、学生用户角色,管理员可以管理系统基本信息、管理老师、管理学生、查看学生实习材料的审批信息;老师具有实习信息管理、学生实习审批等功能;学生用户功能包括用户信息管理、上传实习材料、查看材料审阅。
其中系统用例图如3.1所示:
在这里插入图片描述

图3.1系统用例图
管理员可以管理系统基本信息;老师用户管理学生实习和学生信息,对材料信息进行审批操作。学生用户在线进行上传实习材料、完成后查看材料审阅结果。

高校学生实习系统本质上是一个学生实习浏览和在线预约的平台,从用户角度,系统将包括学生、老师和管理员。
系统功能结构图如下图4-2所示。
在这里插入图片描述

图 4.2 管理员功能结构图
学生实习信息管理系统的老师用户使用用户名和密码进行登录。老师审核模块,主要概述为打开老师审核页面,审核学生提交的学生实习材料信息,当学生进行实习时,上传材料,若同意,则审核通过;若不同意学生学生实习材料,则给学生提示审核未通过的信息。
管理员功能如下:管理学生信息、管理老师、查看实习信息、实习材料信息、材料审阅信息。
老师功能:管理个人的信息,管理学生实习信息,材料审阅、修改个人资料管理。
学生功能:多种方式查询学生实习,上传实习材料,可以查看材料审阅结果。学生定期对个人信息进行修改,包括个人信息和密码信息,最终通过注销后退出本系统。

四、核心代码

部分代码:

package com.example.controller;

import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import com.example.common.Result;
import com.example.common.ResultCode;
import com.example.entity.Caiwu;
import com.example.exception.CustomException;
import com.example.service.CaiwuService;
import com.example.utils.MapWrapperUtils;
import com.example.utils.jwt.JwtUtil;
import com.example.vo.CaiwuVo;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping(value = "/caiwu")
public class CaiwuController {

    @Resource
    private CaiwuService caiwuService;

    @PostMapping
    public Result<Caiwu> add(@RequestBody CaiwuVo caiwu) {
        caiwuService.add(caiwu);
           return Result.success(caiwu);
    }
	
	

    @PostMapping("/deleteList")
    public Result<Caiwu> deleteList(@RequestBody CaiwuVo caiwu) {
        caiwuService.deleteList(caiwu.getList());
        return Result.success();
    }

    @DeleteMapping("/{id}")
    public Result delete(@PathVariable Long id) {
        caiwuService.delete(id);
        return Result.success();
    }

    @PutMapping
    public Result update(@RequestBody CaiwuVo caiwu) {
        caiwuService.update(caiwu);
        return Result.success();
    }

    @GetMapping("/{id}")
    public Result<Caiwu> detail(@PathVariable Integer id) {
        Caiwu caiwu = caiwuService.findById(id);
        return Result.success(caiwu);
    }

    @GetMapping
    public Result<List<Caiwu>> all() {
        return Result.success(caiwuService.list());
    }

    @PostMapping("/page")
    public Result<CaiwuVo> page(@RequestBody CaiwuVo caiwuVo) {
        return Result.success(caiwuService.findPage(caiwuVo));
    }
	    @PostMapping("/login")
    public Result login(@RequestBody Caiwu caiwu, HttpServletRequest request) {
        if (StrUtil.isBlank(caiwu.getZhanghao()) || StrUtil.isBlank(caiwu.getMima())) {
            throw new CustomException(ResultCode.PARAM_LOST_ERROR);
        }
        Caiwu login = caiwuService.login(caiwu);
//        if(!login.getStatus()){
//            return Result.error("1001","状态限制,无法登录系统");
//        }
        if(login != null) {
            HashMap hashMap = new HashMap();
            hashMap.put("user", login);
            Map<String, Object> map = MapWrapperUtils.builder(MapWrapperUtils.KEY_USER_ID,caiwu.getId());
            String token = JwtUtil.creatToken(map);
            hashMap.put("token", token);
            return Result.success(hashMap);
        }else {
            return Result.error();
        }
    }
    @PutMapping("/updatePassword")
    public Result updatePassword(@RequestBody Caiwu info, HttpServletRequest request) {
        Caiwu caiwu = caiwuService.findById(info.getId());
        String oldPassword = SecureUtil.md5(info.getMima());
        if (!oldPassword.equals(caiwu.getMima())) {
            return Result.error(ResultCode.PARAM_PASSWORD_ERROR.code, ResultCode.PARAM_PASSWORD_ERROR.msg);
        }
        info.setMima(SecureUtil.md5(info.getNewPassword()));
        Caiwu caiwu1 = new Caiwu();
        BeanUtils.copyProperties(info, caiwu1);
        caiwuService.update(caiwu1);
        return Result.success();
    }
}

五、效果图

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

六、文章目录

目 录
摘 要 2
Abstract 3
目 录 4
1、 绪论 7
1.1 研究的背景和意义 7
1.2 国内外研究现状 8
1.3 研究内容 8
2、系统技术 10
2.1 Java技术 10
2.2 MYSQL数据库 10
2.3 Html技术 11
2.4 SpringBoot框架 11
3、系统分析 12
3.1 可行性分析 12
3.1.1技术可行性 12
3.1.2经济可行性 12
3.1.3操作可行性 12
3.2 需求分析 12
3.2.1 非功能性需求 12
3.2.2 功能性需求 13
4、详细设计 15
4.1 系统架构设计 15
4.2 系统功能设计 16
4.3 数据库设计 17
4.3.1数据库设计原则 17
4.3.2数据库ER图设计 17
4.3.3数据库表设计 18
5 系统实现 19
5.1管理员管理功能实现 19
5.1.1登录功能 19
5.1.2学生管理 19
5.1.3老师管理功能实现 21
5.2老师功能实现 22
5.2.1老师主界面实现 22
5.2.2个人中心功能实现 22
5.2.3学生实习功能实现 23
5.2.4实习材料审批实现 23
5.3学生功能实现 24
5.3.1系统主界面 24
5.3.2学生实习查看 25
5.3.3实习材料上传 25
6系统测试 27
6.1 测试说明 27
6.2 测试用例 27
6.3 系统测试结果 29
结论 30
参考文献 31
致谢 34

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QQ1039692211

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值