Run activities
Contests, courses, labs, workshops and practice sessions in one consistent organizational model.
AlgoJudge is open-source, self-hosted software for programming contests and courses, with automatic evaluation of submitted solutions.
A web-first platform that brings activity management, problem publishing and automatic evaluation together. Institutions and teams can run an installation of their own.
Contests, courses, labs, workshops and practice sessions in one consistent organizational model.
Statements, attachments, deadlines, limits, scoring and submission policies managed together.
Queuing, isolated execution, tests, points and verdicts that are easy to understand.
Designed for multiple kinds of activities and multiple ways to evaluate solutions.
The Client selects a renderer, the Runner selects an evaluation handler, and the Server keeps a shared data envelope. Extensions can live at the edges without coupling the core to task-specific semantics.
The Server keeps durable state and jobs. Code goes to a replaceable Runner, which evaluates it in an isolated environment and sends the result back.
A manager configures a contest or course.
They publish the statement, files, limits and scoring.
A participant reads the requirements and format.
Code and metadata are sent to the Server.
The Server stores the submission and queues work.
A Runner pulls the job, isolates execution and tests it.
Live status and the verdict return to the app.
Each component has a clear responsibility. The Server coordinates and stores data, but it never compiles or runs submitted code.
Interface and renderers
Data and coordination
Identity and access
Safe execution
It does not know the semantics of a specific task type.
It can operate in another network, including behind NAT.
Different Runners can support different task types.
A shared core supports distinct organizational scenarios, while extensibility leaves room for new evaluation models.
Rounds, deadlines, submissions, leaderboards, scoring and live result updates.
Task series, multiple attempts, private results and detailed feedback.
Quick activities and short-lived accounts with expiring access.
Specialized Runners, extra handlers and renderers — without changes to the central Server.
Client, Server, Runner, External-Runner and Ops are public, with v0.1.0 released for each component. Explore their code, report an issue or help move the platform forward.
The web interface for participants and managers, plus the renderer layer.
The central API, durable state, permissions, jobs and results.
Code execution, isolation and evaluation in a specialized environment.
Forwards solutions to external judging systems and reports their verdicts without executing code locally.
The production Compose stack and scripts for installing, updating and backing up a self-hosted deployment.
Public repositories, discussions and the shared development home.
AlgoJudge components are versioned independently. Their first releases start at 0.1.0 and together provide a complete self-hosted workflow.
Client, Server, Runner, External-Runner and Ops each keep their own release history.
A complete path from activity setup to an automatically evaluated result.
Further directions enabled by the modular architecture.
Explore the architecture, read the code and help shape a platform that does not lock new ideas into a single evaluation model.