Projects

Canvas Submission Organizer

Turn a Canvas assignment download into a consistent directory structure for review.

Canvas Submission Organizer is a Python command-line tool that extracts a Canvas assignment download into one directory per student. It handles both single-file submissions and projects submitted as ZIP archives.

For repeated submissions, the tool treats the highest submission ID in the Canvas filename as the latest attempt. It places that attempt directly in the student’s directory and preserves earlier attempts under an old/ directory. Project mode can flatten a single enclosing folder from a submitted archive.

Each run produces a CSV report recording the original archive entry, submission identifiers, latest or older attempt status, output location, and any errors. A malformed filename, unsafe path, or invalid nested archive is recorded so the remaining submissions can still be organized.

From the repository checkout, project submissions can be organized with

uv run cso project submissions.zip organized-project

Use single for individual source files. The repository documents output replacement, wrapper-folder handling, and report options. Python 3.10 or newer is required. The project uses the MIT license. Source, installation, and usage · MIT license