计算机毕设JAVA——某高校宿舍管理系统(基于SpringBoot+Vue前后端分离的项目)

项目背景与目标

随着信息化时代的到来,越来越多的高校开始重视校园信息化建设。宿舍管理作为校园管理中的重要组成部分,对于确保学生的居住环境、管理宿舍资源、提升宿舍管理效率具有重要意义。传统的宿舍管理模式大多依赖人工记录和管理,不仅效率低,而且容易出错,难以满足日益增长的管理需求。

为了提高宿舍管理的效率、减少人为错误、增强管理透明度,基于SpringBoot和Vue的宿舍管理系统应运而生。本项目旨在设计并实现一个基于SpringBoot框架的宿舍管理系统,前后端分离,采用Vue.js作为前端框架,实现高效、智能、便捷的宿舍管理。

本系统将实现以下主要功能:

  • 学生信息管理:包括学生的入住、退宿、信息更新等。
  • 宿舍信息管理:宿舍楼、房间的管理与分配。
  • 宿舍资源管理:包括床位、设施的管理与分配。
  • 宿舍报修管理:学生提交宿舍报修单,管理员处理报修请求。
  • 数据统计与报表:系统生成宿舍管理相关的统计报表。

系统架构设计

本宿舍管理系统基于前后端分离架构,前端使用Vue.js框架,后端采用SpringBoot技术栈,前后端通过RESTful API进行数据交互。整个系统的架构设计如下图所示:

Copy Code
+-------------------+ +--------------------+ +----------------------+ | | | | | | | 用户端 (Vue.js) +--------> 后端服务 (SpringBoot) +------> 数据库 (MySQL) | | | | | | | +-------------------+ +--------------------+ +----------------------+
  • 前端(Vue.js):负责用户界面的展示,发送请求到后端,并处理返回的结果。
  • 后端(SpringBoot):处理前端请求,进行数据处理和业务逻辑实现,返回数据给前端。
  • 数据库(MySQL):存储宿舍管理系统的所有数据,包括学生信息、宿舍信息、报修记录等。

1. 学生信息管理模块

学生信息管理是宿舍管理系统中的基础模块,主要涉及学生入住、退宿和信息更新等操作。

功能描述

  • 学生入住:管理员通过系统为新入住的学生分配宿舍,填写学生的个人信息(姓名、学号、联系方式等),并将学生信息存入数据库中。
  • 学生退宿:学生退宿时,管理员可以在系统中进行退宿操作,更新学生的住宿状态,并释放床位资源。
  • 信息更新:学生可以更新自己的联系方式、个人信息等,管理员也可以根据需要对学生信息进行修改。

设计与实现

在数据库设计中,学生信息表(student)包含如下字段:

字段名 数据类型 描述
student_id INT 学生编号
student_name VARCHAR 学生姓名
student_phone VARCHAR 学生联系方式
dormitory_id INT 宿舍编号
room_id INT 房间编号
check_in_time DATETIME 入住时间
check_out_time DATETIME 退宿时间

当学生入住时,管理员输入学生的姓名、学号、联系方式等信息,并通过后端API调用宿舍信息接口,系统自动为其分配宿舍、房间。退宿时,管理员只需在系统中选择学生并进行退宿操作,系统将自动更新学生的住宿状态并释放床位。

示例代码:

javaCopy Code
// 后端Controller @RestController @RequestMapping("/student") public class StudentController { @Autowired private StudentService studentService; @PostMapping("/checkIn") public ResponseEntity<String> checkIn(@RequestBody Student student) { boolean isCheckedIn = studentService.checkInStudent(student); if (isCheckedIn) { return ResponseEntity.ok("学生入住成功!"); } return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("入住失败!"); } @PostMapping("/checkOut") public ResponseEntity<String> checkOut(@RequestParam("studentId") int studentId) { boolean isCheckedOut = studentService.checkOutStudent(studentId); if (isCheckedOut) { return ResponseEntity.ok("学生退宿成功!"); } return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("退宿失败!"); } }
javascriptCopy Code
// 前端 Vue.js <template> <div> <form @submit.prevent="submitCheckIn"> <input v-model="student.name" placeholder="学生姓名" required /> <input v-model="student.phone" placeholder="学生电话" required /> <button type="submit">提交入住</button> </form> </div> </template> <script> export default { data() { return { student: { name: "", phone: "", }, }; }, methods: { submitCheckIn() { this.$axios .post("/student/checkIn", this.student) .then((response) => { alert(response.data); }) .catch((error) => { alert("入住失败!"); }); }, }, }; </script>

2. 宿舍信息管理模块

宿舍信息管理模块负责宿舍楼和房间的管理,包括宿舍分配、查询等功能。

功能描述

  • 宿舍楼管理:管理员可以查看、添加、删除宿舍楼信息。
  • 房间管理:管理员可以查看宿舍楼下的房间信息,添加、删除、修改房间信息。
  • 宿舍分配:管理员可以根据学生信息,将学生分配到相应的宿舍和房间。

设计与实现

宿舍楼表(dormitory)和房间表(room)设计如下:

dormitory

字段名 数据类型 描述
dormitory_id INT 宿舍楼编号
dormitory_name VARCHAR 宿舍楼名称
dormitory_address VARCHAR 宿舍楼地址

room

字段名 数据类型 描述
room_id INT 房间编号
dormitory_id INT 宿舍楼编号
room_number VARCHAR 房间号
bed_count INT 床位数量

示例代码:

javaCopy Code
// 后端Controller @RestController @RequestMapping("/dormitory") public class DormitoryController { @Autowired private DormitoryService dormitoryService; @PostMapping("/add") public ResponseEntity<String> addDormitory(@RequestBody Dormitory dormitory) { boolean isAdded = dormitoryService.addDormitory(dormitory); if (isAdded) { return ResponseEntity.ok("宿舍楼添加成功!"); } return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("添加失败!"); } @PostMapping("/assignRoom") public ResponseEntity<String> assignRoom(@RequestParam("studentId") int studentId, @RequestParam("roomId") int roomId) { boolean isAssigned = dormitoryService.assignRoom(studentId, roomId); if (isAssigned) { return ResponseEntity.ok("宿舍分配成功!"); } return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("宿舍分配失败!"); } }
javascriptCopy Code
// 前端 Vue.js <template> <div> <form @submit.prevent="submitDormitory"> <input v-model="dormitory.name" placeholder="宿舍楼名称" required /> <button type="submit">提交添加</button> </form> </div> </template> <script> export default { data() { return { dormitory: { name: "", }, }; }, methods: { submitDormitory() { this.$axios .post("/dormitory/add", this.dormitory) .then((response) => { alert(response.data); }) .catch((error) => { alert("添加失败!"); }); }, }, }; </script>

3. 宿舍报修管理模块

宿舍报修管理模块允许学生在系统中提交宿舍报修单,管理员可以处理报修请求并跟踪修复进度。

功能描述

  • 提交报修:学生可以在系统中提交宿舍的维修请求,包括设备故障、水电问题等。
  • 管理员处理:管理员可以查看待处理的报修单,并进行处理,标记为已处理或正在处理中。
  • 报修记录查询:管理员可以查看报修的历史记录,统计报修情况。

设计与实现

宿舍报修表(repair)设计如下:

字段名 数据类型 描述
repair_id INT 报修单编号
student_id INT 学生编号
dormitory_id INT 宿舍楼编号
room_id INT 房间编号
repair_type VARCHAR 报修类型
repair_status VARCHAR 报修状态
repair_time DATETIME 提交时间
handle_time DATETIME 处理时间

示例代码:

javaCopy Code
// 后端Controller @RestController @RequestMapping("/repair") public class RepairController { @Autowired private RepairService repairService; @PostMapping("/submit") public ResponseEntity<String> submitRepair(@RequestBody Repair repair) { boolean isSubmitted = repairService.submitRepair(repair); if (isSubmitted) { return ResponseEntity.ok("报修提交成功!"); } return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("提交失败!"); } @PostMapping("/handle") public ResponseEntity<String> handleRepair(@RequestParam("repairId") int repairId) { boolean isHandled = repairService.handleRepair(repairId); if (isHandled) { return ResponseEntity.ok("报修处理成功!"); } return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("处理失败!"); } }
javascriptCopy Code
// 前端 Vue.js <template> <div> <form @submit.prevent="submitRepair"> <input v-model="repair.type" placeholder="报修类型" required /> <button type="submit">提交报修</button> </form> </div> </template> <script> export default { data() { return { repair: { type: "", }, }; }, methods: { submitRepair() { this.$axios .post("/repair/submit", this.repair) .then((response) => { alert(response.data); }) .catch((error) => { alert("报修失败!"); }); }, }, }; </script>

结语

本宿舍管理系统基于SpringBoot和Vue.js实现了宿舍管理的各个功能模块,包括学生信息管理、宿舍信息管理、宿舍报修管理等。通过前后端分离的架构,系统能够高效处理各种请求,提升宿舍管理的效率,并实现数据的实时更新和查询。此系统的开发不仅提升了宿舍管理的智能化水平,还为学校提供了一种更加便捷、高效的管理方式。

未来,系统还可以继续优化,增加如数据统计、宿舍安全管理、在线支付等功能,进一步提升宿舍管理的综合效能。