一、项目源码
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目录
未完待续……