littlebot
Published on 2025-04-09 / 3 Visits
0

【源码】基于Go语言和Flutter框架的在线判题系统

项目简介

本项目是一款针对ACM - ICPC赛制设计的PC端在线判题系统,目前仅支持win10平台,且无需依赖浏览器。前端运用Flutter框架开发,大部分功能已完成,部分扩展功能仍在开发中;后端采用Golang编写,数据库使用MySQL 8.0,数据缓存借助Redis,判题机使用第三方包go - judge。

项目的主要特性和功能

  1. 在线判题:支持C++、C、Golang、Java和Python3等多种编程语言,能对用户提交的代码进行处理并返回判题结果。
  2. 比赛管理:可创建、删除、更新和查询比赛,管理比赛信息并查询比赛状态。
  3. 题目管理:支持题目创建、删除、更新和查询,可编辑题目信息,上传和下载题目文件。
  4. 用户管理:提供用户注册、登录、注销、查询和更新功能,管理和验证用户信息。
  5. 新闻发布:管理员和选手均可发布新闻,支持新闻或消息的发布和查询。
  6. 代码编译和执行:支持在本地或远程环境中编译和执行用户提交的代码。

安装使用步骤

  1. 环境准备:确保系统已安装Golang、MySQL、Redis和Docker。
  2. 数据库初始化:运行mysqlInit.go,完成数据库初始化,创建必要的数据库表和初始管理员账号。
  3. 启动判题服务:调用judger\worker.go中的Start函数启动判题服务。
  4. 启动Web服务:运行main.go启动Web服务并监听指定端口。
  5. 前端交互:使用Flutter构建的前端应用与后端服务交互,完成登录、比赛创建、题目管理、用户管理等操作。

注意:因前端部分功能待开发,一键部署功能将推迟上线。待前端扩展功能开发完毕后,用户可直接下载exe程序进行交互。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】