Author Course › Import SCORM Package
🎬 Simulate:

Author Workspace

My Courses

Add Course
Course title Draft Version Published version Last modified My Role Actions
Introduction to Python Programming Draft v1 — 2026-07-10 Owner View Co-Authors
Data Analysis with Excel Draft v2 Published v1.0 2026-07-05 Owner View Co-Authors
Business Communication Skills Draft v1 Published v1.0 2026-06-20 Co-Author View
📝 Spec notes — UC-CCM.07 / SCR-CCM.01 (fields, actions, requirements)
Identity
  • Screen: SCR-CCM.01 — Author Workspace
  • Use case: UC-CCM.07 — Import SCORM Package as New Course
Brief description

Course Content screen — Instructor's home list of course branches they are a member of (owner or co-author). Each row represents one branch. Shows draft version, latest published version (when the course has been approved at least once), and last modified date. The "Import Course" button opens the SCORM Import Dialog (UC-CCM.07).

Fields
  • course_title "Course title" — text · lookup · always visible · read-only
  • draft_version "Draft Version" — text · lookup · displayed as "Draft v{major_version}" · always · read-only
  • published_version "Published version" — text · computed · visible when the course has been approved and published at least once, displayed as "Published v{major}.{minor}" · read-only
  • last_modified "Last modified" — date · lookup · always visible · read-only
  • my_role "My Role" — enum (Owner | Co-Author) · computed · always visible · read-only
  • search_query "Search course name" — text · max length 200 · always visible
Actions
  • create_course "Add Course" — enabled always · triggers UC-CCM.01-M-2
  • import_scorm_course "Import Course" — enabled always · triggers UC-CCM.07-M-1 (opens SCR-CCM.05)
  • view_course "View" — enabled always · triggers UC-CCM.01-A-1B-1
  • co_authors "Co-Authors" — enabled when session user is course owner · triggers UC-CCM.09-M-1
  • delete_branch "Delete" — enabled when branch has never been submitted for review AND session user is course owner · triggers UC-CCM.01-A-1A-1
Additional requirements
  1. Show only branches where the session user is a member (owner or co-author) — courses belonging to other instructors are not shown.
  2. Empty state when the instructor has no courses: display a prompt to create the first course and a prominent "Add Course" button instead of the table.
  3. The "Co-Authors" button is visible only when the session user is the course owner — hidden for co-authors.
  4. The "Delete" button is visible only when both conditions are met: it has never been submitted for review, and the session user is the course owner. Hidden for co-authors and for any branch that has been submitted at least once.
Use case context
  • Preconditions: User is logged in and has an active instructor account; user has a SCORM package file (.zip) on their device.
  • Trigger: User clicks "Import Course" on the Author Workspace.
  • Postconditions (success): A new course is created with a lesson structure matching the package definition; user is recorded as the course owner; Content Editor (SCR-CCM.02) opens with the imported structure in place.
  • Postconditions (failure): No new course exists in the system; no files remain in temporary storage.
↳ Embedded dialog: SCR-CCM.05 — SCORM Import Dialog
Brief description

Modal dialog for importing a SCORM package (.zip) to create an entirely new course — opened as an overlay on the Author Workspace when the instructor clicks "Import Course". The Author Workspace remains visible behind the modal. Submitting (clicking "Import") validates the package, parses the manifest, and atomically creates the course, its outline, and its resources, then navigates to the Content Editor. Cancel simply closes the modal — Author Workspace remains as the active page, no course created.

Fields
  • scorm_package_file "SCORM package file (.zip)" — file · format zip · required · always visible
  • upload_progress_pct "Importing..." — number · visible when upload_state in [uploading, processing] · read-only
  • error_message "Error message" — text · visible when validation_error != null · read-only
Actions
  • import "Import" — enabled when scorm_package_file != null && upload_state == idle · triggers UC-CCM.07-M-2
  • cancel "Cancel" — enabled always · closes the dialog only, no further trigger
Additional requirements
  1. Validate imsmanifest.xml strictly — schema valid (SCORM 1.2 / 2004 XSD), organization tree complete, every referenced resource actually exists in the file. [refs: SS-CCM.06]
  2. Error message combines all causes into a single message (not a SCORM package / unsupported version / manifest corrupted / missing resources) — individual error codes are not exposed to the user.
  3. Creating the course, its branch, outline items, and resources must be atomic — if it fails, the system rolls back everything; no dangling course or files remain. [refs: SS-CCM.07]