chore(teacher-portal): merge teacher-portal full implementation into main

This commit is contained in:
SpecialX
2026-07-10 19:19:19 +08:00
48 changed files with 2888 additions and 1333 deletions

View File

@@ -131,26 +131,48 @@ gantt
### §4.1 我依赖的上游就绪标志
| 上游 | 就绪标志 | 阻塞阶段 | 状态 |
| --------------------------------------------------------- | ------------------------------------------------- | -------- | ---------------------- |
| packages 骨架ai13 自建) | ui-tokens/ui-components/hooks 可 import | P2 启动 | ✅ 已就绪(批次 0.15 |
| teacher-bff GraphQL schemaai03 + coord 仲裁 ISSUE-037 | packages/shared-ts/contracts/graphql/ 第一版 | P2 启动 | ⏳ 待 coord 仲裁 |
| api-gateway HTTP :8080ai01 | /api/v1/teacher/graphql + /api/auth/login 路由可用 | P2 启动 | ⏳ 待 ai01 |
| teacher-bff core-edu 扩展ai03 P3 | classExams/classHomework/studentGrades query 可用 | P3 启动 | ⏳ 待 ai03 P3 |
| teacher-bff content/data-ana 扩展ai03 P4 | knowledgeGraph/studentAnalytics query 可用 | P4 启动 | ⏳ 待 ai03 P4 |
| push-gateway WebSocket :8081/wsai02 P5 | WS 连接可建立 + 推送可接收 | P5 启动 | ⏳ 待 ai02 P5 |
| ai 服务 gRPCai12 P5 | generateQuestion/generateLessonPlan 可调 | P5 启动 | ⏳ 待 ai12 P5 |
| iam refresh cookie 端点ai06 P6 | POST /iam/auth/refresh 返回 httpOnly cookie | P6 启动 | ⏳ 待 ai06 P6 |
| 上游 | 就绪标志 | 阻塞阶段 | 状态 |
| --------------------------------------------------------- | -------------------------------------------------- | -------- | ---------------------- |
| packages 骨架ai13 自建) | ui-tokens/ui-components/hooks 可 import | P2 启动 | ✅ 已就绪(批次 0.15 |
| teacher-bff GraphQL schemaai03 + coord 仲裁 ISSUE-037 | packages/shared-ts/contracts/graphql/ 第一版 | P2 启动 | ⏳ 待 coord 仲裁 |
| api-gateway HTTP :8080ai01 | /api/v1/teacher/graphql + /api/auth/login 路由可用 | P2 启动 | ⏳ 待 ai01 |
| teacher-bff core-edu 扩展ai03 P3 | classExams/classHomework/studentGrades query 可用 | P3 启动 | ⏳ 待 ai03 P3 |
| teacher-bff content/data-ana 扩展ai03 P4 | knowledgeGraph/studentAnalytics query 可用 | P4 启动 | ⏳ 待 ai03 P4 |
| push-gateway WebSocket :8081/wsai02 P5 | WS 连接可建立 + 推送可接收 | P5 启动 | ⏳ 待 ai02 P5 |
| ai 服务 gRPCai12 P5 | generateQuestion/generateLessonPlan 可调 | P5 启动 | ⏳ 待 ai12 P5 |
| iam refresh cookie 端点ai06 P6 | POST /iam/auth/refresh 返回 httpOnly cookie | P6 启动 | ⏳ 待 ai06 P6 |
### §4.2 我的就绪信号(供下游消费)
| 信号 | 就绪标志 | 消费方 |
| ------------------------------- | -------------------------------------- | ---------------------------------- |
| teacher-portal dev server :4000 | next dev -p 4000 可访问 | 无(最前端) |
| MF Shell 可加载 | 首页渲染 AppShell + 导航 | student/parent/admin RemoteP3+ |
| 登录流程可用 | POST /api/auth/login → JWT → Dashboard | 无(最前端) |
| GraphQL 查询可执行 | currentUser/myClasses 返回数据 | 无(最前端) |
| parent-portal Remote 接入点 | MF remotes 配置就绪 | parent-portalai15 P4 |
| 信号 | 就绪标志 | 消费方 | P2 状态 |
| ------------------------------- | ----------------------------------------------------------------------- | ---------------------------------- | --------------------- |
| teacher-portal dev server :4000 | next dev -p 4000 可访问 | 无(最前端) | ✅ 已就绪 |
| MF Shell 可加载 | 首页渲染 AppShell + 导航 | student/parent/admin RemoteP3+ | ✅ 已就绪 |
| 登录流程可用 | POST /api/auth/login → JWT → Dashboard | 无(最前端) | ✅ 已就绪MSW mock |
| GraphQL 查询可执行 | DashboardQuery/ClassesQuery/MeQuery/ViewportsQuery/ClassQuery 返回数据 | 无(最前端) | ✅ 已就绪MSW mock |
| P3 扩展 Query 可执行 | ClassStudents/ClassExams/ClassHomework/ExamGrades + UpdateUser Mutation | 无(最前端) | ✅ 已就绪MSW mock |
| parent-portal Remote 接入点 | MF remotes 配置就绪 | parent-portalai15 P4 | ⏳ P4 启用 |
| /api/health + /api/ready | k8s livenessProbe + readinessProbe 端点 | infra部署 | ✅ 已就绪 |
### §4.3 P2 交付物完成清单
- ✅ packages 骨架ui-tokens/ui-components/hooks批次 0.15
- ✅ NextFederationPlugin 配置exposes AppShell + GraphQLProvider + hooks + UI 组件shared react/urql/graphql/@edu/* singleton
- ✅ GraphQLProvider + urql client 单例Shell 暴露Remote 复用§2.17 方案 A
- ✅ AppShellLayout + 侧边栏 + 路由守卫 + ErrorBoundary + 设计令牌三层 + GraphQL ViewportsQuery + MeQuery + usePermission
- ✅ 登录页POST /api/auth/login → JWT 存 localStorageF12
- ✅ 权限上下文usePermission + buildPermissionContext权限点 `<RESOURCE>_<ACTION>` F7
- ✅ Dashboard 框架GraphQL DashboardQuery + 统计卡片)
- ✅ 班级列表页GraphQL ClassesQuery
- ✅ 学生列表页GraphQL ClassStudentsQueryP3 扩展 MSW mock
- ✅ 个人设置页GraphQL MeQuery 只读展示)
- ✅ 考试/作业/成绩页面GraphQL ClassExams/ClassHomework/ExamGradesP3 扩展 MSW mock
- ✅ MSW mock 层handlers + fixtures + browser/server + initMocks + providers 集成 + mockServiceWorker.js
- ✅ /api/health + /api/ready 路由liveness + readiness
- ✅ Dockerfile 端口 3000→4000 + 健康检查路径更新
- ✅ .env.example 添加 teacher-portal 变量NEXT_PUBLIC_TEACHER_BFF_GRAPHQL_URL / NEXT_PUBLIC_API_MOCKING / NEXT_PUBLIC_MF_ENABLED / API_GATEWAY_URL
- ✅ 质量校验通过lint + typecheck 零错误)
- ✅ arch.db 已更新arch:scanTS 14 模块 / 343 符号 / Proto 138 契约)
---