项目简介
本项目是一款针对ACM - ICPC赛制设计的PC端在线判题系统,目前仅支持win10平台,且无需依赖浏览器。前端运用Flutter框架开发,大部分功能已完成,部分扩展功能仍在开发中;后端采用Golang编写,数据库使用MySQL 8.0,数据缓存借助Redis,判题机使用第三方包go - judge。
项目的主要特性和功能
- 在线判题:支持C++、C、Golang、Java和Python3等多种编程语言,能对用户提交的代码进行处理并返回判题结果。
- 比赛管理:可创建、删除、更新和查询比赛,管理比赛信息并查询比赛状态。
- 题目管理:支持题目创建、删除、更新和查询,可编辑题目信息,上传和下载题目文件。
- 用户管理:提供用户注册、登录、注销、查询和更新功能,管理和验证用户信息。
- 新闻发布:管理员和选手均可发布新闻,支持新闻或消息的发布和查询。
- 代码编译和执行:支持在本地或远程环境中编译和执行用户提交的代码。
安装使用步骤
- 环境准备:确保系统已安装Golang、MySQL、Redis和Docker。
- 数据库初始化:运行
mysqlInit.go
,完成数据库初始化,创建必要的数据库表和初始管理员账号。 - 启动判题服务:调用
judger\worker.go
中的Start
函数启动判题服务。 - 启动Web服务:运行
main.go
启动Web服务并监听指定端口。 - 前端交互:使用Flutter构建的前端应用与后端服务交互,完成登录、比赛创建、题目管理、用户管理等操作。
注意:因前端部分功能待开发,一键部署功能将推迟上线。待前端扩展功能开发完毕后,用户可直接下载exe程序进行交互。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】