A utility to ease the usage of GitHub Classroom.
It has the following features:
- Fetch and update students' repos in parallel.
- Grade students by running python3/bash scripts in parallel.
- Check
git diff
andgit log
for whitebox grades. - Export all grades in UTF-8 csv format.
- Easy to read configuration file using TOML.
See template.toml
for configuration example. You can run cargo run -- -h
for command line help.
Key bindings in tui:
H J K L: navigate between panels
j k: scroll in panels
f F: fetch selected(f)/all(F) students
g G: grade blackbox for selected(g)/all(G) students
s d: save(s)/diff(d) results
[num]+b w: set blackbox(b)/whitebox(w) grade manually
r: repeat last grade for current student
t: bump template repo to newest version
c: edit comment
It expects grading scripts to output a JSON like the following format:
{"grade": 100.0}
If you want to print human readable scores to user and JSON to the helper in Python, use:
data['grade'] = grade
if os.isatty(1):
print('得分:%d/100' % grade)
else:
print(json.dumps(data))