欢迎光临
我们一直在努力

酒店预约管理系统(开源 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

安装步骤

  • 克隆项目

  • 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。

    赞(0)
    未经允许不得转载:171主机测评 » 酒店预约管理系统(开源 Fastapi+vue2)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址