An open API service indexing awesome lists of open source software.

https://github.com/talkgo/tgoj

TalkGo Online Judge
https://github.com/talkgo/tgoj

Last synced: 2 months ago
JSON representation

TalkGo Online Judge

Awesome Lists containing this project

README

        

# TGOJ(TalkGo Online Judge)
属于TalkGo自己的Online Judge。目前正处于开发阶段。

#### 工作提要

预期有三到四轮的迭代,每次两到三周

| 阶段 | 内容 | 完成情况 | 备注 |
| :--------: | :----------------------------------------------------------: | :------: | :--: |
| 第一次迭代 | 1. 后端架构设计
2. 判题系统设计与实现 | 完成 | |
| 第二次迭代 | 1. 实现基本前端页面
2. 数据库搭建以及相关表的设计
3. 登录注册模块
4. 前后端数据交互 | 进行中 | |
| 第三次迭代 | 题目录入模块,前端界面优化,鉴权.... | 计划 | |
| 第四次迭代 | 比赛,题解...... | 计划 | |

#### 具体需求

| 需求 | 详情 | 进度 |
| :---------------------------: | :----------------------------------------------------------: | :----: |
| 1. 判题系统设计与实现 | 需要对用户提交的代码进行编译,运行,评测并返回结果 | 完成 |
| 2. 实现基本的前端页面 | 登录注册界面,题目列表界面,写题界面 | 进行中 |
| 3. 数据库搭建以及相关表的设计 | 数据库搭建以及用户表,题目表的设计 | 进行中 |
| 4. 登录注册模块 | 用户的登录注册,最好实现能用github账户直接登录,也支持用户邮箱注册登录 | 进行中 |
| 5. 前后端数据交互 | 实现前后端数据交互,如返回题目列表,用户提交代码并进行判题 | 进行中 |
| 后续待补充.... | | |

#### 1. 第一次迭代

##### 1.1 架构设计

整个项目分为前端,后端,以及判题机三大部分。

![svg](https://github.com/talkgo/tgoj/blob/main/%E9%A1%B9%E7%9B%AE%E6%9E%B6%E6%9E%84.svg)

##### 1.2 判题机(judger)设计

判题系统是整个项目的核心以及难点,需要对代码的运行时间,内存,CPU进行限制,以及运行中的各种错误进行处理,并在此基础上防止恶意代码对系统的攻击。

具体实现[在这](https://github.com/talkgo/tgoj/blob/main/judger/README.md)

##### 2. 第二次迭代

.....