Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

工作室考试系统

项目由以下部分组成:

  • 监考端/:监考电脑运行的离线局域网考试服务。
  • 考生端/:浏览器运行的考生端页面,用来输入监考端地址并打开考试页面。
  • 启动脚本.sh:在开发机上启动监考端服务。

推荐使用方式

  1. 监考电脑不连接公网,开启 Wi-Fi 热点。
  2. 在监考电脑运行 监考端
  3. 考生电脑连接监考电脑热点。
  4. 考生打开 考生端 软件,输入监考端地址,例如 192.168.137.1:3000
  5. 考生端会打开监考端提供的考试页面。

快速启动(开发环境)

需要 Node.js 18 或更高版本和 npm。首次运行时在项目根目录执行:

chmod +x 启动脚本.sh
./启动脚本.sh

脚本会启动监考服务,并在 macOS 上打开监考管理页。按 Ctrl+C 会关闭监考服务。

默认端口为监考端 3000。可通过环境变量调整监考端端口,例如:

PROCTOR_PORT=3001 ./启动脚本.sh

如果端口已被占用,脚本默认会停止并显示占用进程,避免误关其他服务。确认可以结束占用进程时,可显式设置 AUTO_KILL_PORT=1

监考操作

监考端管理页地址为 http://127.0.0.1:3000/admin。启动脚本会列出“考生端填写”的局域网地址;考生连接同一热点后填写该地址(例如 192.168.137.1:3000),不要填写 127.0.0.1。登记后会进入候考室;监考端点击“开始考试”后统一进入答题页面。

管理页的“重置考试”会清空已登记考生的服务端答题记录、进度和提交状态,并让在线考生返回候考室。请仅在确认无需保留本轮考试记录时使用。

考试数据按单次监考进程管理,服务结束后不会恢复。结束服务或重置考试前,请在监考端点击“导出成绩”,保存 UTF-8 CSV 成绩表。第三卷 HTML 单文件最大为 10 MB,浏览器与服务端都会校验该限制。

计分按试卷说明执行:第一卷正确得分中的前 20 分计入基础分,额外正确得分最多计 40 分附加分;第二卷满分 100 分;第三卷由监考端人工评 0–80 分。因此基础总分满分 200 分,含附加分最高 240 分。成绩 CSV 会分别导出第一卷原始分、基础分、附加分、第二卷分数和第三卷分数。

监考端每次启动会在终端显示本次随机管理密码。也可通过 ADMIN_PASSWORD=自定义密码 ./启动脚本.sh 固定指定;不要将管理密码提供给考生。

发布验收

cd 监考端
npm test
npm run test:e2e

cd ../考生端
npm test
npm run build

监考端测试包含 100 名考生并发登记、连接、断线重连、统一开考、保存、提交、阅卷、导出和重置,并验证进程重启后本场考试数据为空。

平台说明

考生端使用浏览器运行,支持 Windows、macOS 和鸿蒙设备。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages