Script Generator e92ec4eb0e fix: formatDuration 时间差为0时显示0h而非1天
之前 hours=0 时会落到 days 分支显示"1天",实际是开始和完成时间相同。
现在统一按小时数判断,不到1天显示Xh,整天显示X天。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-12 16:43:54 +08:00
2026-06-08 12:28:14 +08:00

FTB 项目管理系统

基于 Next.js + NestJS 的项目管理系统,包含产品管理、项目管理、版本管理、需求管理、加班记录、成员/角色管理等模块。

环境要求

工具 版本 说明
Node.js >= 18.x 推荐 20.x LTS
pnpm >= 9.4.0 包管理器
Git >= 2.x 版本控制

后端(可选)还需要 PostgreSQL >= 15 和 Redis >= 7目前前端独立运行不依赖后端。

安装 Node.js 和 pnpm

# Windows - 下载安装包
# https://nodejs.org/en/download

# 安装 pnpm
npm install -g pnpm@9.4.0

快速开始

# 1. 克隆项目
git clone https://github.com/chengnianbai/ftb-project-management.git
cd ftb-project-management

# 2. 安装依赖
pnpm install

# 3. 启动前端开发服务器
cd apps/web
npx next dev -p 3000

# 4. 打开浏览器
# http://localhost:3000

项目结构

ftb-project-management/
├── apps/
│   ├── web/                  # 前端 (Next.js 14 + React 18)
│   │   ├── app/              # 页面路由
│   │   │   ├── products/     # 产品管理
│   │   │   ├── projects/     # 项目管理
│   │   │   ├── versions/     # 版本管理
│   │   │   ├── requirements/ # 需求管理
│   │   │   ├── overtime/     # 加班记录
│   │   │   └── admin/        # 管理(成员/角色)
│   │   ├── components/       # 通用组件
│   │   ├── stores/           # Zustand 状态管理
│   │   └── lib/              # 类型定义/工具函数
│   └── server/               # 后端 (NestJS 10, 暂未启用)
│       ├── src/
│       └── prisma/           # 数据库 Schema
├── packages/
│   └── shared/               # 共享类型
├── package.json              # Monorepo 根配置
├── pnpm-workspace.yaml       # pnpm workspace
└── turbo.json                # Turborepo 配置

技术栈

前端

  • Next.js 14 (App Router)
  • React 18
  • TypeScript 5.5
  • Tailwind CSS
  • Zustand (状态管理)
  • Lucide React (图标)

后端(暂未启用)

  • NestJS 10
  • Prisma (ORM)
  • PostgreSQL

工程化

  • pnpm workspace (Monorepo)
  • Turborepo (任务编排)

功能模块

模块 路径 状态
产品管理 /products 已完成
项目管理 /projects 已完成
版本管理 /versions 已完成
需求管理 /requirements 已完成
加班记录 /overtime 已完成
成员管理 /admin/members 已完成
角色管理 /admin/roles 已完成

数据存储

当前阶段所有数据存储在浏览器 localStorage 中Mock 模式),无需数据库即可体验完整功能。后续接入后端 API 后切换为数据库持久化。

常用命令

# 前端开发
cd apps/web && npx next dev -p 3000

# TypeScript 类型检查
cd apps/web && npx tsc --noEmit

# 全量构建
pnpm build

后端启动(可选)

如果需要启动后端 API

# 1. 安装 PostgreSQL 并创建数据库
createdb ftb_pm

# 2. 配置环境变量
cd apps/server
cp .env.example .env
# 编辑 .env 设置 DATABASE_URL

# 3. 初始化数据库
npx prisma migrate dev

# 4. 启动
npm run dev
# 后端运行在 http://localhost:3001
Description
No description provided
Readme 4.3 MiB
Languages
TypeScript 95.5%
JavaScript 4.4%