Skip to content
@AlgoJudge

AlgoJudge

AlgoJudge

AlgoJudge is open-source, self-hosted software for programming contests and courses, with automatic evaluation of submitted solutions.

It is built for the range of activities a department actually runs — contests, courses, laboratories, training sessions — rather than for one of them.

What we are trying to do differently

Most online judges fix one kind of activity and one kind of problem in the core. AlgoJudge separates three concerns and holds the line between them:

  • the Client renders an activity or problem type,
  • the Runner executes and evaluates a submission in isolation,
  • the Server stores a shared, versioned data envelope and never interprets what a type means, nor compiles or runs any submitted code.

The goal is that adding a problem type needs a Client renderer and a Runner handler, not a change to the Server. That is tested rather than asserted, twice:

  • a second problem type, output-only@1, where the participant uploads answers instead of a program, lives entirely in the Runner and appears nowhere in the Server's source or in its OpenAPI document;
  • a second Runner implementation, which judges nothing and forwards submissions to an external judging system, registers, claims and reports over the same contract as the first — which is the point of having a contract.

Repositories

Repository Role
AlgoJudge-Server Persistent state, REST API, WebSocket and authorization. ASP.NET Core on .NET 10 with PostgreSQL
AlgoJudge-Client Web frontend for participants, activity managers and administrators. React, TypeScript, Vite and Mantine
AlgoJudge-Runner Isolated execution and evaluation of submitted solutions. Rust, sibling containers, cgroup v2
AlgoJudge-External-Runner A second Runner that judges nothing: it forwards submissions to external judging systems and reports their verdicts
AlgoJudge-Ops The production Docker Compose stack for a self-hosted installation, and the update, backup and restore scripts around it
AlgoJudge-Docs The public documentation site, in English and Polish

Status

No release has been cut. No repository carries a v* tag and nothing has been pushed to the container registry, so a docker pull instruction in any of these repositories describes the path a release will take rather than one that works today. The documentation site is built and not yet published.

What exists is the product. The Server holds the domain model, the permission model, the API and the operator surface; the Client is wired to it throughout, in Polish and English; the Runner compiles, runs and marks real submissions under isolation, with an adversarial suite that gates every merge. The deployment target is a self-hosted Docker Compose stack, which AlgoJudge-Ops is.

We would rather say where we are than overstate it — but the Runner is no longer a document describing an intention, and this page said it was until today.

Licence

The code is MIT. The documentation pages in AlgoJudge-Docs and AlgoJudge-Ops are CC BY 4.0, with the code samples on them staying MIT so that pasting a command obliges nobody.

Popular repositories Loading

  1. AlgoJudge-Server AlgoJudge-Server Public

    Persistent state, REST API and authorization for AlgoJudge. ASP.NET Core on .NET 10 with PostgreSQL — and it never compiles or executes a submitted solution.

    C# 3

  2. AlgoJudge-Runner AlgoJudge-Runner Public

    Isolated execution and evaluation of submitted solutions for AlgoJudge. Rust, sibling containers, cgroup v2, eighteen toolchains, and an adversarial suite that gates every merge.

    Rust

  3. AlgoJudge-Manager AlgoJudge-Manager Public

    Planned mobile-first contest control for AlgoJudge staff: live timing, pause and resume, schedule changes, operational warnings. Not started - the delivery model is undecided and the functionality …

  4. AlgoJudge-Client AlgoJudge-Client Public

    Web frontend for AlgoJudge — one application for participants, activity managers and administrators, with permission-aware views. React, TypeScript, Vite and Mantine.

    TypeScript

  5. .github .github Public

Repositories

Showing 5 of 5 repositories

Top languages

Loading…

Most used topics

Loading…