> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pawtograder.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Assignments Overview

> Programming assignments with GitHub repos, autograders, handgrading, and group support

# Assignments Overview

Each Pawtograder assignment is backed by a **handout** repository (starter
code) and, optionally, a **grader** repository (instructor tests and the
`pawtograder.yml` config). When you release an assignment, Pawtograder
creates a private student repository from the handout for every student
(or group). The autograder runs on every push and reports results back
to Pawtograder, where you can handgrade against rubrics, release results,
and respond to regrade requests.

## First-time setup checklist

<Steps>
  <Step title="Create the assignment">
    From **Manage → Assignments**, click **New Assignment**. Pick a title and
    slug, then fill in:

    * **Release Date** and **Due Date** (in the course time zone).
    * **Points Possible** — the maximum the rubric can sum to.
    * **Group configuration** — individual, group-optional, or group-required.
    * **Max Late Tokens** and whether to **Permit Empty Submissions**.
    * **Show Leaderboard** if you want a public ranking.

    See [Configuration](/staff/assignments/configuration) for the full field
    reference.
  </Step>

  <Step title="Set up the grader repo">
    The grader repo holds your reference solution, instructor tests, and
    `pawtograder.yml`. The handout repo holds the starter that students see.
    Write the autograder config in the grader repo; see
    [Configuring Autograders](/staff/assignments/autograding).
  </Step>

  <Step title="Define the rubric">
    Build the **Grading Rubric** in the rubric editor. The rubric defines
    the parts, criteria, and checks that graders apply during handgrading.
    See [Rubrics](/staff/assignments/rubrics).
  </Step>

  <Step title="Release and monitor">
    Releasing the assignment creates student repositories and notifies
    students. Use the [Assignment Dashboard](/staff/assignments/assignment-dashboard)
    for overall progress, the [Grading Status](/staff/assignments/grading-status)
    view for handgrading progress, and [Test Insights](/staff/assignments/test-insights)
    for systemic autograder failures.
  </Step>
</Steps>

## What's on each assignment

Each assignment has its own management area inside **Manage → Assignments
→ \[Assignment]**, organized into pages that map to the docs in this
section:

| Page                                         | Docs                                                                                                                                 |
| -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| Configuration                                | [Configuration](/staff/assignments/configuration)                                                                                    |
| Repositories (and permissions audit)         | [Repository Permissions](/staff/assignments/repository-permissions), [Repository Analytics](/staff/assignments/repository-analytics) |
| Groups                                       | [Groups](/staff/assignments/groups)                                                                                                  |
| Due Date Exceptions                          | [Extensions](/staff/assignments/extensions)                                                                                          |
| Rubric                                       | [Rubrics](/staff/assignments/rubrics)                                                                                                |
| Autograder & Test Insights                   | [Configuring Autograders](/staff/assignments/autograding), [Test Insights](/staff/assignments/test-insights)                         |
| Grading Assignments                          | [Assigning Grading Tasks](/staff/assignments/grading-assignments)                                                                    |
| Grading Status                               | [Grading Status](/staff/assignments/grading-status)                                                                                  |
| All Submissions (handgrading + bulk actions) | [Handgrading](/staff/assignments/handgrading), [Bulk Actions](/staff/assignments/bulk-actions)                                       |
| Security                                     | [Security Dashboard](/staff/assignments/security-dashboard)                                                                          |
| Leaderboard                                  | [Leaderboard](/staff/assignments/leaderboard)                                                                                        |

## GitHub permissions

Pawtograder creates two GitHub teams for each class — a **staff** team
and a **students** team. Staff are granted access to every assignment
repository; students are granted access to only their own. The students
team can be used by instructors to share additional read-only
repositories (in-class exercises, code samples) with the whole class.

Pawtograder reconciles repository collaborators against current group
membership whenever you click **Fix Repository Permissions** on an
assignment's Repositories page. Run the audit after roster changes,
group reshuffles, or when a student reports a missing repo. Details and
the full audit flow are in
[Repository Permissions](/staff/assignments/repository-permissions).

## Syncing handout updates

After an assignment is released you can push updates from the handout
repo to every student repo while preserving each student's work. The
sync detects merge conflicts, retries transient failures, and lets you
target a subset of students. Trigger it from the assignment's
**Repositories** page.
