- P3 考试/作业/成绩 mutation + 详情页 + 批改界面 + 乐观更新 + 多 Tab 同步 - P4 知识图谱 SVG 可视化 + 学情分析仪表盘 + parent-portal Remote - P5 WebSocket 通知中心 + AI 出题(SSE) + AI 教案 + AI 学情报告 - P6 可观测性硬化:Sentry + WebVitals + OTel + A11y + 性能配置 + Cookie 迁移 - P7 参考项目差距闭环:新增 35 个页面覆盖 13 个缺失模块 - attendance(考勤 4 页)/questions(题库)/textbooks(教材 2 页) - classes/[id] 详情 + classes/schedule 课表 - course-plans(2 页)/diagnostic(2 页)/error-book/practice - exams/[id]/build 组卷 + exams/[id]/analytics 考后分析 - exams/[id]/edit-rich 富文本编辑 + exams/[id]/proctoring 监考 - grades/entry 批量录入 + grades/stats 统计 + grades/analytics 分析 + grades/report-card 报告卡 - homework/submissions 列表 + assignments/[id]/submissions 批量批改 - homework/submissions/[submissionId] 单份批改 + scan-grading 扫描批改 - lesson-plans 编辑器 + library + calendar + heatmap 5 页 - elective 选修课 3 页 /leave 请假 /schedule-changes 调课 - P7 基础设施:61 GraphQL operations + 5 handlers + 13 fixtures + 11 viewports - 集成 browser.ts/server.ts 注册所有 p7 handlers(fallthrough 顺序) - viewports.ts 扩展 11 个新导航项 - 验证:tsc --noEmit 零错误 + eslint 零错误 - 文档:workline.md 新增 §5 P7 参考项目差距闭环(含完整文件清单)
52 lines
1.4 KiB
JSON
52 lines
1.4 KiB
JSON
{
|
|
"name": "@edu/teacher-portal",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "next dev -p 4000",
|
|
"build": "next build",
|
|
"start": "next start -p 4000",
|
|
"lint": "eslint src",
|
|
"typecheck": "tsc --noEmit"
|
|
},
|
|
"dependencies": {
|
|
"@edu/hooks": "workspace:*",
|
|
"@edu/ui-components": "workspace:*",
|
|
"@edu/ui-tokens": "workspace:*",
|
|
"@opentelemetry/context-zone": "^1.28.0",
|
|
"@opentelemetry/exporter-trace-otlp-http": "^0.57.0",
|
|
"@opentelemetry/instrumentation": "^0.57.0",
|
|
"@opentelemetry/instrumentation-document-load": "^0.57.0",
|
|
"@opentelemetry/instrumentation-fetch": "^0.57.0",
|
|
"@opentelemetry/instrumentation-xml-http-request": "^0.57.0",
|
|
"@opentelemetry/sdk-trace-web": "^1.28.0",
|
|
"@sentry/nextjs": "^8.0.0",
|
|
"graphql": "^16.8.0",
|
|
"next": "^14.2.0",
|
|
"react": "^18.3.0",
|
|
"react-dom": "^18.3.0",
|
|
"urql": "^2.2.0",
|
|
"web-vitals": "^4.2.0"
|
|
},
|
|
"devDependencies": {
|
|
"@module-federation/nextjs-mf": "^8.3.0",
|
|
"@next/bundle-analyzer": "^14.2.0",
|
|
"@types/node": "^22.0.0",
|
|
"@types/react": "^18.3.0",
|
|
"@types/react-dom": "^18.3.0",
|
|
"autoprefixer": "^10.4.0",
|
|
"axe-core": "^4.10.0",
|
|
"eslint": "^9.0.0",
|
|
"eslint-plugin-jsx-a11y": "^6.9.0",
|
|
"msw": "^2.4.0",
|
|
"postcss": "^8.4.0",
|
|
"size-limit": "^11.1.0",
|
|
"tailwindcss": "^3.4.0",
|
|
"typescript": "^5.6.0"
|
|
},
|
|
"msw": {
|
|
"workerDirectory": [
|
|
"public"
|
|
]
|
|
}
|
|
} |