Files
ftb-project-management/docs/superpowers/specs/2026-06-08-project-structure-design.md
Script Generator 8de1f93fd3 feat: 初始化 FTB 智能项目管理系统 monorepo 项目结构
包含 Turborepo 配置、Next.js 前端骨架、NestJS 后端骨架、Prisma Schema、
共享类型包、Docker Compose 和环境变量模板。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-08 10:31:35 +08:00

5.3 KiB
Raw Blame History

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