DOMJudge

From OO Lab
Revision as of 14:21, 13 July 2014 by Rickychien (Talk | contribs)

Jump to: navigation, search

DOMjudge is an automated judge system to run programming contests, like the ACM ICPC. It has a focus on usability and security, has been used in many live contests and is free, open source software. http://www.domjudge.org/


Contents

Official Documentation

Official documentation refer to: http://www.domjudge.org/documentation.


Setup

本系統是修改DOMJudge加入客製化功能,安裝本系統前需:

  • 下載並安裝DOMJudge 3.4.0
  • 安裝完成後,下載客製化後的版本並覆蓋。
    客製化版本放置於ncuoolab的github,可透過git指令下載:
    git clone git@github.com:ncuoolab/domserver.git

此部分安裝有較詳細的指令,提供給初次安裝的人參考,詳細安裝流程請見官網document: http://www.domjudge.org/documentation

140.115.53.59 下載 vSphere Client

DOMJudge預設安裝目錄 /opt/domjudge/

安裝DomJudge

  1. 先在/etc/apt/sources.list加入資源包網站
    deb http://ftp.uni-sofia.bg/debian/ stable main contrib
  2. 更新apt-get source
    sudo apt-get update
    sudo apt-get upgrade 
    sudo apt-get dist-upgrade
  3. 下載安裝必須套件
    apt-get install gcc g++ make libcurl4-gnutls-dev mysql-server \
    apache2 php5 php5-cli libapache2-mod-php5 php5-mysql php5-json \
    php-geshi phpmyadmin \
    ntp sudo procps xsltproc \
    libboost-regex-dev libgmp3-dev linuxdoc-tools linuxdoc-tools-text \
    transfig groff texlive-latex-recommended texlive-latex-extra \
    texlive-fonts-recommended
  4. 如果要能跑java 則還要下載
    apt-get install make sudo php5-cli php5-mysql php5-json ntp xsltproc procps \
    gcc g++ gcj openjdk-6-jre-headless openjdk-6-jdk ghc fp-compiler
  5. download domjudge

    http://www.domjudge.org/docs/admin-manual-3.html (選擇domjudge-3.4.0.tar.gz 用wget)

  6. tar -xzvf [name] (解壓縮)
  7. 執行安裝 ./configure 最好不要指定 --prefix=你所希望的路徑 (ex: $HOME/...)
  8. 安裝domjudge一共需要裝 domserver, judgehost。docs為可選安裝。
    make domserver && sudo make install-domserver
    make judgehost && sudo make install-judgehost   
    make docs && make install-docs
  9. cd /opt/domjudge 確認套件已安裝
  10. 設定domserver (這裡skip很多 自己注意)
    1. 打開 domjudge/domserver/etc/apache.conf 做允許IP位置的修改
    2. ln -s .../domjudge/domserver/etc/apache.conf /etc/apache2/conf.d/domjudge.conf && apache2ctl graceful
  11. 設定judgehosts (這裡skip很多 自己注意)
    1. sudo useradd -d /nonexistent -g nogroup -s /bin/false domjudge-run
  12. 使改版過後的 domjudge 下載後直接覆蓋 https://github.com/ncuoolab/domserver
    此版本為NCU推甄上機考版本,主要新增了hidden & open test case與其餘客製化功能。
  13. 設定好固定ip 開起網頁測試
  14. 創造domjudge jury管理員帳戶
    htpasswd htpasswd-jury name
  15. 修改DOMJudge的登入資訊
    sudo vim /etc/apache2/conf.d/domjudge.conf
    sudo service apache2 restart
  16. 開啟Judgehost

    單核心

    /opt/domjudge/judgehost/bin/judgedaemon

    多核心

    /opt/domjudge/judgehost/bin/judgedaemon -n [core_number] (0-3)


Customize DOMJudge

add a new language

Using lex and yacc as an example.

places to change open/hidden test case

Modify domserver/www/team/submission_details.php


About DOMJudge

http://your-domain/domjudge/jury (管理員網頁)

contest 控制考試時間 及 開起哪個考試活動 team 設定用戶帳戶 problem (只能上傳.zip檔) 設定題目 submit (可否上傳) judge (可否compile & execute)

Personal tools