Moodle Plugins directory: BACS: Zero-Setup Code Grader & Contests | Moodle.org
BACS: Zero-Setup Code Grader & Contests
Students submit code and receive instant verdicts. Teachers track attempts and results in a clear dashboard. Problem statements are available in English, Spanish, and Russian. There's no need to configure workers to testing/run participants' solutions, as with the VPL (Virtual Programming Lab) and CodeRunner plugins.
If you've ever wanted TopCoder, LeetCode, or Codeforces in Moodle, this plugin is for you!
Demo
-
Try it here: https://bacs.sybon.org/
Key features
-
Instant auto-judging — per-test verdicts with execution time and memory; pretest input/output visible to students
-
Live real-time monitor — the standings update as solutions are judged, no page reloads
-
Analytics — a leader "race" chart, task-activity dynamics, score graphs, and a difficulty analysis that predicts how many students can actually solve each task.
-
Clear attempts history and grading for teachers
-
Works for practice lessons, labs, and contests
-
Scales to large cohorts and multiple courses
-
External checking via the Sybon service, no extra server setup
-
400+ problems with multilingual statements: EN, ES, RU
Compatibility
-
Supported Moodle versions: 3.11 to 5.2
Starter course archives
- Download: EN archive · ES archive · RU archive
- Restore via Course administration → Restore.
Installation
-
Copy the module code to moodleroot/mod/bacs.
-
Go to http://your-moodle/admin (Site administration → Notifications) to start installation.
-
Replace NoDefaultKey with your Sybon API key to access task collections. Configure other defaults if needed.
-
Configure scheduled tasks at /admin/tool/task/scheduledtasks.php to sync available languages, tasks, and solution checks.
By default, submissions are sent for judging and results are fetched every minute. -
Add cronjob
* * * * * /usr/bin/flock -n /var/lock/moodle-adhoc.lock /usr/bin/php <MOODLE_SITE_DIR>/admin/cli/adhoc_task.php --execute --keep-alive=49 >> <MOODLE_DATA_DIR>/moodle-adhoc.log 2>&1
This ensures that submissions receive verdicts as soon as they are sent to Moodle. -
Add the activity to any course and start using it.
Public key
- You can use a public key with a limit of 20 submissions per minute:
YWhwwXtyF0edYR5mWrvQvQ.
Details
-
Supported languages: C (C11), C++11, C++17, C++20, C# (.NET 8.0, Mono), Free Pascal, Python 2, Python 3, Java 11, Java 17, Kotlin, Go, Ruby, JavaScript (Node.js), TypeScript (Bun), Rust
-
Submissions include execution time and memory for all tests, plus input and output for pretests (visible to participants)
-
Contest scoreboard summarizing results across all tasks and participants
-
Time windows for contests, upsolving, and practice
-
Multiple scoring systems: IOI, ICPC, General
-
Per-task scoring and the ability to change the scoring system, task set, task order, and scores at any time, even during or after a contest
-
Group support for student cohorts
-
Virtual contests so each student can participate at an independent time
-
Tools to rejudge, recalculate points, reject, or update submission results
Contact
We are open to collaboration: istupo@gmail.com
Video tutorial
Comments