Published on

酒店在线预订系统 —— 全栈项目实践

Authors
  • avatar
    Name
    yang
    Twitter

项目简介

这是一个完整的酒店在线预订系统,实现了从房间浏览、在线下单到后台管理的完整业务流程。系统内置用户、前台、管理员三级权限,覆盖房型管理、房间库存、订单流转等核心模块。

在线体验:https://hotel-booking.pocketbay.app

技术栈

  • 后端:NestJS 11 + TypeScript + Express
  • 前端:React 18 + Vite + Ant Design 5 + React Router + Zustand + Axios
  • 数据库:Prisma 6 ORM + PostgreSQL
  • 认证:JWT 双 Token(access token 2 小时 + refresh token 7 天)
  • 缓存:Redis(ioredis),支持内存降级

核心功能

  • 房型管理:4 种房型,支持周末价格上浮 20%
  • 房间与库存:27 间房、30 天库存,自动生成
  • 在线预订:用户浏览房型 → 选择日期 → 下单支付
  • 订单管理:下单 → 支付 → 确认 → 完成/取消的完整流转
  • 订单超时自动取消:定时任务检测超时未支付订单并自动取消
  • 三级权限(RBAC):用户 / 前台 / 管理员

架构说明

系统采用前后端分离架构,前端由 Vite 构建后托管在后端服务中统一对外提供。后端按业务模块划分(房型、房间、订单、认证、用户等),通过 Prisma ORM 访问 PostgreSQL 数据库,认证采用 JWT 双 Token 机制,配合 Redis 缓存提升性能。

总结

通过这个项目,我完整实践了全栈开发流程:从需求分析、数据库设计、接口开发,到前端页面实现和最终的部署上线。这也是我迈向全栈工程师的重要一步。