feat: 初始化 FTB 智能项目管理系统 monorepo 项目结构
包含 Turborepo 配置、Next.js 前端骨架、NestJS 后端骨架、Prisma Schema、 共享类型包、Docker Compose 和环境变量模板。 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
134
docs/superpowers/specs/2026-06-08-project-structure-design.md
Normal file
134
docs/superpowers/specs/2026-06-08-project-structure-design.md
Normal file
@@ -0,0 +1,134 @@
|
||||
# FTB 智能项目管理系统 — 项目结构设计
|
||||
|
||||
## 概述
|
||||
|
||||
基于 AI 能力的项目管理平台,核心层级:产品 → 项目 → 迭代 → 任务。采用 Turborepo monorepo + Next.js + NestJS + PostgreSQL 技术栈。
|
||||
|
||||
## 数据层级
|
||||
|
||||
```
|
||||
产品 (Product) — 顶层容器
|
||||
├── 需求池 (Requirement) — 需求管理、评审流转
|
||||
├── 发布版本 (Version) — v1.0/v2.0,关联多个任务追踪发布范围
|
||||
└── 项目 (Project) — 归属于产品
|
||||
├── 迭代 (Sprint) — 时间盒开发周期
|
||||
└── 任务 (Task) — 归属迭代,可关联版本
|
||||
```
|
||||
|
||||
## 后端模块划分
|
||||
|
||||
| 模块 | 职责 | 关键实体 |
|
||||
|------|------|---------|
|
||||
| product | 产品 CRUD、需求池管理、需求评审状态流转 | Product, Requirement |
|
||||
| version | 产品发布版本、版本规划、关联任务范围 | Version |
|
||||
| project | 项目 CRUD、项目设置 | Project |
|
||||
| sprint | 迭代管理、迭代规划、燃尽图数据源 | Sprint |
|
||||
| task | 任务 CRUD、状态机、看板、甘特图、子任务 | Task, Comment, Attachment |
|
||||
| member | 用户管理、角色分配(RBAC)、项目成员 | User, Role, ProjectMember |
|
||||
| dashboard | "与我相关"聚合视图 | 无独立实体,聚合查询 |
|
||||
| ai | 任务智能分解、风险预警、排期建议 | AiLog |
|
||||
| common | 守卫、拦截器、管道、装饰器 | — |
|
||||
|
||||
## 目录结构
|
||||
|
||||
```
|
||||
ftb-project-management/
|
||||
├── apps/
|
||||
│ ├── web/ # Next.js 14+ (App Router)
|
||||
│ │ ├── app/
|
||||
│ │ │ ├── (auth)/ # 登录、注册
|
||||
│ │ │ ├── workspace/ # "与我相关"
|
||||
│ │ │ ├── products/ # 产品列表 + 详情
|
||||
│ │ │ │ └── [id]/
|
||||
│ │ │ │ ├── requirements/ # 需求池
|
||||
│ │ │ │ └── versions/ # 版本管理
|
||||
│ │ │ ├── projects/
|
||||
│ │ │ │ └── [id]/
|
||||
│ │ │ │ ├── board/ # 看板
|
||||
│ │ │ │ ├── gantt/ # 甘特图
|
||||
│ │ │ │ ├── sprints/ # 迭代
|
||||
│ │ │ │ └── settings/ # 项目设置+成员
|
||||
│ │ │ └── admin/ # 全局管理
|
||||
│ │ ├── components/
|
||||
│ │ │ ├── ui/ # Shadcn 基础组件
|
||||
│ │ │ ├── board/ # 看板组件
|
||||
│ │ │ ├── gantt/ # 甘特图组件
|
||||
│ │ │ └── shared/ # 通用业务组件
|
||||
│ │ ├── hooks/
|
||||
│ │ ├── stores/ # Zustand stores
|
||||
│ │ └── lib/ # 工具函数、API client
|
||||
│ └── server/ # NestJS 后端
|
||||
│ ├── src/
|
||||
│ │ ├── modules/
|
||||
│ │ │ ├── product/
|
||||
│ │ │ ├── version/
|
||||
│ │ │ ├── project/
|
||||
│ │ │ ├── sprint/
|
||||
│ │ │ ├── task/
|
||||
│ │ │ ├── member/
|
||||
│ │ │ ├── dashboard/
|
||||
│ │ │ └── ai/
|
||||
│ │ ├── common/ # 守卫、拦截器、管道
|
||||
│ │ └── prisma/ # Schema + Migrations
|
||||
│ └── test/
|
||||
├── packages/
|
||||
│ └── shared/ # 前后端共享类型、枚举、常量
|
||||
├── docker-compose.yml
|
||||
├── docker-compose.prod.yml
|
||||
└── turbo.json
|
||||
```
|
||||
|
||||
## 前端路由
|
||||
|
||||
| 路由 | 页面 |
|
||||
|------|------|
|
||||
| `/login` | 登录 |
|
||||
| `/workspace` | "与我相关"(我的任务、我创建的、我关注的) |
|
||||
| `/products` | 产品列表 |
|
||||
| `/products/[id]` | 产品详情 |
|
||||
| `/products/[id]/requirements` | 需求池 |
|
||||
| `/products/[id]/versions` | 版本管理 |
|
||||
| `/projects/[id]/board` | 看板 |
|
||||
| `/projects/[id]/gantt` | 甘特图 |
|
||||
| `/projects/[id]/sprints` | 迭代管理 |
|
||||
| `/projects/[id]/settings` | 项目设置 + 成员管理 |
|
||||
| `/admin/members` | 全局人员管理 |
|
||||
|
||||
## 任务状态机
|
||||
|
||||
```
|
||||
todo → in_progress → in_review → done → closed
|
||||
```
|
||||
|
||||
看板列对应状态,支持自定义列名但不改变底层状态枚举。
|
||||
|
||||
## 关键数据关系
|
||||
|
||||
- Product 1:N Project(产品下有多个项目)
|
||||
- Product 1:N Requirement(产品有需求池)
|
||||
- Product 1:N Version(产品有发布版本)
|
||||
- Project 1:N Sprint(项目有多个迭代)
|
||||
- Sprint 1:N Task(迭代包含多个任务)
|
||||
- Task N:1 Version(任务可关联到某个发布版本)
|
||||
- Task 自引用(parent_id,无限层级子任务)
|
||||
- Requirement → Task(需求可一键转为任务)
|
||||
- Task 有 assignee、creator、watchers
|
||||
|
||||
## 权限模型
|
||||
|
||||
项目级 RBAC,四个角色:
|
||||
- **Owner** — 项目所有者,全部权限
|
||||
- **Admin** — 管理成员、修改项目设置
|
||||
- **Member** — 创建/编辑任务、评论
|
||||
- **Viewer** — 只读访问
|
||||
|
||||
全局管理员可管理所有产品和人员。
|
||||
|
||||
## AI 模块
|
||||
|
||||
独立 NestJS Module,统一通过 AiGateway 调用:
|
||||
- 任务智能分解:输入需求描述,输出结构化子任务列表
|
||||
- 风险预警:分析项目延期风险,基于历史数据和当前进度
|
||||
- 排期建议:基于成员负载和任务依赖给出时间安排
|
||||
|
||||
所有 AI 调用记录到 AiLog 表,支持审计和 token 用量追踪。
|
||||
Reference in New Issue
Block a user