- 添加项目文档 CLAUDE.md,包含常用命令和架构说明 - 添加 packages/server/.env 环境变量配置文件 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2.3 KiB
2.3 KiB
CLAUDE.md
本文档为 Claude Code (claude.ai/code) 在本项目中工作时提供指导。
项目概述
这是一个普拉提预约微信小程序项目,后端采用 NestJS 框架。项目使用 pnpm monorepo 结构,包含 3 个包:
- packages/app - Vue 3 + uni-app(微信小程序前端)
- packages/server - NestJS(后端 API 服务)
- packages/shared - TypeScript 类型定义、枚举、常量(前后端共用)
常用命令
# 开发
pnpm dev:server # 启动 NestJS 后端(热重载)
pnpm dev:app # 构建 uni-app 为微信小程序
# 构建
pnpm build:shared # 编译共享类型
pnpm build:server # 构建 NestJS 后端
pnpm build:app # 构建微信小程序
# 测试与代码检查
pnpm test # 运行所有测试(仅 server)
pnpm lint # 运行 ESLint(仅 server)
# 数据库相关(位于 packages/server 目录)
cd packages/server
pnpm prisma:generate # 生成 Prisma 客户端
pnpm prisma:migrate # 执行数据库迁移
pnpm prisma:seed # 填充测试数据
pnpm test:watch # 监听模式运行测试
# 部署
pnpm deploy:server # 部署后端到生产环境
架构说明
前端 (packages/app)
- 基于 Vue 3 + uni-app 框架,主攻微信小程序平台
- 页面目录:
src/pages/(包含 home、booking、card、profile、admin 等模块) - 组件目录:
src/components/ - 状态管理:Pinia
- 样式:SCSS
后端 (packages/server)
- 框架:NestJS + Prisma ORM
- 核心模块:auth(认证)、user(用户)、booking(预约)、membership(会员卡)、payment(支付)、studio(场馆)、time-slot(时段)、scheduler(定时任务)、admin(管理)
- 认证:JWT + 微信登录
- 定时任务:@nestjs/schedule
- 数据库:SQLite(开发)/ MySQL(生产)
共享包 (packages/shared)
- TypeScript 接口和类型定义
- 枚举值定义
- 前后端共用的 DTO 类型
API 结构
- 所有接口统一前缀:
/api - RESTful 风格接口
- 全局拦截器:日志记录、响应包装
- 全局过滤器:异常处理
数据库
- Prisma schema 位于
packages/server/prisma/schema.prisma - 核心数据模型:User(用户)、Studio(场馆)、TimeSlot(时段)、Booking(预约)、Membership(会员卡)、CardType(卡种)、Order(订单)