feat: live class sessions, CE workflow, and docs (#683)
Adds live-class session scheduling on lessons (join link, date/time, timezone) with automatic 24h and 1h reminder emails plus a calendar invite (.ics), a time-change notification with an updated invite, a teacher-authored welcome email and session invite on enrollment, and a "Notify students" quiz nudge. LMS gets an upcoming live-sessions card and Join buttons, plus a reusable live-session card component (3 states) in @cio/ui with a Storybook story. The sidebar content tree now reflects sequential progression locking like the content list, and the course-completion confetti regression is fixed. Org-based emails no longer reference ClassroomIO by name. Docs add live-class, welcome-email, and course-progression guides, expand the certificates guide (design, signatures, corrected labels), move plan-required callouts to the top, flatten how-to-guides to the docs root with redirects, and add screenshots. Includes an add-docs-image skill.
@@ -19,7 +19,7 @@ const DEFAULT_META_TITLE =
|
||||
'ClassroomIO Docs | Customer, Partner, and Employee Education';
|
||||
const DEFAULT_META_DESCRIPTION =
|
||||
'Learn how to create customer academies, partner certification programs, and employee training workflows in ClassroomIO.';
|
||||
const DEFAULT_OG_IMAGE_URL = 'https://brand.cdn.clsrio.com/og/classroomio-opengraph.png';
|
||||
const DEFAULT_OG_IMAGE_URL = 'https://brand.cdn.clsrio.com/og/classroomio-opengraph.jpg';
|
||||
const DEFAULT_OG_IMAGE_ALT = 'ClassroomIO documentation for customer, partner, and employee education';
|
||||
|
||||
export const links: LinksFunction = () => [
|
||||
@@ -60,7 +60,7 @@ export const meta: MetaFunction = () => [
|
||||
},
|
||||
{
|
||||
property: 'og:image:type',
|
||||
content: 'image/png'
|
||||
content: 'image/jpeg'
|
||||
},
|
||||
{
|
||||
property: 'og:image:width',
|
||||
@@ -74,6 +74,31 @@ export const meta: MetaFunction = () => [
|
||||
property: 'og:image:secure_url',
|
||||
content: DEFAULT_OG_IMAGE_URL
|
||||
},
|
||||
// WebP fallback for better compression on supported platforms
|
||||
{
|
||||
property: 'og:image',
|
||||
content: 'https://brand.cdn.clsrio.com/og/classroomio-opengraph.webp'
|
||||
},
|
||||
{
|
||||
property: 'og:image:alt',
|
||||
content: DEFAULT_OG_IMAGE_ALT
|
||||
},
|
||||
{
|
||||
property: 'og:image:type',
|
||||
content: 'image/webp'
|
||||
},
|
||||
{
|
||||
property: 'og:image:width',
|
||||
content: '1920'
|
||||
},
|
||||
{
|
||||
property: 'og:image:height',
|
||||
content: '1080'
|
||||
},
|
||||
{
|
||||
property: 'og:image:secure_url',
|
||||
content: 'https://brand.cdn.clsrio.com/og/classroomio-opengraph.webp'
|
||||
},
|
||||
{
|
||||
name: 'twitter:card',
|
||||
content: 'summary_large_image'
|
||||
|
||||
@@ -2,7 +2,7 @@ import { useMemo } from 'react';
|
||||
|
||||
import type * as PageTree from 'fumadocs-core/page-tree';
|
||||
import browserCollections from 'fumadocs-mdx:collections/browser';
|
||||
import { isRouteErrorResponse, useLoaderData, useRouteError } from 'react-router';
|
||||
import { isRouteErrorResponse, redirect, useLoaderData, useRouteError } from 'react-router';
|
||||
import { DocsLayout } from 'fumadocs-ui/layouts/docs';
|
||||
import { DocsBody, DocsDescription, DocsPage, DocsTitle } from 'fumadocs-ui/layouts/docs/page';
|
||||
import { HomeLayout } from 'fumadocs-ui/layouts/home';
|
||||
@@ -26,6 +26,13 @@ const clientLoader = browserCollections.docs.createClientLoader({
|
||||
|
||||
export async function loader({ params }: { params: Record<string, string | undefined> }) {
|
||||
const slug = params['*'];
|
||||
|
||||
// How-to guides were flattened to the docs root; permanently redirect the old
|
||||
// `.../how-to-guides/<page>` URLs to `.../<page>`.
|
||||
if (slug && slug.includes('how-to-guides/')) {
|
||||
throw redirect('/' + slug.replace('how-to-guides/', ''), 301);
|
||||
}
|
||||
|
||||
const slugs = slug ? slug.split('/') : ['home'];
|
||||
const { getDocsRouteData } = await import('@/lib/source.server');
|
||||
const routeData = await getDocsRouteData(slugs);
|
||||
|
||||
@@ -7,6 +7,10 @@ import { Callout } from 'fumadocs-ui/components/callout';
|
||||
|
||||
**Audience** is your org-wide student directory. It shows every person who belongs to your organization — whether they signed up themselves, accepted a course invite, or were added directly. From here you can search, sort, bulk-assign to courses, and manage pending invites.
|
||||
|
||||
<Callout type="info" title="Plan limits">
|
||||
Your plan sets a maximum audience size. When you reach the limit, a banner appears and you cannot invite more students until you upgrade or remove existing members.
|
||||
</Callout>
|
||||
|
||||
## What Audience shows
|
||||
|
||||
Audience is separate from course-level **People**. Course People shows who is enrolled in a specific course. Audience shows everyone in your organization regardless of which courses they have joined.
|
||||
@@ -42,12 +46,8 @@ For students with **Pending** status, you can:
|
||||
|
||||
Use **Import Users** to bulk-add students from a CSV file. Use **Export** to download the current audience list.
|
||||
|
||||
<Callout type="info" title="Plan limits">
|
||||
Your plan sets a maximum audience size. When you reach the limit, a banner appears and you cannot invite more students until you upgrade or remove existing members.
|
||||
</Callout>
|
||||
|
||||
## Related guides
|
||||
|
||||
- [How Course Enrollment Works](/docs/how-to-guides/course-enrollment) — how students join courses
|
||||
- [How to Invite Students](/docs/how-to-guides/invite-students) — send course-specific invites
|
||||
- [Roles and Permissions](/docs/how-to-guides/roles-and-permissions) — difference between students and team members
|
||||
- [How Course Enrollment Works](/docs/course-enrollment) — how students join courses
|
||||
- [How to Invite Students](/docs/invite-students) — send course-specific invites
|
||||
- [Roles and Permissions](/docs/roles-and-permissions) — difference between students and team members
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
---
|
||||
title: How to Create Certificates
|
||||
description: Configure certificate rules for a course, set completion requirements, and let students download their certificates.
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout';
|
||||
import { Step, Steps } from 'fumadocs-ui/components/steps';
|
||||
|
||||
Certificates recognize students for completing a course. You configure the rules on a per-course basis — how much of the course must be completed, whether a final exercise must be passed, and when certificates expire. Students can then download their certificate from the **Certificates** tab in the LMS.
|
||||
|
||||
<Callout type="warn" title="Paid plan required">
|
||||
Certificate features require a paid plan. The controls are visible on free plans but disabled.
|
||||
</Callout>
|
||||
|
||||
## Configure certificate rules
|
||||
|
||||
Open your course in the admin dashboard and go to the **Certificates** tab.
|
||||
|
||||

|
||||
|
||||
<Steps>
|
||||
<Step>
|
||||
### Enable downloadable certificates
|
||||
|
||||
Turn on **Allow students download certificate**. When this is off, no certificate is generated even if students meet the requirements.
|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
### Set a completion threshold
|
||||
|
||||
Enter a percentage in **Minimum completion (%)**. A student must complete this share of the course to qualify. Defaults to 100%.
|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
### Require a final exercise (optional)
|
||||
|
||||
Select an exercise from **Final exercise (optional)**. When set, the student must pass that specific exercise (best attempt counts) in addition to meeting the overall completion percentage. Set **Minimum score on final exercise (%)** to the minimum passing score for that exercise.
|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
### Set a deadline (optional)
|
||||
|
||||
Enter a date and time in **Certification deadline**. Students who complete the course after this date do not receive a certificate.
|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
### Add a custom email message (optional)
|
||||
|
||||
Enter text in the email message field. This message is included in the notification email sent to students when they earn their certificate.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Customize the design and add signatures
|
||||
|
||||
Set up how the certificate looks before the course goes live, so the first student to qualify gets the finished
|
||||
version. On the **Certificates** tab, click **Customize design** to open the certificate editor.
|
||||
|
||||

|
||||
|
||||
<Steps>
|
||||
<Step>
|
||||
### Pick a template and accent color
|
||||
|
||||
Choose a **Template** and an accent color to match your brand. A live preview shows the result as you change it.
|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
### Add signatories and signatures
|
||||
|
||||
Under **Signatories**, turn on **Show signatory 1** and fill in **Signatory 1 name** and **Signatory 1 role**, then
|
||||
use **Signature image** to upload a signature graphic. You can enable a second signatory the same way.
|
||||
|
||||

|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
### Set the certificate ID format (optional)
|
||||
|
||||
Set a **Certificate ID format** so every issued certificate carries a unique, verifiable reference.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
<Callout type="info">
|
||||
Finalize the design and signatures before you publish the course. Certificates are generated from the current design
|
||||
when a student qualifies, so getting it right up front means no one receives an unfinished certificate.
|
||||
</Callout>
|
||||
|
||||
## What students see
|
||||
|
||||
Once a student meets all the configured requirements, their certificate appears in the **Certificates** tab when they open the course in the LMS. They can view and download it from there.
|
||||
|
||||

|
||||
|
||||
## Related guides
|
||||
|
||||
- [Creating Your First Course](/docs/create-first-course) — course setup overview
|
||||
- [How to Create an Exercise](/docs/create-exercise) — create the exercise you reference as a final exercise
|
||||
- [How to Grade an Exercise](/docs/grade-exercise) — grade submissions before certificates are issued
|
||||
- [Control Course Progression](/docs/course-progression): require completion before the certificate unlocks
|
||||
- [Student Dashboard](/docs/student-dashboard) — where students access their certificates
|
||||
@@ -29,4 +29,4 @@ Admins can delete any question or comment. Authors can edit or delete their own
|
||||
## Related guides
|
||||
|
||||
- [Course](/docs/course) — course-level features including Newsfeed
|
||||
- [Roles and Permissions](/docs/how-to-guides/roles-and-permissions) — who can post and moderate
|
||||
- [Roles and Permissions](/docs/roles-and-permissions) — who can post and moderate
|
||||
|
||||
@@ -54,7 +54,7 @@ From **People → Add people**, you enter one or more email addresses and Classr
|
||||
|
||||
When a student opens the link, they sign in (or sign up) and click **Join course**. ClassroomIO validates the token, expiry, and usage limit before enrolling them.
|
||||
|
||||
For step-by-step instructions, see [How to Invite Students](/docs/how-to-guides/invite-students).
|
||||
For step-by-step instructions, see [How to Invite Students](/docs/invite-students).
|
||||
|
||||
<Callout type="info" title="Email invites work on closed or unpublished courses">
|
||||
**Allow New Students** can be off and email invites still work. The toggle only blocks unsolicited self-enrollment from the landing page; it does not block people you explicitly invited. Invites also work on **unpublished** courses, so you can pre-enroll students before a course goes live.
|
||||
@@ -83,7 +83,7 @@ Paid courses are useful when you want to prevent casual sign-ups on a free landi
|
||||
| Goal | Suggested setup |
|
||||
| --- | --- |
|
||||
| Anyone can join | Free course, published, **Allow New Students** on |
|
||||
| Only people you email invites to | **Allow New Students** off (optional), send [email invites](/docs/how-to-guides/invite-students) |
|
||||
| Only people you email invites to | **Allow New Students** off (optional), send [email invites](/docs/invite-students) |
|
||||
| Only people you add manually | **Allow New Students** off, use **People → Add people** to directly enroll existing students |
|
||||
| Paywall + optional invites | Set a price, send invites to buyers who should skip or supplement checkout |
|
||||
| Visible in catalog, enrollment closed | Published course, **Allow New Students** off, use invites or **People** to add members |
|
||||
@@ -181,9 +181,10 @@ Enable **Disable Signup** and **Internal Enrollment Only** in **Settings → Aut
|
||||
|
||||
## Related guides
|
||||
|
||||
- [How to Invite Students](/docs/how-to-guides/invite-students) — create, send, and revoke course invite links
|
||||
- [Roles and Permissions](/docs/how-to-guides/roles-and-permissions) — who can create courses and access the admin dashboard
|
||||
- [How to Invite Students](/docs/invite-students) — create, send, and revoke course invite links
|
||||
- [Customize the Welcome Email](/docs/welcome-email): the message students get when they enroll
|
||||
- [Roles and Permissions](/docs/roles-and-permissions) — who can create courses and access the admin dashboard
|
||||
- [Student Dashboard](/docs/student-dashboard) — Home, My Learning, Explore, and Programs
|
||||
- [Set Up a Custom Domain](/docs/how-to-guides/custom-domain) — org URLs used in enrollment links
|
||||
- [Create a Course Landing Page](/docs/how-to-guides/course-landingpage) — pricing, publish state, and what prospects see before enrolling
|
||||
- [Creating Your First Course](/docs/how-to-guides/create-first-course) — create and publish a course
|
||||
- [Set Up a Custom Domain](/docs/custom-domain) — org URLs used in enrollment links
|
||||
- [Create a Course Landing Page](/docs/course-landingpage) — pricing, publish state, and what prospects see before enrolling
|
||||
- [Creating Your First Course](/docs/create-first-course) — create and publish a course
|
||||
@@ -6,7 +6,7 @@ description: Build and edit a course landing page, including pricing, hero butto
|
||||
import { Callout } from 'fumadocs-ui/components/callout';
|
||||
import { Step, Steps } from 'fumadocs-ui/components/steps';
|
||||
|
||||
A **course landing page** is the public page for one course. Prospects read the description, see pricing, and click **Enroll** if enrollment is open. This is separate from your [academy landing page](/docs/how-to-guides/org-landing-page), which is the academy homepage.
|
||||
A **course landing page** is the public page for one course. Prospects read the description, see pricing, and click **Enroll** if enrollment is open. This is separate from your [academy landing page](/docs/org-landing-page), which is the academy homepage.
|
||||
|
||||
## Open the editor
|
||||
|
||||
@@ -47,7 +47,7 @@ Use the preview control next to **Save** to see the page. Confirm behavior on th
|
||||
| **Instructors** | Instructor cards |
|
||||
| **Footer** | Supporting links and copy |
|
||||
|
||||
Hero and pricing interact with [course enrollment](/docs/how-to-guides/course-enrollment): a free course with **Allow New Students** on shows an open **Enroll** button; paid or closed courses route visitors through payment or invites.
|
||||
Hero and pricing interact with [course enrollment](/docs/course-enrollment): a free course with **Allow New Students** on shows an open **Enroll** button; paid or closed courses route visitors through payment or invites.
|
||||
|
||||
## Pricing and currency
|
||||
|
||||
@@ -72,11 +72,11 @@ Landing page content can be ready before you open enrollment:
|
||||
| **Allow New Students** | Public **Enroll** works (for free courses) |
|
||||
| **Price > 0** | Enrollment requires payment or a valid invite |
|
||||
|
||||
See [How Course Enrollment Works](/docs/how-to-guides/course-enrollment) for closed cohorts and invite-only access.
|
||||
See [How Course Enrollment Works](/docs/course-enrollment) for closed cohorts and invite-only access.
|
||||
|
||||
## Preview vs live site
|
||||
|
||||
The in-app preview shows layout and copy. Test **Enroll**, external links, and payment on your live academy URL (subdomain or [custom domain](/docs/how-to-guides/custom-domain)) before sharing publicly.
|
||||
The in-app preview shows layout and copy. Test **Enroll**, external links, and payment on your live academy URL (subdomain or [custom domain](/docs/custom-domain)) before sharing publicly.
|
||||
|
||||
<Callout type="warn" title="Org landing page preview">
|
||||
The org homepage preview in **Settings → Landing Page** disables link clicks. Course landing previews should still be checked on the live site for enrollment flows.
|
||||
@@ -88,8 +88,8 @@ After a successful enroll, students land in the [Student Dashboard](/docs/studen
|
||||
|
||||
## Related guides
|
||||
|
||||
- [How Course Enrollment Works](/docs/how-to-guides/course-enrollment) — who can join and how Explore relates to publish settings
|
||||
- [How to Invite Students](/docs/how-to-guides/invite-students) — invite links when public enroll is off
|
||||
- [Course Types](/docs/how-to-guides/course-types) — how type affects public vs LMS access
|
||||
- [Set Up a Custom Domain](/docs/how-to-guides/custom-domain) — host for your landing page URL
|
||||
- [Creating Your First Course](/docs/how-to-guides/create-first-course)
|
||||
- [How Course Enrollment Works](/docs/course-enrollment) — who can join and how Explore relates to publish settings
|
||||
- [How to Invite Students](/docs/invite-students) — invite links when public enroll is off
|
||||
- [Course Types](/docs/course-types) — how type affects public vs LMS access
|
||||
- [Set Up a Custom Domain](/docs/custom-domain) — host for your landing page URL
|
||||
- [Creating Your First Course](/docs/create-first-course)
|
||||
@@ -0,0 +1,103 @@
|
||||
---
|
||||
title: Control Course Progression
|
||||
description: Require students to move through a course in order, with lessons and exercises that only complete when your rules are met.
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout';
|
||||
import { Step, Steps } from 'fumadocs-ui/components/steps';
|
||||
|
||||
By default students can open any unlocked item in any order. With **sequential** progression they must finish each item
|
||||
before the next one unlocks, and you decide what "finished" means for every lesson and exercise. This is the backbone of
|
||||
a structured training flow: watch the video, pass the quiz, earn the certificate.
|
||||
|
||||
## Choose a progression mode
|
||||
|
||||
In the course's **Settings** tab, find the **Student progression** section and pick one:
|
||||
|
||||
| Mode | Behavior |
|
||||
| --- | --- |
|
||||
| **Free** | Students open any unlocked item in any order and mark lessons complete themselves. |
|
||||
| **Sequential** | The next item stays locked until the current (or previous) item is complete. |
|
||||
|
||||

|
||||
|
||||
<Callout type="info">
|
||||
If a course is just a video and a quiz, turn off **Content grouping** in the same settings so the content list is a
|
||||
flat list instead of grouped sections.
|
||||
</Callout>
|
||||
|
||||
## Set how a lesson completes
|
||||
|
||||
Open a lesson, go to its **Settings** tab, and choose a **Completion rule**:
|
||||
|
||||
| Rule | Completes when |
|
||||
| --- | --- |
|
||||
| **Manual** | The student clicks to mark the lesson complete. |
|
||||
| **Video watch** | The student watches the selected videos. Set the **Watch threshold (%)** (for example 95%). |
|
||||
| **None** | The lesson never blocks progression. |
|
||||
|
||||

|
||||
|
||||
<Callout type="warn">
|
||||
**Video watch** only enforces uploaded videos. While the rule is active the player blocks skipping ahead and pauses when
|
||||
the student switches tabs, so the watch percentage reflects real viewing. The lesson completes once the threshold is reached.
|
||||
</Callout>
|
||||
|
||||
## Set how an exercise completes
|
||||
|
||||
Open an exercise, go to its **Settings** tab, and choose a **Completion rule**:
|
||||
|
||||
- **Submitted**: the exercise completes as soon as the student submits any answer.
|
||||
- **Passed**: the exercise completes only when the student's score meets the **Pass threshold (%)** you set.
|
||||
|
||||
Use **Passed** when an exercise must be cleared before the course can continue or a certificate can be issued.
|
||||
|
||||
## Gate the certificate
|
||||
|
||||
In the course's **Certificates** settings, turn on certificate download and set **Minimum completion (%)** (for example
|
||||
100%). The certificate unlocks only after the student completes that share of the course, which, under sequential
|
||||
progression, means they have watched the videos and finished the exercises in order.
|
||||
|
||||
See [How to Create Certificates](/docs/certificates) for templates, signatures, and the certificate ID.
|
||||
|
||||
## What students see
|
||||
|
||||
<Steps>
|
||||
|
||||
<Step>
|
||||
### Locked items
|
||||
|
||||
Under **Sequential** progression, the next item stays locked until the student completes the one before it. For example, a
|
||||
quiz that follows a lesson stays locked until that lesson is complete. In the course content list a locked item is greyed
|
||||
out with a lock icon and cannot be opened; it unlocks automatically once the previous required item is done. If a student
|
||||
opens a not-yet-available item directly, they see a **Complete previous content first** notice.
|
||||
|
||||

|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
### A video they cannot skip
|
||||
|
||||
On a **Video watch** lesson, the progress percentage climbs as they watch. Trying to jump ahead shows a "you cannot skip
|
||||
ahead" notice, and the video pauses if they leave the tab.
|
||||
|
||||

|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
### Completion and the certificate
|
||||
|
||||
Reaching the watch threshold marks the lesson complete and unlocks the next item. After they finish the final
|
||||
requirement, the course is complete and they can view and download their certificate.
|
||||
|
||||

|
||||
</Step>
|
||||
|
||||
</Steps>
|
||||
|
||||
## Related guides
|
||||
|
||||
- [Course Types](/docs/course-types): Self-paced, Live class, Compliance, and Public
|
||||
- [How to Create an Exercise](/docs/create-exercise): build the quiz that gates progression
|
||||
- [How to Create Certificates](/docs/certificates): what students earn at the end
|
||||
- [Run a Live Class](/docs/live-class): schedule live sessions alongside on-demand content
|
||||
@@ -26,7 +26,8 @@ Use self-paced for standard training, onboarding content, and evergreen material
|
||||
|
||||
**Live class** adds instructor grading workflows. Admins and tutors see a **Marks** section in the course sidebar to review and grade student work.
|
||||
|
||||
Use live class when an instructor scores assignments and you need a dedicated grading view.
|
||||
Use live class when an instructor scores assignments and you need a dedicated grading view. To schedule sessions with a
|
||||
join link, automatic reminders, and a calendar invite, see [Run a Live Class](/docs/live-class).
|
||||
|
||||
## Compliance
|
||||
|
||||
@@ -68,6 +69,8 @@ Open the course sidebar after changing type to confirm the right tools are avail
|
||||
## Related guides
|
||||
|
||||
- [Course](/docs/course) — course overview and admin areas
|
||||
- [How Course Enrollment Works](/docs/how-to-guides/course-enrollment) — enrollment (not used for Public in the same way)
|
||||
- [Run a Live Class](/docs/live-class): schedule sessions, reminders, and calendar invites
|
||||
- [Control Course Progression](/docs/course-progression): sequential learning and completion rules
|
||||
- [How Course Enrollment Works](/docs/course-enrollment) — enrollment (not used for Public in the same way)
|
||||
- [Student Dashboard](/docs/student-dashboard) — student LMS views
|
||||
- [Creating Your First Course](/docs/how-to-guides/create-first-course)
|
||||
- [Creating Your First Course](/docs/create-first-course)
|
||||
@@ -5,7 +5,7 @@ description: Overview of courses in ClassroomIO — lifecycle, settings, admin a
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout';
|
||||
|
||||
A **course** in ClassroomIO is a container for lessons, exercises, people, and settings. Students enroll into a course to access its content in the LMS. This page summarizes how courses work for admins. For step-by-step setup, start with [Creating Your First Course](/docs/how-to-guides/create-first-course).
|
||||
A **course** in ClassroomIO is a container for lessons, exercises, people, and settings. Students enroll into a course to access its content in the LMS. This page summarizes how courses work for admins. For step-by-step setup, start with [Creating Your First Course](/docs/create-first-course).
|
||||
|
||||
## Course lifecycle
|
||||
|
||||
@@ -15,7 +15,7 @@ A **course** in ClassroomIO is a container for lessons, exercises, people, and s
|
||||
| **Published** | Live on your academy; visible in Explore and on the public landing page |
|
||||
| **Deleted** | Soft-deleted; no longer appears anywhere in the app |
|
||||
|
||||
Publishing makes a course discoverable. Combine publish state with **Allow New Students**, price, and invites to control who can actually join. See [How Course Enrollment Works](/docs/how-to-guides/course-enrollment).
|
||||
Publishing makes a course discoverable. Combine publish state with **Allow New Students**, price, and invites to control who can actually join. See [How Course Enrollment Works](/docs/course-enrollment).
|
||||
|
||||
## Key settings
|
||||
|
||||
@@ -27,7 +27,7 @@ Publishing makes a course discoverable. Combine publish state with **Allow New S
|
||||
| **Course type** | Course **Settings** | Changes nav, compliance, and public access behavior |
|
||||
|
||||
<Callout type="info" title="Course type changes more than a label">
|
||||
Self-paced, Live class, Compliance, and Public types change what admins and students see in the app. See [Course Types](/docs/how-to-guides/course-types) for when to use each.
|
||||
Self-paced, Live class, Compliance, and Public types change what admins and students see in the app. See [Course Types](/docs/course-types) for when to use each.
|
||||
</Callout>
|
||||
|
||||
## Admin areas inside a course
|
||||
@@ -47,7 +47,7 @@ When you open a course from the **Courses** list, the sidebar gives you:
|
||||
|
||||
The **People** tab lists everyone in the course group. Members appear when they enroll or when you add them from **Add people**. Email-only invites show as **Pending** until the student signs in.
|
||||
|
||||
Enrollment paths (public, invite link, admin assignment, paid) are documented in [How Course Enrollment Works](/docs/how-to-guides/course-enrollment). For sending invites, see [How to Invite Students](/docs/how-to-guides/invite-students).
|
||||
Enrollment paths (public, invite link, admin assignment, paid) are documented in [How Course Enrollment Works](/docs/course-enrollment). For sending invites, see [How to Invite Students](/docs/invite-students).
|
||||
|
||||
## What students see
|
||||
|
||||
@@ -55,10 +55,10 @@ After enrolling, students open the course from **Home** or **My Learning** in th
|
||||
|
||||
## Related guides
|
||||
|
||||
- [Creating Your First Course](/docs/how-to-guides/create-first-course)
|
||||
- [Course Types](/docs/how-to-guides/course-types)
|
||||
- [How Course Enrollment Works](/docs/how-to-guides/course-enrollment)
|
||||
- [How to Invite Students](/docs/how-to-guides/invite-students)
|
||||
- [Create a Course Landing Page](/docs/how-to-guides/course-landingpage)
|
||||
- [Creating Your First Course](/docs/create-first-course)
|
||||
- [Course Types](/docs/course-types)
|
||||
- [How Course Enrollment Works](/docs/course-enrollment)
|
||||
- [How to Invite Students](/docs/invite-students)
|
||||
- [Create a Course Landing Page](/docs/course-landingpage)
|
||||
- [Student Dashboard](/docs/student-dashboard)
|
||||
|
||||
@@ -3,9 +3,10 @@ title: How to Create an Exercise
|
||||
description: Learn how to create exercises in ClassroomIO.
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout';
|
||||
import { Step, Steps } from 'fumadocs-ui/components/steps';
|
||||
|
||||
In ClassroomIO, exercises are a great way to assess students' understanding through practice activities. Once you've [set up your organization](/docs/how-to-guides/customize-organization), [created a course](/docs/how-to-guides/create-first-course), and [added a lesson](/docs/how-to-guides/create-first-course#adding-lessons), you can start creating exercises. Follow the process below to create your first exercise.
|
||||
In ClassroomIO, exercises are a great way to assess students' understanding through practice activities. Once you've [set up your organization](/docs/customize-organization), [created a course](/docs/create-first-course), and [added a lesson](/docs/create-first-course#adding-lessons), you can start creating exercises. Follow the process below to create your first exercise.
|
||||
|
||||
<Steps>
|
||||
<Step>
|
||||
@@ -105,3 +106,24 @@ You've successfully created your first exercise and it is now accessible to stud
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Notify students about a quiz
|
||||
|
||||
When a quiz is ready, you can email every enrolled student a one-click link to take it. On the exercise page, open the
|
||||
**⋯** menu at the top and choose **Notify students**.
|
||||
|
||||

|
||||
|
||||
The send runs in the background. A progress indicator appears while emails go out, then confirms when it is done. You can
|
||||
run it again at any time to nudge students who have not taken the quiz yet.
|
||||
|
||||
<Callout type="info">
|
||||
Notifying students is handy after a live session: schedule the quiz, then send the notification so attendees know to
|
||||
complete it. See [Run a Live Class](/docs/live-class).
|
||||
</Callout>
|
||||
|
||||
## Related guides
|
||||
|
||||
- [How to Grade an Exercise](/docs/grade-exercise): review and score submissions
|
||||
- [Control Course Progression](/docs/course-progression): require a passing score before the next item unlocks
|
||||
- [How to Create Certificates](/docs/certificates): issue certificates on completion
|
||||
@@ -61,7 +61,7 @@ Open your custom domain in a browser. Sign in, open a course landing page, and c
|
||||
| Org site landing page and course catalog | Yes |
|
||||
| Organization team invite (some flows) | May still use platform URL until fully aligned |
|
||||
|
||||
Course invites are documented in [How to Invite Students](/docs/how-to-guides/invite-students). Those links should point at your academy, not `app.classroomio.com`, when your domain is verified.
|
||||
Course invites are documented in [How to Invite Students](/docs/invite-students). Those links should point at your academy, not `app.classroomio.com`, when your domain is verified.
|
||||
|
||||
## Email sender address
|
||||
|
||||
@@ -73,8 +73,8 @@ Students should sign in on your academy so sessions and redirects stay on your a
|
||||
|
||||
## Related guides
|
||||
|
||||
- [Customize Your Organization](/docs/how-to-guides/customize-organization) — org profile and default subdomain
|
||||
- [Customize Your Academy Landing Page](/docs/how-to-guides/org-landing-page) — public homepage on your domain
|
||||
- [How to Invite Students](/docs/how-to-guides/invite-students) — enrollment links on your academy
|
||||
- [How Course Enrollment Works](/docs/how-to-guides/course-enrollment) — enrollment paths and org signup
|
||||
- [Customize Your Organization](/docs/customize-organization) — org profile and default subdomain
|
||||
- [Customize Your Academy Landing Page](/docs/org-landing-page) — public homepage on your domain
|
||||
- [How to Invite Students](/docs/invite-students) — enrollment links on your academy
|
||||
- [How Course Enrollment Works](/docs/course-enrollment) — enrollment paths and org signup
|
||||
- [Organization](/docs/organization) — org settings overview
|
||||
@@ -91,9 +91,9 @@ Click on Update Domain to save the changes.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
For full custom domain setup (DNS, verification, which links use your domain), see [Set Up a Custom Domain](/docs/how-to-guides/custom-domain).
|
||||
For full custom domain setup (DNS, verification, which links use your domain), see [Set Up a Custom Domain](/docs/custom-domain).
|
||||
|
||||
For the public homepage (hero, nav, footer), see [Customize Your Academy Landing Page](/docs/how-to-guides/org-landing-page).
|
||||
For the public homepage (hero, nav, footer), see [Customize Your Academy Landing Page](/docs/org-landing-page).
|
||||
|
||||
## Set Brand Color
|
||||
|
||||
@@ -102,6 +102,6 @@ We understand that every organization has a preferred color that suits their bra
|
||||
## Related guides
|
||||
|
||||
- [Organization](/docs/organization) — org settings overview
|
||||
- [Customize Your Academy Landing Page](/docs/how-to-guides/org-landing-page) — public homepage
|
||||
- [Set Up a Custom Domain](/docs/how-to-guides/custom-domain) — your own hostname
|
||||
- [Roles and Permissions](/docs/how-to-guides/roles-and-permissions) — team access
|
||||
- [Customize Your Academy Landing Page](/docs/org-landing-page) — public homepage
|
||||
- [Set Up a Custom Domain](/docs/custom-domain) — your own hostname
|
||||
- [Roles and Permissions](/docs/roles-and-permissions) — team access
|
||||
@@ -66,6 +66,6 @@ Click **Grade with AI** inside the grading modal to get an AI-suggested score an
|
||||
|
||||
## Related guides
|
||||
|
||||
- [How to Create an Exercise](/docs/how-to-guides/create-exercise) — create and configure exercises
|
||||
- [How to Create Certificates](/docs/how-to-guides/certificates) — certificates that depend on exercise scores
|
||||
- [How to Create an Exercise](/docs/create-exercise) — create and configure exercises
|
||||
- [How to Create Certificates](/docs/certificates) — certificates that depend on exercise scores
|
||||
- [Course](/docs/course) — course overview including the Submissions tab
|
||||
@@ -5,7 +5,7 @@ description: Learn how to create customer academies, partner certification progr
|
||||
|
||||
<img
|
||||
alt="ClassroomIO documentation for customer, partner, and employee education"
|
||||
src="https://brand.cdn.clsrio.com/og/classroomio-opengraph.png"
|
||||
src="https://brand.cdn.clsrio.com/og/classroomio-opengraph.jpg"
|
||||
/>
|
||||
|
||||
Welcome to the ClassroomIO documentation—your comprehensive guide to streamlining training for everyone. Our all-in-one platform empowers bootcamps, educators, and businesses to manage training programs easily. Run multiple classes and cohorts from a single UI with our mobile-first application, ensuring students can access all published content from any device.
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
---
|
||||
title: How to Create Certificates
|
||||
description: Configure certificate rules for a course, set completion requirements, and let students download their certificates.
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout';
|
||||
import { Step, Steps } from 'fumadocs-ui/components/steps';
|
||||
|
||||
Certificates recognize students for completing a course. You configure the rules on a per-course basis — what score is required, whether a final exercise must be passed, and when certificates expire. Students can then download their certificate from the **Certificates** tab in the LMS.
|
||||
|
||||
## Configure certificate rules
|
||||
|
||||
Open your course in the admin dashboard and go to the **Certificates** tab.
|
||||
|
||||
<Steps>
|
||||
<Step>
|
||||
### Enable downloadable certificates
|
||||
|
||||
Turn on **Allow students to download their certificate**. When this is off, no certificate is generated even if students meet the requirements.
|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
### Set a completion threshold
|
||||
|
||||
Enter a percentage in **Minimum score to receive certificate**. A student must reach this overall course score to qualify. Defaults to 100%.
|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
### Require a final exercise (optional)
|
||||
|
||||
Select an exercise from **Final exercise**. When set, the student must pass that specific exercise in addition to meeting the overall threshold. Set **Minimum exercise score** to the minimum passing score for that exercise.
|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
### Set a deadline (optional)
|
||||
|
||||
Enter a date and time in **Certificate deadline**. Students who complete the course after this date do not receive a certificate.
|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
### Add a custom email message (optional)
|
||||
|
||||
Enter text in the email message field. This message is included in the notification email sent to students when they earn their certificate.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## What students see
|
||||
|
||||
Once a student meets all the configured requirements, their certificate appears in the **Certificates** tab when they open the course in the LMS. They can view and download it from there.
|
||||
|
||||
<Callout type="info" title="Issuing certificates manually">
|
||||
Admins can also issue a certificate to a specific student manually using the **Issue Certificate** button at the top of the Certificates tab, regardless of whether the student met the automatic requirements.
|
||||
</Callout>
|
||||
|
||||
<Callout type="warn" title="Paid plan required">
|
||||
Certificate features require a paid plan. The controls are visible on free plans but disabled.
|
||||
</Callout>
|
||||
|
||||
## Related guides
|
||||
|
||||
- [Creating Your First Course](/docs/how-to-guides/create-first-course) — course setup overview
|
||||
- [How to Create an Exercise](/docs/how-to-guides/create-exercise) — create the exercise you reference as a final exercise
|
||||
- [How to Grade an Exercise](/docs/how-to-guides/grade-exercise) — grade submissions before certificates are issued
|
||||
- [Student Dashboard](/docs/student-dashboard) — where students access their certificates
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
"create-first-course": "Creating Your First Course",
|
||||
"create-exercise": "How to Create an Exercise",
|
||||
"customize-organization": "Customize Your Organization",
|
||||
"course-landingpage": "Create a Course Landing Page",
|
||||
"course-enrollment": "How Course Enrollment Works",
|
||||
"course-types": "Course Types",
|
||||
"certificates": "How to Create Certificates",
|
||||
"grade-exercise": "How to Grade an Exercise",
|
||||
"invite-students": "How to Invite Students",
|
||||
"invite-team-member": "Inviting a Team Member",
|
||||
"take-attendance": "How to Take Attendance",
|
||||
"use-math-in-editor": "Use Math in the Editor",
|
||||
"roles-and-permissions": "Roles and Permissions",
|
||||
"org-landing-page": "Customize Your Academy Landing Page",
|
||||
"custom-domain": "Set Up a Custom Domain"
|
||||
}
|
||||
@@ -7,7 +7,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps';
|
||||
|
||||
Course invitations in ClassroomIO let you add students to a course by sending them a secure enrollment link by email. Each invite is unique and can have its own expiry and usage limits.
|
||||
|
||||
For a full overview of enrollment paths (public enroll, invites, admin assignment, and paid access), see [How Course Enrollment Works](/docs/how-to-guides/course-enrollment).
|
||||
For a full overview of enrollment paths (public enroll, invites, admin assignment, and paid access), see [How Course Enrollment Works](/docs/course-enrollment).
|
||||
|
||||
## How course invitations work
|
||||
|
||||
@@ -80,7 +80,7 @@ Revoking does not remove students who have already joined; it only invalidates t
|
||||
|
||||
## Related guides
|
||||
|
||||
- [How Course Enrollment Works](/docs/how-to-guides/course-enrollment) — enrollment paths, Allow New Students, and Explore visibility
|
||||
- [Roles and Permissions](/docs/how-to-guides/roles-and-permissions) — who can manage courses vs learn in the LMS
|
||||
- [Set Up a Custom Domain](/docs/how-to-guides/custom-domain) — which host appears in invite links
|
||||
- [How Course Enrollment Works](/docs/course-enrollment) — enrollment paths, Allow New Students, and Explore visibility
|
||||
- [Roles and Permissions](/docs/roles-and-permissions) — who can manage courses vs learn in the LMS
|
||||
- [Set Up a Custom Domain](/docs/custom-domain) — which host appears in invite links
|
||||
- [Student Dashboard](/docs/student-dashboard) — where students land after joining
|
||||
@@ -8,6 +8,10 @@ import { Step, Steps } from 'fumadocs-ui/components/steps';
|
||||
|
||||
Team members are people who help you run your organization — **Admins** have full access, **Tutors** can manage the courses they are assigned to. Both are different from students, who use the LMS and cannot access the admin dashboard.
|
||||
|
||||
<Callout type="warn" title="Paid plan required">
|
||||
Email invites and link invites for team members require a paid plan.
|
||||
</Callout>
|
||||
|
||||
To invite a team member, go to **Settings → Organization**, then click **Manage Team**.
|
||||
|
||||
## Invite by email
|
||||
@@ -64,12 +68,8 @@ Toggle the link off to stop accepting new members through it. You can re-enable
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
<Callout type="warn" title="Paid plan required">
|
||||
Email invites and link invites for team members require a paid plan.
|
||||
</Callout>
|
||||
|
||||
## Related guides
|
||||
|
||||
- [Roles and Permissions](/docs/how-to-guides/roles-and-permissions) — what admins and tutors can do
|
||||
- [How to Invite Students](/docs/how-to-guides/invite-students) — invite students to a specific course (separate from team invites)
|
||||
- [Roles and Permissions](/docs/roles-and-permissions) — what admins and tutors can do
|
||||
- [How to Invite Students](/docs/invite-students) — invite students to a specific course (separate from team invites)
|
||||
- [Organization](/docs/organization) — org settings overview
|
||||
@@ -0,0 +1,112 @@
|
||||
---
|
||||
title: Run a Live Class
|
||||
description: Schedule a live session on a Live class course, set the join link, time, and timezone, and let ClassroomIO remind students and send a calendar invite.
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout';
|
||||
import { Step, Steps } from 'fumadocs-ui/components/steps';
|
||||
|
||||
A **Live class** course runs around scheduled sessions you host on your own video tool (Zoom, Google Meet, Teams).
|
||||
ClassroomIO handles everything around the session: the join link, the schedule, automatic reminders, a calendar invite,
|
||||
and a one-click way for students to join.
|
||||
|
||||
## Set the course type
|
||||
|
||||
Set the course type to **Live class** in the course's **Settings** tab. See [Course Types](/docs/course-types)
|
||||
for what each type does.
|
||||
|
||||
## Schedule the session
|
||||
|
||||
Each session lives on a lesson. Create the lesson for what you'll run live, then open its **Settings** tab and fill in
|
||||
the **Live session** section.
|
||||
|
||||

|
||||
|
||||
<Steps>
|
||||
|
||||
<Step>
|
||||
### Create a lesson to run live
|
||||
|
||||
Add a lesson to the course for the session you'll hold live (for example, the webinar topic). See
|
||||
[Creating Your First Course](/docs/create-first-course#adding-lessons) for adding lessons.
|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
### Add the join link
|
||||
|
||||
In **Join link (Zoom, Meet, etc.)**, paste the meeting URL students will use to join.
|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
### Set the date and time
|
||||
|
||||
Pick the **Date and time** of the session.
|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
### Choose the timezone
|
||||
|
||||
Set the **Timezone** for the session. Reminders and the calendar invite display the time in this timezone, so students
|
||||
always see when the session starts in the zone you intend, regardless of where you or they are located.
|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
### Save the session
|
||||
|
||||
Click **Save session**.
|
||||
</Step>
|
||||
|
||||
</Steps>
|
||||
|
||||
## What students get
|
||||
|
||||
Once a session is scheduled, enrolled students automatically receive:
|
||||
|
||||
- **A calendar invite when they enroll.** The welcome email for a Live class course attaches a calendar invite (`.ics`)
|
||||
for the next session, so students can add it to their calendar right away.
|
||||
- **Reminder emails.** One about 24 hours before and one about 1 hour before the session, each with the join link. The
|
||||
24-hour reminder also includes the calendar invite. Once added, the calendar reminds the student on its own.
|
||||
- **A Join session button.** On their **LMS Home**, students see a **Join session** button on the course while a session
|
||||
is upcoming, which opens the join link directly.
|
||||
|
||||

|
||||
|
||||
In the course content sidebar, a live-session lesson shows a red live (broadcast) icon, so you and your students can spot
|
||||
it at a glance.
|
||||
|
||||

|
||||
|
||||
<Callout type="info">
|
||||
Reminders are sent to enrolled students only. The times shown in emails and the calendar invite use the **Timezone** you
|
||||
set on the session. The welcome email, reminders, and updates all reference the same calendar event, so students never
|
||||
get a duplicate on their calendar.
|
||||
</Callout>
|
||||
|
||||
## Change the session time
|
||||
|
||||
If you change the **Date and time**, **Join link**, or **Timezone** of a session that students are already enrolled in,
|
||||
saving asks you to confirm with **Notify students of the change?**. Choosing **Save and notify** emails every enrolled
|
||||
student about the update with a fresh calendar invite that updates the existing event on their calendar instead of
|
||||
creating a duplicate.
|
||||
|
||||

|
||||
|
||||
<Callout type="warn">
|
||||
**Save and notify** emails all enrolled students. Use it when the time or link actually changed. For a first-time
|
||||
schedule there is nothing to notify, so it saves without sending.
|
||||
</Callout>
|
||||
|
||||
## After the session
|
||||
|
||||
Pair the session with a post-session quiz and a certificate to round out the workflow:
|
||||
|
||||
- Add a graded quiz with [How to Create an Exercise](/docs/create-exercise), then use **Notify students**
|
||||
to send everyone a link to take it.
|
||||
- Issue completion certificates with [How to Create Certificates](/docs/certificates).
|
||||
|
||||
## Related guides
|
||||
|
||||
- [Course Types](/docs/course-types): what Live class and the other types do
|
||||
- [How to Create an Exercise](/docs/create-exercise): add a post-session quiz
|
||||
- [How to Create Certificates](/docs/certificates): recognize completion
|
||||
- [How Course Enrollment Works](/docs/course-enrollment): how students join the course
|
||||
@@ -18,8 +18,37 @@
|
||||
"student-dashboard",
|
||||
"enterprise-sso",
|
||||
|
||||
"---Guides---",
|
||||
"how-to-guides",
|
||||
"---Get started---",
|
||||
"create-first-course",
|
||||
|
||||
"---Build a course---",
|
||||
"course-types",
|
||||
"create-exercise",
|
||||
"grade-exercise",
|
||||
"course-progression",
|
||||
"use-math-in-editor",
|
||||
"certificates",
|
||||
|
||||
"---Live classes---",
|
||||
"live-class",
|
||||
"take-attendance",
|
||||
|
||||
"---Enrollment & students---",
|
||||
"course-enrollment",
|
||||
"welcome-email",
|
||||
"invite-students",
|
||||
|
||||
"---Publish your academy---",
|
||||
"course-landingpage",
|
||||
"org-landing-page",
|
||||
"custom-domain",
|
||||
|
||||
"---Organization & team---",
|
||||
"customize-organization",
|
||||
"invite-team-member",
|
||||
"roles-and-permissions",
|
||||
|
||||
"---Contributor guides---",
|
||||
"contributor-guides"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -8,7 +8,11 @@ import { Step, Steps } from 'fumadocs-ui/components/steps';
|
||||
|
||||
Your **academy landing page** is the public homepage for your academy (for example `https://ciodevs.myclassroomio.com` or your custom domain). Students and prospects see it before they sign in. This guide covers the editor in **Settings → Landing Page**.
|
||||
|
||||
For org profile and subdomain setup, see [Customize Your Organization](/docs/how-to-guides/customize-organization) and [Set Up a Custom Domain](/docs/how-to-guides/custom-domain).
|
||||
For org profile and subdomain setup, see [Customize Your Organization](/docs/customize-organization) and [Set Up a Custom Domain](/docs/custom-domain).
|
||||
|
||||
<Callout type="warn" title="Paid plan required">
|
||||
Some landing themes require a paid plan. If the customize option is locked, upgrade or pick a theme included in your plan.
|
||||
</Callout>
|
||||
|
||||
## Open the landing page settings
|
||||
|
||||
@@ -46,7 +50,7 @@ The hero section supports a primary and optional secondary action.
|
||||
| **Primary** (e.g. Get Started, Start Learning) | Often points to `/login` | Label and destination URL |
|
||||
| **Secondary** (e.g. View Programs) | Optional second CTA | Label and destination URL |
|
||||
|
||||
Use your academy paths (for example `/login` or `/courses`) so visitors stay on your academy domain. After you verify a [custom domain](/docs/how-to-guides/custom-domain), test buttons on the live site, not only in preview.
|
||||
Use your academy paths (for example `/login` or `/courses`) so visitors stay on your academy domain. After you verify a [custom domain](/docs/custom-domain), test buttons on the live site, not only in preview.
|
||||
|
||||
<Callout type="warn" title="Preview disables link clicks">
|
||||
The thumbnail preview on the Landing Page settings screen renders with links disabled. Use **Open Academy** or open your live academy URL to test buttons like **Get Started** and **View Programs**.
|
||||
@@ -58,7 +62,7 @@ The footer editor lets you set brand text, link columns, social links, and botto
|
||||
|
||||
## Themes
|
||||
|
||||
ClassroomIO ships multiple landing themes. Some themes require a paid plan. If customize is locked, upgrade or pick a theme included in your plan.
|
||||
ClassroomIO ships multiple landing themes. Pick the one that fits your brand from the editor.
|
||||
|
||||
## Preview vs live site
|
||||
|
||||
@@ -71,7 +75,7 @@ Always validate hero and footer links on the live site before sharing the URL ex
|
||||
|
||||
## Related guides
|
||||
|
||||
- [Customize Your Organization](/docs/how-to-guides/customize-organization) — org name, logo, brand color
|
||||
- [Set Up a Custom Domain](/docs/how-to-guides/custom-domain) — use your own domain on the landing page
|
||||
- [Create a Course Landing Page](/docs/how-to-guides/course-landingpage) — per-course public pages (separate from the org homepage)
|
||||
- [Customize Your Organization](/docs/customize-organization) — org name, logo, brand color
|
||||
- [Set Up a Custom Domain](/docs/custom-domain) — use your own domain on the landing page
|
||||
- [Create a Course Landing Page](/docs/course-landingpage) — per-course public pages (separate from the org homepage)
|
||||
- [Student Dashboard](/docs/student-dashboard) — where students go after signing in
|
||||
@@ -11,15 +11,15 @@ An **organization** in ClassroomIO holds courses, people, branding, and your aca
|
||||
|
||||
| Area | Where | Guide |
|
||||
| --- | --- | --- |
|
||||
| Name, logo, brand color | **Settings → Organization** | [Customize Your Organization](/docs/how-to-guides/customize-organization) |
|
||||
| Public homepage | **Settings → Landing Page** | [Customize Your Academy Landing Page](/docs/how-to-guides/org-landing-page) |
|
||||
| Custom domain | **Settings → Organization** | [Set Up a Custom Domain](/docs/how-to-guides/custom-domain) |
|
||||
| Team roles | **Settings → Organization** | [Roles and Permissions](/docs/how-to-guides/roles-and-permissions), [Inviting a Team Member](/docs/how-to-guides/invite-team-member) |
|
||||
| Signup rules, Internal Enrollment Only | **Settings → Authentication → General** | [How Course Enrollment Works](/docs/how-to-guides/course-enrollment) (org access section) |
|
||||
| Name, logo, brand color | **Settings → Organization** | [Customize Your Organization](/docs/customize-organization) |
|
||||
| Public homepage | **Settings → Landing Page** | [Customize Your Academy Landing Page](/docs/org-landing-page) |
|
||||
| Custom domain | **Settings → Organization** | [Set Up a Custom Domain](/docs/custom-domain) |
|
||||
| Team roles | **Settings → Organization** | [Roles and Permissions](/docs/roles-and-permissions), [Inviting a Team Member](/docs/invite-team-member) |
|
||||
| Signup rules, Internal Enrollment Only | **Settings → Authentication → General** | [How Course Enrollment Works](/docs/course-enrollment) (org access section) |
|
||||
|
||||
## Default URL
|
||||
|
||||
On creation, each org gets `https://<siteName>.myclassroomio.com` as its academy URL. You can connect a [custom domain](/docs/how-to-guides/custom-domain) so students use your own hostname.
|
||||
On creation, each org gets `https://<siteName>.myclassroomio.com` as its academy URL. You can connect a [custom domain](/docs/custom-domain) so students use your own hostname.
|
||||
|
||||
<Callout type="info" title="Academy vs admin app">
|
||||
Share your academy URL with students. The generic `app.classroomio.com` host is for platform access when no org subdomain applies. Course and enroll links should use your academy when possible.
|
||||
@@ -33,10 +33,10 @@ On creation, each org gets `https://<siteName>.myclassroomio.com` as its academy
|
||||
|
||||
## Related guides
|
||||
|
||||
- [Customize Your Organization](/docs/how-to-guides/customize-organization)
|
||||
- [Customize Your Academy Landing Page](/docs/how-to-guides/org-landing-page)
|
||||
- [Set Up a Custom Domain](/docs/how-to-guides/custom-domain)
|
||||
- [Roles and Permissions](/docs/how-to-guides/roles-and-permissions)
|
||||
- [How Course Enrollment Works](/docs/how-to-guides/course-enrollment)
|
||||
- [Customize Your Organization](/docs/customize-organization)
|
||||
- [Customize Your Academy Landing Page](/docs/org-landing-page)
|
||||
- [Set Up a Custom Domain](/docs/custom-domain)
|
||||
- [Roles and Permissions](/docs/roles-and-permissions)
|
||||
- [How Course Enrollment Works](/docs/course-enrollment)
|
||||
- [Course](/docs/course)
|
||||
- [Programs](/docs/programs)
|
||||
|
||||
@@ -62,6 +62,6 @@ Students who belong to a program open **Programs** in the LMS to see their track
|
||||
## Related guides
|
||||
|
||||
- [Student Dashboard](/docs/student-dashboard) — Programs vs My Learning vs Explore
|
||||
- [How Course Enrollment Works](/docs/how-to-guides/course-enrollment) — how students join courses inside a program
|
||||
- [How Course Enrollment Works](/docs/course-enrollment) — how students join courses inside a program
|
||||
- [Course](/docs/course) — single-course overview
|
||||
- [Roles and Permissions](/docs/how-to-guides/roles-and-permissions) — who can manage programs and courses
|
||||
- [Roles and Permissions](/docs/roles-and-permissions) — who can manage programs and courses
|
||||
|
||||
@@ -53,7 +53,7 @@ You are successfully signed up and ready to use ClassroomIO when you see the das
|
||||
<Step>
|
||||
### What Next?
|
||||
|
||||
After signing up successfully, you can now set up and [customize your Organization](/docs/how-to-guides/customize-organization).
|
||||
After signing up successfully, you can now set up and [customize your Organization](/docs/customize-organization).
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
@@ -18,7 +18,7 @@ ClassroomIO uses organization roles to control what each person can do. This gui
|
||||
Admins have full control over organization settings, billing, domains, and all courses. Tutors can manage content for courses they are assigned to but cannot create new courses or change org-wide settings. Students use the [Student Dashboard](/docs/student-dashboard) to learn.
|
||||
|
||||
<Callout type="info" title="Per-person enroll or create toggles">
|
||||
ClassroomIO does not support per-person flags like "this user can create courses but that user cannot." Access is set by role. To limit who joins a **course**, use course settings, invites, and **People** instead. See [How Course Enrollment Works](/docs/how-to-guides/course-enrollment).
|
||||
ClassroomIO does not support per-person flags like "this user can create courses but that user cannot." Access is set by role. To limit who joins a **course**, use course settings, invites, and **People** instead. See [How Course Enrollment Works](/docs/course-enrollment).
|
||||
</Callout>
|
||||
|
||||
## Who can create courses
|
||||
@@ -38,7 +38,7 @@ Students sign in on your academy and land in the LMS. Admins and tutors can swit
|
||||
|
||||
## Inviting team members
|
||||
|
||||
To add Admins or Tutors, use [Inviting a Team Member](/docs/how-to-guides/invite-team-member). Team invites are separate from [student course invites](/docs/how-to-guides/invite-students).
|
||||
To add Admins or Tutors, use [Inviting a Team Member](/docs/invite-team-member). Team invites are separate from [student course invites](/docs/invite-students).
|
||||
|
||||
## Organization signup vs course enrollment
|
||||
|
||||
@@ -55,8 +55,8 @@ Configure org signup under **Settings → Organization**. Configure per-course a
|
||||
|
||||
## Related guides
|
||||
|
||||
- [How Course Enrollment Works](/docs/how-to-guides/course-enrollment) — restrict who can join each course
|
||||
- [How to Invite Students](/docs/how-to-guides/invite-students) — course enrollment links
|
||||
- [Inviting a Team Member](/docs/how-to-guides/invite-team-member) — add admins and tutors
|
||||
- [How Course Enrollment Works](/docs/course-enrollment) — restrict who can join each course
|
||||
- [How to Invite Students](/docs/invite-students) — course enrollment links
|
||||
- [Inviting a Team Member](/docs/invite-team-member) — add admins and tutors
|
||||
- [Student Dashboard](/docs/student-dashboard) — what students see in the LMS
|
||||
- [Organization](/docs/organization) — org settings overview
|
||||
@@ -43,7 +43,7 @@ Both show enrolled courses. My Learning adds clearer filtering for students mana
|
||||
**Explore** lists **published, active courses** in your organization that the student has **not** enrolled in yet. Each card links to the course landing page so they can read details and enroll (if enrollment is open).
|
||||
|
||||
<Callout type="info" title="Explore is a catalog, not an enrollment gate">
|
||||
A course can appear in Explore even when public self-enrollment is turned off. **Allow New Students** controls whether someone can join from the landing page, not whether the course is visible in Explore. To restrict who can join, see [How Course Enrollment Works](/docs/how-to-guides/course-enrollment).
|
||||
A course can appear in Explore even when public self-enrollment is turned off. **Allow New Students** controls whether someone can join from the landing page, not whether the course is visible in Explore. To restrict who can join, see [How Course Enrollment Works](/docs/course-enrollment).
|
||||
</Callout>
|
||||
|
||||
Explore is useful when you want students to discover optional or elective courses without assigning them manually.
|
||||
@@ -82,7 +82,7 @@ If you added them from **People** but they have not signed in yet, they may show
|
||||
|
||||
## Related guides
|
||||
|
||||
- [How Course Enrollment Works](/docs/how-to-guides/course-enrollment) — how students join courses and what settings control access
|
||||
- [How to Invite Students](/docs/how-to-guides/invite-students) — send enrollment links by email
|
||||
- [How Course Enrollment Works](/docs/course-enrollment) — how students join courses and what settings control access
|
||||
- [How to Invite Students](/docs/invite-students) — send enrollment links by email
|
||||
- [Programs](/docs/programs) — multi-course tracks and goals for admins
|
||||
- [Create a Course Landing Page](/docs/how-to-guides/course-landingpage) — what prospects see before enrolling
|
||||
- [Create a Course Landing Page](/docs/course-landingpage) — what prospects see before enrolling
|
||||
|
||||
@@ -28,6 +28,6 @@ The table shows 10 students per page. Use the page controls at the bottom to mov
|
||||
|
||||
## Related guides
|
||||
|
||||
- [Creating Your First Course](/docs/how-to-guides/create-first-course) — adding lessons to a course
|
||||
- [How Course Enrollment Works](/docs/how-to-guides/course-enrollment) — how students join a course
|
||||
- [Creating Your First Course](/docs/create-first-course) — adding lessons to a course
|
||||
- [How Course Enrollment Works](/docs/course-enrollment) — how students join a course
|
||||
- [Course](/docs/course) — course overview and available tabs
|
||||
@@ -0,0 +1,61 @@
|
||||
---
|
||||
title: Customize the Welcome Email
|
||||
description: Write a custom message that students receive automatically when they enroll in a course.
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout';
|
||||
import { Step, Steps } from 'fumadocs-ui/components/steps';
|
||||
|
||||
Every course can send a personalized welcome email when a student enrolls. Use it to greet students, share what to
|
||||
expect, or include a link such as a live session URL.
|
||||
|
||||
## Write the welcome message
|
||||
|
||||
<Steps>
|
||||
|
||||
<Step>
|
||||
### Open course settings
|
||||
|
||||
Go to the course's **Settings** tab and find the **Welcome email** section.
|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
### Compose your message
|
||||
|
||||
Write your message in the rich-text editor. You can format text and add links, for example a welcome note plus your live
|
||||
session join link.
|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
### Save
|
||||
|
||||
Save the course settings. Your message is now used for new enrollments.
|
||||
</Step>
|
||||
|
||||
</Steps>
|
||||
|
||||

|
||||
|
||||
## How it sends
|
||||
|
||||
The welcome email goes out automatically whenever a student enrolls, whether they self-enroll, accept an invite, or are
|
||||
added from the audience. Your message appears in the email above the standard "Sign in to the LMS" link.
|
||||
|
||||
<Callout type="info">
|
||||
Leave the **Welcome email** blank to use ClassroomIO's default welcome message. Formatting is cleaned for safe email
|
||||
delivery, so some advanced styling may be simplified.
|
||||
</Callout>
|
||||
|
||||
## Live class courses: automatic session invite
|
||||
|
||||
For a **Live class** course with a scheduled session, the welcome email also attaches a calendar invite for the next
|
||||
session, so students can add it to their calendar the moment they enroll. You do not set this up here; it is pulled from
|
||||
the session you scheduled on the lesson. See [Run a Live Class](/docs/live-class).
|
||||
|
||||

|
||||
|
||||
## Related guides
|
||||
|
||||
- [How to Invite Students](/docs/invite-students): add students to a course
|
||||
- [How Course Enrollment Works](/docs/course-enrollment): the enrollment flow
|
||||
- [Run a Live Class](/docs/live-class): include your session link in the welcome message
|
||||
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 59 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 54 KiB |
@@ -10,7 +10,12 @@ export default defineConfig({
|
||||
host: '127.0.0.1',
|
||||
port: 3000
|
||||
},
|
||||
base: '/docs/',
|
||||
base: '/docs',
|
||||
ssr: {
|
||||
optimizeDeps: {
|
||||
include: ['fumadocs-ui/components/callout', 'fumadocs-ui/components/steps']
|
||||
}
|
||||
},
|
||||
plugins: [
|
||||
cloudflare({ viteEnvironment: { name: 'ssr' } }),
|
||||
mdx(await import('./source.config')),
|
||||
|
||||