在线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目录

未完待续......

相关推荐
svyee3 小时前
Win11 砍掉的磁贴,我用一个周末写了回来(1.3MB 开源了)
开源软件·个人开发·ai编程
鸿蒙开发爱好者3 天前
下班后做的小工具和小游戏,我把它们整理成了 WyanHub
网络·人工智能·职场和发展·个人开发
水云桐程序员9 天前
从零开发软件的步骤,软件开发从零到完成应该怎么做?
笔记·学习·软件构建·个人开发
前进的李工11 天前
Agent 学习笔记 05:系统提示词应该怎么写
笔记·学习·prompt·agent·个人开发·few-shot·ai应用开发
2501_9160088912 天前
iOS App 图标、启动屏和多语言搭配 方法,上架前使用KXBuild一次做好 App 图标
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
2501_9159184112 天前
iOS 推送通知怎么实现,从 APNs p8 密钥到 iOS 真机收到第一条推送
vscode·ios·objective-c·个人开发·swift·敏捷流程
2501_9159090613 天前
Windows 打开 Xcode 工程,编译调试 Xcode 项目并和 Mac 同事协作
ide·windows·vscode·macos·ios·个人开发·xcode
2501_9160074714 天前
Windows OpenSSL 生成 iOS 证书,制作 p12 与描述文件,KXBuild 签名实操
windows·vscode·ios·objective-c·个人开发·swift·敏捷流程
00后程序员张14 天前
Windows 开发 iOS App 入门,用 SwiftUI 写第一个 iOS App 装到 iPhone
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
2501_9159214315 天前
KXBuild CI 实操,Windows/Linux 服务器接入 Jenkins 打包 iOS IPA
服务器·windows·vscode·ios·ci/cd·个人开发·敏捷流程