# ConferenceRoomReservation **Repository Path**: yang_hui_fei/ConferenceRoomReservation- ## Basic Information - **Project Name**: ConferenceRoomReservation - **Description**: 会议室预约系统 - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-08-15 - **Last Updated**: 2025-11-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 会议室预约系统 一个基于 Flask + MySQL 的现代化会议室预约管理系统,提供直观的用户界面和完整的管理功能。 ## 📋 项目简介 会议室预约系统是一个专为企业或组织设计的会议室管理解决方案,支持用户在线预约会议室、管理员统一管理会议室资源,并提供实时预约状态查看功能。 ## ✨ 主要功能 ### 🔐 用户管理 - **用户注册与登录**:安全的用户认证系统 - **权限管理**:支持普通用户和管理员两种角色 - **密码管理**:用户可以修改个人密码,管理员可重置用户密码 ### 🏢 会议室管理 - **会议室信息**:显示会议室名称、容量、位置、设备描述 - **预约状态**:实时查看会议室可用状态 - **预约日历**:直观的7天预约日历视图 ### 📅 预约功能 - **在线预约**:支持选择会议室、日期、时间段进行预约 - **预约管理**:用户可以查看、编辑、删除个人预约 - **时间冲突检测**:自动检测并防止时间冲突 - **预约限制**:最多可预约7天内的会议室 ### 👨‍💼 管理员功能 - **会议室管理**:添加、编辑、删除会议室 - **用户管理**:创建新用户、编辑用户信息、重置密码 - **预约管理**:查看所有预约记录,管理预约状态 - **系统统计**:查看系统使用统计信息 ### 🎨 界面特性 - **响应式设计**:支持桌面端和移动端访问 - **毛玻璃效果**:现代化的UI设计风格 - **自定义背景**:支持用户上传自定义背景图片 - **动画效果**:流畅的页面过渡和交互动画 ## 🛠️ 技术栈 - **后端框架**:Flask 2.3.3 - **数据库**:MySQL + PyMySQL - **ORM**:Flask-SQLAlchemy 3.0.5 - **安全**:Werkzeug 2.3.7 (密码哈希) - **加密**:cryptography 41.0.7 ## 📦 安装部署 ### 环境要求 - Python 3.7+ - MySQL 5.7+ 或 MySQL 8.0+ - 现代浏览器(支持ES6+) ### 快速开始 #### 1. 克隆项目 ```bash git clone cd 会议室预约系统2025-8-15 ``` #### 2. 安装依赖 ```bash pip install -r requirements.txt ``` #### 3. 配置数据库 - 启动MySQL服务 - 创建数据库并导入初始化脚本: ```bash mysql -u root -p < init_database_simple.sql ``` #### 4. 修改数据库配置 编辑 `MSR1.6.py` 文件中的数据库连接配置: ```python app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://用户名:密码@localhost:3306/meeting_rooms' ``` #### 5. 启动系统 ```bash # Windows start.bat # Linux/Mac python MSR1.6.py ``` ### 一键启动脚本 项目提供了多个启动脚本: - **Windows**: `start.bat` - 自动安装依赖并启动系统 - **PowerShell**: `start.ps1` - PowerShell版本启动脚本 - **Linux/Mac**: `start.sh` - Shell版本启动脚本 ## 🚀 使用说明 ### 默认账户 - **管理员账户**: `admin` / `admin123` - **权限**: 拥有所有管理功能 ### 用户操作流程 1. **登录系统** - 访问系统首页,输入用户名和密码登录 2. **预约会议室** - 点击"预约会议室" - 选择会议室、日期、时间段 - 填写会议内容描述 - 确认预约 3. **管理预约** - 在"我的预约"中查看所有预约记录 - 可以编辑未开始的预约 - 可以删除未开始的预约 4. **修改密码** - 在"修改密码"页面修改个人密码 ### 管理员操作流程 1. **会议室管理** - 添加新的会议室 - 编辑会议室信息 - 删除会议室 2. **用户管理** - 创建新用户账户 - 编辑用户信息 - 重置用户密码 - 管理用户权限 3. **预约管理** - 查看所有预约记录 - 管理预约状态 - 删除违规预约 ## 📊 数据库结构 ### 用户表 (users) - `id`: 用户ID (主键) - `username`: 用户名 (唯一) - `password_hash`: 密码哈希 - `is_admin`: 是否为管理员 - `created_at`: 创建时间 ### 会议室表 (meeting_rooms) - `id`: 会议室ID (主键) - `name`: 会议室名称 (唯一) - `capacity`: 容纳人数 - `location`: 位置 - `description`: 描述 - `created_at`: 创建时间 ### 预约表 (bookings) - `id`: 预约ID (主键) - `user_id`: 用户ID (外键) - `room_id`: 会议室ID (外键) - `start_time`: 开始时间 - `end_time`: 结束时间 - `purpose`: 会议目的 - `created_at`: 创建时间 ## 🔧 配置说明 ### 数据库配置 在 `MSR1.6.py` 中修改以下配置: ```python app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://用户名:密码@主机:端口/数据库名' ``` ### 安全配置 ```python app.config['SECRET_KEY'] = 'your-secret-key-here' # 生产环境请使用强密钥 ``` ## 📱 移动端支持 系统采用响应式设计,支持: - 桌面端浏览器 - 平板设备 - 手机浏览器 ## 🔒 安全特性 - **密码加密**:使用Werkzeug的密码哈希功能 - **会话管理**:安全的用户会话控制 - **权限验证**:严格的权限检查机制 - **SQL注入防护**:使用ORM防止SQL注入攻击 ## 🎯 功能亮点 1. **直观的日历视图**:7天预约日历,一目了然 2. **实时状态更新**:预约状态实时同步 3. **智能冲突检测**:自动检测时间冲突 4. **个性化背景**:支持自定义背景图片 5. **现代化UI**:毛玻璃效果和流畅动画 ## 🤝 贡献指南 欢迎提交Issue和Pull Request来改进项目。 ## 📄 许可证 本项目采用 MIT 许可证。 ## 📞 联系方式 如有问题或建议,请通过以下方式联系: - 提交Issue - 发送邮件 --- **会议室预约系统** - 让会议室管理更简单、更高效!