137 lines
3.3 KiB
Markdown
137 lines
3.3 KiB
Markdown
# 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
|
||
|
||
```bash
|
||
# Windows - 下载安装包
|
||
# https://nodejs.org/en/download
|
||
|
||
# 安装 pnpm
|
||
npm install -g pnpm@9.4.0
|
||
```
|
||
|
||
## 快速开始
|
||
|
||
```bash
|
||
# 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 后切换为数据库持久化。
|
||
|
||
## 常用命令
|
||
|
||
```bash
|
||
# 前端开发
|
||
cd apps/web && npx next dev -p 3000
|
||
|
||
# TypeScript 类型检查
|
||
cd apps/web && npx tsc --noEmit
|
||
|
||
# 全量构建
|
||
pnpm build
|
||
```
|
||
|
||
## 后端启动(可选)
|
||
|
||
如果需要启动后端 API:
|
||
|
||
```bash
|
||
# 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
|
||
```
|