Original Idea
Assignment Feedback Studio A web app that speeds grading with rubric templates, comment banks, and AI suggestions.
Product Requirements Document: Assignment Feedback Studio
1. Executive Summary
Assignment Feedback Studio is a high-performance web application designed for educators in 2026 to drastically reduce grading time while increasing feedback quality. By integrating a dynamic rubric builder, a hierarchical hierarchical comment bank, and agentic AI-assisted drafting, the platform enables teachers to provide personalized, high-fidelity feedback in a fraction of the time required by traditional LMS tools.
2. Problem Statement
Educators are currently overwhelmed by large student cohorts and repetitive grading tasks. Existing LMS grading interfaces are often clunky, lack sophisticated reusable comment libraries, and do not leverage modern AI to align feedback with specific rubric criteria. This leads to "feedback burnout," inconsistent grading, and students receiving generic comments that don't help them improve.
3. Goals & Success Metrics
- Time Savings: Reduce average grading time per essay by 40%.
- Feedback Quality: Increase student-reported feedback clarity by 25% (via post-assignment surveys).
- Consistency: Achieve a 0.9+ Inter-Rater Reliability (IRR) score for departments using shared rubrics.
- Adoption: Achieve 80% active use of the Comment Bank by the end of the first semester.
4. User Personas
- Dr. Aris (University Professor): Manages 300+ students. Needs rapid bulk-grading and LMS integration.
- Sarah (K-12 Teacher): Needs simple, intuitive UI and specific focus on developmental growth over time.
- Mark (Teaching Assistant): Needs to adhere strictly to rubrics provided by lead professors and benefit from the common comment bank.
5. User Stories
- As an educator, I want to create a reusable rubric so that I can apply consistent standards across multiple assignments.
- As an educator, I want to highlight text in a student's document and apply a pre-saved comment so that I don't have to type the same feedback repeatedly.
- As an educator, I want the AI to draft a summary based on my rubric selections so that I can provide a cohesive feedback narrative without starting from scratch.
- As an administrator, I want to ensure all student data is FERPA and GDPR compliant so that the institution's data is protected.
6. Functional Requirements
6.1. Workspace & Document Viewer
- Split-screen Interface: Left pane for the student submission (PDF/Word), right pane for the Rubric/Comment Bank.
- Document Support: Native rendering of PDFs and automated WASM-based conversion of
.docxfiles to PDF for annotation. - Annotation Layer: Support for text highlights, strikethroughs, and anchored "sticky" comments.
6.2. Dynamic Rubric Builder
- Criteria Management: Weighted scoring with customizable levels (e.g., Novice, Proficient, Exemplary).
- Auto-Calculation: Live grade calculation based on selected levels with a manual "Professional Judgment" override.
6.3. Hierarchical Comment Bank
- Organization: Multi-level folder structure using
ltreefor "Grammar > Punctuation > Oxford Comma". - Global vs. Personal: Ability to toggle between school-wide templates and private snippets.
- Search: Full-text search with fuzzy matching (e.g., searching "gra" finds "Grammar").
6.4. AI-Powered Feedback Studio
- Agentic Workflow: Uses a "Reflector-Refiner" pattern to draft summary feedback aligned strictly with the selected rubric levels.
- Tone Control: Adjustable sliders for feedback tone (Encouraging, Direct, Academic).
7. Technical Requirements
7.1. Tech Stack (2026 Standards)
- Frontend: React v19.2.3 (utilizing React Compiler and Server Actions) with Tailwind CSS v4.1.18 (Oxide engine).
- Editor: TipTap v3.15.3 (using
static-rendererfor performance andSmartChunkedProcessorfor large docs). - Backend: Node.js (LTS) with NestJS v11.1.12 (Fastify adapter).
- Database: PostgreSQL 17 (utilizing
ltreefor hierarchy and GIN indexes for search). - Document Engine: Nutrient (formerly PSPDFKit) for high-fidelity WASM-based PDF/Word annotation and anchoring.
7.2. Infrastructure & Security
- Hosting: AWS (Standard US Regions for FERPA; AWS European Sovereign Cloud for GDPR).
- Encryption: AWS Nitro System for "Encryption in Use"; KMS Customer Managed Keys for data at rest.
- Auth: Auth0 utilizing the "Organizations" feature for multi-tenant school isolation.
7.3. Integrations
- LMS: LTI Advantage (LTI 1.3) using
ltijsfor Canvas and Blackboard Deep Linking. - AI: OpenAI GPT-4o-mini / Claude 3.5 Sonnet via Amazon Bedrock for rubric-aligned generation.
8. Data Model
User
| Field | Type | Description |
| :--- | :--- | :--- |
| id | UUID | Primary Key |
| email | String | Unique |
| org_id | UUID | Refers to Auth0 Organization |
| role | Enum | ADMIN, TEACHER, TA |
Rubric
| Field | Type | Description |
| :--- | :--- | :--- |
| id | UUID | Primary Key |
| title | String | |
| criteria | JSONB | Array of criteria, levels, and weights |
| total_points | Int | |
CommentSnippet
| Field | Type | Description |
| :--- | :--- | :--- |
| id | UUID | Primary Key |
| path | ltree | Hierarchy (e.g., 'Writing.Style.Clarity') |
| content | Text | The feedback text |
| tags | text[] | GIN indexed tags |
| usage_count| Int | For analytics/sorting |
9. API Specification (Sample Endpoints)
POST /v1/feedback/generate
- Request:
{ "submissionId": "uuid", "rubricSelections": {"criteria_1": "Level 3", "criteria_2": "Level 4"}, "tone": "encouraging" } - Response:
{ "draftText": "Great job on the thesis statement...", "reasoning": "Selected Level 4 for 'Argumentation' triggered the mention of..." }
GET /v1/comments/search?q=grammar
- Response:
{ "results": [ { "id": "uuid", "path": "English.Grammar", "content": "Check your subject-verb agreement." } ] }
10. UI/UX Requirements
- Static-First Documents: Document list renders submissions as static HTML; only initializes TipTap
useEditorwhen a document is clicked to save memory. - Sync-Scroll: When the student document is scrolled, the comment markers in the right-side feedback panel should maintain visual alignment.
- Command Palette:
CMD+Kinterface for educators to search the comment bank without leaving the keyboard.
11. Non-Functional Requirements
- Performance: Initial document load under 1.5s for 50-page PDFs.
- Accessibility: WCAG 2.2 AA Compliance (high contrast mode, screen reader labels for rubrics).
- Availability: 99.9% Uptime with automated failover via AWS multi-AZ.
12. Out of Scope
- Native Plagiarism Detection (will use Turnitin integration instead).
- Live Video Feedback (Audio comments are in Phase 2).
- Student-side Document Editing (View-only for students).
13. Risks & Mitigations
- AI Hallucination: AI results are never sent to students automatically; they are presented as "drafts" for teacher approval.
- Data Residency: Use AWS Control Tower guardrails to prevent data from traversing borders, ensuring GDPR compliance.
- Library Bloat: Huge comment banks can slow down UI; mitigated via virtualization and PostgreSQL
ltreeindexing.
14. Implementation Tasks
Phase 1: Project Setup
- [ ] Initialize NestJS v11.1.12 backend with Fastify adapter
- [ ] Initialize React v19.2.3 frontend with Tailwind v4.1.18
- [ ] Configure PostgreSQL with
ltreeandpg_trgmextensions - [ ] Set up Auth0 Organization-based multi-tenancy
Phase 2: Core Grading Workspace
- [ ] Integrate Nutrient (PSPDFKit) for split-screen PDF viewing
- [ ] Build Rubric Builder UI with weighted criteria logic
- [ ] Implement TipTap v3.15.3 with
static-rendererfor document annotations - [ ] Create PostgreSQL schema for hierarchical Comment Bank
Phase 3: AI & LMS Integration
- [ ] Implement "Reflector-Refiner" AI feedback loop using Bedrock
- [ ] Set up
ltijsfor LTI 1.3 Deep Linking with Canvas - [ ] Build search-as-you-type GIN index query for Comment Bank
- [ ] Implement CSV/Gradebook export service
Phase 4: Compliance & Launch
- [ ] Configure AWS Nitro Enclaves for student data processing
- [ ] Conduct WCAG 2.2 AA accessibility audit
- [ ] Deploy to AWS European Sovereign Cloud for EU Beta
- [ ] Perform load testing with 100+ page documents using TipTap
SmartChunkedProcessor