计算机毕设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实现了宿舍管理的各个功能模块,包括学生信息管理、宿舍信息管理、宿舍报修管理等。通过前后端分离的架构,系统能够高效处理各种请求,提升宿舍管理的效率,并实现数据的实时更新和查询。此系统的开发不仅提升了宿舍管理的智能化水平,还为学校提供了一种更加便捷、高效的管理方式。
未来,系统还可以继续优化,增加如数据统计、宿舍安全管理、在线支付等功能,进一步提升宿舍管理的综合效能。