基于Springboot+vue学生实习信息管理系统 毕业设计

本文介绍了一种基于SpringBoot和MySQL的学生实习信息管理系统,该系统实现了对学生、老师和管理员的分级管理,包括学生信息管理、实习材料管理和实习审批等功能。通过详细的需求分析和系统设计,描述了系统的开发过程和技术选型,以及系统性能和测试的评估。
摘要由CSDN通过智能技术生成

很多朋友发现后期找不到文章,收藏关注不迷路

项目介绍

随着信息技术的发展,管理系统越来越成熟,各种企事业单位使用各种类型的管理系统来提高工作效率,从而降低手工劳动的弊端。传统模式的学生实习管理满足不了现代学生的实习需求,服务质量、服务速度。随着互联网+的理念的发展,为了提供用户方便快捷的学生实习渠道,打造高质量的学生实习管理;学生实习信息管理系统是一个对管理员、教师、学生进行分级管理,再通过数据显示给用户,最终形成实习材料为整个流程的全面管理平台。
学生实习信息管理系统利用Java的SpringBoot框架开发的一款Web程序,数据存储到MySQL中,前台使用Html技术进行设计和实现。本文先充分调查学生实习信息管理系统的需求分析,深入剖析系统应该具有的功能,并设计完善的数据库。利用成熟的开发技术完成编码工作,最后进行投入前的测试工作。最终,完成前台和后台的学生实习信息管理系统的功能,主要包括学生信息管理、实习材料管理、学生实习管理等,通过前后台实现数据的传递。

研究的背景和意义

随着计算机的持续发展,人类进入信息化时代,各种软件和管理系统层出不穷,软件已成为提高办公质量和经济增长的重要手段,由此带来了许多新兴行业。在传统的高校学生实习管理中,往往通过大量的人力和物力进行管理,通过手工记录实习材料信息,统计老师资料。这种传统的管理方法容易出错,而且不能适应现代化、信息化的发展过程。因此,本课题应运而生。在Java编程语言的基础上,开发学生实习信息管理系统。
我国是个教育大国,学生实习的基数大,各高校有条件开发并推广学生实习信息管理系统,从而提高管理手段,推动信息化进程的发展。无论是高校领导者还是老师,都希望通过有效的技术手段改变效率低下的学生实习手段,通过管理系统进行全面的学生实习管理。高校领导可以通过学生实习信息管理系统,全面掌握学生实习和过程信息。
在技术方面,后台使用Java语言进行开发,前端采用Html技术。这些技术可以处理学生实习系统的业务逻辑,并方便用户操作,部署简单。所以适应本项目的开发。数据库方面,选择关系型MySQL数据库,比较成熟稳定,并且开源免费,具有高效、简洁的特点。
当前移动互联网广泛发展,通过浏览器可以方便的参与到系统中来,并借助管理系统的强大优势,构建学生实习信息管理系统,更符合当前的信息化水平,无论是哪种用户,都可以通过浏览器进行登录,从而进行信息查询或者管理,使得用户角色获得了更好的体验。
本文研发的学生实习信息管理系统,结合高校的现状开发符合学生实习工作的管理系统,改变了以前落后的现状。并将学生信息,学生实习管理等进行融合,发出通用的管理系统,广泛引用于高校。学生实习信息管理系统的使用,对于高校的学生实习管理具有不可替代的作用。

国内外研究现状

在国内,学生实习系统发展迅速,从最初的单片机处理时代发展到数据综合处理时期,到目前的数据系统处理时期。信息技术的快速发展带来了管理系统的质的变化,在单片机处理时期,数据存储有限,系统效率较低。在第二时期的数据综合处理时期中,因为计算机软硬件水平较低而且价格昂贵,虽然学生实习系统得到了一定的发展,但是受限于昂贵的设备,不能全面普及开来。目前的综合数据系统时代,分布式开发技术、微服务技术,数据库技术逐渐完善,软件设备价格低廉,带动了全面的发展,为学生实习系统的普及提供了基础。相比单片机管理系统和客户端服务器模式的系统,目前的轻客户端模式大大降低了开发成本,提高了数据管理的效率。每一台客户端不需要单独安装,通过浏览器即可访问。
一直以来,学生实习信息管理都是管理工作的重点,居民是高校的主体,只有提高学生实习的管理方式,才能提高管理效率,方便进行家教管理。而学生实习信息管理不单单是学生基本的个人资料,学生实习信息发布,还需要加入一些学生的学生实习申请、在线审批等内容,并提供高效的查询服务。对于高效管理者也可以通过系统查看图表,统计某一学生的学生实习情况,为家教管理工作提供必要的技术支撑。
在国外,管理系统发展较早,各种技术比较成熟,对于学生实习系统也具有更好的兼容性和安全性。在信息化标准规范基础上,各种管理系统也可以满足客户要求,而且对于发达的欧美国家,他们通过利用技术手段,结合先进的家教管理模式,开发出符合高校发展的管理系统。同时,他们经过多年的摸索,形成了规范成熟的家教平台,在美国有着超过85%的学生通过在线管理系统用进行学生实习,并积极的参与到管理系统中。

技术介绍

1、管理员账号:abo 密码:abo
2、开发环境为Eclipse/idea,数据库为mysql 使用java语言开发。
3.配置好Tomcat并点击启动按钮即可运行
4.数据库连接src\main\resources\application.yml中修改
5.maven包版本apache-maven-3.3.9.
开发语言:Java
框架:SSM
前端框架:vue.js
JDK版本:JDK1.8+
服务器:tomcat8+
数据库工具:Navicat
开发软件:idea 支持eclipse

Springboot是当前最流向的一个框架,它的配置更加的简单,使开发变得更加的简单迅速。
Springboot的基础结构共三个文件,具体如下:
src/main/java:程序开发以及主程序入口;
src/main/resources:配置文件;
src/test/java:测试程序。
ssm的数据库配置默认支持两种格式的配置文件
1,application.properties
2,application.yaml

项目界面

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
高校学生实习系统本质上是一个学生实习浏览和在线预约的平台,从用户角度,系统将包括学生、老师和管理员。
在这里插入图片描述
学生实习信息管理系统的老师用户使用用户名和密码进行登录。老师审核模块,主要概述为打开老师审核页面,审核学生提交的学生实习材料信息,当学生进行实习时,上传材料,若同意,则审核通过;若不同意学生学生实习材料,则给学生提示审核未通过的信息。
管理员功能如下:管理学生信息、管理老师、查看实习信息、实习材料信息、材料审阅信息。
老师功能:管理个人的信息,管理学生实习信息,材料审阅、修改个人资料管理。
学生功能:多种方式查询学生实习,上传实习材料,可以查看材料审阅结果。学生定期对个人信息进行修改,包括个人信息和密码信息,最终通过注销后退出本系统。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
本文设计实现的学生实习信息管理系统根据用户角色又分为管理员、老师、学生用户角色,管理员可以管理系统基本信息、管理老师、管理学生、查看学生实习材料的审批信息;老师具有实习信息管理、学生实习审批等功能;学生用户功能包括用户信息管理、上传实习材料、查看材料审阅。
在这里插入图片描述
管理员可以管理系统基本信息;老师用户管理学生实习和学生信息,对材料信息进行审批操作。学生用户在线进行上传实习材料、完成后查看材料审阅结果。
在这里插入图片描述
在这里插入图片描述

关键代码


package com.controller;


import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
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.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;

/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;

	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }

    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
    	UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
    	if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
    		return R.error("用户名已存在。");
    	}
        userService.updateById(user);//全部更新
        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

目录

目 录
目 录 III
1 绪论 1
1.1 研究背景 1
1.2 目的和意义 1
1.3 论文结构安排 2
2 相关技术 3
2.1 Springboot框架介绍 3
2.2 B/S结构介绍 3
2.3 Mysql数据库介绍 4
3 系统分析 6
3.1 系统可行性分析 6
3.1.1 技术可行性分析 6
3.1.2 经济可行性分析 6
3.1.3 运行可行性分析 6
3.2 系统性能分析 7
3.2.1 易用性指标 7
3.2.2 可扩展性指标 7
3.2.3 健壮性指标 7
3.2.4 安全性指标 8
3.3 系统流程分析 8
3.3.1 操作流程分析 8
3.3.2 登录流程分析 9
3.3.3 信息添加流程分析 10
3.3.4 信息删除流程分析 11
4 系统设计 12
4.1 系统概要设计 12
4.2 系统功能结构设计 12
4.3 数据库设计 13
4.3.1 数据库E-R图设计 13
4.3.2 数据库表结构设计 14
5 系统实现 17
5.1用户部分功能17
5.2 管理员部分功能展示

6 系统测试
6.1 系统测试的特点 
6.2 系统功能测试
6.2.1 登录功能测试
6.2.2 添加类别功能测试
6.3 测试结果分析
结 论
致 谢
参考文献

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值