Booking System (Fixed)

Booking System (Fixed)

集成了 Google 日历、邮件确认和 MCP 服务器的固定预订系统

Konstrex

云平台
访问服务器

README

预订系统(已修复)

此仓库包含 Andriana Delcheva 预订系统的已修复版本,解决了先前实现中的几个关键问题。该系统旨在在 Cloudflare Workers 上运行,并与 Google 日历和 MCP 服务器集成。

🛠️ 已修复的问题

此实现解决了原始系统中存在的以下问题:

  1. 已修复预订完成 - 用户现在可以成功选择日期并完成预订。
  2. 已修复确认邮件 - 成功预订后,现在会发送电子邮件确认。
  3. 已修复 Google 日历集成 - 预订现在会在 Google 日历中创建事件。
  4. 已实施可用性检查 - 系统在确认预订之前会检查可用时段。
  5. 已实施 MCP 服务器集成 - 后端处理使用 MCP 服务器以增强功能。

🌟 主要功能

  • 多步骤预订流程 - 直观的逐步预订流程,以获得更好的用户体验
  • 实时可用性检查 - 检查 Google 日历是否存在冲突
  • 自动电子邮件确认 - 向客户发送详细信息
  • Google 日历集成 - 使用服务详细信息创建日历事件
  • MCP 服务器集成 - 跟踪预订事件并提供增强的处理
  • 全面的错误处理 - 向用户提供有意义的反馈
  • 响应式设计 - 适用于移动和桌面设备

🚀 部署

前提条件

  • Cloudflare Workers 帐户
  • 启用了 Calendar API 的 Google Cloud 项目
  • 有权访问日历的 Google 服务帐户
  • 用于后端处理的 MCP 服务器

设置说明

  1. 克隆存储库
git clone https://github.com/Konstrex/booking-system-fixed.git
cd booking-system-fixed
  1. 安装依赖项
npm install
  1. 配置环境变量

以下环境变量需要在 wrangler.toml 文件中设置,或者使用 Cloudflare 的 secrets 设置:

  • Google 日历集成

    • GOOGLE_CLIENT_EMAIL - 已配置为 "andrianadelcheva@totemic-point-453101-s4.iam.gserviceaccount.com"
    • GOOGLE_PRIVATE_KEY - 您的服务帐户私钥
    • GOOGLE_CALENDAR_ID - 要使用的日历的 ID
  • 电子邮件配置

    • EMAIL_FROM - 用于发送确认邮件的电子邮件地址
    • BUSINESS_NAME - 业务名称(已设置为 "Andriana Delcheva")
    • BUSINESS_EMAIL - 用于回复的业务电子邮件
  • MCP 服务器集成

    • MCP_ENABLED - 设置为 "true" 以启用 MCP 集成
    • MCP_SERVER_URL - MCP 服务器的 URL
    • MCP_API_KEY - 用于向 MCP 服务器进行身份验证的 API 密钥
  1. 使用 Wrangler 设置 secrets

对于敏感信息,请使用 Wrangler 的 secret 管理:

wrangler secret put GOOGLE_PRIVATE_KEY
wrangler secret put GOOGLE_CALENDAR_ID
wrangler secret put MCP_SERVER_URL
wrangler secret put MCP_API_KEY
  1. 部署到 Cloudflare Workers
npm run deploy:prod

📝 Google 日历设置

为确保 Google 日历集成正常工作:

  1. 通过将服务帐户添加到您的 Google 日历,确保该服务帐户具有适当的权限:

    • 打开 Google 日历
    • 转到日历设置
    • 在“与特定人员共享”下,添加服务帐户电子邮件: andrianadelcheva@totemic-point-453101-s4.iam.gserviceaccount.com
    • 将权限设置为“进行更改并管理共享”
  2. JWT 身份验证配置为使用正确的 token_uri: https://oauth2.googleapis.com/token

📧 电子邮件配置

系统使用 MCP 服务器处理电子邮件通知。成功预订后,将发送一封包含以下内容的电子邮件:

  • 主题:“预订确认”
  • 预约详情(日期、时间、服务)
  • Google 日历链接
  • 预订参考编号

🤖 MCP 服务器集成

MCP 服务器用于增强功能:

  1. 事件通知 - MCP 会收到有关关键事件的通知:

    • 可用性检查
    • 预订创建
    • 电子邮件确认
    • 日历事件创建
  2. 错误处理 - MCP 接收详细的错误信息,用于监控和调试。

  3. 预订处理 - 如果配置了,系统可以将整个预订过程卸载到 MCP。

🧪 测试

要在本地测试系统:

npm run dev:local

对于端到端测试:

  1. 选择日期和服务
  2. 检查可用时间段
  3. 输入客户详细信息
  4. 完成预订
  5. 验证预约是否出现在 Google 日历中
  6. 确认收到确认邮件

📚 技术实现细节

已修复的预订流程

预订流程已完全重新设计,以确保在预订时发出单个 API 请求。主要改进:

  • 多步骤表单,每一步都有验证
  • 用于最终预订请求的单个 API 调用
  • 失败预订的清晰错误消息
  • API 调用期间的加载指示器

已修复的 Google 日历集成

Google 日历集成现在:

  1. 使用带有服务帐户的正确 JWT 身份验证
  2. 在预订之前检查现有事件
  3. 创建包含所有预订信息的详细日历事件
  4. 正确格式化日期和时间
  5. 包括参与者和提醒

增强的错误处理

已实施全面的错误处理:

  • 带有特定消息的验证错误
  • 带有重试选项的网络错误处理
  • 带有 MCP 集成的服务器错误日志记录
  • 用户友好的错误消息

📋 API 端点

检查可用性

POST /api/availability

请求正文:

{
  "date": "2025-03-15",
  "duration": 60
}

响应:

{
  "success": true,
  "availableSlots": [
    { "startTime": "09:00", "endTime": "10:00" },
    { "startTime": "10:00", "endTime": "11:00" },
    /* ... */
  ]
}

预订预约

POST /api/book

请求正文:

{
  "name": "John Doe",
  "email": "john@example.com",
  "phone": "+1234567890",
  "date": "2025-03-15",
  "time": "10:00",
  "services": [
    {
      "name": "Massage",
      "duration": 60,
      "price": 80
    }
  ],
  "notes": "Optional notes",
  "agreed": true
}

响应:

{
  "success": true,
  "message": "Booking created successfully",
  "bookingId": "BK-JOHNDO-123456",
  "eventId": "calendar_event_id"
}

🔄 持续改进

未来的改进可能包括:

  • 添加用于管理预订的仪表板
  • 实施预订取消/重新安排
  • 添加支付集成
  • 创建客户帐户系统

推荐服务器

contentful-mcp

contentful-mcp

在你的 Contentful Space 中更新、创建、删除内容、内容模型和资源。

精选
TypeScript
Supabase MCP Server

Supabase MCP Server

一个模型上下文协议(MCP)服务器,它提供对 Supabase 管理 API 的编程访问。该服务器允许 AI 模型和其他客户端通过标准化的接口来管理 Supabase 项目和组织。

精选
JavaScript
Azure MCP Server

Azure MCP Server

通过 Claude Desktop 实现与 Azure 服务的自然语言交互,支持资源管理、订阅处理和租户选择,并提供安全身份验证。

官方
本地
TypeScript
Settlemint

Settlemint

利用 SettleMint 的模型上下文协议服务器,无缝地与企业区块链基础设施交互。通过人工智能驱动的助手构建、部署和管理智能合约,从而简化您的区块链开发工作流程,实现最高的效率。

官方
本地
TypeScript
Brev

Brev

在云端运行、构建、训练和部署机器学习模型。

官方
本地
Python
Story Protocol SDK MCP

Story Protocol SDK MCP

这个服务器提供 MCP(模型上下文协议)工具,用于与 Story 的 Python SDK 交互。 功能: * 获取许可条款 * 使用 PIL 条款铸造和注册 IP 资产 * 铸造许可代币 * 向钱包发送 $IP * 通过 Pinata [外部] 上传图像到 ipfs * 通过 Pinata [外部] 上传 IP 和 NFT 元数据

官方
Python
Tembo MCP Server

Tembo MCP Server

一个 MCP 服务器,它使 Claude 能够与 Tembo Cloud 平台 API 交互,从而允许用户通过自然语言管理 Tembo Cloud 资源。

官方
TypeScript
Workers MCP

Workers MCP

一个连接 Claude Desktop 和其他 MCP 客户端到 Cloudflare Workers 的软件包,从而可以通过模型上下文协议,使用自然语言访问自定义功能。

官方
TypeScript
Appwrite MCP Server

Appwrite MCP Server

一个模型上下文协议服务器,允许 AI 助手与 Appwrite 的 API 交互,从而提供管理 Appwrite 项目中数据库、用户、函数、团队和其他资源的工具。

官方
Python
MCP2Lambda

MCP2Lambda

通过 MCP 协议,人工智能模型能够与 AWS Lambda 函数交互,从而在安全的环境中访问私有资源、实时数据和自定义计算。

官方
Python