Skip to content

M: Week 7 - Selective Canvas material sync on course page #620

@GlowyBlack

Description

@GlowyBlack

Add instructor-only, selective Canvas material import on the Core course detail page so professors can choose which course files to sync into EduAI for RAG (Core chat), without bundling this into roster sync.

Scope

  • Course page only: Show a separate Sync from Canvas button on the instructor course detail view when the course is Canvas-linked (externalSource = canvas).
  • Selective import: Opening the dialog auto-discovers Canvas files for that course; the instructor checks which files to import and clicks Sync selected (pre-check files not yet imported).
  • Instructor-only (v1): No TA or student access to sync.
  • Backend: GET discover endpoint (list Canvas files + local import status) and POST sync endpoint (body: selected canvasFileIds only). Reuse existing CourseMaterial ingest + embedding pipeline (externalSource / externalId on CourseMaterial).
  • Canvas sources (v1): Course Files API + module file items; supported mime types aligned with manual upload (PDF, DOCX, PPTX, TXT, MD).
  • Tests: Unit tests for discover/sync services; integration tests with Canvas test-mode mocks (same pattern as canvas.integration.test.ts).

Hours to complete (Week 7): 5.5

EPIC: #59

Metadata

Metadata

Assignees

Labels

CWL/Canvashttps://github.com/EduAI-Lab/EduAICore/issues/59RAG/AIhttps://github.com/EduAI-Lab/EduAICore/issues/61Week 7June 15 – June 21, 2026enhancementNew feature or request

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions