Skip to main content

Automated Gradescope submission tool for QUT students with a pretty CLI interface

Project description

QUT Gradescope Auto Submitter

One command to submit assignments to Gradescope. No more repetitive clicking.

gradescope submit  # That's it.

Why This Exists

As a QUT student, I was tired of:

  • Clicking through Gradescope 50+ times per assignment during rapid iteration
  • Waiting for pages to load when testing different approaches
  • Losing focus switching between code editor and browser
  • Manual file uploads and form submissions

This tool automates the entire submission process so you can focus on coding, not clicking.

Quick Start

# Install
pip install qut-gradescope-autosubmitter && playwright install chromium

# One-time setup
gradescope init        # Create config file
gradescope credentials # Save QUT login

# Daily usage
gradescope submit      # Submit current assignment

That's it. No more manual submissions.

How It Works

  1. Authenticates with QUT SSO - Handles university login automatically
  2. Navigates to Gradescope - Finds your course and assignment using smart matching
  3. Bundles your files - Creates submission zip (respects .gitignore)
  4. Submits automatically - Handles uploads and form submission
  5. Shows your grade - Displays results when available

Everything runs locally using browser automation. No data leaves your machine except for the normal submission to Gradescope.

Key Features

Beautiful Terminal Interface

Modern CLI built with Rich - panels, progress bars, and custom themes that make terminal work enjoyable.

Flexible Authentication

  • Session persistence - Stay logged in between submissions (faster)
  • Multiple credential options - Environment variables, .env files, or interactive prompts
  • Manual login mode - Browser-based authentication for maximum security

Smart Automation

  • Fuzzy matching - Finds courses/assignments even with partial names
  • Automatic file detection - Bundles relevant files intelligently
  • Git integration - Optional hooks for submit-on-commit workflows
  • CI/CD ready - GitHub Actions support for automated submissions

Developer Experience

  • Cross-platform - Windows, macOS, Linux support
  • Rich help system - Beautiful documentation and error messages
  • System diagnostics - Built-in troubleshooting tools
  • Customizable UI - Adjust colors and behavior to your preference

Installation

# Standard installation (PyPI)
pip install qut-gradescope-autosubmitter && playwright install chromium

Basic Configuration

Create gradescope.yml in your project:

course: cab201          # Your course code
assignment: assignment1 # Assignment name (fuzzy matched)
zip_name: submission.zip
bundle: ['*']           # Files to include (* = all, respects .gitignore)

# Optional settings
headless: true          # Run browser in background
notify_when_graded: true

Commands

Command Purpose
gradescope submit Submit current assignment
gradescope init Create config file with guided setup
gradescope credentials Manage QUT login credentials
gradescope doctor Check system requirements and troubleshoot
gradescope --help Show all available commands

Automation Options

Git Hooks (submit on every commit):

gradescope hooks  # Interactive setup

GitHub Actions (cloud automation): See GitHub Actions Setup Guide for complete configuration.

Documentation

Important Notes

Current Status:

  • PyPI Release - Available on PyPI
  • Stable Features - Core submission functionality is reliable and tested

Usage Responsibility:

  • This tool is provided "as-is" for legitimate academic use
  • Users are responsible for complying with QUT academic integrity policies
  • Avoid excessive submissions that may trigger rate limiting on QUT SSO
  • Use session persistence (default) to minimize login requests

Limitations:

  • Requires QUT SSO access and Gradescope course enrollment
  • May break if QUT or Gradescope significantly change their interfaces
  • Some specialized assignment types may not be supported

Requirements

  • Python 3.8+
  • QUT student account with Gradescope access
  • Internet connection for initial setup and submissions

Troubleshooting

Common issues:

  • Installation errors: Try the separate dependency installation method above
  • Login failures: Use gradescope credentials to reconfigure
  • Assignment not found: Check course code and assignment name in config
  • Browser issues: Run gradescope doctor for system diagnostics

For detailed troubleshooting, see the Command Reference or run gradescope --help.


Made for QUT students who prefer automation over repetition.

This tool was built using modern development practices to solve a real student workflow problem.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qut_gradescope_autosubmitter-1.0.1.tar.gz (31.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qut_gradescope_autosubmitter-1.0.1-py3-none-any.whl (32.6 kB view details)

Uploaded Python 3

File details

Details for the file qut_gradescope_autosubmitter-1.0.1.tar.gz.

File metadata

File hashes

Hashes for qut_gradescope_autosubmitter-1.0.1.tar.gz
Algorithm Hash digest
SHA256 e3edc7ed7857a2ef1688b805301c80301d9598f5f388e905b92e46a4e256c183
MD5 23ab4e5bb9f4c7d5f7d5f3c98b862c31
BLAKE2b-256 3b5f788bac45e0a59853a7568a8fd9c69ad0298627c4144a7d6f731c6359eb49

See more details on using hashes here.

Provenance

The following attestation bundles were made for qut_gradescope_autosubmitter-1.0.1.tar.gz:

Publisher: python-publish.yml on danieltsam/qut-gradescope-autosubmitter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qut_gradescope_autosubmitter-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for qut_gradescope_autosubmitter-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3ff389bbedfddb2aee00187055a9027cd9fd004e287fb3386208a04d7e78eaf3
MD5 a64f216763bcb77a09a88eb42bd14ee3
BLAKE2b-256 ccb9ffefb048f914fec82f8105504819c1efb48c74a4cb16ce0d8e34b71c868e

See more details on using hashes here.

Provenance

The following attestation bundles were made for qut_gradescope_autosubmitter-1.0.1-py3-none-any.whl:

Publisher: python-publish.yml on danieltsam/qut-gradescope-autosubmitter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page