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:
Script Generator
2026-06-08 10:31:35 +08:00
commit 8de1f93fd3
30 changed files with 1785 additions and 0 deletions

View 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 用量追踪。