Sign inSign up

dclobato/noca-autojudge

By dclobato

•Updated about 20 hours ago

NOCA auto judge module

Image
Developer tools
0

8.9K

dclobato/noca-autojudge repository overview

⁠NOCA - Next Online Contest Administrator

NOCA is a modern, Docker-based platform for running ICPC-like programming contests. Built with Python and FastAPI, it provides a modular infrastructure for managing competitive programming competitions with support for multiple concurrent contests, automated judging, and comprehensive contest administration.

⁠Overview

NOCA reimagines the core principles of BOCA (the backbone of Brazilian programming marathons) for the modern era. It's a two-module application designed specifically for competitive programming contests, offering flexible contest management, secure code execution, and real-time scoring.

⁠Key Features
  • Multiple Concurrent Contests: Run multiple contests simultaneously, each with isolated problems, users, and configurations
  • Per-Contest Scope: Problems and users are scoped to individual contests, ensuring clean separation
  • Multi-Site Contest Management: Organize each contest into physical sites, assign teams and staff to sites, auto-create missing sites during imports, and manage users with site-aware grouping
  • Flexible Judging Modes:
    • Autojudge-only contests for fully automated verdicts
    • Human-reviewed contests requiring judge confirmation for final verdicts
    • Submissions can be re-judged if required
  • Customizable Contest Rules: Each contest can define its own:
    • Duration and timing
    • Penalty systems
    • Reaper cycles for background tasks
    • Scoreboard freeze/thaw mechanics
  • Import/Export: Bulk import and export problems and users via CSV/JSON
  • Site Logistics Reporting: Generate a markdown users-per-site report with role grouping, chief judge annotation, login URL, contest rules summary, and team location data for printing or PDF conversion
  • Submission Management: Teams can download their submissions after contest ends
  • Contest Analytics Reports: Admins and judges can access a reports page with problem summaries, verdict/language cross-tables, team-vs-problem breakdowns, and time-based charts
  • Animeitor / Reveleitor Compatibility Service: Admins and UberAdmins can download an Animeitor-compatible webcast ZIP from Administration > Export/Import for use with maratona-animeitor⁠, including live animated scoreboards and post-freeze revelation ceremonies
  • Flexible Problem Statements: Support for both PDF and Markdown formats with LaTeX math equations and Mermaid diagram rendering
  • Online Test Case Editor: Web-based interface for managing problem test cases
  • Operational Task Workflow: Accepted runs can auto-create balloon tasks, and task dashboards include queue time, service time, and finished-task detail views
  • Container-Based Isolation:
    • Each submission runs in isolated Docker containers
    • isolate is the authoritative inner sandbox for time, memory, PID, and output limits
    • Docker remains the outer safety boundary around judge execution
    • Custom Dockerfile support for compilation and execution
  • Per-Contest Language Selection: At contest creation, the uberadmin selects which active languages are available to teams. The allowed set is immutable after creation and enforced across submission, problem limits, and language-display pages
  • Language Support: Script for seeding common languages (C, C++, Java, Python, etc.) with optional icon metadata for richer UI presentation
  • Auto-Limit Profiling: Reference solutions can be profiled per language to populate problem limits, with per-language profiling defaults for repetitions and PID floors
  • Modern Web UI: Plain HTML + CSS + JavaScript + Bootstrap with Server-Sent Events
  • Safer Team Workflow: Submission forms can show a confirmation modal before upload, while team profile identity, site, and location fields remain administrator-managed during contests
  • Background Services: Task queue for balloons, printing, and SOS requests
  • Comprehensive RBAC: Role-based access control with contest-scoped identities

Check BOOTSTRAP.md⁠ for instructions on how to run NOCA using containers

Tag summary

Content type

Image

Digest

sha256:24e285a8b…

Size

122.2 MB

Last updated

about 20 hours ago

docker pull dclobato/noca-autojudge