prd.md 8.8 KB

shadcn管理后台前后端全栈启动模板 Product Requirements Document (PRD)

Goals and Background Context

Goals

  • 提供一个基于shadcn/ui的现代化管理后台全栈启动模板
  • 实现基本的用户管理功能(CRUD操作)
  • 建立完整的认证和授权体系
  • 提供可扩展的项目结构和开发规范
  • 支持快速开始新项目的开发

Background Context

随着现代Web应用开发的复杂性增加,开发团队需要一个高质量、标准化、可扩展的全栈启动模板来加速项目开发。shadcn/ui作为一个流行的React UI组件库,提供了优秀的开发体验和现代化的设计。本模板旨在结合shadcn/ui的优秀特性,提供一个完整的全栈管理后台解决方案,帮助开发团队快速启动新项目,减少重复性工作,确保代码质量和一致性。

Change Log

Date Version Description Author
2025-09-12 v1.0 初始PRD创建 PM Agent

Requirements

Functional

  1. FR1: 用户应该能够注册新账户
  2. FR2: 用户应该能够登录到系统
  3. FR3: 用户应该能够查看用户列表
  4. FR4: 用户应该能够创建新用户
  5. FR5: 用户应该能够编辑现有用户信息
  6. FR6: 用户应该能够删除用户
  7. FR7: 用户应该能够重置密码
  8. FR8: 系统应该提供角色基础的权限控制
  9. FR9: 系统应该提供用户状态管理(激活/禁用)
  10. FR10: 系统应该提供用户个人资料管理

Non Functional

  1. NFR1: 前端应该使用React + TypeScript + shadcn/ui
  2. NFR2: 后端应该使用Node.js + Express或类似框架
  3. NFR3: 数据库应该支持PostgreSQL或SQLite
  4. NFR4: 代码应该遵循ESLint和Prettier规范
  5. NFR5: 项目应该包含完整的开发环境配置
  6. NFR6: 模板应该提供Docker开发环境
  7. NFR7: 应该包含基本的单元测试和集成测试
  8. NFR8: 应该提供API文档(Swagger/OpenAPI)
  9. NFR9: 应该支持环境变量配置
  10. NFR10: 应该提供部署脚本和配置示例

User Interface Design Goals

Overall UX Vision

创建一个现代化、直观、响应式的管理后台界面,专注于用户体验和开发效率。界面应该简洁明了,操作流程顺畅,符合现代Web应用的设计标准。

Key Interaction Paradigms

  • 基于表单的数据输入和编辑
  • 表格数据的浏览和操作
  • 模态框进行详细操作
  • 面包屑导航和侧边栏菜单
  • 实时反馈和状态提示

Core Screens and Views

  1. 登录页面
  2. 主仪表板
  3. 用户列表页面
  4. 用户创建/编辑表单
  5. 用户详情页面
  6. 个人资料设置页面

Accessibility: WCAG AA

确保界面符合WCAG AA可访问性标准,支持键盘导航和屏幕阅读器。

Branding

采用shadcn/ui的默认设计语言,保持简洁专业的风格,支持自定义主题。

Target Device and Platforms: Web Responsive

支持桌面端、平板和移动端的响应式设计。

Technical Assumptions

Repository Structure: Monorepo

采用monorepo结构管理前后端代码,便于协同开发和依赖管理。

Service Architecture

采用前后端分离架构,前端使用React应用,后端提供RESTful API服务。

Testing Requirements

采用完整的测试金字塔策略,包括单元测试、集成测试和端到端测试。

Additional Technical Assumptions and Requests

  • 使用JWT进行身份认证
  • 使用bcrypt进行密码加密
  • 支持CORS配置
  • 提供日志记录机制
  • 支持数据库迁移
  • 包含错误处理中间件
  • 提供请求验证
  • 支持分页和过滤
  • 包含健康检查端点

Epic List

  1. Epic 1: 项目基础架构和认证系统 - 建立项目基础结构,实现用户认证和授权功能
  2. Epic 2: 用户管理功能实现 - 实现完整的用户CRUD操作和管理界面
  3. Epic 3: 开发工具和部署配置 - 配置开发环境、测试框架和部署脚本

Epic 1 项目基础架构和认证系统

建立完整的项目基础架构,包括前后端项目初始化、数据库配置、认证系统和基本的安全措施。

Story 1.1 项目初始化设置

As a 开发者, I want 初始化前后端项目结构, so that 可以开始开发工作。

Acceptance Criteria

  1. 创建React + TypeScript前端项目
  2. 创建Node.js + Express后端项目
  3. 配置package.json和基本依赖
  4. 设置Git仓库和.gitignore
  5. 配置开发环境启动脚本

Story 1.2 数据库配置和模型定义

As a 开发者, I want 配置数据库连接和定义用户模型, so that 可以存储和操作用户数据。

Acceptance Criteria

  1. 配置数据库连接(PostgreSQL/SQLite)
  2. 定义User模型包含基本字段
  3. 创建数据库迁移脚本
  4. 提供种子数据示例
  5. 配置环境变量管理

Story 1.3 用户认证系统实现

As a 开发者, I want 实现用户注册和登录功能, so that 用户可以安全访问系统。

Acceptance Criteria

  1. 实现用户注册API端点
  2. 实现用户登录API端点
  3. 使用JWT进行身份验证
  4. 使用bcrypt加密密码
  5. 提供token刷新机制
  6. 实现登录状态管理

Story 1.4 路由保护和中间件

As a 开发者, I want 实现路由保护和认证中间件, so that 可以保护敏感路由和API端点。

Acceptance Criteria

  1. 创建认证中间件验证JWT
  2. 保护需要认证的路由
  3. 实现错误处理中间件
  4. 提供统一的响应格式
  5. 记录请求日志

Epic 2 用户管理功能实现

实现完整的用户管理功能,包括用户列表、创建、编辑、删除和详情查看。

Story 2.1 用户列表界面

As a 管理员, I want 查看用户列表, so that 可以管理所有用户账户。

Acceptance Criteria

  1. 创建用户列表页面组件
  2. 实现用户数据表格显示
  3. 支持分页功能
  4. 支持搜索和过滤
  5. 显示用户基本信息和状态
  6. 提供操作按钮(编辑、删除)

Story 2.2 用户创建功能

As a 管理员, I want 创建新用户, so that 可以添加新的系统用户。

Acceptance Criteria

  1. 创建用户创建表单
  2. 实现表单验证
  3. 调用创建用户API
  4. 显示创建成功反馈
  5. 处理创建错误情况
  6. 支持角色分配

Story 2.3 用户编辑功能

As a 管理员, I want 编辑用户信息, so that 可以更新用户资料和权限。

Acceptance Criteria

  1. 创建用户编辑表单
  2. 预填充现有用户数据
  3. 实现表单验证
  4. 调用更新用户API
  5. 显示更新成功反馈
  6. 处理更新错误情况

Story 2.4 用户删除功能

As a 管理员, I want 删除用户, so that 可以移除不再需要的用户账户。

Acceptance Criteria

  1. 实现用户删除确认对话框
  2. 调用删除用户API
  3. 显示删除成功反馈
  4. 更新用户列表显示
  5. 处理删除错误情况
  6. 防止误删除操作

Story 2.5 用户详情页面

As a 管理员, I want 查看用户详细信息, so that 可以了解用户的完整信息。

Acceptance Criteria

  1. 创建用户详情页面
  2. 显示用户完整信息
  3. 显示用户活动记录
  4. 提供返回列表的导航
  5. 支持快速编辑操作

Epic 3 开发工具和部署配置

配置完整的开发工具链、测试框架和部署配置,确保项目质量和可部署性。

Story 3.1 代码质量和格式化配置

As a 开发者, I want 配置代码质量工具, so that 可以保持代码风格一致。

Acceptance Criteria

  1. 配置ESLint规则
  2. 配置Prettier格式化
  3. 设置Git hooks
  4. 配置编辑器配置
  5. 提供代码检查脚本

Story 3.2 测试框架配置

As a 开发者, I want 配置测试框架, so that 可以编写和运行测试。

Acceptance Criteria

  1. 配置Jest测试框架
  2. 配置React Testing Library
  3. 配置API测试工具
  4. 提供测试示例
  5. 配置测试覆盖率报告

Story 3.3 Docker开发环境

As a 开发者, I want 配置Docker开发环境, so that 可以快速搭建开发环境。

Acceptance Criteria

  1. 创建Dockerfile
  2. 配置docker-compose.yml
  3. 包含数据库服务
  4. 支持热重载开发
  5. 提供环境变量配置

Story 3.4 部署配置和文档

As a 开发者, I want 配置部署脚本和文档, so that 可以轻松部署应用到生产环境。

Acceptance Criteria

  1. 提供生产环境Docker配置
  2. 创建部署脚本示例
  3. 配置环境变量示例
  4. 编写部署文档
  5. 提供健康检查配置

Checklist Results Report

PRD文档已完成,包含完整的功能需求、技术假设和用户故事。文档结构符合BMAD标准格式,涵盖了shadcn管理后台模板的核心需求。

Next Steps

UX Expert Prompt

基于此PRD文档,请设计shadcn管理后台的用户界面和用户体验方案。

Architect Prompt

基于此PRD文档,请设计shadcn管理后台的技术架构和系统设计方案。