coursecode 0.1.7 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,21 +1,23 @@
1
1
  # CourseCode
2
2
 
3
- **AI-first course authoring: create interactive e-learning without writing code, then deploy to any LMS format.**
3
+ **Open-source, local-first course authoring with AI help no coding required to start, full code control when you need it.**
4
4
 
5
- Drop in your existing PDFs, Word docs, or PowerPoints AI converts them into complete, interactive courses. No vendor lock-in, no subscriptions. Your content, your code, deployed to any LMS.
5
+ CourseCode creates real project files you can inspect, version, and edit directly with a predictable, file-based workflow instead of a black-box GUI.
6
+
7
+ Bring your own PDFs, Word docs, or PowerPoints, use AI to accelerate authoring, and deploy to any LMS format without vendor lock-in or subscriptions.
6
8
 
7
9
  ## Start Here
8
10
 
9
- If you're creating courses (non-technical or technical), use the **[User Guide](framework/docs/USER_GUIDE.md)** as your primary documentation.
11
+ Start with the workflow that fits you:
10
12
 
11
- - **Course authors (non-technical):** Start with the User Guide for step-by-step workflows
12
- - **Course authors (technical):** The User Guide is still the best starting point, then use advanced docs as needed
13
+ - **Course authors (prefer buttons and guided setup):** Start with **[CourseCode Desktop](https://coursecodedesktop.com)** if you want the easiest path and do not want to deal with Node.js or terminal setup
14
+ - **Course authors (prefer editing files and running commands):** Start with the **[User Guide](framework/docs/USER_GUIDE.md)** in this repo for the framework workflow
13
15
  - **AI assistants:** Use the AI-focused docs in `framework/docs/` (for example `COURSE_AUTHORING_GUIDE.md` and `FRAMEWORK_GUIDE.md`)
14
16
 
15
17
  ## Features
16
18
 
17
19
  - **MCP integration**: AI connects directly to your course — previews, screenshots, linting, and testing without manual file sharing
18
- - **No code writing required**: Describe what you want and let AI build slides, interactions, and structure
20
+ - **No coding required to start**: Describe what you want and let AI help build slides, interactions, and structure
19
21
  - **Full LMS integration**: SCORM 1.2, SCORM 2004, cmi5, and LTI with complete tracking records
20
22
  - **AI-assisted authoring workflow**: Structured guides and MCP tools for faster course development
21
23
  - **Rich UI components**: Images, video, accordions, tabs, and custom sandboxed HTML/JS embeds
@@ -26,13 +28,17 @@ If you're creating courses (non-technical or technical), use the **[User Guide](
26
28
  - **Themeable design**: CSS custom properties for easy brand customization
27
29
  - **Custom endpoints**: Optional webhooks for error reporting and learning record storage
28
30
  - **Live preview**: Visual editing, status dashboard, config panels, catalog browser, and full LMS simulation with debug tools
29
- - **[CourseCode Cloud](https://www.coursecodecloud.com)**: Deploy from CLI, share preview links, download any LMS format on demand — no rebuilds
30
- - **CourseCode Desktop**: Native app for Mac and Windows with AI-assisted editing and built-in preview
31
+ - **[CourseCode Cloud](https://coursecodecloud.com)**: Deploy from CLI, share preview links, download any LMS format on demand — no rebuilds
32
+ - **[CourseCode Desktop](https://coursecodedesktop.com)**: Native app for Mac and Windows with AI-assisted editing and built-in preview
31
33
 
32
34
  ---
33
35
 
34
36
  ## Installation
35
37
 
38
+ This section is for the **CourseCode Framework CLI** (file-based workflow using Node.js and terminal commands).
39
+
40
+ If you want the easiest setup with buttons and guided steps, use **[CourseCode Desktop](https://coursecodedesktop.com)** instead.
41
+
36
42
  ### Required
37
43
 
38
44
  Install [Node.js](https://nodejs.org/) (v18 or later), then run:
@@ -65,7 +71,7 @@ Open `http://localhost:4173` to view and edit your course.
65
71
 
66
72
  The example course included with every new project is a complete guide to using CourseCode.
67
73
 
68
- **New to CourseCode?** Start with the [User Guide](framework/docs/USER_GUIDE.md). It is the primary guide for both non-technical and technical course authors.
74
+ **New to CourseCode?** If you want the easiest setup, start with **[CourseCode Desktop](https://coursecodedesktop.com)**. If you're using the framework CLI, start with the [User Guide](framework/docs/USER_GUIDE.md).
69
75
 
70
76
  ---
71
77
 
@@ -179,7 +185,7 @@ The preview server provides:
179
185
 
180
186
  When ready, deploy:
181
187
 
182
- **With [CourseCode Cloud](https://www.coursecodecloud.com)**: Push your course and get a live link. Cloud handles hosting, generates any LMS format on demand, and gives you sharable preview links with optional password protection. No ZIP files, no manual uploads.
188
+ **With [CourseCode Cloud](https://coursecodecloud.com)**: Push your course and get a live link. Cloud handles hosting, generates any LMS format on demand, and gives you sharable preview links with optional password protection. No ZIP files, no manual uploads.
183
189
 
184
190
  ```bash
185
191
  coursecode deploy
@@ -218,7 +224,7 @@ For the full command list and deployment options, see the [User Guide](framework
218
224
 
219
225
  ## UI Components
220
226
 
221
- Build engaging slides with interactive elements. No coding required your AI assistant handles the implementation.
227
+ Build engaging slides with interactive elements. Start with AI assistance, then edit the generated files directly whenever you want more control.
222
228
 
223
229
  ### Media & Widgets
224
230
 
@@ -61,7 +61,7 @@
61
61
  .interactive-image-hotspot[data-color="primary"] { --hotspot-color: var(--color-primary, #14213d); }
62
62
  .interactive-image-hotspot[data-color="secondary"] { --hotspot-color: var(--color-secondary, #f18701); }
63
63
  .interactive-image-hotspot[data-color="success"] { --hotspot-color: var(--color-success, #1d7648); }
64
- .interactive-image-hotspot[data-color="danger"] { --hotspot-color: var(--color-danger, #f35b04); }
64
+ .interactive-image-hotspot[data-color="danger"] { --hotspot-color: var(--color-danger, #c7322b); }
65
65
  .interactive-image-hotspot[data-color="warning"] { --hotspot-color: var(--color-warning, #f7b801); }
66
66
  .interactive-image-hotspot[data-color="info"] { --hotspot-color: var(--color-info, #4a6fa5); }
67
67
  .interactive-image-hotspot[data-color="light"] { --hotspot-color: var(--color-gray-50, #fafafa); }
@@ -71,7 +71,7 @@
71
71
  .interactive-image-hotspot[data-viewed-color="primary"] { --viewed-color: var(--color-primary, #14213d); }
72
72
  .interactive-image-hotspot[data-viewed-color="secondary"] { --viewed-color: var(--color-secondary, #f18701); }
73
73
  .interactive-image-hotspot[data-viewed-color="success"] { --viewed-color: var(--color-success, #1d7648); }
74
- .interactive-image-hotspot[data-viewed-color="danger"] { --viewed-color: var(--color-danger, #f35b04); }
74
+ .interactive-image-hotspot[data-viewed-color="danger"] { --viewed-color: var(--color-danger, #c7322b); }
75
75
  .interactive-image-hotspot[data-viewed-color="warning"] { --viewed-color: var(--color-warning, #f7b801); }
76
76
  .interactive-image-hotspot[data-viewed-color="info"] { --viewed-color: var(--color-info, #4a6fa5); }
77
77
  .interactive-image-hotspot[data-viewed-color="light"] { --viewed-color: var(--color-gray-50, #fafafa); }
@@ -1688,6 +1688,8 @@ environment: {
1688
1688
 
1689
1689
  Three optional, config-driven tools for outbound communication. Each activates when its `endpoint` is set — no code changes needed.
1690
1690
 
1691
+ > **CourseCode Cloud (AI note):** These `environment.*` endpoint settings are the **manual/self-hosted fallback**. On cloud-served launches, CourseCode Cloud injects `cc-*` meta tags into `index.html`, and the framework uses those values instead (override). This is intentional zero-config behavior for cloud error/data/channel wiring.
1692
+
1691
1693
  | Tool | What it sends | Transport | Example backend |
1692
1694
  |------|--------------|-----------|-----------------|
1693
1695
  | **Error Reporter** | Framework errors (`*:error` events) | POST per error (60s dedup) | `cloudflare-error-worker.js` |
@@ -1711,6 +1713,8 @@ eventBus.on('channel:message', (data) => { /* any JSON */ });
1711
1713
  All example backends are in `framework/docs/examples/`.
1712
1714
 
1713
1715
  > **Local dev:** Error and data reporters are automatically disabled during watch builds (`coursecode preview`, `coursecode dev`). Production builds (`coursecode build`) send reports normally.
1716
+ >
1717
+ > **Cloud precedence:** Cloud-injected meta tags override `course-config.js` endpoint settings for these tools. If you need custom routing/fanout, prefer doing it server-side from your cloud ingestion endpoint.
1714
1718
 
1715
1719
  ---
1716
1720
 
@@ -605,11 +605,37 @@ coursecode build --format scorm1.2-proxy
605
605
  CourseCode Cloud is the simplest deployment option. Upload your course once and the cloud handles everything:
606
606
 
607
607
  ```bash
608
+ coursecode login # First time only: sign in to CourseCode Cloud
608
609
  coursecode deploy # Build + upload to cloud
609
610
  ```
610
611
 
611
612
  **How it works:** Your course is built once as a universal package. The cloud can generate a format-specific ZIP (SCORM 1.2, SCORM 2004, cmi5, etc.) on demand — no rebuilding required. You never need to set a format in `course-config.js` for cloud-deployed courses.
612
613
 
614
+ Cloud-served launches also auto-configure runtime error reporting, data reporting, and channel relay endpoints (zero-config cloud wiring).
615
+ If you configured manual endpoints in `course-config.js` for self-hosted workflows, Cloud launches override them with cloud-injected runtime config.
616
+
617
+ **What CourseCode Cloud helps with (plain English):**
618
+ - Host your course online so learners/reviewers can access it without you manually hosting files
619
+ - Generate the LMS package you need later (SCORM/cmi5) from the same upload
620
+ - Share preview links for stakeholder review
621
+ - Manage deployment updates without rebuilding separate packages for each LMS format
622
+ - Provide cloud-managed runtime services (reporting/channel) without extra endpoint setup in your course files
623
+
624
+ **Typical Cloud workflow (CLI):**
625
+ 1. Run `coursecode login` once and sign in.
626
+ 2. Run `coursecode deploy` from your project folder.
627
+ 3. Open the CourseCode Cloud course page/dashboard link shown after deploy.
628
+ 4. Use Cloud preview links for review.
629
+ 5. Download the LMS format you need from Cloud when you're ready to deliver.
630
+
631
+ **Prefer a GUI instead of the terminal?**
632
+ - Use **CourseCode Desktop** for the same project workflow with buttons for Preview / Export / Deploy.
633
+ - Desktop docs: `coursecode-desktop/USER_GUIDE.md`
634
+
635
+ **When to use Cloud vs local export:**
636
+ - Use **local export** if you just need a ZIP to upload manually and don't need hosted previews or cloud services.
637
+ - Use **Cloud** if you want easier sharing, hosted delivery workflows, or format downloads later without rebuilding.
638
+
613
639
  **Benefits:**
614
640
  - **No format decisions** — download the right ZIP for any LMS directly from the cloud
615
641
  - **Instant updates** — redeploy and all future launches get the new version
@@ -3,6 +3,9 @@
3
3
  *
4
4
  * Content-agnostic message fan-out. Receives JSON via POST, broadcasts to all
5
5
  * connected SSE clients on the same channel. Does not parse or interpret messages.
6
+ * Self-hosted/manual relay example: on CourseCode Cloud, runtime channel endpoint/id are injected
7
+ * by the platform and override course-config.js endpoint values.
8
+ * Use this either for self-hosted relay infrastructure, or as a cloud-managed relay implementation/reference.
6
9
  *
7
10
  * SETUP:
8
11
  * 1. Create a Cloudflare account and go to Workers & Pages
@@ -3,6 +3,9 @@
3
3
  *
4
4
  * Receives batched learning records (assessments, objectives, interactions)
5
5
  * from courses and stores them for analytics or forwards to your data warehouse.
6
+ * Self-hosted/manual endpoint example: on CourseCode Cloud, runtime endpoints/API key are injected
7
+ * by the platform and override course-config.js endpoint values.
8
+ * Use this either for self-hosted telemetry, or as a downstream target if Cloud fans out records server-side.
6
9
  *
7
10
  * SETUP:
8
11
  * 1. Create a Cloudflare account and go to Workers & Pages
@@ -3,6 +3,9 @@
3
3
  *
4
4
  * Deploy this worker to receive error reports and user issue reports from courses
5
5
  * and send email alerts. The API key stays server-side, so it's never exposed in the course.
6
+ * Self-hosted/manual endpoint example: on CourseCode Cloud, runtime endpoints/API key are injected
7
+ * by the platform and override course-config.js endpoint values.
8
+ * Use this either for self-hosted telemetry, or as a downstream target if Cloud fans out reports server-side.
6
9
  *
7
10
  * SETUP:
8
11
  * 1. Create a Cloudflare account and go to Workers & Pages
package/lib/cloud.js CHANGED
@@ -22,7 +22,7 @@ const packageJson = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'packa
22
22
  // CONSTANTS
23
23
  // =============================================================================
24
24
 
25
- const DEFAULT_CLOUD_URL = 'https://www.coursecodecloud.com';
25
+ const DEFAULT_CLOUD_URL = 'https://coursecodecloud.com';
26
26
  const LOCAL_CLOUD_URL = 'http://localhost:3000';
27
27
  let useLocal = false;
28
28
  const CREDENTIALS_DIR = path.join(os.homedir(), '.coursecode');
@@ -25,7 +25,7 @@
25
25
  --color-warning-bright: color-mix(in srgb, var(--color-warning) 70%, var(--color-accent));
26
26
  --color-accent: #f7b801;
27
27
 
28
- --color-danger: #f35b04;
28
+ --color-danger: #c7322b;
29
29
  --color-danger-soft: color-mix(in srgb, var(--color-danger) 55%, var(--color-white));
30
30
  --color-black: #000;
31
31
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coursecode",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "description": "Multi-format course authoring framework with CLI tools (SCORM 2004, SCORM 1.2, cmi5, LTI 1.3)",
5
5
  "type": "module",
6
6
  "bin": {
@@ -70,6 +70,8 @@
70
70
  * Sends framework errors to a webhook for email alerts. Disabled if endpoint is missing.
71
71
  * enableUserReports adds "Report Issue" button to settings menu (default: true when endpoint set).
72
72
  * Use with Cloudflare Worker to keep API keys server-side.
73
+ * CourseCode Cloud launches override manual endpoint config via injected <meta name="cc-*"> tags
74
+ * (zero-config cloud wiring). Treat this as a self-hosted/manual fallback.
73
75
  *
74
76
  * LMS COMPATIBILITY PROFILE (environment.lmsCompatibilityMode):
75
77
  * 'auto' (default): choose profile by format (strict-scorm12 / conservative-scorm2004 / modern-http)