news 2026/4/23 12:40:12

酒店预约管理系统(开源 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/23 12:51:55

【小程序毕设源码分享】基于springboot+小程序的宠物咖小程序的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/23 11:29:01

【小程序毕设全套源码+文档】基于微信小程序的宠物服务中心小程序设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

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

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

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

作者头像 李华
网站建设 2026/4/23 11:53:04

Veo3.1 4K功能落地!一步API助力短剧/漫剧团队实现高清稳定开发

前言 在短剧、漫剧的AI化制作流程中&#xff0c;开发者常面临三重核心痛点&#xff1a;画质达不到商用标准、批量调用时高频宕机、API接入流程复杂。随着Google Veo3.1模型4K高清能力的正式开放&#xff0c;一步API已完成全流程技术对接并上线该功能&#xff0c;通过标准化封装…

作者头像 李华
网站建设 2026/4/23 13:03:44

thinkphp+vue药店中药仓库管理系统设计与实现_

目录 系统概述技术架构核心功能创新点应用价值 项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理 系统概述 ThinkPHPVue药店中药仓库管理系统是一个基于B/S架构的现代化管理系统&#xff0c;整合了后端ThinkPHP框架与前端Vue.js技术&#xff0c;实…

作者头像 李华
网站建设 2026/4/23 12:51:12

GitHub 热榜项目 - 日榜(2026-02-04)

GitHub 热榜项目 - 日榜(2026-02-04) 生成于&#xff1a;2026-02-04 统计摘要 共发现热门项目&#xff1a; 11 个 榜单类型&#xff1a;日榜 本期热点趋势总结 本期GitHub热榜凸显AI驱动的软件开发自动化正迈向纵深&#xff0c;热点高度集中于智能体&#xff08;Agent&…

作者头像 李华