Metadata-Version: 2.4
Name: autograder_gen
Version: 0.1.0
Summary: A tool for lecturers to automatically generate assessment scripts for Gradescope
Author-email: Alan Guedes <a.guedes@reading.ac.uk>
License-Expression: MIT
Project-URL: Homepage, https://pypi.org/project/autograder_gen/
Project-URL: Repository, https://github.com/alanlivio/autograder_gen
Keywords: autograder,gradescope
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: jinja2>=3.0.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: PyYAML>=6.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: Flask>=3.1.3
Requires-Dist: Flask-Cors>=5.0.0
Requires-Dist: gradescope-utils>=0.5.0
Requires-Dist: bootstrap-flask>=2.0.0
Requires-Dist: python-docx>=1.1.0
Dynamic: license-file

# autograder_gen

`autograder_gen` is a tool for lecturers to automatically generate assessment scripts for [Grading a Programming Assignment](https://guides.gradescope.com/hc/en-us/articles/22066635961357-Grading-a-Programming-Assignment) on Gradescope. It supports filling out an interactive web form or providing a YAML configuration, which then generates a packaged ZIP file ready to be uploaded to Gradescope. The project validates your YAML configuration, renders test scripts using Jinja2 templates, and packages everything for immediate upload to Gradescope.

## Setup

Set up the virtual environment and install all dependencies:

```bash
make venv
```

## CLI Usage

The Command-Line Interface allows you to generate autograders (`autograder.zip`) directly from a configuration file.

```bash
python autograder_gen/cli.py --config <path/to/config.yaml> [options]
```

### Arguments:

- `--config`, `-c` (required): Path to your configuration file (YAML).
- `--output`, `-o`: Output directory for the generated files (default: `./output`).

### Example:

```bash
python autograder_gen/cli.py --config tests/examples/py_simple/config.yaml
```

## Web Interface

The web interface provides a graphical form to define your autograder structure or upload existing configurations. Start the Web Server:

```bash
python autograder_gen/web/app.py
```

## Testing

To run the automated test suite and verify your installation:

```bash
python -m pytest
```

## Authors

- **Alan Guedes** – [@alanlivio](https://github.com/alanlivio)  
- **Giorgio Werberich Scur** – [@giorgioscur](https://github.com/giorgioscur)

## License

Contributions are welcome and will be credited. This project is licensed under the [MIT License](LICENSE).  
The University of Reading retains rights of original contributions.
