Demonstration of the Autograder to automatically evaluate student code with GitHub Actions and criteria-oriented feedback.
Autograder WebTech | Criteria | Feedback | Workflow
- Edit the student files in
submission/. - Adjust criteria in
.github/autograder/criteria.jsonwhen needed. - Configure feedback display in
.github/autograder/feedback.json. - Push or open a PR to
main. - Check the
Autograderworkflow execution in GitHub Actions.
Important: test paths must follow the pattern
submission/file.ext.
This repository is a demonstration of automated evaluation for web projects. The goal is to clearly separate:
- student-submitted code;
- evaluation rules;
- feedback policy;
- automated execution pipeline.
With this separation, you can evolve the rubric without directly modifying submission code.
| Component | Function |
|---|---|
submission/ |
Files submitted by the student (index.html, styles.css, app.js, etc.) |
.github/autograder/criteria.json |
Defines weights, blocks, and evaluation tests |
.github/autograder/feedback.json |
Defines how the result will be displayed |
.github/workflows/classroom.yml |
Triggers and runs the autograder on GitHub Actions |
.github/autograder/setup.json |
Additional setup file (not used in the current flow) |
- A CI event happens (
push,pull_request, orworkflow_dispatch). - The workflow in
.github/workflows/classroom.ymlstarts thegradingjob. - The
webtech-network/autograder@mainaction runs the tests defined incriteria.json. - The final result is presented according to
feedback.json.
Attention: the workflow uses
openai-key: ${{ secrets.ENGINE }}. Make sure this secret exists in the repository.
To go deeper into the configuration of each file:
- docs/criteria.md: rubric structure, weights, test types, and safe maintenance.
- docs/feedback.md: result display strategy and feedback configurations.
- docs/workflow-classroom.md: triggers, jobs, steps, and execution parameters.
Edit .github/autograder/criteria.json and validate in a PR whether the tests represent the pedagogical objective.
Edit .github/autograder/feedback.json (for example, to show or hide passed tests).
Edit .github/workflows/classroom.yml to adjust triggers, permissions, or action parameters.
- Workflow did not generate feedback: confirm that the
ENGINEsecret is configured. - Tests fail for no apparent reason: review paths in
criteria.jsonforsubmission/.... - Rule change was not reflected: verify that the executed workflow is the latest one from the branch.
This repository exemplifies an ideal scenario for running the Autograder for web activities:
submission/contains the submission;criteria.jsondefines the grading;feedback.jsondefines the presentation;classroom.ymlruns everything in CI.
For day-to-day operation, use this README as a quick entry point and the files in docs/ as in-depth reference.