# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Project Overview Seclusion 是一个基于 Next.js + NestJS 的 Monorepo 项目模板,使用 pnpm workspace + Turborepo 管理。 ## Commands ```bash # 开发(同时启动前后端) pnpm dev # 构建 pnpm build # 代码检查 pnpm lint pnpm format # 格式化 pnpm format:check # 检查格式 # 测试 pnpm test cd apps/api && pnpm test:watch # 单个测试文件监听 # 数据库 pnpm db:generate # 生成 Prisma Client pnpm db:push # 推送 schema 到数据库 pnpm db:migrate # 运行迁移 cd apps/api && pnpm db:studio # 打开 Prisma Studio ``` ## Architecture ### Monorepo 结构 - **apps/web** - Next.js 15 前端 (端口 3000) - **apps/api** - NestJS 10 后端 (端口 4000,API 文档: /api/docs) - **packages/shared** - 共享类型定义和工具函数 - **packages/eslint-config** - 共享 ESLint 配置 - **packages/typescript-config** - 共享 TypeScript 配置 ### 后端模块 (apps/api) NestJS 采用模块化架构: - **PrismaModule** - 全局数据库服务,其他模块通过依赖注入使用 - **AuthModule** - JWT 认证(注册、登录、token 验证) - **UserModule** - 用户 CRUD 认证流程:使用 `@Public()` 装饰器标记公开接口,其他接口需要 JWT Bearer Token。 ### 共享包使用 ```typescript import type { User, ApiResponse } from '@seclusion/shared'; import { formatDate, generateId } from '@seclusion/shared'; ``` ## Key Files - `apps/api/prisma/schema.prisma` - 数据库模型定义 - `apps/api/.env` - 后端环境变量 (DATABASE_URL, JWT_SECRET) - `apps/web/.env.local` - 前端环境变量 (NEXT_PUBLIC_API_URL) - `turbo.json` - Turborepo 任务依赖配置