CourseForge · SRS
Software Requirements Specification

CourseForge — an Easygenerator-class authoring tool

Executive SRS for a cloud-based e-learning authoring platform that lets any subject-matter expert build engaging courses, collaborate with reviewers, and publish standards-compliant SCORM and xAPI packages — assisted by an author-first AI.

SCORM 1.2SCORM 2004xAPI / cmi5WCAG 2.2 AAGDPRSAML / OIDC SSO

1.Introduction

1.1 Purpose

This document specifies the requirements for CourseForge, a SaaS authoring platform inspired by Easygenerator. CourseForge enables non-instructional-designers — sales enablement leads, HR business partners, compliance officers, product managers — to create, review, and publish online courses in hours instead of weeks. It is intended for engineering, design, and product stakeholders building the v1 product.

1.2 Scope

This SRS covers three capability pillars:

  • Core authoring — block-based course editor, interactive content, assessment, branding, and standards-compliant SCORM 1.2 / SCORM 2004 / xAPI export.
  • AI authoring assistant — document-to-course generation, question generation, rewrite/tone, translation, and didactic suggestions.
  • Collaboration & review — multi-author editing, roles, comments, suggestions, approval workflow, and version history.

Hosted learner delivery, a built-in LRS, and learner analytics are explicitly out of scope for v1 (see §10).

1.3 Definitions

  • Course — the top-level publishable unit; contains sections, questions, and metadata.
  • Section — an ordered grouping of content blocks (a "page" or "lesson").
  • Block — atomic content unit (text, image, video, flip-card, hotspot, etc.).
  • SCORM — IEEE/ADL packaging standard for LMS-deliverable courseware (1.2 and 2004 editions).
  • xAPI — Experience API; statement-based learning record protocol; cmi5 is its profile for LMS-launched content.
  • LMS / LXP — Learning Management / Experience Platform that consumes published packages.

2.Overall Description

2.1 Product Perspective

CourseForge is a new, self-contained, multi-tenant SaaS web application. It does not replace an LMS; it produces courseware consumed by an LMS, LXP, web link, or PDF export. The system has three logical surfaces: the Author Studio (editor + AI), the Review Portal (lightweight reviewer UI), and the Admin Console (workspace, branding, SSO, billing).

2.2 Product Functions (high level)

  • Create, edit, duplicate, archive, and template courses.
  • Compose lessons from reusable blocks; add quizzes with auto-graded question types.
  • Generate first-draft courses and quiz items from uploaded documents using AI.
  • Invite co-authors and reviewers; capture inline comments and suggestions; resolve and approve.
  • Publish to a stable URL, downloadable SCORM 1.2 / 2004 ZIP, xAPI/cmi5 package, or PDF.
  • Apply organization branding (logo, palette, fonts) automatically.

2.3 Assumptions & Constraints

  • Modern evergreen browsers (Chrome, Edge, Safari, Firefox; last 2 versions).
  • Authoring is desktop-first; learner runtime is fully responsive.
  • EU data residency required for enterprise customers (GDPR).
  • AI features depend on a third-party LLM provider through a server-side gateway; no PII is sent in prompts.

3.Personas & User Journeys

3.1 Personas

Maya — SME Author
Sales enablement lead
Turn a product update deck into a 10-minute onboarding course this week.
Dan — L&D Manager
Course owner / reviewer
Maintain quality and brand across courses produced by many SMEs.
Priya — Reviewer
Legal / compliance
Leave precise inline comments and approve without learning a new tool.
Tom — Workspace Admin
IT / operations
Provision SSO, set retention, manage seats, enforce branding.

3.2 Primary Journey — "From document to published SCORM"

  1. Maya creates a new course and uploads a PowerPoint deck + product PDF.
  2. AI proposes a course outline (sections, learning objectives). Maya tweaks it.
  3. AI fills each section with content blocks and generates 3–5 questions per objective; Maya edits text and swaps media.
  4. Maya invites Priya as Reviewer. Priya leaves inline comments; Maya resolves them.
  5. Dan approves the course. Maya clicks Publish → SCORM 2004.
  6. The LMS ingests the package; learners launch it; results report via SCORM RTE.

3.3 Secondary Journeys

  • Republish updated content via Dynamic SCORM without re-uploading to the LMS.
  • Duplicate a course as a template and rebrand for a different business unit.
  • Reviewer-only single sign-on via magic link without a paid seat.

4.1Functional Requirements — Authoring

IDRequirementDescriptionPriority
FR-AUTH-001Course CRUDCreate, rename, duplicate, archive, and permanently delete courses with full audit trail.Must
FR-AUTH-002Section managementAdd, reorder (drag-and-drop), rename, hide, and delete sections within a course.Must
FR-AUTH-003Content blocksInsert rich-text, image, video (upload + YouTube/Vimeo embed), audio, file attachment, code, divider, callout, flip-card, accordion, hotspot, and embed (iframe with allow-list) blocks.Must
FR-AUTH-004Question typesSingle-choice, multiple-choice, true/false, fill-in-the-blank (text + numeric), drag-and-drop matching, ranking, hotspot, open-ended (manual or AI-graded).Must
FR-AUTH-005Assessment rulesPer-course mastery score, randomization, attempt limits, instant or end-of-course feedback, optional remediation links.Must
FR-AUTH-006Media libraryWorkspace-scoped library with upload, search, tagging, reuse across courses, and automatic image optimization (WebP/AVIF, max 5 MB per asset).Must
FR-AUTH-007Templates & themesBuilt-in starter templates by use case (onboarding, compliance, product training). Apply workspace theme (logo, palette, font pair, button radius) automatically.Should
FR-AUTH-008AutosaveAll edits autosaved within 2 s; offline edits queued and resynced; explicit version snapshot on demand.Must
FR-AUTH-009PreviewInline preview in desktop, tablet, and mobile viewports without leaving the editor.Must
FR-AUTH-010Accessibility helpersAlt-text required prompt on images, contrast checker on themes, reading-order warnings.Should

4.2Functional Requirements — AI Assistant

IDRequirementDescriptionPriority
FR-AI-001Course generation from sourcesAccept PDF, DOCX, PPTX, and pasted text (≤ 50 MB combined). Produce an editable course outline with learning objectives within 60 s for typical inputs.Must
FR-AI-002Section draftingGenerate text, callouts, and suggested media placeholders for a chosen section using the source material as context.Must
FR-AI-003Question generationGenerate 3–10 questions per objective across selected question types; include distractors and rationale.Must
FR-AI-004Rewrite & toneRewrite selected text for clarity, length, reading level, or tone (formal, friendly, concise).Must
FR-AI-005TranslationTranslate a course (or a single section) into a chosen target language while preserving block structure and question metadata.Should
FR-AI-006Didactic suggestionsSuggest where to insert interactive blocks (flip-card, hotspot) and where to add knowledge checks.Must
FR-AI-007Grounding & citationsWhen sources are provided, link generated paragraphs back to the source file + page/slide reference so authors can verify.Must
FR-AI-008Safety & PIIStrip detected emails, phone numbers, and IDs from prompts; respect a workspace-level toggle to disable AI features entirely.Must

4.3Functional Requirements — Collaboration & Review

IDRequirementDescriptionPriority
FR-COL-001Course rolesPer-course roles: Owner, Co-author, Reviewer, Viewer. Workspace-level role of Admin overrides.Must
FR-COL-002Concurrent editingMultiple co-authors may edit a course simultaneously; per-block soft-lock prevents conflicting edits; presence indicators show who is on which section.Must
FR-COL-003CommentsThreaded comments anchored to any block or question; @mentions trigger in-app + email notifications; resolve/reopen states.Must
FR-COL-004SuggestionsReviewers may propose text changes shown as inline diffs; author accepts or rejects each.Should
FR-COL-005Approval workflowConfigurable per-course approval: one or more required approvers; course cannot be published until all approvals are granted.Must
FR-COL-006Version historyAuto-snapshots on publish + manual snapshots; restore any prior snapshot; diff between versions at block level.Must
FR-COL-007Reviewer access without seatMagic-link invite that grants comment-only access for a configurable window (default 30 days) without consuming a paid seat.Should
FR-COL-008Activity feedPer-course feed of edits, comments, approvals, and publishes; filterable; exportable as CSV.Could

4.4Functional Requirements — Publishing & Export

IDRequirementDescriptionPriority
FR-PUB-001SCORM 1.2 exportGenerate a SCORM 1.2 conformant ZIP including imsmanifest.xml and required schema files; report completion, score, and pass/fail via cmi.core.* APIs.Must
FR-PUB-002SCORM 2004 exportSupport SCORM 2004 3rd and 4th editions; sequencing limited to linear navigation in v1; report cmi.completion_status, cmi.success_status, cmi.score.*.Must
FR-PUB-003xAPI / cmi5 exportProduce cmi5-compliant assignable units that emit launched / initialized / completed / passed / failed / answered statements to a configured LRS endpoint.Must
FR-PUB-004Direct share linkPublish to an immutable, signed URL with optional password and expiry; preview before sharing.Must
FR-PUB-005PDF exportLinearized PDF of all sections (excluding interactive blocks) for offline distribution.Should
FR-PUB-006Dynamic updateWhen a course is republished, learners launching the same SCORM package receive the latest content without LMS re-upload (via a stable hosted asset bundle).Should
FR-PUB-007ValidationRun automated SCORM/xAPI validation against ADL test-suite rules pre-export; surface errors and warnings to the author.Must
FR-PUB-008LTI 1.3 launchOptional LTI 1.3 tool registration for direct LMS launch.Could

4.5Functional Requirements — Account & Workspace

IDRequirementDescriptionPriority
FR-ACC-001Workspace modelOne organization → many workspaces → many courses; user is invited to a workspace with a workspace-level role.Must
FR-ACC-002AuthenticationEmail + password with verification, magic-link, Google, and Microsoft sign-in. Enterprise plans add SAML 2.0 and OIDC SSO with JIT provisioning + SCIM.Must
FR-ACC-003Roles & permissionsWorkspace roles: Admin, Author, Reviewer, Viewer. Permissions enforced server-side; never trust client checks.Must
FR-ACC-004BrandingUpload logo + favicon; pick palette and font pair; preview applied across all courses and shared links.Must
FR-ACC-005Billing & seatsStripe-backed subscription; per-seat author plan; reviewers do not consume seats; usage dashboard for AI credits.Must
FR-ACC-006Audit logWorkspace audit log of authentication, role changes, exports, and deletes; retained 12 months; exportable to CSV/SIEM webhook.Should

5.Non-Functional Requirements

Performance
Editor cold load ≤ 3 s on a 25 Mbps connection; block insert / autosave round-trip ≤ 300 ms P95; AI draft generation ≤ 60 s for a 30-slide deck.
Scalability
Support 10k workspaces, 200k courses, 5k concurrent editors per region without architectural change. Horizontal scaling behind a managed Postgres + object store.
Availability
99.9 % monthly uptime for editor and published runtime; multi-AZ; published share links delivered from a CDN.
Accessibility
Authoring UI and learner runtime conform to WCAG 2.2 AA. All published courses ship with keyboard navigation, ARIA roles, and screen-reader-tested templates.
Security
OWASP ASVS L2; SSO; encryption in transit (TLS 1.2+) and at rest (AES-256); per-tenant data isolation; signed asset URLs with short TTL.
Privacy & compliance
GDPR (EU data residency option, DPA, DSAR tooling), SOC 2 Type II roadmap, ISO 27001 roadmap. No learner PII in AI prompts.
Internationalization
UI localized to EN, NL, DE, FR, ES, PT, IT at launch. Authoring supports RTL languages in published runtime.
Browser support
Latest 2 stable versions of Chrome, Edge, Safari, Firefox on desktop. Learner runtime additionally supports iOS Safari and Android Chrome.

6.External Interfaces

  • LMS / LXP — output: SCORM 1.2, SCORM 2004 (3rd/4th), xAPI/cmi5 package, LTI 1.3 launch (roadmap).
  • LRS — outbound xAPI statements to any conformant LRS endpoint configured per workspace.
  • SSO — SAML 2.0, OIDC, SCIM 2.0 for user provisioning.
  • AI gateway — server-side LLM provider; prompts and completions stored only for 30 days for abuse review, then purged.
  • Object storage — S3-compatible bucket per region for media assets and published bundles.
  • Email — transactional provider for invites, comment notifications, magic-link reviewer access.
  • Payments — Stripe Billing for subscriptions, seat management, and AI credit metering.

7.Data Model (high level)

Core entities and the relationships between them:

Organization 1───* Workspace 1───* Membership *───1 User
                       │
                       ├──* Course ──* Section ──* Block
                       │       │           └──* Question ──* Choice
                       │       ├──* Comment (anchor: block_id | question_id)
                       │       ├──* Version (snapshot_json, created_by, kind)
                       │       └──* PublishArtifact (kind: scorm12 | scorm2004 | xapi
                       │                                  | pdf | link, signed_url)
                       ├──* MediaAsset (s3_key, mime, tags[])
                       ├──* Theme (logo, palette, font_pair)
                       └──* AuditLogEntry

Notes: Blocks store a discriminated type + a typed payload JSON, validated by Zod on read and write. Versions are full snapshots (small payloads, simpler restore) rather than per-block diffs.

8.UX Principles

  • No instructional design degree required. Defaults produce a didactically sound course; advanced controls are progressive disclosure.
  • Block-based editor, not a slide canvas. Each block is responsive by construction; no per-pixel layout.
  • One primary action per screen. The editor's right rail surfaces the next best action (preview, invite reviewer, publish).
  • AI as a draft, not an answer. Every AI output is editable, attributable, and dismissable.
  • Trust by transparency. Show conformance status, approval status, and last-published timestamp in the course header.
  • Keyboard- and screen-reader-first. The editor is fully operable without a mouse; the runtime ships AA contrast out of the box.

9.Sample Acceptance Criteria

  • FR-AUTH-008 Autosave — Given an author edits any block, when 2 s elapse without further input, then the change is persisted and a "Saved" indicator appears; on disconnect, edits queue locally and resync on reconnect without data loss.
  • FR-AI-001 Course from sources — Given a 30-slide PPTX, when the author requests a course outline, then a draft of 4–8 sections with learning objectives is returned within 60 s P95, each section linked to one or more source slides.
  • FR-COL-005 Approval gate — Given a course configured with two required approvers, when fewer than two approvals are granted, then Publish is disabled and a tooltip lists missing approvers.
  • FR-PUB-002 SCORM 2004 — Given an exported package, when uploaded to a SCORM 2004 4th-edition LMS, then it launches without error, reports cmi.completion_status = "completed" upon finishing all sections, and reports a numeric cmi.score.scaled for assessments.
  • FR-ACC-002 SSO — Given an Enterprise workspace with SAML configured, when a new user signs in via the IdP, then a workspace Membership is JIT-created with role mapped from the IdP attribute.

10.Out of Scope & Roadmap

Explicitly out of scope for v1

  • Built-in learner delivery, learner accounts, and an in-platform LRS.
  • Learner analytics dashboards (xAPI statements are emitted to a third-party LRS).
  • AI-driven roleplay / voice coaching.
  • Native marketplace for third-party templates.

Indicative roadmap

  • Phase 1 (MVP, ~3 months) — Authoring, SCORM 1.2 export, share-link, basic AI rewrite + question generation, single-author.
  • Phase 2 (~+2 months) — SCORM 2004 + xAPI, collaboration, review & approval, document-to-course AI.
  • Phase 3 (~+3 months) — SSO/SAML, dynamic SCORM, audit log, translation, LTI 1.3.
  • Phase 4 — Roleplay/coaching, built-in LRS & analytics, marketplace.

11.Glossary & Sources

  • SCORM — Sharable Content Object Reference Model (ADL).
  • xAPI / Tin Can — Experience API for learning records.
  • cmi5 — xAPI profile for LMS-launched assignable units.
  • LRS — Learning Record Store.
  • LTI 1.3 — Learning Tools Interoperability for tool launch from an LMS.
  • WCAG 2.2 AA — Web Content Accessibility Guidelines conformance target.

Primary research sources