为了向前端开发者提供前端程序的在线评测服务,本文提出了一套面向前端开发者的在线评测系统,其能够在服务器环境中自动化渲染、执行、调度和评测前端程序的运行结果正确或错误。
在线评测系统是一种通过执行测试数据,自动评测程序的运行结果正确或错误,为使用者提供提升程序设计技能的实践平台。
大多数在线评测系统的目标用户是后端开发者,仅能够评测运行于服务器环境的后端程序语言,缺少评测前端程序语言的功能。前端程序的正确性仍然需要人工在浏览器环境评测,且评测结果具有一定的主观性。
体验 (不保证体验服务器稳定)
https://oj.project256.com/login
账号:test
密码:123456
代码仓库
本系统主要分为三个子项目
前端页面 基于Vue NPM WebSocket
后端接口 基于Golang MySQL WebSocket
评测核心 基于Golang ChromeDP WebSocket
运行方法
安装部署
请参考DockerFile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| ENV PATH="/root/anaconda3/bin:${PATH}" ENV GOPROXY https://goproxy.io ENV GO111MODULE on WORKDIR /root RUN apt-get install -y wget
RUN wget http://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2021.05-Linux-x86_64.sh RUN /bin/bash Anaconda3-2021.05-Linux-x86_64.sh -b RUN conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ RUN conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ RUN conda install pytorch -c pytorch RUN conda install torchvision -c pytorch RUN conda install ipython RUN conda install matplotlib pandas seaborn scipy numpy
RUN apt-get update RUN apt-get -f install -y RUN wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb RUN apt install -y ./google-chrome-stable_current_amd64.deb
COPY . /root/go/FrontEndOJGolang WORKDIR /root/go/FrontEndOJGolang RUN go run main.go
|
MySQL结构
导入 caroline.sql
后端接口配置
conf/app.ini
评测核心配置
conf/judger.ini
默认密码
用户名
管理员
密码
654321
效果预览
题目列表
题目浏览及提交
提交结果
使用WebSocket实现实时通信
界面相似度对比
基于ResNet对比界面相似度
竞赛列表
竞赛榜单
个人信息面板
题目配置界面
代码流程
代码用例图
系统功能结构图
E-R图
活动图
评测流程图
延迟评测流程图
当需要评测动画或是动态效果,需要等待一定时间再执行时,系统支持延迟一定时间再评测。
界面相似度对比流程图
说明
关于使用效果
此系统为作者攻读硕士学位所设计,时间较为久远,暂不保证使用效果,可供代码参考。
关于名字
作者当时重玩Protal2上头,所以起了Caroline的名字作为项目代号,测试也用lab指代。更多请见代码和数据库结构导出文件。