包含 Turborepo 配置、Next.js 前端骨架、NestJS 后端骨架、Prisma Schema、 共享类型包、Docker Compose 和环境变量模板。 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5.3 KiB
5.3 KiB
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 用量追踪。