Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jiegec/classroom-helper

A TUI utility to ease grading of GitHub Classroom courses.
https://github.com/jiegec/classroom-helper

github-classroom rust

Last synced: 10 days ago
JSON representation

A TUI utility to ease grading of GitHub Classroom courses.

Awesome Lists containing this project

README

        

# Classroom Helper

A utility to ease the usage of GitHub Classroom.

It has the following features:

1. Fetch and update students' repos in parallel.
2. Grade students by running python3/bash scripts in parallel.
3. Check `git diff` and `git log` for whitebox grades.
4. Export all grades in UTF-8 csv format.
5. 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:

```json
{"grade": 100.0}
```

If you want to print human readable scores to user and JSON to the helper in Python, use:

```python
data['grade'] = grade
if os.isatty(1):
print('得分:%d/100' % grade)
else:
print(json.dumps(data))
```