当前位置: 首页 > news >正文

在线OJ平台项目

一、项目源码

Online_Judge · yblhlk/Linux课程 - 码云 - 开源中国 (gitee.com)


二、所用技术与开发环境

1.所用技术:

MVC架构模式 (模型-视图-控制器)

负载均衡系统设计

多进程、多线程编程

C++面向对象编程 & C++ 11 & STL 标准库

C++  Boost 准标准库

jsoncpp     第三方开源序列化、反序列化库

cpp-httplib 第三方开源网络通信库

ctemplate  第三方开源前端网页渲染库

Ace前端在线编辑器

html/css/js/jQuery/ajax

使用Postman进行网络服务测试

2.开发环境

Centos 7.8 云服务器

VSCode

Google Chrome

Mysql Workbench


三、项目宏观结构

I. 项目模块介绍

我们的项目核心是两个模块:

1. compile_server : 编译与运行模块。

2. oj_server : 文件/数据库交互,网页渲染,负载均衡,其他功能。

II.项目宏观结构图

III.编写思路

采取从后端向前端实现的思路

1. 先编写 compile_server

2. oj_server

3. version1 基于文件版的在线OJ

4. 前端的页面设计

5. version2 基于 MySQL 版的在线OJ

先编写整体结构(需要什么函数),然后再实现函数细节(包括返回值和参数的调整)


四、compiler_server目录

 1.compiler.hpp (编译模块)

 2.runner.hpp (运行模块)

 3.compile_run.hpp(编译、运行的整合模块)

 

 4.compile_server.cc (处理编译运行代码的网络请求)

 

 5.使用Postman对compile_server进行整体测试

Postman是一款功能强大的网页调试、HTTP请求发送及接口测试用例运行的工具

能够模拟各种HTTP Request如GET、POST 、header、 PUT、 DELETE…等等

请求中还可以发送文件(图片、文本文件等)、额外的header等,实现特定的接口测试

能够高效的帮助后端开发人员独立进行接口测试

PostMan——安装使用教程

也可以在chrome里面安装Postman插件

如何在 Postman 中进行 HTTPS 请求 (baidu.com)


五、OJ_server目录

        未完待续……

http://www.lryc.cn/news/138524.html

相关文章:

  • go语言kafka入门
  • 自定义拖拽功能,上下拖拽改变盒子高度
  • JavaScript Es6_4笔记
  • Python“牵手”易贝(Ebay)商品列表数据,关键词搜索ebayAPI接口数据,ebayAPI接口申请指南
  • C语言:选择+编程(每日一练Day8)
  • 使用 uniapp 适用于wx小程序 - 实现移动端头部的封装和调用
  • ARM Linux 系统稳定性分析入门及渐进 13 -- gdb 反汇编 disassemble 命令详细介绍及举例】
  • python连接Microsoft SQL Server 数据库
  • docker可视化工具
  • MySQL 用户管理操作
  • 【python办公自动化】PysimpleGUI中的popup弹窗中的按钮设置居中
  • postgresql 同步流复制两个相关参数synchronous_commit 和 synchronous_standby_names
  • 运算放大器发展史
  • LVS+Keepalived 实验
  • FreeSWITCH 1.10.10 简单图形化界面1 - docker/脚本/ISO镜像安装
  • 内网渗透神器CobaltStrike之权限提升(七)
  • 使用haproxy搭建web架构
  • Java基础之IO流File类创建及删除
  • 高速道路监控:工业路由器助力高速监控远程管理与维护
  • 【校招VIP】前端基础之post和get
  • 如何合理设计API接口?
  • Jsp 解决out.print()输出多出空行
  • SMC状态机 讲解2 从模型到SMC
  • MyBatis-Plus的使用
  • 板卡设计+硬件每日学习十个知识点(44)23.8.24 (检测单元设计,接口部分设计,板卡电源输入设计,电源检测电路)
  • jmeter HTTP信息头管理器
  • 各种中间件的默认端口
  • leetcode303. 区域和检索 - 数组不可变(java)
  • PHP 安装Composer,vue前端依赖包
  • OpenCV项目开发实战--基于Python/C++实现鼠标注释图像和轨迹栏来控制图像大小