⚪ GradeHub 🔵 C · C++ · Go GoogleTest docker --network=none
Посылка. Песочница. Вердикт. Submit. Sandbox. Verdict.
GradeHub — онлайн-судья для университетских курсов по C, C++ и Go, который вы разворачиваете на своём сервере. Преподаватель пишет задачу и тесты, студент сдаёт решение прямо в браузере, а сервер собирает и прогоняет его в изолированном контейнере и возвращает вердикт по каждому тесту.
GradeHub is an online judge for university C, C++ and Go courses that you host on your own server. Teachers write the problem and its tests, students submit right from the browser, and the server builds and runs every submission in an isolated container and returns a verdict for each test.
сетевых подключений у песочницы. Каждая посылка — отдельный контейнер с --network=none и лимитами CPU, памяти и процессов.
network access inside the sandbox. Every submission gets its own container with --network=none and CPU, memory and process limits.
языка в одном судье: C, C++ и Go.
languages, one judge: C, C++ and Go.
символов в секунду — предел скорости набора в редакторе. Быстрее руками не печатают.
characters per second — the typing ceiling in the editor. Hands don't type faster.
Протокол проверкиThe grading protocol
идёт · пройден running · passed
-
[ RUN ] Sandbox.Isolation
Песочница без сетиA sandbox with no network
Каждая посылка собирается и запускается в свежем Docker-контейнере: без сети, с ограничением CPU, памяти и числа процессов. После прогона контейнер удаляется. Every submission is built and run in a fresh Docker container: no network, capped CPU, memory and process count. The container is removed after the run.
(0 ms) -
[ RUN ] Judge.PerTest
Вердикт по каждому тестуA verdict for every test
Тесты на GoogleTest для C и C++, отдельный адаптер для Go. Лимиты времени и памяти на каждый тест, итог — структурированный отчёт, а не «что-то сломалось». GoogleTest suites for C and C++, a dedicated adapter for Go. Time and memory limits per test, and the result is a structured report, not just "something broke".
(2 ms) -
[ RUN ] Plagiarism.Winnowing
Похожие решения на видуSimilar solutions, surfaced
Принятые решения превращаются в отпечатки k-грамм по алгоритму Winnowing. Преподаватель видит пары с подозрительным сходством и выставляет свой порог. Accepted solutions are fingerprinted as k-grams with Winnowing. Teachers see suspiciously similar pairs and choose their own threshold.
(4 ms) -
[ RUN ] Scoreboard.Live
Живая таблица группыA live group scoreboard
Результаты появляются сразу после прогона. Посылки после дедлайна проверяются, но в зачёт не идут, а время решения считается по активной работе, а не по календарю. Results show up right after the run. Late submissions are still judged but don't count, and solving time is measured as active work, not calendar time.
(1 ms) -
[ RUN ] Editor.NoPaste
Редактор, куда не вставитьAn editor you can't paste into
Вставка блоков отклоняется, а набор быстрее 8 символов в секунду искажается — с явным предупреждением. Сессию редактора засекает сервер. Pasted blocks are rejected, and typing faster than 8 characters per second gets scrambled — with a clear warning. The server times the editing session.
(3 ms) -
[ RUN ] Statement.Raster
Условие — картинкойStatements as images
Условие задачи показывается изображением с водяным знаком: скопировать текст со страницы сложнее. Честно: от распознавания текста это не защищает. The problem statement is shown as a watermarked image, so lifting text from the page is harder. To be honest: it does not stop OCR.
(5 ms) -
[ RUN ] Assessment.Rules
Контрольные по правиламAssessments with rules
Таймер на раздел контрольной и запрет библиотечных функций в отдельной задаче — например,
(2 ms)printf, когда студент пишет свой. A timer per assessment section and per-problem bans on library functions — say,printfwhen students write their own.
Три роли, одна системаThree roles, one system
teacher
преподавательteacher Курсы, группы, задачи с тестами и задания со сроками. Видит все прогоны и пары похожих решений. Courses, groups, problems with tests and assignments with deadlines. Sees every run and every similar pair.
student
студентstudent Свои задания, посылки, история прогонов и таблица своей группы. Their own assignments, submissions, run history and their group's scoreboard.
admin
администраторadministrator Заводит и отключает преподавателей, следит за здоровьем сервера и очереди проверок. Creates and disables teachers, watches the health of the server and the judging queue.
$ gradehub --start · сервер ваш, данные тоже $ gradehub --start · your server, your data
ВойтиSign in