Files
Edu/docs/architecture/roadmap/pending-features.md
SpecialX 2ba4250165
Some checks failed
CI Go / test (push) Has been cancelled
CI Proto / lint (push) Has been cancelled
CI Python / test (push) Has been cancelled
CI TypeScript / test (push) Has been cancelled
feat(p1): complete P1 foundation stage
- monorepo: pnpm workspace + go.work + pyproject.toml + commitlint/husky
- infra: docker-compose (minimal + full profiles) + init-sql + prometheus
- arch-scan: multi-language scanner skeleton (TS/Go/Python/Proto)
- shared-proto: buf v2 + classes.proto (ClassService CRUD contract)
- api-gateway: Go/Gin + JWT HS256 auth + reverse proxy + request ID
- classes: NestJS golden template (error system + observability + middleware + CRUD + tests)
- teacher-portal: Next.js + paper-feel UI design system
- CI/CD: 4 workflows (go/ts/py/proto)
- docs: migration guide + project_rules + coding-standards + git-workflow + ui-design-system + 004 + 9 module READMEs + known-issues + spec/plan migration + roadmap
2026-07-07 23:39:37 +08:00

9.0 KiB
Raw Blame History

待开发功能路线图

按 6 阶段组织的功能路线图,每阶段列出关键功能和交付物。 阶段依赖P1 → P2 → P3 → P4/P5可并行但建议串行 → P6


P1 地基阶段M1-M3

目标:搭建新仓库地基,多语言 monorepo + Docker 基础设施 + API Gateway + classes 黄金模板服务 + 文档体系 + CI/CD端到端跑通 classes 域 CRUD。

退出标准classes 域 CRUD 端到端跑通 + 全横切关注点落地 + 30 分钟可复制新服务。

关键功能

模块 功能
仓库骨架 多语言 monorepopnpm + go.work + pyproject+ 大仓文档LICENSE/CHANGELOG/CONTRIBUTING/SECURITY
Docker 基础设施 全量 docker-compose.yml按 profiles 分阶段启用)+ 最小开发集MySQL+Redis
API GatewayGo 路由转发 + JWT HS256 校验 + 请求 ID 注入 + 健康检查
契约层 shared-proto 包 + classes.proto + buf lint/breaking + 三端代码生成配置
classes 黄金模板TS/NestJS CRUD + 全横切关注点(错误处理/可观测/安全/契约/测试/文档/配置/i18n/CI/Dockerfile
arch.db 多语言扫描器 TS 扫描ts-morph+ Go 扫描(正则骨架)+ Python 扫描(正则骨架)+ 查询工具
teacher-portal 测试页 Next.js 单页验证 classes CRUD 端到端链路
CI/CD 三语言 workflowci-go.yml / ci-ts.yml / ci-py.yml

交付物

  • docker-compose up -d 全量容器健康
  • 浏览器创建班级 → MySQL 落库 → 列表显示
  • buf lint + buf breaking 通过,三端代码生成成功
  • 三语言 CI workflow 全绿lint+test+build
  • 单元 + 集成 + 契约 + E2E 四类测试齐备,覆盖率达标
  • 004 + 2 个模块 README + known-issues + project_rules 齐全
  • npm run arch:query -- violations 输出 0
  • 30 分钟内复制 classes 模板跑起新服务
  • 打 tag v0.1.0-p1

P2 身份阶段M4-M6

目标:建 IAM 服务替换 P1 Gateway 内置鉴权;建首个完整 BFFTeacher与微前端骨架。

退出标准:教师登录 → 获取 JWT → 访问 teacher-portal → 侧边栏按 viewports.L1 渲染 → 看到空白 Dashboard。

关键功能

模块 功能
IAM 服务TS/NestJS 认证(登录/登出/JWT/2FA+ RBAC角色/权限/角色-权限 CRUD+ 视口配置4 层模型)+ DataScope 解析 + getEffectivePermissions(userId)
MySQL schema users / roles / permissions / role_permissions / role_viewports / parent_student_relations / class_subject_teachers
JWT RS256 IAM 私钥签发Gateway/服务公钥校验access 15min / refresh 7day
权限缓存 getEffectivePermissions 结果 Redis 缓存 TTL 5 分钟,角色变更主动失效
Teacher BFFTS/GraphQL GraphQL Yoga + DataLoader防 N+1+ 调 IAM 注入视口
teacher-portal微前端宿主 Module Federation + 路由骨架 + 侧边栏viewports.L1 驱动)+ 登录页
API Gateway 升级 移除内置 JWT改调 IAM 校验;路由表扩展 /api/v1/iam/*

交付物

  • IAM 服务完整实现认证 + RBAC + 视口 + DataScope
  • JWT RS256 非对称签名链路通畅
  • Teacher BFF GraphQL 接口可用
  • teacher-portal 微前端骨架 + 登录流程
  • 教师登录后侧边栏按角色渲染
  • 打 tag v0.2.0-p2

P3 核心教学阶段M7-M10

目标:建 CoreEdu 服务实现考试全生命周期;落地 Outbox + Kafka 事件模式。

退出标准:教师创建考试 → 发布 → 学生作答提交 → 教师批改 → 事件发到 Kafka → 成绩统计更新 → 全链路可观测。

关键功能

模块 功能
CoreEdu 服务TS/NestJS 考试/作业/成绩域 CRUD + 批改业务编排 + Outbox 事件发布
MySQL schema exams / exam_questions / homework_assignments / homework_submissions / homework_answers / grade_records / outbox_events
Outbox 模式 业务事务同写 outbox_events 表;后台 relay worker 投递 Kafka
Outbox relayGo 独立服务 services/outbox-relay/,轻量高吞吐
Kafka 启用业务 topicexam.published / homework.graded / grade.recorded
Teacher BFF 扩展 考试/作业/成绩的 GraphQL 查询与 mutation
teacher-portal 扩展 考试创建/作业批改/成绩查看页面
student-portal微前端 学生作答作业页面Module Federation 子应用)
Temporal 引入但仅做 1 个工作流(考试发布编排:创建作业→通知)试点

交付物

  • CoreEdu 服务考试全生命周期链路通畅
  • Outbox + Kafka 事件模式落地
  • Outbox relay worker 稳定投递
  • student-portal 微前端子应用接入
  • 全链路 trace 可追OTel
  • Outbox 模式回写黄金模板 README
  • 打 tag v0.3.0-p3

P4 内容分析阶段M11-M13

目标:建 Content 服务Neo4j 知识图谱)+ DataAna 服务Python+ClickHouse落地 CDC 链路。

退出标准教师查看知识图谱前置依赖Neo4j 秒级返回)→ 学生查看学情诊断ClickHouse 宽表 5s 内返回)→ CDC 链路延迟 < 5s。

关键功能

模块 功能
Content 服务TS/NestJS 教材/章节/知识点 CRUD仅 CRUD不实现检索+ 知识图谱查询Neo4j+ 题库 CRUD不实现检索
MySQL schema textbooks / chapters / knowledge_points / questions
Neo4j 数据 知识点前置依赖图(从 MySQL 同步)
DataAna 服务Python/FastAPI 学情诊断 API + 错题本 API + 消费 Kafka 构建宽表
ClickHouse student_dashboard_view 宽表DataAna 消费 Kafka 填充)
CDC 链路 Debezium 监听 MySQL binlog → Kafkamysql.cdc.*)→ DataAna 消费写 ClickHouse
BFF 扩展 Teacher BFF 加知识图谱查询Student BFF 加学情诊断查询(双轨读)

交付物

  • Content 服务知识图谱查询秒级返回
  • DataAna 学情诊断宽表 5s 内返回
  • CDC 链路延迟 < 5s
  • Neo4j 双写避免(消费事件同步)
  • 双轨读策略落地(实时查主库 + 聚合查宽表)
  • CDC 模式回写黄金模板 README
  • 打 tag v0.4.0-p4

P5 沟通与 AI 阶段M14-M16

目标:建 Msg 服务 + Push Gateway + AI 网关;全文检索迁 ES。

退出标准:教师发广播通知 → 全在线学生实时收到Push Gateway→ AI 辅助出题流式返回 → 题库全文检索 < 200ms。

关键功能

模块 功能
Msg 服务TS/NestJS 会话/消息 CRUD + 调 Push Gateway 推送 + 通知偏好
Push GatewayGo WebSocket 长连接管理 + 消费 Kafka 广播 + Redis PubSub 跨实例同步
AI 网关Python/FastAPI LLM Provider 适配OpenAI/Anthropic+ Prompt 模板管理 + 流式 SSE + 用量计费
Elasticsearch 题库全文检索(从 MySQL 同步)+ 全局搜索 API
Notifications 模块 多渠道(站内/SMS/邮件/微信),沿用旧项目 dispatcher 模式
BFF/前端扩展 Teacher BFF 加 AI 辅助出题 mutationteacher-portal 加 SSE 流式 AI 对话

交付物

  • Msg 服务会话/消息 CRUD + 推送链路
  • Push Gateway 单节点支撑 10w+ 连接
  • AI 网关流式 SSE 三层透传AI → BFF → 前端)
  • ES 题库全文检索 < 200ms
  • 全校广播推送实时到达
  • 长连接模式回写黄金模板 README
  • 打 tag v0.5.0-p5

P6 硬化阶段M17-M18

目标:生产硬化,达到可部署状态。

退出标准单服务可独立扩缩容HPA 生效)→ 全链路 trace 可追 → 模拟单服务宕机不影响核心链路 → 99.9% 可用性压测通过。

关键功能

模块 功能
Service Mesh Istio 服务网格mTLS + 流量治理 + 可观测)
配置中心 Consul 接入,配置热更新(限流阈值、功能开关)
全链路可观测 OpenTelemetry + Jaegertrace+ Prometheusmetrics+ Lokilogs
限流/熔断 Gateway 层限流(令牌桶)+ 服务间熔断Envoy
灰度发布 Istio 流量拆分(金丝雀)
K8s 部署 每服务 K8s manifest + HPA 自动扩缩容
生产 CI/CD Git tag 触发镜像构建 + 滚动部署
灾备 MySQL 主从 + Redis 哨兵 + Kafka 多副本

交付物

  • Istio Service Mesh 全网格覆盖mTLS
  • 全链路 trace + Grafana 仪表盘 + Loki 日志查询
  • 限流熔断灰度发布可用
  • K8s HPA 自动扩缩容生效
  • 单服务宕机不影响核心链路
  • 99.9% 可用性压测通过
  • 降级方案若时间紧张Service Mesh 可降级为 K8s 原生 Service + Ingress
  • 打 tag v1.0.0-p6

跨阶段不变约束

每阶段都必须遵守:

  • 契约先行(先改 proto后写实现
  • 文档同步004 + 模块 README + arch.db + known-issues 实时更新)
  • CI 全绿才能合入 main
  • 每阶段末打 tag
  • Server/Handler 接口必须权限校验
  • 单文件行数遵循语言规范TS ≤ 500/800/1000Go ≤ 800Python ≤ 800
  • 阶段特有模式实现后回写黄金模板