# qingdaou/onlinejudge

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/qingdaou-onlinejudge).**

6,499 stars · 1,533 forks · Python · mit

## Links

- GitHub: https://github.com/QingdaoU/OnlineJudge
- Homepage: http://opensource.qduoj.com/
- awesome-repositories: https://awesome-repositories.com/repository/qingdaou-onlinejudge.md

## Topics

`django` `django-rest-framework` `onlinejudge` `python`

## Description

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.

## Tags

### Education & Learning Resources

- [Competitive Programming Contests](https://awesome-repositories.com/f/education-learning-resources/competitive-programming-contests.md) — Creates, schedules, and scores timed programming competitions with automated leaderboards. ([source](http://opensource.qduoj.com/](http://opensource.qduoj.com/))
- [Online Judges](https://awesome-repositories.com/f/education-learning-resources/educational-resources/courses-training-certifications/interactive-learning-platforms/online-judges.md) — Evaluates submitted code against predefined test cases and returns pass or fail results for programming problems.
- [Submission Pipelines](https://awesome-repositories.com/f/education-learning-resources/coding-challenge-solutions/submission-pipelines.md) — Provides a web-form submission pipeline that queues source code for automated judging. ([source](http://opensource.qduoj.com/](http://opensource.qduoj.com/))
- [Coding Challenge Platforms](https://awesome-repositories.com/f/education-learning-resources/educational-resources/courses-training-certifications/interactive-learning-platforms/coding-challenge-platforms.md) — Evaluates submitted code against predefined test cases and returns pass or fail results for programming problems. ([source](http://opensource.qduoj.com/](http://opensource.qduoj.com/))
- [Math-Formatted](https://awesome-repositories.com/f/education-learning-resources/problem-statements/math-formatted.md) — Displays problem descriptions using Markdown and MathJax for formatted text and mathematical notation. ([source](https://cdn.jsdelivr.net/gh/qingdaou/onlinejudge@master/README.md))
- [MathJax-Enhanced](https://awesome-repositories.com/f/education-learning-resources/problem-statements/mathjax-enhanced.md) — Displays problem statements with Markdown and LaTeX mathematical notation rendered as formatted HTML.

### Artificial Intelligence & ML

- [Contest Scoring Engines](https://awesome-repositories.com/f/artificial-intelligence-ml/evaluation-metrics/scoring-pipelines/feature-cross-scoring/criteria-based-scoring-engines/dynamic-challenge-scorings/contest-scoring-engines.md) — Implements both ACM penalty-based and OI point-based scoring engines for contest rankings.

### Data & Databases

- [Ranked Leaderboards](https://awesome-repositories.com/f/data-databases/inventory-tracking/ranked-leaderboards.md) — Computes and displays leaderboards in real time, supporting ACM and OI scoring formats.
- [Contest Leaderboards](https://awesome-repositories.com/f/data-databases/inventory-tracking/ranked-leaderboards/contest-leaderboards.md) — Updates participant rankings dynamically as submissions are judged, supporting ACM and OI scoring rules.

### Development Tools & Productivity

- [Leaderboard Computation](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/competitive-programming-tools/contest-rule-standardizers/leaderboard-computation.md) — Computes and displays real-time leaderboards supporting ACM and OI scoring formats. ([source](https://cdn.jsdelivr.net/gh/qingdaou/onlinejudge@master/README.md))
- [Scoring Rule Switching](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/competitive-programming-tools/contest-rule-standardizers/scoring-rule-switching.md) — Applies ACM or OI scoring logic and switches between real-time and non-real-time rankings per contest. ([source](https://cdn.jsdelivr.net/gh/qingdaou/onlinejudge@master/README.md))
- [Automated Judging Validators](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/competitive-programming-tools/input-output-parsers/automated-judging-validators.md) — Compiles and runs submitted source code in a sandboxed environment, then compares output against expected results. ([source](https://cdn.jsdelivr.net/gh/qingdaou/onlinejudge@master/README.md))
- [Problem Templates](https://awesome-repositories.com/f/development-tools-productivity/package-deployment-automators/problem-package-bundlers/collaborative-problem-management/problem-templates.md) — Provides reusable templates for creating programming problems with Markdown and MathJax. ([source](https://cdn.jsdelivr.net/gh/qingdaou/onlinejudge@master/README.md))

### DevOps & Infrastructure

- [Docker-Based Deployment Tools](https://awesome-repositories.com/f/devops-infrastructure/container-orchestration/container-runtimes/runtime-configuration-interfaces/docker-socket-orchestrators/docker-target-configurators/docker-container-deployments/docker-based-deployment-tools.md) — Packages the entire application stack into Docker containers for reproducible, one-command deployment.
- [Docker Compose Deployments](https://awesome-repositories.com/f/devops-infrastructure/container-orchestration/container-runtimes/runtime-configuration-interfaces/docker-socket-orchestrators/docker-target-configurators/docker-container-deployments/docker-compose-deployments.md) — Uses a single Docker Compose file to orchestrate the web server, database, and judge engine containers.
- [Multi-Container Stacks](https://awesome-repositories.com/f/devops-infrastructure/container-orchestration/container-runtimes/runtime-configuration-interfaces/docker-socket-orchestrators/docker-target-configurators/docker-container-deployments/multi-container-stacks.md) — Packages the web server, database, and judge engine into separate containers linked by Docker Compose.
- [Code Execution Sandboxes](https://awesome-repositories.com/f/devops-infrastructure/execution-environments/code-execution-runtimes/code-execution-sandboxes.md) — Runs untrusted user code inside a restricted environment that isolates system calls and limits resource usage.

### Programming Languages & Runtimes

- [Sandboxed Code Evaluators](https://awesome-repositories.com/f/programming-languages-runtimes/source-code-compilers/sandboxed-code-evaluators.md) — Compiles and runs submitted source code in a sandbox, then compares output against expected results.

### Security & Cryptography

- [Code Executors](https://awesome-repositories.com/f/security-cryptography/application-and-system-security/sandbox-and-isolation/code-executors.md) — Compiles and runs untrusted user code in an isolated environment without risking the host system.
- [Process Sandboxing](https://awesome-repositories.com/f/security-cryptography/process-sandboxing.md) — Runs untrusted user code in a restricted child process that intercepts system calls and enforces resource limits.

### Testing & Quality Assurance

- [Grading Systems](https://awesome-repositories.com/f/testing-quality-assurance/code-quality-review/automated-code-review/grading-systems.md) — Compiles and runs submitted source code inside a sandboxed environment, then returns pass or fail results. ([source](https://cdn.jsdelivr.net/gh/qingdaou/onlinejudge@master/README.md))
- [Output Comparison Judges](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/assertions-and-validation/test-case-definitions/parametrized-test-cases/output-comparison-judges.md) — Compiles submitted code, executes it against predefined inputs, and compares stdout against expected outputs byte-for-byte.

### Web Development

- [Asynchronous Form Submissions](https://awesome-repositories.com/f/web-development/form-processing/asynchronous-form-submissions.md) — Accepts source code through a browser form, places it into a queue, and triggers the judge process asynchronously.
- [Code Submission Forms](https://awesome-repositories.com/f/web-development/form-processing/asynchronous-form-submissions/code-submission-forms.md) — Accepts source code through a browser form, queues it, and triggers the judge process asynchronously.

### Content Management & Publishing

- [Mathematical Notation Renderers](https://awesome-repositories.com/f/content-management-publishing/markdown-renderers/mathematical-notation-renderers.md) — Converts problem statements from Markdown with embedded LaTeX into formatted HTML with mathematical notation.
- [MathJax-Enhanced Renderers](https://awesome-repositories.com/f/content-management-publishing/markdown-renderers/mathjax-enhanced-renderers.md) — Renders problem statements with Markdown and MathJax for formatted text and mathematical notation. ([source](http://opensource.qduoj.com/))

### Scientific & Mathematical Computing

- [Problem Statement Viewers](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/mathematical-typesetting-engines/mathematical-typesetting/mathjax-configurations/problem-statement-viewers.md) — Renders mathematical notation and formatted text using Markdown and MathJax for problem statements.

### Software Engineering & Architecture

- [Mathematical Notation Rendering](https://awesome-repositories.com/f/software-engineering-architecture/expression-transformers/notation-converters/mathematical-notation-rendering.md) — Renders problem statements and discussions with Markdown formatting and MathJax mathematical notation. ([source](http://opensource.qduoj.com/))

### System Administration & Monitoring

- [Contest IP Allowlisting](https://awesome-repositories.com/f/system-administration-monitoring/ip-address-blocklists/ip-access-restrictions/contest-ip-allowlisting.md) — Provides CIDR-based IP allowlisting to restrict which addresses can join a programming contest. ([source](https://cdn.jsdelivr.net/gh/qingdaou/onlinejudge@master/README.md))
