# zhblue/hustoj

**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/zhblue-hustoj).**

3,757 stars · 827 forks · JavaScript · GPL-2.0

## Links

- GitHub: https://github.com/zhblue/hustoj
- Homepage: http://www.hustoj.com/?cat=2
- awesome-repositories: https://awesome-repositories.com/repository/zhblue-hustoj.md

## Topics

`acm-icpc` `c` `cpp` `java` `judge` `mysql` `noip` `oj` `online` `online-judge` `onlinejudge` `php`

## Description

hustoj is a web-based online judge platform built with PHP and MySQL for hosting programming contests and training. It features an automated code grading engine that executes submissions in multiple languages and validates them against test cases to provide rankings and scores.

The system is designed as a competitive programming contest manager, supporting ACM-ICPC and NOIP style events with weighted scoring and penalty calculations. It distinguishes itself with a built-in plagiarism detection system that compares source code similarity between users to identify potential cheating.

The platform covers a broad range of educational and administrative capabilities, including problem authoring with Markdown and mathematical formula rendering, contest scheduling with participant access control, and a remote judging model that delegates evaluation to external servers. It also provides tools for generating randomized test data and integrating with external learning management systems for grade synchronization.

Deployment options include containerized images for single-node or distributed services and dedicated installation paths for RedHat-based distributions.

## Tags

### 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) — Organizes ACM-ICPC and NOIP style events with weighted scoring and penalty calculations to compute rankings.
- [Contest Ranking Algorithms](https://awesome-repositories.com/f/artificial-intelligence-ml/recommendation-engines/contest-ranking-algorithms.md) — Computes rankings based on problem count and time penalties using OI-style scoring and weighted test cases. ([source](http://www.hustoj.com/lightbot.swf))

### Security & Cryptography

- [CTF Competition Hosting Platforms](https://awesome-repositories.com/f/security-cryptography/security/offensive-operations/penetration-testing-ethical-hacking/capture-the-flag-competitions/security-competition-platforms/ctf-competition-hosting-platforms.md) — Provides a complete platform for hosting competitive programming events, including problem hosting, submissions, and automated grading. ([source](https://cdn.jsdelivr.net/gh/zhblue/hustoj@master/README.md))
- [Access Control Managers](https://awesome-repositories.com/f/security-cryptography/access-control-managers.md) — Controls contest participation using private flags, password protection, and imported member lists. ([source](http://dl.hustoj.com/install.sh))
- [Contest Participation Controls](https://awesome-repositories.com/f/security-cryptography/access-restrictions/access-control-lists/contest-participation-controls.md) — Controls access to contests via private lists or passwords and supports bulk importing of student accounts. ([source](http://www.hustoj.com/))

### Development Tools & Productivity

- [Automated Judging Validators](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/competitive-programming-tools/input-output-parsers/automated-judging-validators.md) — Provides custom checker programs to validate submissions when multiple correct answers or specific precision is required. ([source](http://dl.hustoj.com/install.sh))
- [Language Support Extensions](https://awesome-repositories.com/f/development-tools-productivity/language-support-extensions.md) — Allows the system to be extended to support additional programming languages by updating language masks. ([source](http://www.hustoj.com/lightbot.swf))
- [Scoring Rule Switching](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/competitive-programming-tools/contest-rule-standardizers/scoring-rule-switching.md) — Configures scoring standards for competitions, including switching between ACM and OI scoring logic. ([source](http://hustoj.com/))

### DevOps & Infrastructure

- [Remote Judging Delegation](https://awesome-repositories.com/f/devops-infrastructure/remote-judging-delegation.md) — Delegates code evaluation to external servers via URL and credentials to retrieve results.
- [Self-Contained Judge Deployments](https://awesome-repositories.com/f/devops-infrastructure/container-orchestration/container-runtimes/runtime-configuration-interfaces/docker-socket-orchestrators/docker-target-configurators/docker-container-deployments/self-contained-judge-deployments.md) — Provides a standalone environment including a dedicated database and judging engine for immediate deployment. ([source](http://dl.hustoj.com/install-deepin20+.sh))
- [Containerized Deployment Images](https://awesome-repositories.com/f/devops-infrastructure/containerized-deployment-images.md) — Packages the web, database, and judging components into container images for rapid deployment. ([source](https://github.com/zhblue/hustoj/blob/master/wiki/Docker.md))
- [UDP Job Triggers](https://awesome-repositories.com/f/devops-infrastructure/remote-compute-job-submission/udp-job-triggers.md) — Initiates code evaluation by listening for UDP packets or HTTP requests from the web layer.
- [Remote Judging Integrations](https://awesome-repositories.com/f/devops-infrastructure/remote-judging-integrations.md) — Implements a remote judging model that forwards submissions to external servers via URL and credentials.

### Education & Learning Resources

- [Code Plagiarism Detection](https://awesome-repositories.com/f/education-learning-resources/code-plagiarism-detection.md) — Compares source code similarity between users using token analysis to identify potential cheating.
- [Competitive Programming Platforms](https://awesome-repositories.com/f/education-learning-resources/competitive-programming-platforms.md) — Provides a full online environment for practicing algorithmic problem solving, including grading and leaderboards.
- [Online Judges](https://awesome-repositories.com/f/education-learning-resources/educational-resources/courses-training-certifications/interactive-learning-platforms/online-judges.md) — Provides the infrastructure to execute and validate code submissions under strict time and memory constraints.
- [Practice Problem Repositories](https://awesome-repositories.com/f/education-learning-resources/practice-problem-repositories.md) — Maintains a repository of programming problems for students to practice and validate solutions in a controlled environment. ([source](http://dl3.hustoj.com/))
- [Computer Science Education](https://awesome-repositories.com/f/education-learning-resources/technical-domain-education/computer-science-education.md) — Manages student accounts and curated problem sets for computer science course instruction.
- [Weighted Ranking Calculations](https://awesome-repositories.com/f/education-learning-resources/weighted-ranking-calculations.md) — Implements competitive programming rankings based on partial correctness and weighted test case scores. ([source](http://dl.hustoj.com/install.sh))
- [In-Browser Code Execution](https://awesome-repositories.com/f/education-learning-resources/code-example-tutorials/in-browser-code-execution.md) — Provides a web-based editor for users to test and run code snippets directly in the browser. ([source](http://www.hustoj.com/lightbot.swf))
- [Grading Rule Definitions](https://awesome-repositories.com/f/education-learning-resources/educational-resources/courses-training-certifications/interactive-learning-platforms/online-judges/grading-rule-definitions.md) — Allows administrators to define scoring logic and constraints such as time and memory limits per problem. ([source](https://cdn.jsdelivr.net/gh/zhblue/hustoj@master/README.md))
- [Subtask Point Assignment](https://awesome-repositories.com/f/education-learning-resources/educational-resources/courses-training-certifications/interactive-learning-platforms/online-judges/subtask-point-assignment.md) — Assigns specific point values to groups of test cases using bracketed naming conventions. ([source](http://www.hustoj.com/))
- [Throughput Optimizations](https://awesome-repositories.com/f/education-learning-resources/educational-resources/courses-training-certifications/interactive-learning-platforms/online-judges/throughput-optimizations.md) — Increases judging speed using containerized environments and language-specific dedicated instances. ([source](http://hustoj.com/))
- [Filename-Based Weighting](https://awesome-repositories.com/f/education-learning-resources/filename-based-weighting.md) — Derives test case point values from bracketed naming conventions in the data directory for partial scoring.

### Programming Languages & Runtimes

- [Multi-Language Runtime Support](https://awesome-repositories.com/f/programming-languages-runtimes/multi-language-runtime-support.md) — Executes and validates submissions written in various languages including C#, Java, Python, and PHP. ([source](https://github.com/zhblue/hustoj/blob/master/wiki/CentOSx86_64.md))
- [Sandboxed Code Evaluators](https://awesome-repositories.com/f/programming-languages-runtimes/source-code-compilers/sandboxed-code-evaluators.md) — Executes and validates submitted source code in a sandbox against expected test outputs.
- [Language Support Configuration](https://awesome-repositories.com/f/programming-languages-runtimes/language-support-configuration.md) — Extends supported languages by updating bitmasks and rebuilding the judging environment.

### Software Engineering & Architecture

- [Custom Checker Programs](https://awesome-repositories.com/f/software-engineering-architecture/class-property-validation/custom-validators/custom-checker-programs.md) — Executes user-defined checker programs to validate submissions when correct output is non-unique.
- [Plagiarism Detection](https://awesome-repositories.com/f/software-engineering-architecture/plagiarism-detection.md) — Compares source code similarity between users using token thresholds to detect plagiarism. ([source](http://www.hustoj.com/))
- [Code Pattern Similarity Detection](https://awesome-repositories.com/f/software-engineering-architecture/code-pattern-similarity-detection.md) — Analyzes source code similarity between users to detect plagiarism and academic dishonesty.
- [Resource Limit Configurations](https://awesome-repositories.com/f/software-engineering-architecture/default-configuration-values/execution-parameter-configurations/application-parameter-configurators/runtime-parameter-configurators/resource-limit-configurations.md) — Defines time limits and memory constraints to ensure fair and accurate code evaluation. ([source](https://github.com/zhblue/hustoj/blob/master/wiki/FAQ.md))

### Testing & Quality Assurance

- [Grading Systems](https://awesome-repositories.com/f/testing-quality-assurance/code-quality-review/automated-code-review/grading-systems.md) — Provides a backend service that executes submissions in multiple languages and validates them against test cases for automated scoring.
- [Test Data Management](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/test-data-management.md) — Organizes input and output files with support for weighted scoring based on filename conventions. ([source](https://github.com/zhblue/hustoj/blob/master/wiki/FAQ.md))
- [Randomized Test Data Generators](https://awesome-repositories.com/f/testing-quality-assurance/randomized-test-data-generators.md) — Produces randomized input sets using a generator and derives corresponding output via a reference solution.
- [Random Value Generators](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/test-execution-orchestration/test-case-generators/random-value-generators.md) — Produces randomized input files for test cases using a meta-language generator. ([source](http://www.hustoj.com/))
- [Test Case Weighting](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/test-execution-orchestration/test-case-generators/test-case-deduplication/test-case-annotations/test-case-definitions/test-case-weighting.md) — Assigns point values to individual test cases using bracket notation in filenames to calculate partial scores. ([source](http://hustoj.com/))

### Business & Productivity Software

- [Contest Scheduling Utilities](https://awesome-repositories.com/f/business-productivity-software/scheduling-automation/contest-scheduling-utilities.md) — Implements tools for scheduling competitive programming events, including start times and archival states. ([source](http://demo.hustoj.com/))

### Content Management & Publishing

- [Problem Set Importers](https://awesome-repositories.com/f/content-management-publishing/problem-set-importers.md) — Offers a searchable directory of programming challenges with metadata such as difficulty tags and success rates. ([source](http://tk.hustoj.com/problemset.php))

### Data & Databases

- [Database Queue Drivers](https://awesome-repositories.com/f/data-databases/relational-database-drivers/database-queue-drivers.md) — Implements a submission queue using database tables to trigger the judging kernel for processing.
