docs: 同步 CLAUDE.md,反映已实现的产品需求管理模块
更新架构目录、数据模型、API 端点、开发模式说明,标记已完成模块。 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
131
CLAUDE.md
131
CLAUDE.md
@@ -4,16 +4,19 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
|||||||
|
|
||||||
## Project Overview
|
## Project Overview
|
||||||
|
|
||||||
FTB 智能项目管理系统 — 一个集成 AI 能力的项目管理平台,核心目标是通过智能化手段提升项目管理效率。
|
FTB 智能项目管理系统 — 一个集成 AI 能力的项目管理平台,核心层级:产品 → 项目 → 迭代 → 任务。
|
||||||
|
|
||||||
### 核心功能模块
|
### 核心功能模块
|
||||||
|
|
||||||
- **任务管理**:任务创建、分配、状态流转、优先级管理
|
- **产品管理**:产品 CRUD,作为最顶层组织容器
|
||||||
- **看板视图**:可视化任务拖拽、自定义工作流列
|
- **需求池**:需求创建、编辑、状态流转(draft → reviewing → approved/rejected → delivered)
|
||||||
- **甘特图**:项目时间线规划与依赖关系管理
|
- **项目管理**:归属于产品,项目 CRUD + 成员管理
|
||||||
|
- **版本管理**:产品发布版本,关联任务追踪发布范围
|
||||||
|
- **迭代管理**:项目内 Sprint,时间盒开发周期
|
||||||
|
- **任务管理**:任务 CRUD、状态机、看板视图、甘特图、子任务
|
||||||
|
- **与我相关**:个人任务汇总(分配给我的、我创建的、我关注的)
|
||||||
|
- **成员与权限**:用户管理 + 项目级 RBAC(Owner/Admin/Member/Viewer)
|
||||||
- **AI 辅助**:任务智能分解、工期预估、风险预警
|
- **AI 辅助**:任务智能分解、工期预估、风险预警
|
||||||
- **资源调度**:团队成员工作负载可视化、智能排期建议
|
|
||||||
- **数据看板**:项目进度、燃尽图、团队效率指标
|
|
||||||
|
|
||||||
## Tech Stack
|
## Tech Stack
|
||||||
|
|
||||||
@@ -37,31 +40,37 @@ FTB 智能项目管理系统 — 一个集成 AI 能力的项目管理平台,
|
|||||||
ftb-project-management/
|
ftb-project-management/
|
||||||
├── apps/
|
├── apps/
|
||||||
│ ├── web/ # Next.js 前端
|
│ ├── web/ # Next.js 前端
|
||||||
│ │ ├── app/ # App Router 页面
|
│ │ ├── app/
|
||||||
│ │ ├── components/ # UI 组件
|
│ │ │ ├── products/ # 产品列表 + 详情(含需求池)✅
|
||||||
|
│ │ │ ├── projects/ # 项目相关页面(待实现)
|
||||||
|
│ │ │ ├── workspace/ # "与我相关"(待实现)
|
||||||
|
│ │ │ └── admin/ # 全局管理(待实现)
|
||||||
|
│ │ ├── components/
|
||||||
|
│ │ │ ├── product/ # 产品+需求组件 ✅
|
||||||
│ │ │ ├── ui/ # Shadcn 基础组件
|
│ │ │ ├── ui/ # Shadcn 基础组件
|
||||||
│ │ │ ├── board/ # 看板相关组件
|
│ │ │ ├── board/ # 看板组件(待实现)
|
||||||
│ │ │ ├── gantt/ # 甘特图组件
|
│ │ │ └── gantt/ # 甘特图组件(待实现)
|
||||||
│ │ │ └── dashboard/ # 数据看板组件
|
│ │ ├── stores/ # Zustand stores ✅
|
||||||
│ │ ├── hooks/ # 自定义 Hooks
|
│ │ ├── hooks/ # 自定义 Hooks
|
||||||
│ │ ├── stores/ # Zustand stores
|
│ │ └── lib/ # API 封装 + 常量 ✅
|
||||||
│ │ └── lib/ # 工具函数
|
|
||||||
│ └── server/ # NestJS 后端
|
│ └── server/ # NestJS 后端
|
||||||
│ ├── src/
|
│ ├── src/
|
||||||
│ │ ├── modules/
|
│ │ ├── modules/
|
||||||
│ │ │ ├── project/ # 项目 CRUD
|
│ │ │ ├── product/ # 产品 CRUD ✅
|
||||||
│ │ │ ├── task/ # 任务管理 + 状态机
|
│ │ │ ├── requirement/ # 需求管理 + 状态机 ✅
|
||||||
│ │ │ ├── board/ # 看板逻辑
|
│ │ │ ├── project/ # 项目(待实现)
|
||||||
│ │ │ ├── gantt/ # 甘特图数据
|
│ │ │ ├── version/ # 版本(待实现)
|
||||||
│ │ │ ├── ai/ # AI 能力封装
|
│ │ │ ├── sprint/ # 迭代(待实现)
|
||||||
│ │ │ ├── user/ # 用户与权限
|
│ │ │ ├── task/ # 任务(待实现)
|
||||||
│ │ │ └── notify/ # 通知系统
|
│ │ │ ├── member/ # 成员权限(待实现)
|
||||||
│ │ ├── common/ # 拦截器、守卫、管道
|
│ │ │ ├── dashboard/ # 与我相关(待实现)
|
||||||
│ │ └── prisma/ # Schema + Migrations
|
│ │ │ └── ai/ # AI 能力(待实现)
|
||||||
│ └── test/
|
│ │ ├── prisma/ # PrismaService(全局) ✅
|
||||||
|
│ │ └── common/ # 守卫、拦截器、管道
|
||||||
|
│ └── prisma/ # Schema + Migrations ✅
|
||||||
├── packages/
|
├── packages/
|
||||||
│ └── shared/ # 前后端共享类型定义
|
│ └── shared/ # 前后端共享类型、枚举 ✅
|
||||||
├── docker-compose.yml
|
├── docker-compose.yml # PostgreSQL + Redis
|
||||||
└── turbo.json # Turborepo monorepo 管理
|
└── turbo.json # Turborepo monorepo 管理
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -102,22 +111,40 @@ docker-compose down # 停止容器
|
|||||||
## Data Model (核心实体关系)
|
## Data Model (核心实体关系)
|
||||||
|
|
||||||
```
|
```
|
||||||
User ──┬── owns ──── Project
|
Product(产品,顶层容器)
|
||||||
│ │
|
├── Requirement(需求池)
|
||||||
│ contains many
|
├── Version(发布版本)
|
||||||
│ │
|
└── Project(项目)
|
||||||
└── assigned ── Task ──── depends on ──── Task
|
├── Sprint(迭代)
|
||||||
│
|
└── Task(任务)
|
||||||
has many
|
├── Task(子任务,自引用)
|
||||||
│
|
├── Comment(评论)
|
||||||
Comment / Activity / Attachment
|
└── TaskWatcher(关注者)
|
||||||
|
|
||||||
|
User ── ProjectMember(项目成员 + 角色)
|
||||||
```
|
```
|
||||||
|
|
||||||
关键设计决策:
|
关键设计决策:
|
||||||
- 任务状态机:`todo → in_progress → in_review → done`,支持自定义列
|
- 需求状态机:`draft → reviewing → approved/rejected → delivered`,rejected 可回退到 draft
|
||||||
|
- 任务状态机:`todo → in_progress → in_review → done → closed`
|
||||||
- 任务支持无限层级子任务(parent_id 自引用)
|
- 任务支持无限层级子任务(parent_id 自引用)
|
||||||
|
- 需求可一键转为任务(Requirement → Task)
|
||||||
|
- 任务可关联到版本(标记发布范围)
|
||||||
- 权限模型:Owner > Admin > Member > Viewer(项目级 RBAC)
|
- 权限模型:Owner > Admin > Member > Viewer(项目级 RBAC)
|
||||||
- AI 操作记录独立表存储,便于审计和回溯
|
- AI 操作记录独立表存储(AiLog),便于审计和 token 追踪
|
||||||
|
|
||||||
|
## API Endpoints(已实现)
|
||||||
|
|
||||||
|
```
|
||||||
|
# 产品
|
||||||
|
GET/POST /api/v1/products
|
||||||
|
GET/PATCH/DELETE /api/v1/products/:id
|
||||||
|
|
||||||
|
# 需求(嵌套在产品下)
|
||||||
|
GET/POST /api/v1/products/:productId/requirements
|
||||||
|
GET/PATCH/DELETE /api/v1/products/:productId/requirements/:id
|
||||||
|
PATCH /api/v1/products/:productId/requirements/:id/status
|
||||||
|
```
|
||||||
|
|
||||||
## AI Module 设计
|
## AI Module 设计
|
||||||
|
|
||||||
@@ -135,11 +162,35 @@ AI 模块作为独立 NestJS Module,对外暴露服务接口:
|
|||||||
- 分支命名:`feature/模块-描述`、`fix/模块-描述`、`hotfix/描述`
|
- 分支命名:`feature/模块-描述`、`fix/模块-描述`、`hotfix/描述`
|
||||||
- Commit 格式:`类型(模块): 描述`(中文)
|
- Commit 格式:`类型(模块): 描述`(中文)
|
||||||
- 类型:feat / fix / refactor / docs / test / chore
|
- 类型:feat / fix / refactor / docs / test / chore
|
||||||
- API 路径:`/api/v1/projects/:projectId/tasks/:taskId`(RESTful 嵌套资源)
|
- API 路径:RESTful 嵌套资源,如 `/api/v1/products/:productId/requirements/:id`
|
||||||
- 前端路由:`/projects/[id]/board`、`/projects/[id]/gantt`、`/projects/[id]/dashboard`
|
- 前端路由:`/products/[id]`、`/projects/[id]/board`、`/projects/[id]/gantt`
|
||||||
- 数据库表名 snake_case,TypeScript 字段 camelCase(Prisma 自动映射)
|
- 数据库表名 snake_case,TypeScript 字段 camelCase(Prisma `@map` 映射)
|
||||||
- 组件文件 PascalCase,工具函数文件 camelCase
|
- 组件文件 PascalCase,工具函数文件 camelCase
|
||||||
- Zustand store 按功能域拆分:`useProjectStore`、`useTaskStore`、`useBoardStore`
|
- Zustand store 按功能域拆分:`useProductStore`、`useRequirementStore`
|
||||||
|
|
||||||
|
### 后端模块开发模式
|
||||||
|
|
||||||
|
每个 NestJS 业务模块遵循统一结构:
|
||||||
|
|
||||||
|
```
|
||||||
|
modules/<name>/
|
||||||
|
├── <name>.module.ts # Module 声明
|
||||||
|
├── <name>.controller.ts # RESTful 端点
|
||||||
|
├── <name>.service.ts # 业务逻辑
|
||||||
|
└── dto/
|
||||||
|
├── create-<name>.dto.ts
|
||||||
|
└── update-<name>.dto.ts
|
||||||
|
```
|
||||||
|
|
||||||
|
- DTO 属性使用 `!` 声明确定赋值(class-validator 负责运行时校验)
|
||||||
|
- PrismaService 通过 @Global() PrismaModule 注入,无需各模块重复导入
|
||||||
|
- 状态变更使用独立端点 `PATCH /:id/status`,与通用 PATCH 分离
|
||||||
|
|
||||||
|
### 前端开发模式
|
||||||
|
|
||||||
|
- 页面组件统一标记 `'use client'`(管理后台不使用 SSR)
|
||||||
|
- Store 通过 `lib/api.ts` 封装的 fetch 与后端通信
|
||||||
|
- 组件按功能域分组在 `components/<domain>/` 下
|
||||||
|
|
||||||
## Environment Variables
|
## Environment Variables
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user