Project mojo-hp is deprecated and archived. This project will be succeeded by KJudge @ https://github.com/sschakraborty/KJudge
The Mini Online Judge Operator (MOJO) is a high performance online coding judge platform developed and maintained by Subhadra Sundar Chakraborty (@sschakraborty) and Suvaditya Sur (@x0r19x91). MOJO is built on a custom high performance architecture developed by @sschakraborty that makes it massively scalable and distributable over hundreds of nodes. The codes are judged on multiple nodes in parallel in a cluster. The underlying mechanisms are completely non-blocking, asynchronous and event-driven which add to the performance.
The core of the judge is natively written on top of Linux kernel API (Linux 2.6+) and is developed and maintained by @x0r19x91. The core is asynchronous and highly capable of matching the speeds required for a performance critical distributed online judge.
The latest version is 1.2.0. MOJO 1.2.0 is the first MOJO version that features a fully functional high-performance native core at it's heart with option for vanilla core as well.
To use MOJO:
- Pre-requisites
- MOJO runs on all flavors of Linux OS (Kernel v2.6+).
- Currently there is no plan for supporting Windows.
- Java 8 and MySQL 5.6+ / MariaDB 10.1+ must be installed.
- Download the latest release of MOJO as ZIP.
- Unpack ZIP file in some directory.
- Update the config.json file as follows
- The database object is for connecting to the database.
- Update the database username / password / database name etc. properly.
- Change the security key to a long random alphanumeric string with special characters.
- This string serves as salt value for encrypting keys throughout the application.
- Changing the key is very highly recommended. This key has to be kept secret for security reasons.
- Finally update the judge Test folder. The Test folder is a folder where all the submitted codes, their compiled binaries (if applicable) and output files are stored for comparison purpose and also for future reference.
- The Test folder must be a blank valid folder on the system. One can keep the default Test folder as included with MOJO release (just update the proper path).
- Finally execute the ./startup.sh script to start MOJO.
- Enter the valid configuration file (.json) path.
- If everything was alright, MOJO must start up. Open up http://127.0.0.1:12400/ on browser to see MOJO in action.
For any support / contribution contact me at sschakraborty@hotmail.com