「29-酒店预约系统」 链接:https://pan.quark.cn/s/a8ecca4f2be4

酒店预约管理系统
一个基于 FastAPI + Vanilla JS 的酒店预约管理系统,提供客房预订、入住管理、统计分析等功能。
项目简介
本系统采用前后端分离架构,后端使用 FastAPI 框架提供 RESTful API,前端使用原生 JavaScript 结合 Element UI 组件库。系统支持三种角色:管理员、前台和客人,分别拥有不同的权限和功能。
技术栈
后端
-
FastAPI – 高性能 Web 框架
-
SQLAlchemy – ORM 数据库操作
-
SQLite – 轻量级数据库
-
Pydantic – 数据验证
-
JWT – 用户认证
-
Uvicorn – ASGI 服务器
前端
-
Vanilla JavaScript – 原生 JS
-
Element UI – UI 组件库
-
Vue.js – 渐进式框架
-
ECharts – 数据可视化
-
Axios – HTTP 客户端
功能特性
管理员功能
-
用户管理(增删改查、角色分配)
-
房间管理(房间类型、状态、价格)
-
预订管理(查看、确认、取消预订)
-
统计分析(入住率、收入分析)
-
系统设置
前台功能
-
快速入住/退房
-
预订查询与管理
-
房态查看
-
账单管理
客人功能
-
在线预订房间
-
查看我的预订
-
个人信息管理
项目结构
hospital/
├── backend/ # 后端代码
│ ├── main.py # FastAPI 入口文件
│ ├── database.py # 数据库配置
│ ├── models.py # ORM 数据模型
│ ├── schemas.py # Pydantic 验证模型
│ ├── auth.py # JWT 认证
│ ├── config.py # 配置文件
│ ├── utils.py # 工具函数
│ ├── seed_data.py # 测试数据初始化
│ └── routers/ # API 路由
│ ├── auth.py # 认证接口
│ ├── users.py # 用户管理
│ ├── rooms.py # 房间管理
│ ├── bookings.py # 预订管理
│ └── stats.py # 统计分析
├── frontend/ # 前端代码
│ ├── index.html # 登录页
│ ├── admin.html # 管理端
│ ├── reception.html # 前台端
│ ├── guest.html # 客人端
│ └── asset/ # 静态资源
│ ├── vue.js
│ ├── element-ui.js
│ ├── axios.min.js
│ ├── echarts.min.js
│ └── confetti.browser.min.js
├── hotel.db # SQLite 数据库(运行后生成)
├── requirements.txt # Python 依赖
├── PROJECT_GUIDE.md # 开发指南
└── README.md # 本文件
快速开始
环境要求
-
Python 3.8+
-
pip
安装步骤
克隆项目
git clone <repository-url>
cd hospital
安装依赖
pip install -r requirements.txt
初始化数据库
cd backend
python seed_data.py
启动服务
# 开发模式(带热重载)
python -m uvicorn main:app –host 0.0.0.0 –port 8000 –reload
# 生产模式
python -m uvicorn main:app –host 0.0.0.0 –port 8000
访问系统
登录页: http://localhost:8000
管理员: http://localhost:8000/admin.html
前台: http://localhost:8000/reception.html
客人: http://localhost:8000/guest.html
API文档: http://localhost:8000/docs
默认账号
| 管理员 | admin | admin123 |
| 前台 | reception | reception123 |
| 客人 | guest | guest123 |
数据模型
用户 (User)
-
id – 用户ID
-
username – 用户名
-
password – 密码(加密)
-
real_name – 真实姓名
-
phone – 联系电话
-
email – 邮箱
-
role – 角色(admin/receptionist/guest)
房间 (Room)
-
id – 房间ID
-
room_number – 房间号
-
room_type – 类型(标准间/豪华间/套房/总统套房)
-
floor – 楼层
-
price_per_night – 每晚价格
-
capacity – 容纳人数
-
status – 状态(可用/已占用/维修中/清洁中)
-
amenities – 设施(JSON格式)
预订 (Booking)
-
id – 预订ID
-
booking_number – 预订号
-
user_id – 用户ID
-
room_id – 房间ID
-
check_in_date – 入住日期
-
check_out_date – 退房日期
-
guest_count – 客人数量
-
total_price – 总价
-
status – 状态(待确认/已确认/已入住/已退房/已取消)
服务 (Service)
-
id – 服务ID
-
name – 服务名称
-
description – 描述
-
price – 价格
-
is_active – 是否启用
服务记录 (ServiceRecord)
-
id – 记录ID
-
booking_id – 预订ID
-
service_id – 服务ID
-
quantity – 数量
-
total_price – 总价
-
notes – 备注
API 文档
启动服务后访问 http://localhost:8000/docs 查看完整的 Swagger API 文档。
主要接口
认证
-
POST /api/auth/register – 用户注册
-
POST /api/auth/login – 用户登录
-
GET /api/auth/me – 获取当前用户信息
用户管理
-
GET /api/users – 用户列表
-
GET /api/users/{id} – 用户详情
-
PUT /api/users/{id} – 更新用户
-
DELETE /api/users/{id} – 删除用户
房间管理
-
GET /api/rooms – 房间列表
-
GET /api/rooms/{id} – 房间详情
-
POST /api/rooms – 创建房间
-
PUT /api/rooms/{id} – 更新房间
-
DELETE /api/rooms/{id} – 删除房间
预订管理
-
GET /api/bookings – 预订列表
-
GET /api/bookings/{id} – 预订详情
-
POST /api/bookings – 创建预订
-
PUT /api/bookings/{id} – 更新预订
-
PUT /api/bookings/{id}/check-in – 入住
-
PUT /api/bookings/{id}/check-out – 退房
统计分析
-
GET /api/stats/overview – 总览统计
-
GET /api/stats/occupancy – 入住率统计
-
GET /api/stats/revenue – 收入统计
开发指南
详细的开发规范和最佳实践请参考 PROJECT_GUIDE.md,包含:
-
项目架构选择
-
前端开发规范(UI框架、静态资源、页面布局)
-
后端开发规范(数据模型、API设计、认证)
-
常见问题与解决方案
-
开发流程建议
配置说明
配置文件位于 backend/config.py:
class Settings(BaseSettings):
# JWT配置
SECRET_KEY: str = "your-secret-key-change-in-production-2024"
ALGORITHM: str = "HS256"
ACCESS_TOKEN_EXPIRE_MINUTES: int = 60 * 24 * 7 # 7天
# 数据库配置
DATABASE_URL: str = "sqlite:///./hotel.db"
# 应用配置
APP_NAME: str = "酒店预约管理系统"
APP_VERSION: str = "1.0.0"
生产环境请修改 SECRET_KEY 为随机字符串。
许可证
MIT License
联系方式
如有问题或建议,请提交 Issue 或 Pull Request。



