Skip to content
td1336065617Public

About

DataStructPlayground_Server对应的测评机

Resources

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

服务器程序项目(web项目在服务器程序的web_code目录下):https://github.com/td1336065617/DataStructPlayground_Server

测评机项目:https://github.com/td1336065617/judging

数据库文件:https://github.com/td1336065617/DataStructPlayground_Server_sql

*平台部署所需设备*

Ubuntu22.04服务器(2核4G以上)至少一台

TDSQL-C MySQL数据库一台

*平台所需系统环境*

*服务器所需硬件与系统:*

Ubuntu22.04服务器,因需要运行clion,请保证2核4G以上。

请保证Ubuntu22.04的软件源可用,并且更新软件源列表以及软件包为最新版。平台开发过程中使用的中科大源,因此建议换源为中科大的软件源。

(请保证版本正确,因平台涉及系统调用以及第三方库,无法保证其他版本,可以正常部署运行。)

*服务器所需环境配置说明:*

安装gcc、g++、make

sudo apt install gcc

sudo apt install g++

sudo apt install make

然后在clion官网下载并安装clion(本项目开发所用版本为2023.3.2版本)

下载压缩包情况下

解压

然后以root权限从bin子目录运行CLion.sh

如果没有激活码请选择30天试用

(项目开发期间激活方式为学生邮箱激活)

接下来建议Plugins 安装汉化插件

然后打开DataStructPlayground_Server 和judging两个在程序源码下的项目。(打开项目时候建议选择信任项目)

前者为服务器端程序项目

后者为判题程序项目

web前端项目在服务器端程序的web_code/oj下

这时候还无法编译运行项目,接下来开始安装依赖。

安装libcrypto++

sudo apt install libcrypto++-dev

安装curl

apt-get purge libcurl4

sudo apt install curl

sudo apt-get install libcurl4-openssl-dev

安装MySQL库与依赖

sudo apt-get install libmysqlclient-dev

安装nlohmann/json

sudo apt-get install nlohmann-json3-dev

依赖安装完成

*数据库配置说明*

打开TDSQL-C for MySQL的DMC数据管理控制台,新建数据库DataStructPlayground_Data默认utf8,然后点击导入导出,选择导入数据,数据库选择DataStructPlayground_Data,文件类型SQL,编码utf8。将DataStructPlayground_Data.sql文件导入。

*判题程序配置说明*

judging为判题程序项目

首先删除项目内的 cmake-build-debug文件夹,然后右键项目名(项目目录中的judging)重新加载CMake项目。

如果点击运行后,提示编辑配置。打开编辑配置后,点击左上角加号添加新配置,Cmake应用程序,和Cmake调试。然后应用,确定。

1.数据库信息配置

在main.cpp文件内,具体参考服务器端的数据库信息配置

2.判题程序HTTP服务器信息设置。

epoll.set_server("127.0.0.1",post,"127.0.0.1:9999/Feedback_of_the_judgment.jk",1);

第一个信息为判题程序的HTTP服务器ip,第二个为端口,第三个为服务器程序的链接地址,后面接口固定,请修改前面的IP地址与端口部分与服务器程序的配置保持一致。第四个为判题程序的标识,请和服务端的src/judging_list文件内的顺序对应,从1开始。

post为运行后在终端输入。

3.题目多组数据部署

因考虑到系统压力题目录入界面web只支持单组小规模数据录入,如果题目需要多组大规模数据,请直接部署在测评程序的src\judging_data\题目编号下文件名参考1.in/1.out(x.in/x.out),.in为标准输入数据文件.out为标准输出数据文件。

*服务器程序配置说明*

DataStructPlayground_Server为服务器程序项目

首先删除项目内的 cmake-build-debug文件夹,然后右键项目名(项目目录中的DataStructPlayground)重新加载CMake项目。

如果点击运行后,提示编辑配置。打开编辑配置后,点击左上角加号添加新配置,Cmake应用程序,和Cmake调试。然后应用,确定。

1.数据库信息

main.cpp文件内epoll.setmysql的参数依次为

链接(host)、端口(port)、用户名(username)、密码(password)、数据库名(database_name),数据库连接池最低维持链接数、数据库连接池最大链接数。(后两个可以维持原样)

2.线程池信息

main.cpp文件内epoll.set_Thread_Poll(100,5,10);

第一个值为最大线程数 第二个为最小维持数 第三个为裁员等待时间(秒)

建议第一个为机器最大线程数

第二个数值为机器线程数的一半

建议第三个数值不要动

3.HTTP服务器信息设置

main.cpp文件内epoll.set_server("127.0.0.1",9999);

第一个为ip地址 第二个为使用端口

第一个设置为0.0.0.0即为公网ip

4.服务器与判题机对接信息设置

项目内src/judging_list文件内设置测评机信息

两行为一组,可为多组,每组之间无需多余回车。

第一行为测评机的地址 第二行为测评机的性能参数

例如只有一台测评机即为

127.0.0.1:5702/judging_problem.jk

1

两台即为

127.0.0.1:5702/judging_problem.jk

1

127.0.0.1:5703/judging_problem.jk

1

目前只需要考虑第一行参数即可 第二行设置为1即可

*注意:服务器程序在初始化阶段会读入这个文件内的数据,所以请确保文件内的判题机运行状态正常,真实存在。*

5.忘记密码功能发送邮件信息设置

请修改 Web_Task/Forgot_password.cpp 内Smtp smtp()按照以下注释配置邮箱smtp信息,请配置前四项,确保可以正确发送邮件。

Smtp smtp(

25,/smtp端口/

"smtp.163.com",/smtp服务器地址/

"13766949653@163.com",/你的邮箱地址/

"********************", /邮箱密码/

email,/目的邮箱地址/

"DataStructPlayground忘记密码",/主题/

"您的新密码是:"+ password/邮件内容/ /邮件正文/

);

About

DataStructPlayground_Server对应的测评机

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages