Metadata-Version: 2.4
Name: endo
Version: 0.3.0
Summary: Integrated Product Development Platform for Structural Design
Project-URL: Changelog, https://github.com/endo/endo/releases
Project-URL: Documentation, https://github.com/endo/endo#readme
Project-URL: Homepage, https://github.com/endo/endo
Project-URL: Issues, https://github.com/endo/endo/issues
Project-URL: Repository, https://github.com/endo/endo
Author-email: endo Team <dev@endo.example.com>
Maintainer-email: endo Team <dev@endo.example.com>
License-Expression: MIT
License-File: LICENSE
Keywords: fastapi,ipd,product-development,requirements,traceability
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: FastAPI
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Office/Business
Classifier: Topic :: Software Development
Requires-Python: >=3.9
Requires-Dist: alembic>=1.14.0
Requires-Dist: fastapi>=0.115.0
Requires-Dist: openpyxl>=3.1.0
Requires-Dist: pdfplumber>=0.11.0
Requires-Dist: pydantic-settings>=2.0.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: python-docx>=1.1.0
Requires-Dist: python-multipart>=0.0.9
Requires-Dist: sqlalchemy>=2.0.0
Requires-Dist: uvicorn[standard]>=0.34.0
Provides-Extra: dev
Requires-Dist: hatch>=1.14.2; extra == 'dev'
Requires-Dist: httpx>=0.28.0; extra == 'dev'
Requires-Dist: prek>=0.4.5; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.24.0; extra == 'dev'
Requires-Dist: pytest-cov>=5.0.0; extra == 'dev'
Requires-Dist: pytest-html>=4.1.1; extra == 'dev'
Requires-Dist: pytest-mock>=3.14.0; extra == 'dev'
Requires-Dist: pytest-xdist>=3.6.1; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: ruff>=0.8.0; extra == 'dev'
Requires-Dist: tox-uv>=1.13.1; extra == 'dev'
Requires-Dist: tox>=4.25.0; extra == 'dev'
Description-Content-Type: text/markdown

# endo

**Integrated Product Development Platform for Structural Design**

endo 是一个面向结构设计领域的集成产品开发平台，提供需求管理、追溯矩阵、测试管理与文档导出能力。

## 功能特性

- **需求管理**：层级需求树、版本控制、评审流程
- **追溯矩阵**：需求间双向追溯关系（衍生/依赖/验证/满足）
- **测试管理**：测试用例库、执行记录、缺陷跟踪
- **附件管理**：多态关联文件上传/下载（项目/需求/测试用例）
- **文档导出**：需求规格书 PDF、追溯矩阵 Excel、测试报告 PDF
- **插件架构**：模块化设计，按需启用功能插件
- **影响分析**：需求变更影响范围分析

## 快速开始

### 安装

```bash
pip install endo
```

### 启动服务

```bash
# 启动后端 API 服务（默认 127.0.0.1:8000）
ipd

# 指定监听地址和端口
ipd serve --host 0.0.0.0 --port 8080

# 开发模式（自动重载）
ipd serve --reload
```

访问 API 文档：http://127.0.0.1:8000/docs

### 开发模式（前后端联调）

在源码仓库内执行：

```bash
ipd dev    # 同时启动后端(8000)和前端(5173)
```

## 技术栈

**后端**
- FastAPI + Uvicorn（异步 Web 框架）
- SQLAlchemy 2.0 + Alembic（ORM 与迁移）
- Pydantic v2（数据校验）
- ReportLab / OpenPyXL（PDF / Excel 生成）

**前端**
- React 18 + TypeScript
- Ant Design 5（UI 组件库）
- Vite（构建工具）

## 项目结构

```
endo/
├── backend/
│   └── endo/
│       ├── api/v1/          # REST API 端点
│       ├── core/            # 配置、数据库、插件注册
│       ├── models/          # SQLAlchemy 数据模型
│       ├── schemas/         # Pydantic 校验模型
│       ├── services/        # 业务逻辑（导出、解析）
│       ├── plugins/         # 功能插件
│       └── main.py          # 应用入口
├── frontend/                # React 前端
├── tests/                   # 测试
└── pyproject.toml
```

## 插件体系

endo 采用插件架构，核心功能以插件形式注册：

| 插件 | 功能 |
|------|------|
| `project` | 项目管理 |
| `requirement` | 需求管理 + 追溯关系 |
| `test` | 测试用例 + 执行记录 |
| `analysis` | 影响分析 |
| `attachment` | 文件附件管理 |
| `export` | 文档导出（PDF/Excel） |

## 开发

```bash
# 安装开发依赖
uv sync --extra dev

# 运行测试
ipd test

# 代码检查
ipd lint

# 构建前后端
ipd build
```

## 系统要求

- **操作系统**：Windows 10+ / macOS 10.15+ / Linux
- **Python**：3.9+
- **Node.js**：20+（仅开发前端时需要）

## 许可证

[MIT](LICENSE)
