{"id":21819925,"url":"https://github.com/dmoj/online-judge","last_synced_at":"2025-12-17T05:03:26.667Z","repository":{"id":14961034,"uuid":"17685829","full_name":"DMOJ/online-judge","owner":"DMOJ","description":"A modern open-source online judge and contest platform system.","archived":false,"fork":false,"pushed_at":"2025-12-14T02:04:54.000Z","size":16270,"stargazers_count":1129,"open_issues_count":212,"forks_count":434,"subscribers_count":19,"default_branch":"master","last_synced_at":"2025-12-16T00:57:33.201Z","etag":null,"topics":["coding-competitions","coding-interviews","dmoj","dmoj-judge","online-judge","programming-challenge","programming-contests","python"],"latest_commit_sha":null,"homepage":"https://dmoj.ca","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DMOJ.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2014-03-12T22:08:14.000Z","updated_at":"2025-12-13T04:26:20.000Z","dependencies_parsed_at":"2023-01-16T20:02:12.141Z","dependency_job_id":"4b862c3f-a485-4c31-83e3-fe52425722bb","html_url":"https://github.com/DMOJ/online-judge","commit_stats":{"total_commits":9841,"total_committers":59,"mean_commits":"166.79661016949152","dds":"0.44517833553500663","last_synced_commit":"25f47987fbfd31debd6d3bf5cde28c5b62c09ce1"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/DMOJ/online-judge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DMOJ%2Fonline-judge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DMOJ%2Fonline-judge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DMOJ%2Fonline-judge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DMOJ%2Fonline-judge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DMOJ","download_url":"https://codeload.github.com/DMOJ/online-judge/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DMOJ%2Fonline-judge/sbom","scorecard":{"id":35518,"data":{"date":"2025-08-11","repo":{"name":"github.com/DMOJ/online-judge","commit":"56992072c896357c4a633120fc7022c0bcc323a8"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/build.yml:1","Warn: no topLevel permission defined: .github/workflows/caniuse.yml:1","Warn: no topLevel permission defined: .github/workflows/compilemessages.yml:1","Warn: no topLevel permission defined: .github/workflows/makemessages.yml:1","Warn: no topLevel permission defined: .github/workflows/updatemessages.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU Affero General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/DMOJ/online-judge/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/DMOJ/online-judge/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/DMOJ/online-judge/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/DMOJ/online-judge/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/DMOJ/online-judge/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/DMOJ/online-judge/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:7: update your workflow using https://app.stepsecurity.io/secureworkflow/DMOJ/online-judge/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:9: update your workflow using https://app.stepsecurity.io/secureworkflow/DMOJ/online-judge/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/caniuse.yml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/DMOJ/online-judge/caniuse.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/caniuse.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/DMOJ/online-judge/caniuse.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/compilemessages.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/DMOJ/online-judge/compilemessages.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/compilemessages.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/DMOJ/online-judge/compilemessages.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/makemessages.yml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/DMOJ/online-judge/makemessages.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/makemessages.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/DMOJ/online-judge/makemessages.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/updatemessages.yml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/DMOJ/online-judge/updatemessages.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/updatemessages.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/DMOJ/online-judge/updatemessages.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/updatemessages.yml:90: update your workflow using https://app.stepsecurity.io/secureworkflow/DMOJ/online-judge/updatemessages.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:14","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:33","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:34","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:35","Warn: npmCommand not pinned by hash: .github/workflows/build.yml:54","Warn: downloadThenRun not pinned by hash: .github/workflows/caniuse.yml:13","Warn: pipCommand not pinned by hash: .github/workflows/compilemessages.yml:25","Warn: pipCommand not pinned by hash: .github/workflows/compilemessages.yml:26","Warn: pipCommand not pinned by hash: .github/workflows/makemessages.yml:24","Warn: pipCommand not pinned by hash: .github/workflows/makemessages.yml:25","Warn: pipCommand not pinned by hash: .github/workflows/updatemessages.yml:26","Warn: pipCommand not pinned by hash: .github/workflows/updatemessages.yml:27","Info:   0 out of  14 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned","Info:   0 out of  10 pipCommand dependencies pinned","Info:   0 out of   1 npmCommand dependencies pinned","Info:   0 out of   1 downloadThenRun dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"73 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2020-28 / GHSA-m6xf-fq7q-8743","Warn: Project is vulnerable to: PYSEC-2020-27 / GHSA-q65m-pv3f-wr5r","Warn: Project is vulnerable to: PYSEC-2020-340 / GHSA-vqhp-cxgc-6wmm","Warn: Project is vulnerable to: PYSEC-2021-865 / GHSA-vv2x-vrpj-qqpq","Warn: Project is vulnerable to: PYSEC-2021-858 / GHSA-q4xr-rc97-m4xx","Warn: Project is vulnerable to: PYSEC-2014-5 / GHSA-296w-6qhq-gf92","Warn: Project is vulnerable to: PYSEC-2011-2 / GHSA-3jqw-crqj-w8qw","Warn: Project is vulnerable to: PYSEC-2012-3 / GHSA-59w8-4wm2-4xw8","Warn: Project is vulnerable to: PYSEC-2012-4 / GHSA-5h2q-4hrp-v9rr","Warn: Project is vulnerable to: PYSEC-2014-6 / GHSA-625g-gx8c-xcmg","Warn: Project is vulnerable to: PYSEC-2015-8 / GHSA-6565-fg86-6jcx","Warn: Project is vulnerable to: PYSEC-2021-98 / GHSA-68w8-qjq3-2gfm","Warn: Project is vulnerable to: PYSEC-2012-2 / GHSA-78vx-ggch-wghm","Warn: Project is vulnerable to: PYSEC-2015-9 / GHSA-7fq8-4pv5-5w5c","Warn: Project is vulnerable to: PYSEC-2015-4 / GHSA-7qfw-j7hp-v45g","Warn: Project is vulnerable to: PYSEC-2011-9 / GHSA-7wph-fc4w-wqp2","Warn: Project is vulnerable to: GHSA-7xr5-9hcq-chf9","Warn: Project is vulnerable to: PYSEC-2014-2 / GHSA-89hj-xfx5-7q66","Warn: Project is vulnerable to: GHSA-8x94-hmjh-97hq","Warn: Project is vulnerable to: PYSEC-2016-2 / GHSA-c8c8-9472-w52h","Warn: Project is vulnerable to: PYSEC-2016-3 / GHSA-crhm-qpjc-cm64","Warn: Project is vulnerable to: PYSEC-2014-4 / GHSA-f7cm-ccfp-3q4r","Warn: Project is vulnerable to: PYSEC-2016-16 / GHSA-fp6p-5xvw-m74f","Warn: Project is vulnerable to: PYSEC-2011-8 / GHSA-fwr5-q9rx-294f","Warn: Project is vulnerable to: PYSEC-2015-5 / GHSA-gv98-g628-m9x5","Warn: Project is vulnerable to: PYSEC-2015-20 / GHSA-h582-2pch-3xv3","Warn: Project is vulnerable to: PYSEC-2011-5 / GHSA-h95j-h2rv-qrg4","Warn: Project is vulnerable to: GHSA-hmr4-m2h5-33qx","Warn: Project is vulnerable to: PYSEC-2015-6 / GHSA-jhjg-w2cp-5j44","Warn: Project is vulnerable to: PYSEC-2016-15 / GHSA-pw27-w7w4-9qc7","Warn: Project is vulnerable to: PYSEC-2015-10 / GHSA-q5qw-4364-5hhm","Warn: Project is vulnerable to: PYSEC-2011-4 / GHSA-rm2j-x595-q9cj","Warn: Project is vulnerable to: GHSA-rrqc-c2jx-6jgv","Warn: Project is vulnerable to: PYSEC-2014-1 / GHSA-rvq6-mrpv-m6rm","Warn: Project is vulnerable to: PYSEC-2014-7 / GHSA-rw75-m7gp-92m3","Warn: Project is vulnerable to: PYSEC-2019-16 / GHSA-vfq6-hq5r-27r6","Warn: Project is vulnerable to: PYSEC-2014-3 / GHSA-wqjj-hx84-v449","Warn: Project is vulnerable to: PYSEC-2011-3 / GHSA-wxg3-mfph-qg9w","Warn: Project is vulnerable to: PYSEC-2011-1 / GHSA-x88j-93vc-wpmp","Warn: Project is vulnerable to: PYSEC-2007-1","Warn: Project is vulnerable to: PYSEC-2008-1","Warn: Project is vulnerable to: PYSEC-2008-2","Warn: Project is vulnerable to: PYSEC-2009-3","Warn: Project is vulnerable to: PYSEC-2015-11","Warn: Project is vulnerable to: PYSEC-2015-7","Warn: Project is vulnerable to: PYSEC-2016-18","Warn: Project is vulnerable to: PYSEC-2022-304","Warn: Project is vulnerable to: PYSEC-2019-217 / GHSA-462w-v97r-4m45","Warn: Project is vulnerable to: PYSEC-2014-8 / GHSA-8r7q-cvjq-x353","Warn: Project is vulnerable to: GHSA-cpwx-vrp4-4pq7","Warn: Project is vulnerable to: PYSEC-2014-82 / GHSA-fqh9-2qgg-h84h","Warn: Project is vulnerable to: PYSEC-2021-66 / GHSA-g3rq-g295-4j3m","Warn: Project is vulnerable to: GHSA-h5c8-rqwp-cp95","Warn: Project is vulnerable to: GHSA-h75v-3vvj-5mfj","Warn: Project is vulnerable to: PYSEC-2019-220 / GHSA-hj2j-77xm-mc5v","Warn: Project is vulnerable to: GHSA-q2x7-8rv6-6q7h","Warn: Project is vulnerable to: GHSA-55x5-fj6c-h6m8","Warn: Project is vulnerable to: PYSEC-2014-9 / GHSA-57qw-cc2g-pv5p","Warn: Project is vulnerable to: PYSEC-2021-19 / GHSA-jq4v-f5q6-mjqq","Warn: Project is vulnerable to: GHSA-pgww-xf46-h92r","Warn: Project is vulnerable to: PYSEC-2022-230 / GHSA-wrxv-2j5q-m38w","Warn: Project is vulnerable to: PYSEC-2018-12 / GHSA-xp26-p53h-6h2p","Warn: Project is vulnerable to: PYSEC-2024-160 / GHSA-5jfw-gq64-q45f","Warn: Project is vulnerable to: PYSEC-2023-117 / GHSA-mrwq-x4v8-fh7p","Warn: Project is vulnerable to: PYSEC-2021-142 / GHSA-8q59-q68h-6hv4","Warn: Project is vulnerable to: PYSEC-2018-49 / GHSA-rprw-h62v-c2w7","Warn: Project is vulnerable to: PYSEC-2014-14 / GHSA-652x-xj99-gmcc","Warn: Project is vulnerable to: GHSA-9hjg-9r4m-mvj7","Warn: Project is vulnerable to: GHSA-9wx4-h78v-vm56","Warn: Project is vulnerable to: PYSEC-2014-13 / GHSA-cfj3-7x9c-4p3h","Warn: Project is vulnerable to: PYSEC-2018-28 / GHSA-x84v-xcm2-53pg","Warn: Project is vulnerable to: GHSA-2gr8-3wc7-xhj3","Warn: Project is vulnerable to: GHSA-2m57-hf25-phgg"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-14T20:12:18.486Z","repository_id":14961034,"created_at":"2025-08-14T20:12:18.486Z","updated_at":"2025-08-14T20:12:18.486Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27777509,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-17T02:00:08.291Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coding-competitions","coding-interviews","dmoj","dmoj-judge","online-judge","programming-challenge","programming-contests","python"],"created_at":"2024-11-27T16:27:11.069Z","updated_at":"2025-12-17T05:03:26.615Z","avatar_url":"https://github.com/DMOJ.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/DMOJ/online-judge/blob/master/logo.png?raw=true\" width=\"120px\"\u003e\n  \u003cbr\u003e\n  DMOJ: Modern Online Judge\n\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/DMOJ/online-judge/actions?query=workflow%3Abuild\"\u003e\n    \u003cimg alt=\"Build Status\" src=\"https://img.shields.io/github/actions/workflow/status/DMOJ/online-judge/build.yml?branch=master\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"LICENSE.md\"\u003e\n    \u003cimg alt=\"License\" src=\"https://img.shields.io/github/license/DMOJ/online-judge\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://dmoj.ca/about/discord/\"\u003e\n    \u003cimg src=\"https://img.shields.io/discord/677340492651954177?color=%237289DA\u0026label=Discord\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nA modern open-source online judge and contest platform system. It has been used to host thousands of competitions, including several national olympiads.\n\nSee it live at [dmoj.ca](https://dmoj.ca/)!\n\n## Features\n\n* [Support for over **60 language runtimes**](https://github.com/DMOJ/online-judge#supported-languages)\n* Highly robust judging system:\n   * Supports **interactive** and **signature-graded** tasks\n   * Supports **runtime data generators** and **custom output validators**\n   * Specifying **per-language resource limits**\n   * Capable of scaling to hundreds of judging servers\n* Extremely configurable contest system:\n   * Supports ICPC/IOI/AtCoder/ECOO formats out-of-the-box\n   * **System testing** supported\n   * **Hidden scoreboards** and **virtual participation**\n   * [Elo-MMR](https://arxiv.org/abs/2101.00400)-style **rating**\n   * **Plagiarism detection** via [Stanford MOSS](https://theory.stanford.edu/~aiken/moss/)\n   * Restricting contest access to particular organizations or users\n* Rich problem statements, with support for **LaTeX math and diagrams**\n   * Automatic **PDF generation** for easy distribution\n   * Built-in support for **editorials**\n* **Live updates** for submissions\n* Internationalized site interface\n* Home page blog and activity stream\n* Fine-grained permission control for staff\n* OAuth login with Google, Facebook, and Github\n* Two-factor authentication support\n\n## Installation\n\nCheck out the install documentation at [docs.dmoj.ca](https://docs.dmoj.ca/#/site/installation). Feel free to reach out to us on [Discord](https://dmoj.ca/about/discord/) if you have any questions.\n\n## Screenshots\n\n### Sleek problem statements\nProblems are written in Markdown, with LaTeX-enabled math and figures, as well as syntax highlighting. Problem statements can be saved to PDF for ease of distribution to contestants.\n\n![](https://i.imgur.com/7KD7h5r.png)\n\n### Submit in over 60 languages\nContestants may submit in over 60 programming languages with syntax highlighting. Problem authors can restrict problems to specific languages, and set language-specific resource limits.\n\n![](https://i.imgur.com/8CjfHQb.png)\n\n### Live submission status\nSubmission pages feature live updates, and submissions may be aborted by both submission authors and administrators. Compilation errors and warnings for a number of languages feature color highlighting.\n\n![](https://i.imgur.com/Hom0U3R.png)\n\nGlobal, per-problem, and per-contest submission lists are live-updating, and can be filtered by status and language.\n\n![](https://i.imgur.com/rc7orzj.png)\n\n### Extensible contest system\nContests feature an optional rating system, and can be configured to run in any timeframe. Users are also able to participate virtually after the contest ends. ICPC, IOI, AtCoder, and ECOO contest formats are supported out-of-the-box, and new formats can be added with custom code.\n\n![](https://i.imgur.com/0V1fzZi.png)\n\nContests may be limited to particular organizations, or require access codes to join. Hidden scoreboards are supported. The contest system integrates with [Stanford MOSS](https://theory.stanford.edu/~aiken/moss/) to provide plagiarism checking.\nEditorial support is built-in, and editorials are automatically published once a contest ends.\n\n### Home page blog and activity stream\n\nAnnouncements from administrators, ongoing contests, recent comments and new problems are easily accessible from the home page.\n\n![](https://i.imgur.com/zpQAoDB.png)\n\n### Internationalized interface\nUse the site in whatever language you're most comfortable in \u0026mdash; visit [translate.dmoj.ca](https://translate.dmoj.ca/) to check the translation status of your preferred language. Problem authors can provide statements in multiple languages, and DMOJ will display the most relevant one to a reader.\n\n![](https://i.imgur.com/OeuI0o5.png)\n\n### Highly featured administration interface\nThe DMOJ admin interface is highly versatile, and can be efficiently used for anything from managing users to authoring problem statements.\n\n![](https://static.dmoj.ca/data/_other/readme/problem-admin.png)\n\n![](https://static.dmoj.ca/data/_other/readme/admin-dashboard.png)\n\n## Supported languages\n\nCheck out [**DMOJ/judge-server**](https://github.com/DMOJ/judge-server) for more judging backend details.\n\nSupported languages include:\n* C++ 11/14/17/20 (GCC and Clang)\n* C 99/11\n* Java 8-22\n* Python 2/3\n* PyPy 2/3\n* Pascal\n* Mono C#/F#/VB\n\nThe judge can also grade in the languages listed below:\n* Ada\n* Algol 68\n* AWK\n* COBOL\n* D\n* Dart\n* Fortran\n* Forth\n* Go\n* Groovy\n* GAS x86/x64/ARM\n* Haskell\n* INTERCAL\n* Kotlin\n* Lua\n* LLVM IR\n* NASM x86/x64\n* Objective-C\n* OCaml\n* Perl\n* PHP\n* Pike\n* Prolog\n* Racket\n* Ruby\n* Rust\n* Scala\n* Chicken Scheme\n* sed\n* Steel Bank Common Lisp\n* Swift\n* Tcl\n* Turing\n* V8 JavaScript\n* Brain\\*\\*\\*\\*\n* Zig\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmoj%2Fonline-judge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdmoj%2Fonline-judge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmoj%2Fonline-judge/lists"}