Skip to content

A modern open-source online judge and contest platform system of CTU, base on DMOJ & VNOJ.

License

Notifications You must be signed in to change notification settings

CTU-ITClub/CTU-OJ

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VNOJ: VNOI Online Judge Build Status AGPL License Discord link

As a fork of DMOJ and VNOJ, CTUOJ serves as the official online judge and programming contests of CICT.

See it live at dmoj.ctu.edu.vn!

Features

Checkout the features listed here.

Addition features:

  • Beside Python checkers here, we can write custom C++ checker using testlib.h.

Installation

Check out the install documentation at docs.dmoj.ca. Almost all installation steps is the same as the docs, there is one minor change: clone this repo instead of dmoj repo.

Additional step in installation:

  • You have to define DMOJ_PROBLEM_DATA_ROOT in local_settings.py, this is path to your problems tests folder.

  • Considering to disable Full text search, please check this issuse for more information.

  • To sync the caching of judge server and site, change cache framework (CACHES) to memcached or redis instead of the default (local-memory caching).

  • The "home button" the admin dashboard (/admin) will redirect to localhost:8081 if you use python3 manage.py loaddata demo, there is 2 ways to fix it:

    1. You can change that in demo.json
    2. You can go to the admin page, scoll down to find the Sites settings and change localhost:8081 to your domain.
  • To support testlib.h, you need to copy the testlib.h to g++ include path in judge server. To speed up compiler time, you may create the precompiled header to testlib.h.

Contributing PR's Welcome

Take a look at our contribution guideline.

If you found any bug, please feel free to contact us via Discord Discord Chat or open an issue.

Pull requests are welcome as well. Before you submitting your PR, please check your code with flake8 and format it if needed.

Translation contributions are also welcome.