dev
2025-10-22 03:33:11 +00:00
dev
2025-10-22 03:33:11 +00:00
dev
2025-10-22 03:33:11 +00:00
dev
2025-10-22 03:33:11 +00:00
dev
2025-10-22 03:46:04 +00:00
dev
2025-10-22 03:46:04 +00:00

EST-100 实验模拟与教学平台(前端)

基于 Next.js 14 与 React 18 的教学前端聚合了“线缆测试与故障诊断”相关的实验模拟页面Fluke 模拟器)与教学资源(课件/教案),并提供成绩查询与导出功能。

技术栈

  • Next.js 14pages 路由模式,关闭 appDir
  • React 18
  • Bootstrap 5通过 _document.js 引入样式、_app.jsx 注入脚本)
  • jQuery随 Bootstrap 交互一并注入)
  • CSS Modules页面/组件级样式)

快速开始

  1. 安装依赖:npm install
  2. 开发启动:npm run dev(默认端口 3002
  3. 生产构建:npm run build
  4. 生产启动:npm start(默认端口 3002

启动后请访问:

  • 主实验页:/FlukeMoniPage
  • 控制台:/Control
  • 首页 / 当前为占位页(显示“错误的加载”),后续可改为跳转或主页导航。

主要功能与页面

  • /FlukeMoniPage 实验页入口
    • 列出“实验一~实验五”卡片。
    • 点击“打开”触发模态框,内嵌 iFrame 加载对应静态模拟器页面:/public/flukemoni/{Ex}/HOMEPAGE.html
    • “实验指导”链接在新窗口打开,目标地址基于当前主机名与端口 3001 的文档站。
  • /Control 控制台
    • 成绩查询按组织URL 参数 org与用户名筛选支持排序、仅最高分、CSV 导出。
    • 课件/教案:从 public/doc/ 直接下载 PDF/PPTX/DOCX以及部分 .flw 实验数据。

数据与外部服务

  • 成绩查询 API前端内置的默认约定
    • GET http://<当前主机>:3000/survey-answers?org=<组织>&username=<用户名>
    • 期望返回:{ success: boolean, data: Array<{ projectId, username, score, submitTime }> }
    • 项目 ID 映射内置于前端(如 XEdP7K → “实验一随堂练” 等)。
    • 前端在控制台页通过 URL 参数 org 读取组织,如:/Control?org=计算机学院
  • 教学文档站(实验指导):
    • 基于 window.location 推断为 http(s)://<当前主机>:3001/docs/fluke/...
    • 如部署拓扑不同,可在 src/pages/FlukeMoniPage/index.jsx 中调整 BASE_URL

目录结构

  • src/pages/
    • _app.jsx:注入 jquerybootstrap.bundle,引入全局样式。
    • _document.js:引入 public/styles/bootstrap.min.css
    • index.jsx:占位首页。
    • FlukeMoniPage/:主实验页面(卡片 + 模态框 + iFrame
    • Control/:控制台(成绩查询与资源下载)。
  • src/components/
    • ScoreQuery/:成绩查询组件(筛选、排序、导出)。
    • Materials/:课件/教案下载组件PDF/PPT/Word/数据)。
  • public/
    • flukemoni/Ex1~Ex5/:实验静态页面(大量 HTML/CSS/JS入口 HOMEPAGE.html)。
    • doc/课件与教案文件PDF/PPTX/DOCX及部分实验数据.flw)。
    • scripts/styles/:前端脚本与样式资源。

配置与约定

  • 端口约定:
    • 前端开发:3002;生产:3002Next 默认)。
    • 成绩查询 API3002(同域不同路径);若后端独立部署,请调整 ScoreQuerygetBaseUrl()
    • 文档站:3002(跨端口新窗口打开)。
  • 路由约定:使用 Next pages 路由,/FlukeMoniPage/Control 为主要入口。
  • 路径别名:jsconfig.json 配置 @/* → ./src/*

后续改进建议

  • 将首页改为导航页或自动跳转至 /FlukeMoniPage
  • 抽取 BASE_URL(文档站)与成绩查询 API 地址为环境变量。
  • 统一使用 React 生态组件替代 jQuery 依赖(可选)。
  • 清理未使用依赖(如 axios/express/cors 在纯前端中未直接用到)。
Description
No description provided
Readme 176 MiB
Languages
HTML 99.8%
JavaScript 0.2%