Java基于SpringBoot+Vue高校教室/实验室/会议室预约管理系统

文末获取资源,收藏关注不迷路

前言

随着教育的改革,我国的教育事业也有了非常大的发展,现在越来越多的人可以上下大学了,但是因为我国教育的硬件设施很多时候并不是那么的丰富,尤其是在教室的使用方面,非常的需要合理的利用这些资源。为了让高校的教室能够更好的被利用,我们通过Java语言和MySQL数据库开发了本次的基于Java的教室管理系统网站。
本基于Java的教室管理系统是根据当前高校教室相关的内容实际情况开发的,在系统语言选择上我们使用的Java语言,数据库是小巧灵活的MySQL数据库,本系统的开发可以极大的提高教室管理系统的管理效率。

一、研究背景

随着我国教育水平的不断提高,大学生的数量也在不断的增加,很多时候这些学生需要进行学习,或者举办一些会议,还有一些社团可能会举办一些活动等操作。如果直接在露天的地方进行这些活动一方面环境比较嘈杂,另一方面会给一些其他的学子造成一定的影响,所以很多时候这些活动需要在教室内进行举行。
虽然我国的教育已经有了很大程度的进度,但是在一些硬件上还不能完全满足所有学生的要求,尤其是在教室这一有限的资源方面。如果能够对教室进行更加有效和规范的使用是当前很多高校研究的一个主要内容之一,当时没有教学活动的时候往往是空闲的,这个时候如果对学生开放,让学生根据自己的需要对教室进行预约无疑是一件很美好的事情。

二、研究意义

随着大学生人数的不断增加和高校内教室资源有限等一系类问题的诞生,很多学生在需要使用教室的时候都不能找到合适的教室进行需要的活动。为了能够彻底的解决这一问题我们开发了教室管理系统,通过本系统学子可以在线进行注册登录,并预约不同类型的空闲教师,管理人员对学子们的教室预约信息进行管理,这样在一定程度上解决了教室使用冲突情况的发生,可以让高校内的教室得到充分的利用,让管理人员大大了减轻了管理方面的时间,提高了管理效率。

三、主要使用技术

环境需要
1.运行环境:最好是java jdk 1.8,这是目前最稳定的JDK也是被使用最多的JDK版本。
2.IDE环境:IDEA,Eclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat7/Tomcat8/Tomcat9版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.数据库:MySql 5.7版本;
6.是否Maven项目:是;
技术栈
后端:Spring+SpringMVC+Mybatis+Springboot
前端:vue+CSS+JavaScript+jQuery+elementui

使用说明
使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;
将项目中applicationContext.xml配置文件中的数据库配置改为自己的配置,然后运行;
运行成功后,在浏览器中输入:http://localhost:8080/项目名

四、研究内容

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
管理员
学院管理:增删改查(模糊查询)
班级管理:增删改查(模糊查询)
用户管理:增删改查(根据学院,班级,用户姓名进行模糊查询)
用户属于班级,班级属于学院
教室管理:增删改查(模糊查询)教室名称,教室容纳人数,教室类型这三个字段要有
预约管理:审核该预约能不能通过,如果不能通过给出审核意见
留言管理:查看回复用户的留言
统计功能:教室类型的饼状图,这个月预约次数的折线图
用户
用户管理:查看,修改自己的个人信息
教室预约:可以预约今天明天的教室,按着时间段预约(可多选),如果当前时间超过预约时间段不能预约该时间段的教室
预约教室的时候要有个预约用途,预约教室的时候把当前时间传到数据库,管理员审核的时候可以看到用户发起预约的时间
预约记录查看:查看自己的预约记录,在未审核通过之前可以取消预约,预约过之后可以取消预约释放出来空教室资源,比如小明预约了明天的教室,又取消预约,这个教室可以被其他人预约
留言:用户可以给管理员留言在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、核心代码


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();
    }
}

六、文章目录

1系统概述 1
1.1 研究背景 1
1.2研究目的 1
1.3系统设计思想 1
2相关技术 3
2.1 MYSQL数据库 3
2.2 B/S结构 3
2.3 Spring Boot框架简介 4
2.4 VUE框架 4
3系统分析 5
3.1可行性分析 5
3.1.1技术可行性 5
3.1.2经济可行性 5
3.1.3操作可行性 5
3.2系统性能分析 6
3.2.1 系统安全性 6
3.2.2 数据完整性 6
3.3系统界面分析 6
3.4系统流程和逻辑 8
4系统概要设计 9
4.1概述 9
4.2系统结构 10
4.3.数据库设计 11
4.3.1数据库实体 11
4.3.2数据库设计表 13
5系统详细实现 17
5.1 管理员模块的实现 17
5.2用户模块的实现 19
6系统测试 21
6.1概念和意义 21
6.2特性 22
6.3重要性 22
6.4测试方法 23
6.5 功能测试 23
6.6可用性测试 24
6.7性能测试 24
6.8测试分析 24
6.9测试结果分析 25
结论 25
致谢语 26
参考文献 26

  • 21
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
高校实验室管理系统是一个基于springbootvue系统,主要用于管理高校实验室的设备、资源和实验项目。系统实验室分为不同的类别,如化学实验室、物理实验室和生物实验室,每个实验室都有其特定的设备和资源。 该系统设计了用户管理、设备管理、实验项目管理和资源预约等功能模块。用户可以通过系统注册账号并进行登录,不同类型的用户拥有不同的权限,如管理员可以对实验室设备和资源进行管理,教师可以发布实验项目,学生可以预约实验室资源等。 在设备管理模块中,管理员可以添加、修改和删除实验室的设备信息,包括设备名称、型号、数量和状态等。在实验项目管理模块中,教师可以发布实验项目的信息,包括实验名称、内容、时间等,学生可以浏览实验项目并进行预约。 资源预约模块是系统的核心功能之一,学生可以根据自己的需求预约实验室资源,并在预约时段内使用。管理员可以对预约情况进行审核和管理,保障资源的合理利用。 系统采用了前后端分离的开发架构,前端使用vue框架进行开发,实现了用户友好的界面和交互体验。后端采用springboot框架开发,实现了业务逻辑和数据管理系统的数据库采用MySQL进行存储,保证了数据的安全性和稳定性。 总的来说,基于springbootvue高校实验室管理系统设计与开发充分考虑了实验室资源的合理管理和利用,为高校师生提供了便利的实验设备和资源管理平台。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wqq6310855

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

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

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

打赏作者

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

抵扣说明:

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

余额充值