OnlineJudge is an automated platform for managing programming contests and evaluating submitted source code. It provides a complete online judge system that compiles, runs, and scores code submissions against predefined test cases within a sandboxed execution environment, ensuring the host system remains protected from untrusted user code.
The platform supports both ACM-style penalty-based scoring and OI-style point-based scoring, with real-time leaderboard computation that dynamically updates participant rankings as submissions are judged. Contest organizers can create and schedule timed competitions, manage problems using Markdown descriptions with MathJax-rendered mathematical notation, and restrict contest access by IP address using CIDR notation. The entire application stack is packaged into Docker containers for reproducible, one-command deployment across environments.
The system accepts source code through a web-form submission pipeline, queues submissions for asynchronous evaluation, and provides visualization of submission statistics through charts and graphs. Problem statements are rendered with formatted text and mathematical notation, while the sandboxed process isolation intercepts system calls and enforces resource limits during code execution.