• Stars
    star
    228
  • Rank 175,267 (Top 4 %)
  • Language Vue
  • License
    MIT License
  • Created almost 6 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An open source online judge system base on Django REST framework and Vue.js !

LPOJ

Python Django Rest Framework vue travis-ci Join-QQ-Group

一个基于Vue.js和Django的轻量级在线评测系统

目前应用于广东外语外贸大学

演示地址:oj.lpoj.cn

说明文档:docs.lpoj.cn

简述

  • 轻量级,易于部署和自定义定制
  • 前后端分离,提高服务器性能
  • 支持多机器多进程判题,判题更高效
  • 支持 C/C++/Java/Python2/Python3和Swift5.1语言
  • 支持 Special Judge和选择题判题
  • 丰富的API,开放的源代码
  • 一键保存和导出代码模板
  • 支持类似LeetCode的模板题判题功能
  • 新增班级管理与布置作业功能
  • 现代化的界面 + 手机适配
  • 实时爬取自定义用户的博客和其他OJ的做题数
  • 丰富的算法知识和体系化的套题训练

模块列表

使用Docker部署

环境准备

1. 安装必要的依赖

sudo apt-get update
sudo apt-get install -y git
sudo apt install docker.io -y
sudo apt install docker-compose -y

2. 开始安装

git clone https://github.com/Linzecong/LPOJ.git && cd LPOJ

请修改docker-compose.yml中的数据库密码(所有的 DB_PASSWORD,MYSQL_ROOT_PASSWORD 字段)和一些你认为必要的设置

请确保机器上 4406 8080 8000~8002 9906 端口没有被占用!

sudo docker-compose up -d --scale judger=3

以上命令默认开启3个判题机,可以自行修改数量

根据网速和配置情况,大约10到20分钟就可以自动搭建完成,全程无需人工干预。

等命令执行完成,然后运行 sudo docker ps -a 当看到所有的容器的状态均为 Up 就代表 OJ 已经启动成功。

3. 准备工作

  1. 安装成功后,先通过IP:8080访问OJ,注册一个用户

  2. 然后进入 IP:8000/admin 以用户名admin 密码admin 登录后台(请及时修改后台密码,这个后台作用仅用于修改管理员权限,因此没有样式)

  3. 修改User表中,你注册的超级用户的type为3,使得你注册的用户变为超级管理员

  4. 以管理员登录,右上角进入管理员页面,然后在网站设置标签,提交一次设置

4. 更新OJ

如要更新OJ只需在LPOJ目录下执行如下步骤

git pull # 如果你修改了代码,自行解决merge得到情况
sudo docker-compose stop
sudo docker-compose pull
sudo docker-compose up -d --scale judger=3

容器运行时产生的数据会保存在对应的文件夹中,如数据库文件,题目数据等

自定义OJ

首先先下载源代码

git clone https://github.com/Linzecong/LPOJ.git && cd LPOJ

然后随意修改你要修改的地方,修改完毕后,使用如下命令重新部署

sudo docker-compose -f docker-compose-build.yml up -d --build --scale judger=3

同样的,您需要修改docker-compose-build.yml中的配置,详见开始安装

由于会重新构建整个系统,而不是拉去已构建好的镜像,所以花的时间会比较长~请耐心等待

网站的静态文件可以放在 ./Frontend/dist/img中,比如存放题目所用的图片

如无意外,部署成功!

具体使用,请参阅使用文档

更新日志

3.3 更新类似LeetCode的模板题功能

3.4 更新班级管理和布置作业功能,可以在比赛中添加选择题

代办功能

  1. 封榜功能
  2. 更优秀的排行榜显示(现在人数多了会卡)

部分截图

image1

image2

image3

image4

image5

image6

或者你可以直接访问我们 oj.lpoj.cn

浏览器支持

Modern browsers(chrome, firefox)

特别感谢

许可

The MIT License

More Repositories

1

MFCC-DTW

Simple MFCC extractor and an speech recognition algorithm (Dynamic Time Warping)
C++
43
star
2

DecisionTree

The realization of decision tree learning algorithm-----C++ Version,决策树学习算法,C++实现
C++
36
star
3

ExcelDiffer

An excel comparator written by pyqt5
Python
28
star
4

BP-Neural-Network

一个三层神经网络模板,采用梯度下降算法,支持保存和读取训练好的网络
C++
24
star
5

Hexagon-Data-structure

Simple weighted Hexagon (Cellular topology) Data structure base on double dimensional array. 一个基于二维数组的六边形(蜂窝拓扑)数据结构。
C++
13
star
6

Gesture-Recognition

A simple BP Neural Network example 一个简单的运用了梯度下降算法的神经网络例子
C++
11
star
7

A_Decision_Tree_Example

我的数据挖掘大作业。
C++
5
star
8

FaceRecognition

A face recognition demo based on static grayscale image
C++
4
star
9

DShare

An app
QML
3
star
10

My-ACM-Code

记录我的ACM代码。
C++
3
star
11

Genetic-Algorithm-Neural-Network

A simple artificial neural network example.一个简单的神经网络例子
C++
2
star
12

LP_ZMQ

LP_ZMQ is a zmq binding for Swift 5.1.
Swift
2
star
13

Simple-TBS-Game

一个不简单的回合制战棋类游戏
C++
2
star
14

HunLing

A Small RGP Game
C++
2
star
15

Oral-English-scoring-system

Oral-English-scoring-system
QML
1
star
16

DShare-Spider

DShare的新闻爬虫软件
C++
1
star
17

QML-CameraTracker

A 2D camera tracing solution. QML version.
QML
1
star
18

DShare-Server

DShare-Server
C++
1
star
19

LearnSwift

LearningSwift
Swift
1
star
20

HunLing-Console

HunLing的控制台版本
C++
1
star
21

LPZeroMQ

ZMQ system module package for Swift 5.1
Swift
1
star
22

2048

A very simple game with simple functions ------- 2048 ( Qt version )
C++
1
star