Skip to content

JiaVMode/Database-Course-Design---Hotel-Management-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏨 酒店管理系统 (Hotel Management System)

数据库课程设计项目 | Database Course Design Project

Vue FastAPI MySQL Python

📖 项目简介 (Introduction)

本项目是一个功能完备的现代化酒店管理系统,旨在解决传统酒店管理中存在的效率低下、数据易错和统计滞后等问题。系统采用 B/S (Browser/Server) 架构,前端基于 Vue 3 + Element Plus 构建响应式用户界面,后端采用高性能的 Python FastAPI 框架,数据库选用 MySQL 8.0

系统实现了酒店业务的全流程闭环管理,包括用户权限控制、房型与客房管理、客户信息录入、订单预订/入住/退房以及经营数据的可视化统计。

✨ 核心功能 (Features)

  • 🔒 权限管理 (RBAC): 基于角色的访问控制,区分 管理员 (Admin)员工 (Staff)
    • 管理员:拥有用户管理、删除订单、系统设置等最高权限。
    • 员工:仅限日常业务操作(入住、退房、查询),无法访问敏感设置。
  • 💾 数据完整性保障:
    • 外键保护: 防止误删除有订单关联的客户或房间。
    • 事务控制: 保证“入住办理”和“退房结算”等复合操作的原子性。
    • 业务逻辑校验: 严防“双重预订”和“无效时间段”。
  • 📊 数据可视化: 集成 ECharts 图表库,直观展示:
    • 最近 7 天的订单趋势与营收曲线。
    • 当前房型分布与入住率统计。
  • 🏘️ 全面的业务模块:
    • 房型管理: 灵活配置房型名称、价格、最大入住人数。
    • 客房管理: 实时查看和修改房间状态(空闲、入住、维修等)。
    • 客户管理: 建立客户电子档案,支持身份证快速检索。
    • 订单中心: 支持预订、入住、换房、退房的全生命周期管理。

🛠️ 技术栈 (Tech Stack)

前端 (Frontend)

  • Framework: Vue.js 3 (Composition API)
  • Build Tool: Vite
  • UI Library: Element Plus
  • State Management: Pinia
  • HTTP Client: Axios
  • Visualization: ECharts 5 / Vue-ECharts
  • Router: Vue Router 4

后端 (Backend)

  • Framework: FastAPI (Python)
  • ORM: SQLAlchemy
  • Data Validation: Pydantic
  • Authentication: JWT (JSON Web Tokens)
  • Password Hashing: Passlib (Bcrypt)

数据库 (Database)

  • Database: MySQL 8.0+
  • Engine: InnoDB (支持事务与外键)

📂 目录结构 (Directory Structure)

Hotel System/
├── Backend/                # 后端项目根目录
│   ├── app/
│   │   ├── crud/           # 数据库增删改查逻辑
│   │   ├── routers/        # API 路由定义 (Controllers)
│   │   ├── models.py       # SQLAlchemy ORM 模型
│   │   ├── schemas.py      # Pydantic 数据校验模式
│   │   ├── database.py     # 数据库连接配置
│   │   └── main.py         # 应用入口
│   ├── run.py              # 启动脚本
│   └── requirements.txt    # Python 依赖清单
│
├── Frontend/               # 前端项目根目录
│   ├── src/
│   │   ├── api/            # Axios API 封装
│   │   ├── components/     # 公共组件
│   │   ├── keys/           # 组合式函数 (Composables)
│   │   ├── layout/         # 页面布局组件
│   │   ├── router/         # 路由配置
│   │   ├── stores/         # Pinia 状态仓库
│   │   ├── views/          # 页面视图 (Login, Dashboard, etc.)
│   │   └── App.vue         # 根组件
│   ├── package.json        # Node.js 依赖清单
│   └── vite.config.js      # Vite 配置
│
└── MySQL/                  # 数据库脚本
    └── sql_instruction.sql # 初始化 SQL 脚本

🚀 快速开始 (Getting Started)

1. 环境准备

确保您的本地环境已安装:

  • Python 3.8+
  • Node.js 16+
  • MySQL 8.0+
  • Git

2. 数据库配置

  1. 登录 MySQL 创建数据库:
    CREATE DATABASE hotel_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  2. 找到 Backend/app/database.py,修改数据库连接配置(用户名/密码):
    SQLALCHEMY_DATABASE_URL = "mysql+pymysql://root:your_password@localhost:3306/hotel_db"
    (注:系统启动时会自动建表,无需手动执行 SQL,除非需要导入初始数据)

3. 后端启动 (Backend)

cd Backend

# 1. (可选) 创建虚拟环境
conda create -n DataBase python=3.10 -y
conda activate DataBase

# 2. 安装依赖
pip install -r requirements.txt

# 3. 启动服务
python run.py

若启动成功,控制台将显示:Uvicorn running on http://127.0.0.1:8000

4. 前端启动 (Frontend)

cd Frontend

# 1. 安装依赖
npm install

# 2. 启动开发服务器
npm run dev

访问浏览器控制台显示的地址(通常为 http://localhost3000)即可进入系统。

5. 默认账号

  • 管理员: admin / password123
  • 员工: staff001 / password123

About

Database Course Design Implemented using MySQL + Python (FastAPI) + Vue 3 - Hotel Management System

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published