Skip to main content

Grader Helper

Grader Helper is a Python-based tool designed to streamline academic grading workflows for module leaders in the University of Limerick, particularly for assignments hosted on Brightspace. It provides functionality to improve quality-of-life in various areas of assessment administration.

It's designed to help with managing both specific coursework

  • managing student submissions
    • renaming student submission folders into UL format (e.g. "Lastname, Firstname (Studentnumber)") and the Brightspace format ("1234-5678 - Lastname Firstname - 01 January 2001 0000 AM") and back again (for reupload to Brightspace).
  • randomly assigning submissions to graders (both group and individual assesments).
  • disrtibuting blank feedback sheets into each students submission folder (named using each students student number)

Key Features

  • Automated Grader Assignment: Assigns graders to students either individually or in groups.
  • Data Processing: Extracts student IDs and grades from feedback files and aggregates them into a master dataset.
  • Brightspace Integration: Imports class lists and handles data in Brightspace-compatible formats.
  • Feedback Management: Distributes feedback sheets with rubrics to individual student folders.
  • File Organization: Renames and organizes submission folders for clarity.
  • Score Calculation: Computes total and weighted scores for modules, including letter grade conversion.

Installation

From PyPI

Install the package directly:

pip install grader-helper

Using UV

UV is an incredibly fast python tool for dependency management in python. See the docs for guides on setting up a project with UV.

uv add grader_helper

Usage

Working on more full documentation - watch this space.

Dependencies

Key dependencies:

  • pandas for data manipulation
  • pathlib for file path handling
  • xlwings for Excel file interaction
  • tqdm for progress bars
  • numpy for numerical operations
  • openpyxl for handling Excel files

For a complete list, see pyproject.toml.

Contributing

Contributions are welcome! To get started:

  1. Fork the repository.
  2. Create a feature branch: git checkout -b feature-name.
  3. Commit your changes: git commit -m "Description of changes".
  4. Push to the branch: git push origin feature-name.
  5. Create a pull request.

License

This project is licensed under the MIT License. See LICENSE for more details.

grader_helper

Next steps

  • Integrate the functionality that allows us to randomly select students from each gradeband and copy them to the moderation folders.
  • Integrate the way of making the departmental gradefile.
    • I've already got the functions that make the dataframes written, but not any explicit functionality for writing them into the departmental template.
  • Write full documentation and a sample project (make fake student files)
  • Consider writing it all together into an gui/tui app?

Release files for grader-helper 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for grader-helper 0.2.0
File Size Uploaded
grader_helper-0.2.0.tar.gz 491.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for grader-helper 0.2.0
File Interpreter ABI Platform
grader_helper-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 666.9 kB

Release files / grader_helper-0.2.0.tar.gz

Download URL grader_helper-0.2.0.tar.gz
Size 491.5 kB
Tags Source
SHA-256 checksum
How to use checksums
c6f1d6f29bf4c9b2ff8ed7a2daaa9d378affc62df4c81ae5252736bb16fb1455
BLAKE2b-256 checksum
How to use checksums
51c111859caa2d2b1b5cec00e20872c700dbcf1cc031d0c9a70527902155f0f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / grader_helper-0.2.0-py3-none-any.whl

Download URL grader_helper-0.2.0-py3-none-any.whl
Size 175.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
35a36aadb3877b1887306a8745ac7e45ad000ffd039a2fb19cb88518e9a8aa1a
BLAKE2b-256 checksum
How to use checksums
a066c9b834dc6b7e3acaed369563ab364289fa8bb9f865aff0a21f158dac8e2a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.15

2 release files

0.1.12

2 release files

0.1.9

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page