news 2026/4/20 21:48:38

酒店预约管理系统(开源 Fastapi+vue2)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
酒店预约管理系统(开源 Fastapi+vue2)

「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

安装步骤

  1. 克隆项目

git clone <repository-url> cd hospital
  1. 安装依赖

pip install -r requirements.txt
  1. 初始化数据库

cd backend python seed_data.py
  1. 启动服务

# 开发模式(带热重载) 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
  1. 访问系统

登录页: http://localhost:8000 管理员: http://localhost:8000/admin.html 前台: http://localhost:8000/reception.html 客人: http://localhost:8000/guest.html API文档: http://localhost:8000/docs

默认账号

角色用户名密码
管理员adminadmin123
前台receptionreception123
客人guestguest123

数据模型

用户 (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。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 16:18:30

专注力在线引擎:Pomodoro 在线专注计时器深度解析

在信息过载、注意力碎片化的数字时代&#xff0c;保持深度专注已成为一种稀缺能力。今天&#xff0c;我们向大家介绍一款基于经典番茄工作法的在线工具——Focus Timer&#xff0c;它能帮助你将时间结构化&#xff0c;提升工作效率&#xff0c;重新掌控注意力节奏。 工具概览&…

作者头像 李华
网站建设 2026/4/19 0:24:33

基于java旅游指南系统(源码+数据库+文档)

旅游指南 目录 基于springboot vue旅游指南系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 基于springboot vue旅游指南系统 一、前言 博主介绍&#xff1a;✌️大…

作者头像 李华
网站建设 2026/4/19 11:49:40

蛋糕店管理|基于springboot 蛋糕店管理系统(源码+数据库+文档)

蛋糕店管理 目录 基于springboot vue蛋糕店管理系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 基于springboot vue蛋糕店管理系统 一、前言 博主介绍&#xff1a…

作者头像 李华
网站建设 2026/4/20 0:09:30

thinkphp+vue校园个人闲置物品换购平台的设计与开发

目录校园个人闲置物品换购平台的设计与开发摘要技术架构核心功能创新点项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理校园个人闲置物品换购平台的设计与开发摘要 该平台基于ThinkPHP框架与Vue.js技术栈&#xff0c;旨在为高校学生提供便捷的闲置…

作者头像 李华
网站建设 2026/4/17 1:28:53

SEW变频器MDV60A0750-503-4-04

孙13665068812SEW MDV60A0750-503-4-04 变频器详细介绍 1. 概述与产品定位 SEW MDV60A0750-503-4-04 是一款多功能、高性能的通用型变频器&#xff0c;广泛应用于各种工业自动化领域&#xff0c;用于精确控制三相异步电动机的速度和转矩。作为 MOVI-DRIVE 家族 MDV60A 系列的…

作者头像 李华