Documentation

Getting Started

Everything you need to install, configure, and run BatchGrade in your classroom.

Quick Start

Get BatchGrade running in under five minutes.

1

Download the installer for your platform from the releases page.

2

Run the installer β€” no accounts, no cloud setup needed.

3

Point BatchGrade at your submissions folder, define your test cases, and click Run.

Installation

BatchGrade ships as a native desktop installer for all major platforms. Select your operating system below.

  1. Download BatchGrade-Setup-x.x.x.exe from the releases page.
  2. Run the installer and follow the installation wizard.
  3. Launch BatchGrade from the Start Menu or the desktop shortcut.
  4. If Windows SmartScreen appears, click More info β†’ Run anyway.
ℹ️

Note

Installer filenames use semantic versioning. Replace x.x.x with the actual version number from the releases page.

Defining Test Cases

Test cases are defined in a JSON configuration file that you create once per assignment. BatchGrade applies the same test suite to every submission in the batch.

Config file structure

batchgrade.config.json
{
  "assignment": "Project 1 β€” Linked List",
  "language": "python",
  "entrypoint": "main.py",
  "tests": [
    {
      "name": "Insert single element",
      "input": "insert 5\nprint",
      "expected_output": "5"
    },
    {
      "name": "Insert and delete",
      "input": "insert 1\ninsert 2\ndelete 1\nprint",
      "expected_output": "2"
    }
  ],
  "rubric": {
    "points_per_test": 10,
    "partial_credit": true,
    "feedback_enabled": true
  }
}

Field reference

FieldTypeDescription
assignmentstringDisplay name for the assignment.
languagestringTarget language: python, java, c, cpp.
entrypointstringFilename to execute within each submission folder.
tests[].namestringHuman-readable label shown in the results view.
tests[].inputstringStdin passed to the student program. Use \n for newlines.
tests[].expected_outputstringExpected stdout. Trailing whitespace is ignored.
rubric.points_per_testnumberPoints awarded for each passing test case.
rubric.partial_creditbooleanAward fractional points for partially correct output.
rubric.feedback_enabledbooleanGenerate per-student explanations alongside scores.
πŸ’‘

Tip

Load an existing config file via File β†’ Open Config to reuse it across multiple grading sessions.

Running the Grader

Once your submissions folder and config file are set up, running a batch takes three clicks.

  1. Open BatchGrade and click New Session.
  2. Select the submissions folder β€” each sub-folder is treated as one student submission.
  3. Click Load Config and choose your batchgrade.config.json file.
  4. Click Run. A progress bar shows per-submission status in real time.
  5. When complete, the results panel shows each student’s score, test breakdown, and generated feedback.
⚠️

Warning

Ensure each student submission is in its own sub-folder named after the student (e.g. john_doe/). BatchGrade uses folder names as student identifiers in the results export.

Exporting Results

Grades are stored locally in a SQLite database and can be exported at any time.

πŸ“„

CSV / Spreadsheet

Export a flat CSV compatible with Excel, Google Sheets, and most LMS grade import tools.

Results β†’ Export β†’ CSV
πŸŽ“

Canvas LMS

Export in Canvas gradebook format for direct upload via the LMS grade import workflow.

Results β†’ Export β†’ Canvas
πŸ“‹

Feedback Report

Generate a per-student PDF report containing their score, test results, and AI-generated feedback.

Results β†’ Export β†’ PDF Reports
πŸ—„οΈ

Raw SQLite

Access the underlying database directly for custom queries or integration with other tools.

File β†’ Show Database Location

FAQ

What programming languages does BatchGrade support?

BatchGrade currently supports Python, Java, C, and C++. Additional language support is planned for future releases.

Is any student data sent to a server or third party?

No. BatchGrade runs entirely on your local machine. No submission files, grades, or student information ever leave your computer.

Can I use a custom test runner or testing framework?

Yes. BatchGrade supports custom test runner configurations via the test config file. You can specify a custom command that BatchGrade will execute for each submission.

How do I export grades to Canvas, Blackboard, or Moodle?

BatchGrade exports a CSV file formatted for common LMS platforms. From the results screen, click Export β†’ CSV and select your LMS format from the dropdown.

How do I update BatchGrade?

BatchGrade checks for updates on launch. You can also download the latest release manually from the GitHub releases page at any time.

Still have questions?

Open an issue on GitHub and the team will get back to you.

Open an Issue β†’