diff --git a/docs.json b/docs.json index a30ace3..271b120 100644 --- a/docs.json +++ b/docs.json @@ -26,7 +26,8 @@ "students/assignments/create-submission", "students/assignments/form-groups", "students/assignments/late-tokens", - "students/assignments/self-review" + "students/assignments/self-review", + "students/assignments/leaderboard" ] }, { @@ -51,10 +52,15 @@ "group": "Assignments", "pages": [ "staff/assignments/intro", + "staff/assignments/assignment-dashboard", + "staff/assignments/grading-dashboard", + "staff/assignments/test-insights", + "staff/assignments/security-dashboard", "staff/assignments/grading-assignments", "staff/assignments/handgrading", "staff/assignments/autograding", "staff/assignments/rubrics", + "staff/assignments/extensions-and-scoring", "staff/assignments/testing" ] }, diff --git a/staff/assignments/assignment-dashboard.mdx b/staff/assignments/assignment-dashboard.mdx new file mode 100644 index 0000000..f5c13bc --- /dev/null +++ b/staff/assignments/assignment-dashboard.mdx @@ -0,0 +1,100 @@ +--- +title: "Assignment Dashboard" +description: "Get a comprehensive overview of assignment status, submissions, and student progress" +--- + +# Assignment Dashboard + +The assignment dashboard provides a centralized view of all key metrics and information for an assignment. Use this dashboard to monitor student progress, track submissions, and manage assignment logistics. + +## Accessing the Dashboard + +Navigate to any assignment to view its dashboard. The dashboard is the default landing page for each assignment. + +## Dashboard Components + +### Assignment Overview + +The top section displays essential assignment information: + +- **Assignment name and description** +- **Due date and time** +- **Release status**: Whether the assignment is visible to students +- **Submission count**: Number of students who have submitted + +### Submission Statistics + +Track student progress with real-time statistics: + +- **Total submissions**: How many students have submitted work +- **Pending submissions**: Students who haven't submitted yet +- **On-time vs. late**: Breakdown of submission timing +- **Average score**: Current average across all graded submissions + +### Quick Actions + +Access common assignment management tasks: + +- **View all submissions**: Navigate to the submissions list +- **Manage grading**: Assign grading tasks to staff +- **Edit assignment**: Modify assignment settings +- **View test insights**: Access the test insights dashboard +- **Check security**: Open the security dashboard + +### Recent Activity + +See the latest updates and actions: + +- Recent submissions +- Grading completions +- Student questions or issues +- System notifications + +## Grading Progress + +Monitor grading status across all submissions: + +- **Graded**: Submissions with completed reviews +- **In progress**: Submissions currently being graded +- **Not started**: Submissions awaiting grading assignment + +### Grader Workload + +View grading distribution across your staff: + +- Which graders are assigned to which submissions +- Completion rates per grader +- Overdue grading tasks + +## Student Engagement Metrics + +Track how students are engaging with the assignment: + +- **Repository activity**: Commit frequency and timing +- **Autograder runs**: How often students are testing their code +- **Help requests**: Office hours requests related to this assignment +- **Discussion posts**: Questions and discussions about the assignment + +## Filtering and Sorting + +Customize your dashboard view: + +- Filter by submission status (submitted, pending, late) +- Sort by score, submission time, or student name +- Search for specific students +- Group by section or team (for group assignments) + + +Check the assignment dashboard regularly to identify students who may need additional support or to spot trends in common issues. + + +## Exporting Data + +Export assignment data for further analysis: + +- Submission reports +- Grading summaries +- Student progress data +- Autograder results + +Use the export functionality to generate reports for department records or to analyze assignment effectiveness. diff --git a/staff/assignments/autograding.mdx b/staff/assignments/autograding.mdx index dde886a..b795259 100644 --- a/staff/assignments/autograding.mdx +++ b/staff/assignments/autograding.mdx @@ -16,6 +16,44 @@ The autograder system uses an "overlay grader" architecture that allows flexible *Detailed documentation coming soon.* +## Rerunning the Autograder + +You can rerun the autograder on existing submissions to apply updated grading logic or fix issues. The enhanced rerun feature provides more control over the regrading process. + +### Rerun Options + +When rerunning the autograder, you can: + +1. **Reuse existing submissions**: The autograder reruns on the same submission without creating a new one +2. **Select grader version**: Choose which version of the grader to use for the rerun + - Select from recent commits in your grader repository + - Enter a specific commit SHA manually + - Use the current active grader version + +### How to Rerun + +To rerun the autograder on submissions: + +1. Navigate to the assignment's autograder page +2. Select the submissions you want to regrade +3. Click the "Rerun Autograder" button +4. In the regrade dialog: + - Choose a grader version from the commit list, or + - Enter a specific commit SHA + - Optionally enable "Auto-promote" to set this version as the active grader + +### Auto-Promote Feature + +The auto-promote option automatically promotes the selected grader version to be the active grader for all future submissions after the rerun completes successfully. This is useful when: + +- You've fixed a bug in the grader and want to apply it going forward +- You've updated test cases and want all new submissions to use them +- You're confident the new grader version should be the default + + +Rerunning the autograder will replace the existing autograder results for the selected submissions. Make sure you've tested your grader changes before applying them to student submissions. + + ## Quickstart: Java and Python Build system integration guides for common programming languages. diff --git a/staff/assignments/extensions-and-scoring.mdx b/staff/assignments/extensions-and-scoring.mdx new file mode 100644 index 0000000..d7ccf27 --- /dev/null +++ b/staff/assignments/extensions-and-scoring.mdx @@ -0,0 +1,80 @@ +--- +title: "Extensions and Score Capping" +description: "Manage due date extensions and configure assignment score limits" +--- + +# Extensions and Score Capping + +Pawtograder provides flexible options for managing due date extensions and controlling assignment scores. + +## Extended Due Date Picker + +When granting manual extensions to students, instructors can choose the extended due date directly using a date picker interface. + +### Benefits + +The date picker approach offers several advantages over entering hours and minutes: + +- **Intuitive selection**: Pick a specific date and time visually +- **Reduced errors**: Avoid calculation mistakes when determining extension length +- **Course alignment**: Easily set extensions that align with course schedules or other deadlines +- **Clear communication**: The exact due date is immediately visible + +### How to Grant Extensions + +1. Navigate to the assignment's "Due Date Exceptions" section +2. Select the student(s) who need an extension +3. Click "Grant Extension" +4. Use the date picker to select the new due date and time +5. The system displays both the original and extended due dates for reference + +The date picker shows the original due date and allows you to select any future date and time for the extended deadline. + + +You can grant extensions to individual students or to entire groups for group assignments. All group members will receive the same extended deadline. + + +## Assignment Score Capping + +Instructors can configure a maximum score cap for assignments to prevent scores from exceeding a specified limit. + +### When to Use Score Capping + +Score capping is useful in several scenarios: + +- **Extra credit management**: Prevent bonus points from inflating grades beyond course standards +- **Grading consistency**: Ensure all assignments follow the same maximum score scale +- **Optional components**: Allow students to attempt bonus work without breaking grade calculations +- **Rubric flexibility**: Use detailed rubrics with many points while maintaining a standard maximum + +### Configuring Score Caps + +To set a score cap for an assignment: + +1. Navigate to the assignment settings +2. Find the "Score Capping" section +3. Enable score capping +4. Enter the maximum allowed score +5. Save your changes + +### How Score Capping Works + +When score capping is enabled: + +- Student scores are automatically capped at the specified maximum +- The cap applies to the total score (autograder + handgrading combined) +- Students can see their uncapped score and the capped score that counts toward their grade +- The gradebook displays the capped score + + +Score capping is applied after all grading is complete. Students will still see their full earned score, but the capped score is what appears in the gradebook and grade exports. + + +### Example + +If you set a score cap of 100 points: +- A student who earns 95 points receives 95 points +- A student who earns 110 points (including bonus) receives 100 points +- Both students see their actual earned scores, but the gradebook shows the capped values + +This allows you to reward excellent work with bonus points while maintaining grade consistency across your course. diff --git a/staff/assignments/grading-dashboard.mdx b/staff/assignments/grading-dashboard.mdx new file mode 100644 index 0000000..281fcfe --- /dev/null +++ b/staff/assignments/grading-dashboard.mdx @@ -0,0 +1,52 @@ +--- +title: "Grading Status Dashboard" +description: "Monitor grading progress and track completion across all assignments" +--- + +# Grading Status Dashboard + +The grading status dashboard provides a comprehensive view of grading progress across all assignments in your course. Use this dashboard to track which submissions have been graded, identify bottlenecks, and ensure timely feedback to students. + +## Accessing the Dashboard + +Navigate to the Assignments section and select "Grading Status" to view the dashboard. + +## Dashboard Features + +### Assignment Overview + +The dashboard displays all assignments with key metrics: + +- **Total submissions**: Number of student submissions received +- **Graded submissions**: Count of completed grading reviews +- **Pending submissions**: Submissions awaiting grading +- **Completion percentage**: Visual progress indicator + +### Grading Progress Tracking + +For each assignment, you can see: + +- **Grader assignments**: Which staff members are assigned to grade +- **Due dates**: Grading task deadlines +- **Status indicators**: Visual cues for on-track, at-risk, or overdue grading + +### Filtering and Sorting + +Use filters to focus on specific assignments: + +- Filter by assignment status (active, past due, upcoming) +- Sort by grading completion percentage +- View only assignments with pending grading tasks + +## Taking Action + +From the dashboard, you can: + +1. **Navigate to assignments**: Click any assignment to view detailed grading interface +2. **Reassign grading tasks**: Adjust grader assignments if needed +3. **Monitor progress**: Track grading completion in real-time +4. **Identify delays**: Quickly spot assignments that need attention + + +Use the grading status dashboard regularly to ensure students receive timely feedback and to balance grading workload across your staff. + diff --git a/staff/assignments/security-dashboard.mdx b/staff/assignments/security-dashboard.mdx new file mode 100644 index 0000000..333362a --- /dev/null +++ b/staff/assignments/security-dashboard.mdx @@ -0,0 +1,72 @@ +--- +title: "Assignment Security Dashboard" +description: "Monitor and audit assignment security, detect potential academic integrity issues" +--- + +# Assignment Security Dashboard + +The assignment security dashboard helps you monitor assignment security and identify potential academic integrity concerns. Use this tool to audit submission patterns and detect anomalies that may warrant further investigation. + +## Accessing the Security Dashboard + +Navigate to an assignment and select the "Security" tab to view the security dashboard. + +## Dashboard Features + +### Submission Pattern Analysis + +The dashboard analyzes submission patterns across all students to identify: + +- **Unusual submission timing**: Submissions that occur at unexpected times +- **Similarity patterns**: Groups of submissions with similar characteristics +- **Anomalous behavior**: Deviations from typical student submission patterns + +### Security Metrics + +Key metrics displayed include: + +- **Submission timestamps**: When students submitted their work +- **Repository activity**: Commit patterns and timing +- **File change patterns**: Unusual modifications or additions +- **Access logs**: Repository access history + +### Flagged Submissions + +The dashboard automatically flags submissions that may warrant review: + +- Submissions with unusual patterns +- Multiple submissions from different accounts with similar content +- Suspicious timing or access patterns + +## Investigation Tools + +When reviewing flagged submissions, you can: + +1. **View detailed logs**: Access complete submission and repository history +2. **Compare submissions**: Side-by-side comparison of flagged submissions +3. **Review commit history**: Examine the development timeline +4. **Export data**: Generate reports for academic integrity proceedings + +## Best Practices + + +The security dashboard is a tool to assist in identifying potential issues, not a definitive proof of academic misconduct. Always investigate flagged items thoroughly and follow your institution's academic integrity policies. + + +- Review flagged submissions promptly +- Consider context when evaluating patterns +- Document your findings for potential follow-up +- Combine dashboard insights with other evidence +- Follow institutional policies for academic integrity cases + +## Privacy and Compliance + +The security dashboard: +- Only displays data to authorized course staff +- Maintains audit logs of dashboard access +- Complies with student privacy regulations +- Stores data securely according to institutional policies + + +Use the security dashboard proactively throughout the assignment period, not just after the deadline. Early detection can help you address issues before they escalate. + diff --git a/staff/assignments/test-insights.mdx b/staff/assignments/test-insights.mdx new file mode 100644 index 0000000..3c09998 --- /dev/null +++ b/staff/assignments/test-insights.mdx @@ -0,0 +1,54 @@ +--- +title: "Test Insights Dashboard" +description: "Track student performance and debug common errors with the test insights dashboard" +--- + +# Test Insights Dashboard + +The test insights dashboard helps you identify and address common errors across student submissions. Use this feature to understand which tests are failing most frequently and take action to help affected students. + +## Accessing Test Insights + +Navigate to an assignment and select the "Test Insights" tab to view aggregated test results across all student submissions. + +## Error Explorer + +The error explorer groups similar test failures together, showing: + +- **Error groups**: Common failure patterns across submissions +- **Affected students**: Number of students experiencing each error +- **Student emails**: View and copy email addresses of affected students for targeted communication +- **Error details**: Stack traces and failure messages + +### Viewing Affected Students + +Click on any error group to see which students are affected. You can: +- View the list of students experiencing the error +- Copy student email addresses to reach out with targeted help +- Click through to individual submissions for detailed debugging + +## Regrade Workflow + +Launch regrading directly from the error explorer to rerun tests after fixing issues: + +1. **Launch from error explorer**: Click the regrade button on any error group +2. **Preselect submissions**: Students affected by the error are automatically selected on the autograder page +3. **Choose grader version**: Select from available commits or enter a manual SHA in the regrade dialog +4. **Auto-promote option**: Optionally promote the new grader version automatically after successful regrade + +### Regrade Dialog Options + +- **Select commits**: Choose from recent grader repository commits +- **Manual SHA**: Enter a specific commit SHA for the grader version +- **Auto-promote**: Automatically set the selected version as the active grader after regrade completes + +## Global Error Pins + +Pin important errors to make them visible across all assignments. Pinned errors appear at the top of the error explorer for quick access. + +To pin an error: +1. Navigate to the error in the test insights dashboard +2. Click the pin icon +3. The error will now appear in the pinned section across all assignments + +Pinned errors help you track recurring issues and ensure they're addressed consistently across your course. diff --git a/staff/discussion.mdx b/staff/discussion.mdx index 8788f24..2dee204 100644 --- a/staff/discussion.mdx +++ b/staff/discussion.mdx @@ -39,6 +39,15 @@ Posts can be shared with the entire class, or with course staff only. Each user Students can edit their own posts, and staff can edit any post. +### Rich Content Support + +Posts support Markdown formatting and include drag-and-drop image upload functionality. Users can: +- Drag images directly into the post editor +- Paste images from clipboard +- Upload attachments to support their questions or explanations + +This makes it easy to share screenshots, diagrams, and other visual content when discussing course material. + ### Post Metadata Each post displays: @@ -60,6 +69,21 @@ When a student has an active help request in office hours, a widget appears in t This integration ensures students never miss updates on their help requests, even while browsing the discussion board. +## Karma System + +The discussion board includes a karma system that rewards students for helpful contributions. Students earn karma points through: + +- Receiving likes on their posts +- Having their answers marked as helpful +- Generating meaningful engagement in discussions + +Karma scores are visible on student profiles and serve as a measure of community contribution. This system encourages students to: +- Provide thoughtful, helpful responses +- Actively participate in course discussions +- Support their peers' learning + +As an instructor, you can use karma scores to identify students who are particularly engaged and helpful in the course community. + ## Notifications By default, users do not get notifications for new posts, but can optionally "watch" a post to receive notifications when the post is updated or receives a new reply. Interacting with a post (e.g. replying to it) will automatically watch the post. diff --git a/staff/office-hours/intro.mdx b/staff/office-hours/intro.mdx index 43b2311..6565ddc 100644 --- a/staff/office-hours/intro.mdx +++ b/staff/office-hours/intro.mdx @@ -65,6 +65,37 @@ When a student has an active help request, it follows them around the site. They This ensures students never miss updates, even while browsing the discussion board or other course pages. +## Student Help Experience Enhancements + +### Get Help CTA + +A persistent **Get Help** button appears throughout the site, giving students quick access to: +- Submit new help requests +- View active request status +- Open the help drawer with queue information + +### Help Drawer + +The help drawer displays: +- **Office Hours Status Card**: Shows if office hours are currently active +- **Per-Queue Cards**: Individual status and wait times for each queue +- **Weekly Queue Schedule**: Full schedule with live "Happening now" highlights for active sessions + +### Site-Wide Notifications + +Students receive multi-channel notifications for their active help requests: +- **Browser notifications**: Desktop alerts for status changes (with permission prompts) +- **Title updates**: Browser tab title shows queue position +- **Sound alerts**: Audio notifications for important updates (with test functionality) +- **Favicon changes**: Visual indicator in browser tab + +### Conflict Detection + +The system validates help requests to prevent conflicts: +- Detects if a student already has an active solo request +- Shows clear validation messages when conflicts occur +- Prevents duplicate requests in the same queue + ## Resolving Requests A help request can be marked as "Resolved" by either a staff member or a student. diff --git a/students/assignments/leaderboard.mdx b/students/assignments/leaderboard.mdx new file mode 100644 index 0000000..4db1cf5 --- /dev/null +++ b/students/assignments/leaderboard.mdx @@ -0,0 +1,41 @@ +--- +title: "Assignment Leaderboard" +description: "Track your ranking and compete with classmates on assignment performance" +--- + +# Assignment Leaderboard + +Some assignments may include an optional leaderboard feature that displays student rankings based on assignment scores. The leaderboard adds a competitive element to assignments while maintaining privacy options. + +## Viewing the Leaderboard + +If your instructor has enabled the leaderboard for an assignment, you'll see a "Leaderboard" tab on the assignment page. + +The leaderboard displays: +- **Rankings**: Your position relative to other students +- **Scores**: Current assignment scores (may be based on autograder results) +- **Anonymity options**: Students can choose to appear anonymously or with their name + +## Privacy and Participation + +The leaderboard is designed to be optional and privacy-conscious: + +- Instructors can enable or disable the leaderboard per assignment +- Students can choose whether to display their name or remain anonymous +- The leaderboard is less prominent in the interface to avoid creating pressure +- Participation in the competitive aspect is entirely voluntary + +## How Rankings Work + +Rankings are typically based on: +- Autograder scores +- Submission timing (if configured by instructor) +- Completion status + + +The leaderboard is meant to be a fun, optional feature. Your grade is not affected by your leaderboard position—it's purely for those who enjoy a competitive element. + + +## Instructor Configuration + +Instructors control whether the leaderboard appears for each assignment. If you don't see a leaderboard tab, your instructor has chosen not to enable this feature for the current assignment. diff --git a/students/discussion-board.mdx b/students/discussion-board.mdx index ec37e9b..704bc63 100644 --- a/students/discussion-board.mdx +++ b/students/discussion-board.mdx @@ -69,6 +69,7 @@ Click the **+ New Post** button in the top right to create a new discussion thre 2. **Choose visibility**: Share with the entire class or staff only 3. **Select identity**: Post with your real name or pseudonym 4. **Mark as question or note**: Questions indicate you need an answer; notes are for sharing information +5. **Add images**: Drag and drop images directly into the editor, or paste them from your clipboard for quick sharing ## Engaging with Posts @@ -82,3 +83,17 @@ Each post displays helpful metadata: - **Answered badge**: Indicates questions that have been resolved Replies are threaded, allowing for organized conversations. Use the Markdown editor to format your responses with code blocks, links, images, and more. + +## Karma System + +Pawtograder includes a karma system to recognize helpful contributions to the discussion board. You earn karma points when: + +- Your posts receive likes from classmates +- Your answers are marked as helpful by the original poster +- You provide high-quality responses that generate engagement + +Karma is displayed on your profile and serves as a measure of your contributions to the course community. It's a way to recognize students who actively help their peers and contribute valuable content to discussions. + + +Focus on providing thoughtful, helpful responses rather than chasing karma points. Quality contributions naturally earn recognition from the community. + diff --git a/students/office-hours.mdx b/students/office-hours.mdx index 9e6e241..b608d0e 100644 --- a/students/office-hours.mdx +++ b/students/office-hours.mdx @@ -82,10 +82,42 @@ Once you submit a help request: 3. **Text Chat**: Staff may begin helping via text chat 4. **Video Chat**: When a TA starts a video call, click **Join Video Call** to connect +## Get Help CTA and Notifications + +Pawtograder provides multiple ways to stay updated on your help request: + +### Persistent "Get Help" Button + +A **Get Help** button appears throughout the site, providing quick access to: +- Submit a new help request +- View your active request status +- Access the help drawer with queue information + +### Help Drawer + +Click the Get Help button to open the help drawer, which shows: + +- **Office Hours Status Card**: See if office hours are currently active +- **Per-Queue Cards**: View each queue's status and wait times +- **Weekly Schedule**: See the full office hours schedule with live "Happening now" highlights for active sessions + +### Site-Wide Notifications + +When you have an active help request, you'll receive notifications through multiple channels: + +- **Browser notifications**: Desktop alerts when your status changes (requires permission) +- **Title updates**: Your browser tab title shows your queue position +- **Sound alerts**: Audio notifications for important updates (can be tested and configured) +- **Favicon changes**: Your browser tab icon updates to show activity + -Your active help request follows you around the site! You'll see status updates and video call notifications even while browsing the discussion board or other pages. +Grant browser notification permissions to receive alerts even when Pawtograder isn't your active tab. You can test notifications and adjust settings in your help request. +### Active Help Request Widget + +Your active help request follows you around the site! You'll see status updates and video call notifications even while browsing the discussion board or other pages. + ## Help Request Status Your help request will show different statuses: