From ff8ecea3f25b51024bb2216f68580926362aecbe Mon Sep 17 00:00:00 2001 From: gitee-bot Date: Wed, 12 Aug 2026 09:25:02 +0000 Subject: [PATCH] Add README.md --- README.en.md | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 202 insertions(+) create mode 100644 README.en.md create mode 100644 README.md diff --git a/README.en.md b/README.en.md new file mode 100644 index 0000000..bc5011c --- /dev/null +++ b/README.en.md @@ -0,0 +1,100 @@ +# DevBench + +DevBench is a project requirement management system designed for R&D teams. Built on Vue + Spring Boot, it provides an end-to-end solution covering requirement collection, collaborative development, and project status tracking. + +## ✨ Core Features + +* **Project Management**: Multi-project support, complete lifecycle management (creation, archiving, deletion), and member role control. +* **Requirement Management**: + * **Dual Views**: List view (filter, sort, batch operations) and Kanban view (drag-and-drop status flow, reordering). + * **Detail Management**: Supports requirement creation, editing, parent-child association, cross-project moving, and effort estimation. + * **Change History**: Fully records every change to a requirement, including operator, time, and content differences. +* **Workbench**: Aggregates personal todos, overdue reminders, project overview, and team activity, providing a global perspective. +* **Efficient Collaboration**: + * **Comments & Mentions**: Supports Markdown format comments and real-time member mentions via `@`. + * **Attachment Management**: Localized storage solution, supporting requirement attachment upload and download. + * **Tag System**: Flexible custom tags for easy requirement categorization and retrieval. +* **Permission Model**: + * **System Layer**: RBAC-based function permissions (e.g., `project:create`, `requirement:batch`). + * **Project Layer**: Granular project roles (Guest, Member, Admin, Owner), automatically validating data permissions through **AOP Aspects**. +* **Notification Center**: Real-time in-app notification push, covering key events such as assignment, changes, overdues, and mentions. + +## 🏗️ Technical Architecture + +* **Backend**: Java 17 + Spring Boot 3 + MyBatis-Plus. + * **Authentication**: JWT (Access/Refresh Token), Refresh Token stored in HttpOnly Cookies. + * **Security**: Integrated Rate Limiting, password strength validation, login lockout, and Token blacklist mechanism. + * **Data**: MySQL 8.0 + Flyway database version management. +* **Frontend**: Vue 3 + Vite + Pinia + Axios. + * Modular component design (includes `RequirementBoard` Kanban component). + * Native Dark Mode support. + +## 📂 Project Structure + +```text +DevBench/ +├── backend/ # Backend Service (Spring Boot) +│ ├── src/main/java/io/devbench/ +│ │ ├── auth/ # Authentication & Authorization, JWT Services +│ │ ├── project/ # Project Management & Member Permission Aspects +│ │ ├── requirement/ # Requirement Core Logic & State Machine +│ │ ├── workbench/ # Workbench Data Aggregation (Async Parallel Fetching) +│ │ ├── collaboration/ # Collaboration Module (Comments/Attachments/Tags) +│ │ └── notification/ # In-app Notifications & Scheduled Overdue Scan +│ └── src/main/resources/ +│ ├── application.yml # Core Configuration +│ └── db/migration/ # Flyway Database Migration Scripts +├── frontend/ # Frontend Application (Vue 3) +│ ├── src/ +│ │ ├── components/ # Common UI Components (Board, Modal, Pager) +│ │ ├── views/ # Business Pages (Workbench, Project, Requirement) +│ │ ├── api/ # Axios Interface Encapsulation +│ │ └── stores/ # Pinia State Management (Auth, Theme) +│ └── vite.config.ts # Development Proxy Config (/api -> :8080) +├── docs/ # Design Documents +│ ├── PRD.md # Product Requirement Definition +│ ├── api.md # Detailed Interface Specification +│ ├── architecture.md # Architecture Design & Permission Constraint Description +│ └── data-model.md # Database ER Relationships & Dictionary Definitions +├── prototype/ # Axure Static Interactive Prototype +└── tests/ + └── e2e-flow.mjs # End-to-End Full-Process Automation Test Script +``` + +## 🚀 Quick Start + +### Environment Preparation + +* JDK 17+ +* Node.js 18+ +* MySQL 8.0 + +### 1. Start Backend + +1. Create a new database (e.g., `devbench`). +2. Modify the database connection configuration in `backend/src/main/resources/application.yml`. +3. Run the application (Flyway will automatically execute SQL scripts under `db/migration` to initialize database tables): + ```bash + cd backend + mvn spring-boot:run + ``` + The backend service will run on port **8080**. + +### 2. Start Frontend + +1. Install dependencies: + ```bash + cd frontend + npm install + ``` +2. Start the development server: + ```bash + npm run dev + ``` + The frontend will start on port **5173** by default, and proxy `/api` requests to the backend. + +## 📚 Documentation Links + +* **API Specification**: `docs/api.md` +* **Architecture Details**: `docs/architecture.md` (Includes permission aspect design and state machine implementation) +* **Prototype Preview**: Static HTML files in the `prototype/` directory \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..cc2ef07 --- /dev/null +++ b/README.md @@ -0,0 +1,102 @@ + + +# DevBench + +DevBench 是一款面向研发团队的项目需求管理系统,基于 Vue + Spring Boot 构建,提供从需求采集、协作开发到项目状态追踪的全流程解决方案。 + +## ✨ 核心功能 + +* **项目管理**:多项目支持,完整的生命周期管理(创建、归档、删除)及成员角色控制。 +* **需求管理**: + * **双视图**:列表视图(筛选、排序、批量操作)与看板视图(拖拽式状态流转、重排)。 + * **详情管理**:支持需求创建、编辑、父子关联、跨项目移动、工时预估。 + * **变更历史**:完整记录需求的每一次变更,包含操作人、时间和内容差异。 +* **工作台 (Workbench)**:聚合个人待办、逾期提醒、项目概览及团队动态,提供全局视野。 +* **高效协作**: + * **评论与提及**:支持 Markdown 格式评论,并可通过 `@` 实时提及成员。 + * **附件管理**:本地化存储方案,支持需求附件上传与下载。 + * **标签系统**:灵活的自定义标签,便于需求分类与检索。 +* **权限模型**: + * **系统层**:基于 RBAC 的功能权限(如 `project:create`, `requirement:batch`)。 + * **项目层**:细粒度的项目角色(访客、成员、管理员、负责人),通过 **AOP 切面** 自动校验数据权限。 +* **通知中心**:站内通知实时推送,覆盖指派、变更、逾期、提及等关键事件。 + +## 🏗️ 技术架构 + +* **后端**:Java 17 + Spring Boot 3 + MyBatis-Plus。 + * **认证**:JWT (Access/Refresh Token),Refresh Token 采用 HttpOnly Cookie 存储。 + * **安全**:集成限流 (RateLimit)、密码强度校验、登录锁定及 Token 黑名单机制。 + * **数据**:MySQL 8.0 + Flyway 数据库版本管理。 +* **前端**:Vue 3 + Vite + Pinia + Axios。 + * 模块化组件设计(包含 `RequirementBoard` 看板组件)。 + * 暗黑模式 (Dark Mode) 原生支持。 + +## 📂 项目结构 + +```text +DevBench/ +├── backend/ # 后端服务 (Spring Boot) +│ ├── src/main/java/io/devbench/ +│ │ ├── auth/ # 认证授权、JWT 服务 +│ │ ├── project/ # 项目管理及成员权限切面 +│ │ ├── requirement/ # 需求核心逻辑与状态机 +│ │ ├── workbench/ # 工作台数据聚合 (异步并行抓取) +│ │ ├── collaboration/ # 协作模块 (评论/附件/标签) +│ │ └── notification/ # 站内通知与定时逾期扫描 +│ └── src/main/resources/ +│ ├── application.yml # 核心配置 +│ └── db/migration/ # Flyway 数据库迁移脚本 +├── frontend/ # 前端应用 (Vue 3) +│ ├── src/ +│ │ ├── components/ # 通用 UI 组件 (Board, Modal, Pager) +│ │ ├── views/ # 业务页面 (Workbench, Project, Requirement) +│ │ ├── api/ # Axios 接口封装 +│ │ └── stores/ # Pinia 状态管理 (Auth, Theme) +│ └── vite.config.ts # 开发代理配置 (/api -> :8080) +├── docs/ # 设计文档 +│ ├── PRD.md # 产品需求定义 +│ ├── api.md # 详细接口规范 +│ ├── architecture.md # 架构设计与权限约束说明 +│ └── data-model.md # 数据库 ER 关系与字典定义 +├── prototype/ # Axure 静态交互原型 +└── tests/ + └── e2e-flow.mjs # 端到端全流程自动化测试脚本 +``` + +## 🚀 快速上手 + +### 环境准备 + +* JDK 17+ +* Node.js 18+ +* MySQL 8.0 + +### 1. 启动后端 + +1. 新建数据库(例如 `devbench`)。 +2. 修改 `backend/src/main/resources/application.yml` 中的数据库连接配置。 +3. 运行应用(Flyway 会自动执行 `db/migration` 下的 SQL 脚本初始化库表): + ```bash + cd backend + mvn spring-boot:run + ``` + 后端服务将运行在 **8080** 端口。 + +### 2. 启动前端 + +1. 安装依赖: + ```bash + cd frontend + npm install + ``` +2. 启动开发服务器: + ```bash + npm run dev + ``` + 前端默认在 **5173** 端口启动,并代理 `/api` 请求至后端。 + +## 📚 文档链接 + +* **API 规范**:`docs/api.md` +* **架构详解**:`docs/architecture.md` (包含权限切面设计与状态机实现) +* **原型预览**:`prototype/` 目录下的静态 HTML 文件 \ No newline at end of file -- Gitee