# 第五组 叶文俊(自习室占位系统) **Repository Path**: llzy_4/self-study-room-occupancy ## Basic Information - **Project Name**: 第五组 叶文俊(自习室占位系统) - **Description**: 自习室占位系统iiii - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-03-01 - **Last Updated**: 2025-04-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 自习室占位系统 --- ## **项目简介** **自习室占位系统** 是一个用于管理公共自习室座位预约、使用状态监控及资源分配的智能化系统。旨在解决传统自习室占座混乱、资源浪费等问题,提供线上预约、扫码签到、座位状态实时更新、违规占用预警等功能。 ### 二、分工协作与流程设计 #### 1. 角色分工 | 角色 | 职责 | Gitee 中的操作示例 | |----------------|----------------------------------------------------------------------|--------------------------------------------| | **项目经理** | 制定计划、分配任务、跟踪进度、审核代码。 | 创建里程碑、分配任务、审核 Pull Request。 | | **前端开发** | 实现界面逻辑、编写前端代码。 | 在 `feature/frontend-xxx` 分支开发并提交。 | | **后端开发** | 实现业务逻辑、设计 API、管理数据库。 | 在 `feature/backend-xxx` 分支开发并提交。 | | **测试工程师** | 编写测试用例、提交 Bug、验证修复。 | 在 Issues 中提交 Bug 报告,标记优先级。 | | **UI 设计师** | 提供设计稿、标注资源(切图、样式)。 | 上传设计文件到 `design/` 目录。 | **代码托管平台**: 本项目代码托管于 **Gitee**([https://gitee.com](https://gitee.com)),Gitee 是 OSCHINA 推出的基于 Git 的代码托管平台,支持高效、安全的云端软件开发协作,适用于个人、团队及企业级项目管理。 👉 企业级项目托管可参考:[Gitee 企业版](https://gitee.com/enterprises) --- ## **软件架构** ### **技术栈** - **后端**:Spring Boot + MyBatis-Plus + MySQL - **前端**:Vue3 + Element Plus + Axios - **权限控制**:Spring Security + JWT - **实时通信**:WebSocket - **缓存与分布式锁**:Redis - **消息队列**:RabbitMQ(用于异步处理预约超时释放) ### **架构设计** 1. **前后端分离**:前端独立部署,通过 RESTful API 与后端交互。 2. **微服务化**:核心模块拆分为用户服务、预约服务、消息服务,支持横向扩展。 3. **高并发处理**:使用 Redis 分布式锁保障座位预约的原子性操作。 4. **实时监控**:通过 WebSocket 推送座位状态变化至前端。 --- ## **安装教程** ### **环境准备** - JDK 17+ - MySQL 8.0+ - Redis 7.0+ - Node.js 16+ - Maven 3.8+ ### **部署步骤** 1. **克隆仓库** ```bash git clone https://gitee.com/your-username/study-room-booking-system.git ``` 2. **后端部署** ```bash cd study-room-backend mvn clean package # 编译打包 java -jar target/study-room-backend-1.0.0.jar # 启动服务 ``` 3. **前端部署** ```bash cd study-room-frontend npm install # 安装依赖 npm run dev # 开发模式启动 ``` 4. **数据库初始化** - 执行 `sql/init.sql` 创建数据库表结构及基础数据。 5. **配置文件修改** - 后端:修改 `application.yml` 中的数据库、Redis 连接信息。 - 前端:修改 `src/config.js` 中的 API 地址。 --- ## **使用说明** ### **用户功能** 1. **注册/登录**:支持手机号或邮箱注册,JWT 鉴权。 2. **预约座位**:选择自习室、时段,提交预约(支持自动释放超时未签到订单)。 3. **扫码签到**:预约后 15 分钟内需到现场扫码确认。 4. **历史记录**:查看个人预约记录及违规记录。 ### **管理员功能** 1. **自习室管理**:添加/删除自习室、设置座位布局。 2. **用户管理**:查看用户行为、处理违规账号。 3. **数据统计**:生成自习室使用率、高峰时段报表。 --- ## **参与贡献** 欢迎开发者通过以下流程参与项目贡献: 1. **Fork 本仓库** - 点击项目右上角 `Fork` 按钮,将仓库复制到您的 Gitee 账号下。 2. **新建分支** ```bash git checkout -b feat_xxx # 分支命名示例:feat_add_user_authentication ``` 3. **提交代码** - 遵循代码规范(如后端遵循阿里 Java 规约,前端使用 ESLint)。 - 提交时注明修改内容: ```bash git commit -m "feat: 新增用户手机号登录功能" ``` 4. **发起 Pull Request** - 在 Gitee 提交 PR,描述修改内容、关联的 Issue(如有)。 - 等待审核合并,需通过单元测试及代码审查。 --- ## **注意事项** 1. 前端需配置反向代理解决跨域问题(参考 `vue.config.js`)。 2. 定时任务依赖 Redis 实现分布式锁,需确保 Redis 服务可用。 3. 生产环境建议使用 Nginx 部署前端,并启用 HTTPS。