dclobato/noca-judge-javascript

By dclobato

Updated 5 days ago

NOCA judge image for JavaScript

Image
Languages & frameworks
0

1.9K

dclobato/noca-judge-javascript 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:d82a78997

Size

76.6 MB

Last updated

5 days ago

docker pull dclobato/noca-judge-javascript:run-v14.0.0