Files
WenwuMap/11-progress-log.md
selfrelease 2d847e154f chore: 初始化仓库
中华文明全图鉴——文物全图系统(PC Web 地图 + NestJS API + 管理后台)。
含三大 IP(文物南迁北归 / 国宝海外回归 / 博物馆手艺人)、AI 文物对话、
文物地图与详情、以及 demo-video-kit 演示视频生成工具。
2026-06-13 20:55:44 +08:00

7.4 KiB
Raw Permalink Blame History

中华文明全图鉴——阶段进度与测试记录

1. 记录说明

本文档用于记录每个阶段的实际完成内容、测试结果、文档更新和后续问题。后续每完成一个阶段或关键模块,都需要同步更新本文档与 2-task.md

2. 状态说明

状态 含义
未开始 尚未执行
进行中 已开始但未完成
已完成 已完成并通过当前阶段测试
阻塞 依赖外部信息或资源,暂不能继续

阶段 0:项目启动与基础准备

0.1 当前进度

模块 状态 说明
详细方案 已完成 已有 0-中华文明全图鉴.md
PRD 已完成 已有 1-prd.md,并调整为 PC Web 优先
任务拆解 已完成 已有 2-task.md,并补充 PC 端专业美观与趣味性任务
技术架构文档 已完成 已创建 3-architecture.md
数据模型文档 已完成 已创建 4-data-model.md
API 设计文档 已完成 已创建 5-api.md
协作工具准备 未开始 需要确认代码仓库、Issue、任务看板等
合规与授权准备 未开始 需要确认机构授权、地图合规、图片授权等

0.2 本阶段已完成文档

  • 0-中华文明全图鉴.md
  • 1-prd.md
  • 2-task.md
  • 3-architecture.md
  • 4-data-model.md
  • 5-api.md
  • 11-progress-log.md

0.3 本阶段测试记录

测试项 测试方式 结果 说明
文档存在性检查 检查阶段 0 P0 文档是否存在 通过 已检查 7 个核心文档
文档关键词检查 检查 PC Web、PostGIS、API、数据模型等关键词 通过 已覆盖 PC Web、PostGIS、API、数据模型、测试记录等关键词
任务状态一致性检查 检查 2-task.md 与已创建文档是否一致 通过 3-architecture.md4-data-model.md5-api.md11-progress-log.md 已在任务清单中标记完成

测试命令:

python3 - <<'PY'
from pathlib import Path
root = Path('/Users/freedak/Documents/AIDashboard/wenwumap')
required = {
    '0-中华文明全图鉴.md': ['中华文明'],
    '1-prd.md': ['PC Web', '专业美观', '趣味'],
    '2-task.md': ['3-architecture.md', '11-progress-log.md', 'PC Web'],
    '3-architecture.md': ['Next.js', 'NestJS', 'PostGIS', '测试策略'],
    '4-data-model.md': ['artifacts', 'artifact_locations', 'PostGIS', 'operation_logs'],
    '5-api.md': ['/api/v1', 'Map API', 'Artifact API', '权限矩阵'],
    '11-progress-log.md': ['阶段 0', '测试记录', '下一步'],
}
failed = []
for name, keywords in required.items():
    path = root / name
    if not path.exists():
        failed.append(f'缺失文件: {name}')
        continue
    text = path.read_text(encoding='utf-8')
    for keyword in keywords:
        if keyword not in text:
            failed.append(f'{name} 缺少关键词: {keyword}')
if failed:
    print('FAILED')
    for item in failed:
        print('-', item)
    raise SystemExit(1)
print('PASSED')
print(f'checked_files={len(required)}')
PY

测试输出:

PASSED
checked_files=7

0.4 阻塞项

  • 项目负责人、产品负责人、技术负责人、设计负责人、内容负责人、数据负责人尚未由用户确认。
  • 代码仓库地址尚未确认。
  • 第一批合作机构与种子文物范围尚未确认。
  • 地图服务合规方案尚未最终确认。

0.5 下一步

  • 更新 2-task.md 阶段 0 文档任务状态。
  • 执行阶段 0 文档一致性测试。
  • 开始阶段 1 工程初始化前的技术选型确认。
  • 根据确认结果初始化代码仓库结构和基础工程。

阶段 1MVP 国内文物地图

1.1 当前进度

模块 状态 说明
技术选型 进行中 已在 3-architecture.md 中给出建议,地图服务商、对象存储待确认
数据模型 已完成 4-data-model.md 设计完成,001_init.sql migration 已编写
API 设计 已完成 5-api.md 第一版完成,待转为 OpenAPI/Swagger
Monorepo 工程骨架 已完成 pnpm workspace + apps/webapps/adminapps/apipackages/sharedpackages/db 均已创建
共享类型包 已完成 packages/shared 包含所有枚举和 TS 类型定义
数据库 migration 已完成 001_init.sql 包含 PostGIS、全表结构、枚举、索引
数据库 seed 已完成 角色、标签类别、测试机构、测试文物、测试位置 seed 已编写
本地基础设施 已准备 infra/docker-compose.yml 包含 PostgreSQL+PostGIS、Redis、MinIO
PC Web 地图站 骨架已就位 apps/web 占位页已建立,地图引擎集成待地图 Key 确认后开展
管理后台 骨架已就位 apps/admin 占位页已建立
后端 API 骨架已就位 apps/api NestJS 入口 + 健康检查接口已就位

1.2 本次进度测试记录

测试项 测试方式 结果 说明
工程结构校验 scripts/check-structure.py 通过 49 个文件全部存在
文档关键词校验 scripts/check-structure.py 通过 19 项关键词均满足
SQL 结构检查 肥眼核查 migration 通过 PostGIS/枚举/全表/索引均存在
共享类型包检查 肥眼核查 enums/types 通过 全枚举、全类型均已定义
TS 类型误误 IDE 反馈 预安装错误 全部为未执行 pnpm install 导致,安装依赖后自动消除

测试命令:

python3 scripts/check-structure.py

测试输出:

PASSED — 共检查 49 个文件,所有关键词验证通过

1.2 阶段 1 测试要求

  • 工程初始化后必须能执行 lint。
  • 数据库 migration 必须能从空库完整执行。
  • seed 必须能生成基础角色、标签、机构、文物和位置测试数据。
  • 后端必须提供健康检查接口。
  • PC Web 必须能打开地图页并展示测试点位。
  • 管理后台必须能登录并查看基础列表页。

1.3 后端 API 开发记录

本次完成内容

模块 文件 状态
DatabaseModule apps/api/src/database/
AuthModule apps/api/src/auth/
MapModule apps/api/src/map/
ArtifactsModule apps/api/src/artifacts/
InstitutionsModule apps/api/src/institutions/
工程规范 .prettierrccommitlint.config.js

接口验证(本地数据库 PostgreSQL 16 + PostGIS 3.4.4

GET /api/v1/health          → {"status":"ok","service":"wenwumap-api"}
GET /api/v1/map/stats       → {"total_artifacts":3,"total_institutions":3,"total_locations":3}
GET /api/v1/map/points      → 3 个文物点位(含经纬度、机构名、故事钩子)
GET /api/v1/artifacts       → {"total":3, data:[千里江山图,清明上河图,司母戊鼎]}
GET /api/v1/institutions    → {"total":3, data:[故宫,国博,上博]}
POST /api/v1/auth/login     → 待写入测试用户 hash 后验证
GET  /api/v1/api/docs       → Swagger UI 可用

已知待完善

  • 尚未写入测试用户(users 表为空),auth/login 需要先插入管理员账号
  • 退出登录(JWT 黑名单)待实现
  • 文物/机构 CRUD 写接口待实现
  • 标签接口待实现

1.4 下一步

  • 插入管理员测试用户,验证 JWT 登录完整流程
  • 实现文物/机构写接口(新增、编辑、发布)
  • 实现标签接口
  • 开发 PC Web 地图站 MapLibre 集成(待确认地图 Key
  • 开发 Admin 后台登录页和文物管理列表页