DojoMaster

Class Scheduling & Enrollment

Create class types, schedule classes, and manage student enrollment

For Admins & SenseiCore Operations
Back to Documentation

1. Overview

DojoMaster's class scheduling system provides a flexible, powerful way to organize your training programs. The system uses a two-tier approach: Class Types define categories of classes (like "Beginner Karate" or "Advanced Sparring"), while individual Classes represent specific scheduled sessions with instructors, times, and enrolled students.

Key Concepts

  • Class Types: Templates that define the category, requirements, and default settings for classes (e.g., "Beginner Karate", "Teen Sparring")
  • Classes: Specific scheduled sessions based on a class type, with assigned instructors, day/time, and enrolled students
  • Enrollment: The process of registering students for classes, with automatic validation of age and belt requirements
  • Stripe Award Model: Configuration that determines how stripes are awarded (automatically on attendance or manually by assessment)
  • Recurring Classes: Classes that repeat on multiple days each week (e.g., Monday/Wednesday/Friday)

2. Prerequisites

Before creating classes, ensure you have:

  • OWNER or admin SENSEI role (required to create classes)
  • Belt system configured if you plan to set minimum belt rank requirements (see Belt System Configuration Guide)
  • Instructors added to your club with SENSEI or SEMPAI roles (see User Roles Guide)
  • Understanding of your class structure: What types of classes you offer, their schedules, and requirements
💡

Recommended Workflow

Start by creating Class Types for each category of training you offer (Beginner, Intermediate, Advanced, Sparring, etc.). Then create individual Classes based on those types with specific schedules and instructors. Finally, enroll students in the appropriate classes.

3. Creating Class Types

Class Types serve as templates for your classes. They define the category, visual appearance, and default requirements.

How to Create a Class Type

  1. 1.Navigate to Settings"Class Types"
  2. 2.Click "Add Class Type" or "New Class Type"
  3. 3.Complete the class type form with the following information

Class Type Fields

Name: Descriptive name for the class type (2-50 characters) - e.g., "Beginner Karate", "Advanced Sparring", "Teen Jiu-Jitsu"

Description: Optional detailed description (max 500 characters) explaining what the class covers

Color: Hex color code for visual identification (e.g., #3B82F6 for blue, #EF4444 for red) - defaults to #3B82F6

Icon: Optional emoji or icon (max 10 characters) - e.g., 🥋, 🥊, ⚔️

Age Group: Target age group - JUNIOR (under 13), TEEN (13-17), ADULT (18-59), SENIOR (60+), or ALL (all ages)

Minimum Belt Rank: Optional minimum belt rank required (0-20, where 0 is beginner/white belt)

Default Duration: Optional default class duration in minutes (15-480 minutes, i.e., 15 minutes to 8 hours)

  1. 4.Click "Save" or "Create Class Type"
⚠️

Important

Class Types cannot be deleted if they have associated classes. Deactivate unused class types instead to preserve historical data.

4. Creating Classes

Once you have Class Types configured, create individual classes with specific schedules and instructors.

How to Create a Class

  1. 1.Navigate to Classes from your dashboard
  2. 2.Click "Add Class" or "New Class"
  3. 3.Complete the class creation form

Basic Information

Class Name: Specific name for this class (2-100 characters) - e.g., "Monday Morning Beginners", "Advanced Sparring - Evening"

Class Type: Select from your configured class types (required)

Description: Optional additional details about this specific class (max 500 characters)

Custom Color: Optional color override (hex format) - if not specified, uses the class type's color

Schedule Configuration

DojoMaster supports both single-day and recurring multi-day classes:

Single-Day Classes

Classes that occur on one specific day of the week

  • Day of Week: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, or SUNDAY
  • Start Time: HH:MM format (24-hour) - e.g., 09:00, 18:30
  • End Time: HH:MM format (24-hour) - must be after start time

Recurring Multi-Day Classes

Classes that repeat on multiple days each week (e.g., Monday/Wednesday/Friday)

  • • Check "Recurring Class" option
  • • Select multiple days of the week
  • • Set start and end times (same for all selected days)

Instructor Assignment

Instructors: Select one or more instructors (users with SENSEI or SEMPAI role) - at least one instructor is required

Enrollment Requirements

Maximum Students: Optional capacity limit (1-100 students) - leave empty for unlimited enrollment

Minimum Belt Rank: Optional minimum belt rank (0-20) - students below this rank cannot enroll

Age Group: Optional age restriction - JUNIOR, TEEN, ADULT, SENIOR, or ALL

Stripe Award Model

Choose how stripes (progress markers between belt ranks) are awarded in this class:

AUTOMATIC_CLASS_BASED (Default)

Stripes are automatically awarded based on class attendance. Students earn stripes by consistently attending classes.

✓ Best for: Regular training classes where attendance demonstrates progress

MANUAL_ASSESSMENT_BASED

Instructors manually award stripes based on skill assessment and performance. Provides more control over student progression.

✓ Best for: Advanced classes, specialized training, or when skill mastery is required

  1. 4.Review all settings and click "Create Class" or "Save"

5. Managing Class Enrollment

Once classes are created, you can enroll students and manage the class roster.

Enrolling Students in a Class

  1. 1.Navigate to Classes and select the class
  2. 2.Click "Enroll Student" or "Add Student"
  3. 3.Select a student from the dropdown (only eligible students are shown)
  4. 4.Click "Enroll" to confirm

Automatic Eligibility Validation

DojoMaster automatically validates student eligibility based on:

  • Age Group: Student's age must match the class age group requirement
  • Belt Rank: Student's current belt rank must meet or exceed the minimum requirement
  • Capacity: Class must have available spots (if max students is set)
  • Active Status: Student must be active in the club

Ineligible students won't appear in the enrollment dropdown.

Removing Students from a Class

  1. 1.Navigate to the class and view the roster
  2. 2.Find the student you want to remove
  3. 3.Click "Remove" or the remove icon (🗑️)
  4. 4.Confirm the removal
⚠️

Important

Removing a student from a class sets the enrollment's droppedAt timestamp and marks it as inactive. Historical attendance records are preserved for reporting purposes.

6. Viewing and Managing the Class Roster

The class roster shows all currently enrolled students and provides quick access to student information.

Roster Information

For each enrolled student, you can view:

  • Student Name: Full name with avatar (if available)
  • Student Number: Unique identifier for the student
  • Current Belt Rank: Student's current belt level
  • Enrollment Date: When the student joined the class
  • Attendance Rate: Percentage of classes attended (if available)

Quick Actions from Roster

  • Click a student's name to view their full profile
  • Use the remove button to unenroll a student
  • View current enrollment count vs. maximum capacity

7. Editing and Deactivating Classes

Editing a Class

  1. 1.Navigate to Classes and select the class to edit
  2. 2.Click "Edit" or "Edit Class"
  3. 3.Modify any field (name, schedule, instructors, requirements, stripe award model)
  4. 4.Click "Save Changes"
💡

Tip

When changing enrollment requirements (age group or minimum belt rank), existing enrolled students are not automatically removed. Review the roster after making changes to ensure all students still meet the requirements.

Deactivating a Class

Instead of deleting classes (which would lose historical data), deactivate them:

  1. 1.Navigate to the class you want to deactivate
  2. 2.Click "Edit" or access class settings
  3. 3.Toggle the "Active" status to OFF or uncheck "Is Active"
  4. 4.Save the changes

Deactivated classes:

  • No longer appear in active class lists
  • Cannot accept new enrollments
  • Preserve all historical attendance and enrollment data
  • Can be reactivated at any time

8. Understanding Recurring Classes

Recurring classes allow you to schedule a single class that meets on multiple days each week, simplifying management for classes that follow a regular pattern.

When to Use Recurring Classes

✓ Use Recurring Classes For:

  • • Classes that meet on the same schedule multiple days per week (e.g., Mon/Wed/Fri at 6:00 PM)
  • • Classes with the same instructor(s) across all days
  • • Classes where students are enrolled for all sessions
  • • Simplified roster management (one enrollment covers all days)

✗ Use Separate Classes For:

  • • Classes with different instructors on different days
  • • Classes with different content or focus on different days
  • • Classes where students can attend only specific days
  • • Classes with different time slots on different days

How Recurring Classes Work

  • Single Enrollment: Students enroll once and are automatically enrolled for all selected days
  • Unified Roster: One class roster applies to all days
  • Attendance Tracking: Attendance is tracked separately for each day's session
  • Same Schedule: All selected days use the same start and end times

9. Capacity Management

Setting capacity limits helps you maintain optimal class sizes and ensure quality instruction.

Setting Maximum Students

When creating or editing a class, you can set a maximum number of students (1-100). This limit:

  • Prevents enrollment once the limit is reached
  • Displays current enrollment count vs. capacity (e.g., "15/20 students")
  • Shows "Full" status when capacity is reached
  • Can be adjusted at any time (even after enrollment begins)
💡

Best Practice

Consider your training space size, instructor-to-student ratio, and equipment availability when setting capacity limits. A good rule of thumb is 1 instructor per 10-15 students for beginner classes, and 1 per 8-12 for advanced classes.

Unlimited Capacity

Leave the "Maximum Students" field empty or set to null for unlimited enrollment. This is useful for:

  • Large group classes with flexible space
  • Online or virtual classes
  • Open training sessions

10. Common Pitfalls and Troubleshooting

❌ Problem: Can't create a class

Possible Causes:

  • • You don't have OWNER or admin SENSEI role
  • • No class types have been created yet
  • • No instructors (SENSEI/SEMPAI) are available in your club
  • • Invalid time format (must be HH:MM in 24-hour format)
  • • End time is before or equal to start time

✓ Solution: Verify your role, create class types first, ensure instructors are added, and check time format (e.g., 09:00, 18:30).

❌ Problem: Student doesn't appear in enrollment dropdown

Possible Causes:

  • • Student is already enrolled in the class
  • • Student's age doesn't match the class age group requirement
  • • Student's belt rank is below the minimum requirement
  • • Class is at maximum capacity
  • • Student is inactive or archived

✓ Solution: Check the student's profile (age, belt rank, active status) and verify class requirements. Consider adjusting class requirements if appropriate.

❌ Problem: Can't delete a class type

Possible Causes:

  • • The class type has associated classes (active or inactive)
  • • Database constraint prevents deletion to preserve data integrity

✓ Solution: Deactivate the class type instead of deleting it. This preserves historical data while hiding it from active use.

❌ Problem: Stripe award model not working as expected

Possible Causes:

  • • AUTOMATIC_CLASS_BASED requires attendance tracking to be enabled
  • • MANUAL_ASSESSMENT_BASED requires instructors to manually award stripes
  • • Stripe system not configured for the belt system

✓ Solution: Verify stripe system configuration in Settings. For automatic awards, ensure attendance is being tracked. For manual awards, instructors must use the stripe award interface.

❌ Problem: Recurring class not showing all days

Possible Causes:

  • • Recurring pattern not properly saved
  • • Calendar view filtering by specific day
  • • Class was created as single-day instead of recurring

✓ Solution: Edit the class and verify the "Recurring Class" option is checked and all desired days are selected. Check calendar filters.

11. Related Features

Class scheduling works together with other DojoMaster features:

12. Next Steps

Now that you understand class scheduling and enrollment:

  1. 1.Create class types: Define categories for all your training programs (Beginner, Intermediate, Advanced, Sparring, etc.)
  2. 2.Schedule classes: Create individual classes with specific days, times, and instructors
  3. 3.Enroll students: Add students to appropriate classes based on their age and belt rank
  4. 4.Configure stripe awards: Choose automatic or manual stripe award models for each class
  5. 5.Start tracking attendance: Use the attendance tracking system to monitor student participation
  6. 6.Review and adjust: Regularly review class rosters, capacity, and requirements to optimize your program