Skip to content
🌩️ (DEPRECATED) An Online Judge. Deprecated due to low efficiency and security issues.
PHP Volt JavaScript Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


this project is deprecated due to low efficiency and security issues.

New MVC Version of SNGOJ, built for CCCCWI. Build based on INVO example of phalconphp

中国福利会少年宫的机智 OJ,这是一个试验版本 o(^▽^)o 然而我把它的名字叫做 CloudOJ, 听起来大概很有感觉。


CloudOJ is under Apache License.


echo sprintf("", "@");
echo sprintf("", "@");


See CloudOJWatcher for Watcher


  1. git clone ...
  2. Setup PHP and install Phalcon
  3. Goto MySQL Database, excute SQL Script, Then add oj user in database
  4. Clone CloudOJ into <apache htdocs>/oj
  5. Make config file at oj/app/config/config.ini
  6. Edit database (For example, add Groups)
  7. Start using OJ at localhost/oj, and then register a user
  8. Goto MySQL Database, go to the user you registered in table user, change groupid to 1 to get admin premission


CloudOJ use the Gravator Service and use V2EX's Gravator CDN.

Problem Data

To use data saved in file, put your file in /cloudojroot/ojdata/.in and .out, then select type of File, type .in in the dat_in textarea and .out in the dat_out area.

We will filter '\r' in your input.

Problem Data Cache

CloudOJ's Status Watcher will automatically cache data file. To refresh data, you can:

  1. Goto /CloudOJWatcher/data/prob and rm *
  2. Change the data's name after it is edited

Group Table Example

Score Required: 0, 100, 2333333

Name: Naive, Beginner, Super

You must have a group whose score is 0, as well as a group whose score is LARGE ENOUGH.

Config Example

adapter  = Mysql
host     = localhost
username = ojroot
password = abcdefghijklmnopqrstuvwxyz
name     = oj

controllersDir = app/controllers/
modelsDir      = app/models/
viewsDir       = app/views/
pluginsDir     = app/plugins/
formsDir       = app/forms/
libraryDir     = app/library/
baseUri        = /oj/

apikey = abcdefghijklmnopqrstuvwxyz

key = 23333333333333


  • Problem Premission Web Interface
  • Discuss System
  • Contest System
  • Change Password, Change Username
  • Github OAuth Login
  • Avatar System
You can’t perform that action at this time.