Files
everything-is-suitable/README.md
T
zhangxiang 7d93c13b18 chore: 完成v1.0.0最终验收,更新测试报告与文档
新增CSP安全配置与对应测试用例,补充并发负载测试,更新README进度与统计数据,新增最终验收报告与测试计划文档,修复已知测试问题
2026-08-13 09:31:11 +08:00

196 lines
7.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 万事宜 (Everything Is Suitable)
中国传统文化研究工具 — 紫微斗数排盘 / 黄历查询 / 运势分析
## 项目概述
**万事宜**是一款纯客户端 UniApp 应用,所有计算和数据存储均在本地完成,无需网络连接、无需后端服务、无需注册账号。支持 H5、微信小程序、App 多端发布。
## 项目结构
```
everything-is-suitable/
├── everything-is-suitable-uniapp/ # UniApp 主应用
│ ├── src/
│ │ ├── algorithms/ # 核心算法(紫微斗数、黄历、运势)
│ │ ├── components/ # 通用组件
│ │ ├── locales/ # 国际化(9种语言)
│ │ ├── pages/ # 页面
│ │ │ ├── almanac-search/ # 黄历搜索
│ │ │ ├── ziwei/ # 紫微斗数排盘
│ │ │ └── fortune/ # 运势分析
│ │ ├── services/ # 业务服务层(纯本地计算)
│ │ ├── types/ # TypeScript 类型定义
│ │ ├── utils/ # 工具函数(存储、缓存、导出等)
│ │ ├── App.vue
│ │ ├── main.ts
│ │ ├── manifest.json
│ │ └── pages.json
│ ├── e2e/ # E2E 测试(Playwright
│ ├── Jenkinsfile # Jenkins CI/CD 配置
│ ├── Dockerfile # H5 部署 Docker 配置
│ ├── nginx.conf # Nginx 配置(纯静态,无后端代理)
│ ├── package.json
│ ├── vite.config.ts
│ └── vitest.config.ts
├── assets/ # 落地页素材
├── docs/ # 项目文档
│ ├── plans/ # 历史规划文档
│ ├── baselines/ # 测试基线
│ ├── reports/ # 测试报告
│ └── superpowers/ # Superpowers 工作流计划
├── index.html # 落地页
├── i18n.js # 落地页国际化
└── README.md
```
## 技术栈
| 类别 | 技术 |
|------|------|
| 框架 | UniApp (Vue 3 + TypeScript) |
| 构建 | Vite |
| 测试 | Vitest (单元) + Playwright (E2E) |
| 国际化 | vue-i18n (9种语言) |
| 存储 | uni.getStorageSync/setStorageSync |
| CI/CD | Jenkins |
| 部署 | Docker + Nginx (H5) |
## 快速开始
### 前置要求
- Node.js >= 20.0.0
- npm >= 9.0.0
### 安装与运行
```bash
cd everything-is-suitable-uniapp
npm install
# H5 开发模式
npm run dev:h5
# 微信小程序开发模式
npm run dev:mp-weixin
```
### 构建
```bash
# 构建 H5
npm run build:h5
# 构建微信小程序
npm run build:mp-weixin
```
### 测试
```bash
# 单元测试
npm run test
# 单元测试 + 覆盖率
npm run test:coverage
# E2E 测试
npm run test:e2e
```
## 纯客户端架构说明
本应用采用纯客户端架构,核心特征:
- **零网络请求**:所有算法(紫微斗数排盘、黄历计算、运势推演)均在客户端本地执行
- **零后端依赖**:无 API 调用、无数据库、无服务器
- **本地存储**:用户数据通过 `uni.getStorageSync/setStorageSync` 存储在设备本地
- **离线可用**manifest.json 中 INTERNET 权限设为 false,无需网络即可使用全部功能
- **隐私安全**:用户数据不离开设备,无需注册账号
## 规划
### 总体目标
构建一款纯客户端、离线可用的中国传统文化研究工具,支持紫微斗数排盘、黄历查询、运势分析三大核心功能,覆盖 H5、微信小程序、App 多端。
### 里程碑
| 阶段 | 状态 | 说明 |
|------|------|------|
| **M1: 核心算法实现** | ✅ | 紫微斗数排盘、黄历计算、运势推演算法完成 |
| **M2: 页面与交互开发** | ✅ | 三大核心页面(ziwei / almanac-search / fortune)开发完成 |
| **M3: 国际化 & 多端适配** | ✅ | 9 种语言支持,UniApp 多端构建验证通过 |
| **M4: 测试与质量保障** | ✅ | 单元测试 685 通过,E2E 测试 156 通过,覆盖率 90.24% |
| **M5: 封版发布** | ✅ | 封版确认,通过最终验收 |
## 进度
### 当前状态:v1.0.0 封版完成 ✅ (最终验收测试通过)
> 更新日期: 2026-08-13
### 验收标准对照
| 标准 | 阈值 | 实际值 | 状态 |
|------|------|--------|------|
| 单元测试通过率 | ≥ 90% | **100%** (689/689) | ✅ |
| 代码覆盖率 (指令) | ≥ 70% | **90.24%** | ✅ |
| 代码覆盖率 (函数) | ≥ 70% | **94.18%** | ✅ |
| 代码覆盖率 (分支) | ≥ 60% | **77.62%** | ✅ |
| E2E 核心流程通过率 | ≥ 80% | **100%** (156/156) | ✅ |
| 算法交叉验证 | 100% | **100%** | ✅ |
| 算法执行时间 | < 500ms | **全部 < 200ms** | ✅ |
| 页面加载时间 | < 3s | **~1.7s** | ✅ |
| 国际化覆盖 | 9/9 语言 | **全部完整** | ✅ |
| 浏览器兼容性 | 4/4 浏览器 | **全部通过** | ✅ |
| 安全验证 | 全部通过 | **12/12 通过** | ✅ |
| 无 P0 缺陷 | 0 | **0** | ✅ |
### 测试结果
- **单元测试**: 689/689 通过 (100%)35 个测试文件,执行时间 5.5s
- **专项测试**: 55/55 通过 (性能测试 15 + 并发负载 4 + 安全测试 12 + 国际化验证 9 + 稳定性 4 + E2E 性能 5 + E2E 安全 4 + E2E 兼容 3)
- **E2E 测试**: 156/156 通过 (100%),覆盖 Chromium/WebKit/Mobile Chrome/Mobile Safari 4 种浏览器 × 39 个用例
- **覆盖率**: 整体 90.24%,其中算法层 93.97%,服务层 92.68%,工具层 90.35%
- **性能**: 算法执行均 < 200ms,页面加载均 < 2s,长时间使用无退化
- **安全**: 12 项安全验证全部通过,无 XSS 风险,网络权限严格受限
- **国际化**: 9 种语言键值完整一致
- **缺陷**: 0 个 P0 遗留,0 个 P1 遗留
### 已知待办
- [ ] 补充组件层单元测试覆盖(BottomNavigation, Button, Card 等 11 个组件)
- [ ] 补充 `lunar.ts` 分支覆盖(当前 64.13%
- [ ] 补充 `fortuneService.ts` 覆盖(当前 72%
- [ ] 逐步消除代码中 `as any` 类型断言
- [ ] 在 CI 标准环境中启用 Firefox 浏览器测试 (当前沙箱环境兼容性限制)
- [ ] 修复微信小程序构建问题 (`@dcloudio/vite-plugin-uni` v3 alpha 兼容性限制)
- [ ] 修复 Ziwei 页面测试 i18n locale 配置 (zh → zh-CN)
> 详细测试报告见: [docs/reports/v1.0.0-FINAL-ACCEPTANCE-REPORT.md](docs/reports/v1.0.0-FINAL-ACCEPTANCE-REPORT.md)
> 测试计划文档见: [docs/plans/v1.0.0-RELEASE-TEST-PLAN.md](docs/plans/v1.0.0-RELEASE-TEST-PLAN.md)
## 功能模块
### 黄历搜索 (almanac-search)
- 每日宜忌查询
- 条件搜索(嫁娶、搬家、开市等)
- 搜索历史与模板
### 紫微斗数 (ziwei)
- 自动排盘(支持公历输入)
- 十二宫位完整展示
- 十四主星 + 辅星体系
- 三方四正分析
### 运势分析 (fortune)
- 每日/每月/每年运势
- 事业、财运、感情、健康多维度
- 幸运色、幸运数字、幸运方位
## 许可证
MIT License