Weekly class module

Run weekly classes and courses with Hob — enrollments, queues, payments, and season passes.

The weekly class module is Hob’s module for recurring class and course operations. It is written for club admins and instructors — this page describes day-to-day use, not the technical API.

Members see the module as Classes and courses. The technical identifier in the system remains danceclub (URL paths, API, permissions).

The module usually works with the membership and payments modules. Members, family members, and balances come from those.

Introduction

The module covers:

  • Seasons — activity is split into seasons (e.g. autumn, spring).
  • Classes (activities) — recurring or one-off groups that get events under them.
  • Courses — enroll once for a whole season or period on one activity.
  • Enrollment — members enroll for events or courses online; instructors can enroll on their behalf.
  • Payments and balance — drop-in prices, season passes, discounts; payments via the payments module.
  • Queues — automatic queue when a class or course is full.
  • Reports — season-level Excel exports.

The module fits both open group classes and private lessons.

Terminology

TermMeaning
SeasonTime window that classes and events belong to. In the admin view, data is filtered by the selected season (top-right menu).
Class (activity)Weekly or one-off offering (e.g. beginners foxtrot on Tuesdays). Defaults for price, instructor, venue, capacity, and other settings live on the activity; events are created under it.
EventA single class occurrence on a date and time. An event may override activity defaults (price, instructor, venue, capacity).
CourseAn activity where the member enrolls once for the whole season or period. Course enrollment does not automatically add the member to every event — the member confirms attendance per event (see below).
Enrollment modeHow the activity accepts enrollments: Drop-in (per event), Course (course enrollment only), or Both (course and drop-in).
Drop-in pricePrice for attending one event. Set on the activity; per-event override possible.
Season passPrepaid product that covers attendances on selected activities. Choose price, covered activities, and optional description. After purchase, the pass clears attendances automatically (except visit-limited passes).
Visit passA season pass with a limited number of uses (e.g. 10 visits). Uses decrease; after the limit, attendances are charged normally.
Forced season passA pass bought automatically when a condition is met. Drop-in: Force pass after N visits — purchase runs only after the triggering event has ended; the member is notified. Course: Free visits — empty means payment is required on course confirmation; 0 means the preferred pass is bought as soon as the course enrollment is confirmed (the member is notified).
Private lessonAn activity hidden from the public enrollment list. Enrollment needs a special permission and/or a passcode given on first enrollment.
VenueLocation or room. Default on the activity; per-event override possible.
BalanceThe member’s weekly-class payment position: negative = amount due, positive = credit. Separate from membership fee balance.
QueueWhen an event or course is full, a new enrollee is queued. Queued members are not charged until confirmed. An admin can promote someone from the queue.

Member view

For a signed-in member at /dc (Classes and courses):

  • Enrollment — classes today and soon; enroll or cancel (not for past events).
  • Courses — courses you can join for the season; per-event attendance confirmation on the course page.
  • Balance — amount due and payment via Hob. The view explains what makes up the amount due (e.g. enrollments, tickets, payments). Already covered or cancelled-out rows are omitted. The member can cancel an unpaid upcoming enrollment or return a ticket from the breakdown, and the balance updates. Membership debts are not mixed into the weekly-class breakdown.
  • Attendances — your enrollments for the selected season.
  • Shop — buy season passes; refunds possible (with exceptions, see Season passes).
  • Family members — the primary member can enroll and buy passes for minors and family members.

Enrollment opens by default at 06:00 on the day before the event. An activity can set a separate Enroll N hours before limit.

Cancellation removes the attendance and returns the charge to the balance (not for past events).

Courses and course enrollment

A course is an activity whose enrollment mode is Course or Both.

Course enrollment

  • The member enrolls once (Enroll for course).
  • Course enrollment does not create attendances for every upcoming event.
  • A course member confirms per event (Attending / Not attending). Unset means no decision yet.
  • A course member can confirm attendance even before the normal drop-in enrollment window opens.
  • In Course mode, drop-in without a course enrollment is not allowed.
  • In Both mode, the member may enroll for the course or drop in to individual events.

Course payment

  • Creating a course can set a Course price, which creates a course pass and marks it preferred.
  • On a paid course, the preferred pass is bought automatically when course enrollment is confirmed (not while queued), unless the member already has a covering pass.
  • Free visits allows N drop-ins before payment is required (same idea as forced pass on drop-in).

Leaving a course

  • A member may leave a course (Leave course) if they have not attended a past event on that course.
  • Leaving removes future event attendances and refunds a pass that covers only that course, if one was bought.
  • A queued course enrollment can be cancelled without payment.

Course queue

  • A course can have a capacity limit. When full, a new enrollee is queued without charge.
  • An admin or instructor confirms the queued member onto the course; payment and pass purchase happen only after confirmation.

Admin view

  • Calendar — all events in the season.
  • Classes and courses — link to the member view from the dashboard.
  • Seasons — create and edit seasons (permission required).
  • Classes — manage activities and create events (multiple days at once).
  • Season passes — define passes (permission required).

Admins can delete an empty class (no participations or course enrollments) — the activity and its events are removed. If the class has history or enrollments, use deactivate: the activity is marked inactive and hidden from admin lists; future events and future enrollments are removed (charges for those future enrollments are cleared); past history remains. An already inactive class cannot be deactivated again.

Event management

Per event:

  • participant list (including queue)
  • add and remove participants
  • confirm payment (cash, free, other methods)
  • edit time, price, limit, instructor, and venue
  • SMS or email to all participants

Course management

On the classes admin view:

  • enrollment mode is shown on the activity (drop-in / course / both)
  • for course or both, the selected activity shows course enrollments, fill level, and queue
  • confirm queue and cancel a member’s course enrollment

On the course page (member view): upcoming events and attendance confirmations.

Activity settings

SettingDescription
Enrollment modeDrop-in, Course, or Both
Drop-in priceDefault event price (drop-in / both)
Course priceCourse pass price; creates the pass and marks it preferred (course)
Free visitsVisits before course payment is required; empty = pay on course enrollment
Split costCost is split evenly among participants (e.g. private lesson)
CapacityDefault max for events
Private lessonHidden from public enrollment
Enrollment windowHours before the event, or default (previous day 06:00)
Preferred passGuides the member to the right season pass
Force passAutomatic preferred-pass purchase after N drop-in visits; purchase runs after the event ends; the member is notified
InstructorDefault instructor for events
VenueDefault venue for events
Event fieldsExtra enrollment fields (e.g. roles: leader/follower)
TypeInternal grouping key (e.g. newsletter filter); not shown to enrollees

Per-event overrides: price, instructor, venue, capacity.

Pricing and payments

Drop-in payment

Enrollment creates a charge on the member balance. Payment goes through Hob (reference, online payment).

Course payment

On a paid course, the preferred season pass is charged automatically when course enrollment is confirmed. A queued member is not charged until confirmed.

Discounts

  • Day discount (activity group discount): Enrolling for several same-day classes — first full price, second discounted, third further discounted (set on the activity group).
  • Member discount: Percentage or fixed discount on selected classes or season passes (e.g. student, senior).
  • Family discount on season passes: Multiple family-member pass purchases — price decreases per pass bought in the same family.

Discounts are calculated automatically; cancellation updates prices.

Instructor payment handling

At an event, an instructor can:

  • mark attendance as free
  • record cash or another payment method (e.g. Edenred)

Split cost (private lessons)

When Split cost is on, the drop-in price is divided evenly among all participants. A new participant updates everyone’s charge.

Season passes

  • A pass is tied to one season and covers selected activities from that season.
  • Unlimited season pass: after purchase, past and future attendances on those activities are cleared automatically.
  • Visit pass: only the first N attendances; the rest are charged separately.
  • A member can refund an unused pass; the balance is corrected.
  • Forced purchase (drop-in): when the Force pass limit is exceeded, the preferred pass is bought only after the triggering event has ended. If the event is already past, purchase is immediate. The member is notified and asked to pay the balance.
  • A forced course-covering pass cannot be refunded while the member remains enrolled on a course that requires that coverage. If another pass still covers the course, the course pass can be refunded.
  • A primary member can buy a pass for a family member; a minor cannot buy on behalf of the primary member.
  • An admin can add a pass to a member manually.

Queues

Event queue

When event capacity is full:

  • New enrollee → queue (no charge).
  • Cancellation or raising the limit → next in queue is confirmed automatically.
  • An admin can confirm someone from the queue manually (including over capacity).

Course queue

When course capacity is full:

  • New course enrollee → queue (no charge and no pass purchase).
  • An admin or instructor confirms the queued member onto the course.

Capacity can be set on the activity (default) or on the event (override). Past event limits lock when the activity default limit changes.

Reports

Season-level Excel exports:

ReportContents
Member listName, email, phone — season participants
Negative balanceMembers with an amount due
Attendances totalAttendance count per season (multiple seasons at once)
Attendances per classOne column per activity in the selected season
PurchasesPurchases per class/pass in one season
Season pass purchasesSeparate report for pass purchases

Public calendar

Without signing in:

  • Public calendar — upcoming events (not private lessons).
  • iCalendar feed — subscribe in your own app; filter by venue possible.
  • Happening today — front-page cards for today’s classes (enrollment for signed-in users).

Private lessons are visible only to authorized users.

Permissions

RoleRights
Weekly class adminFull control: seasons, classes, events, passes, members, payments, attendances, and course enrollments
Class instructorView events, enroll members, manage attendances and course enrollments
Private lesson adminEnroll for and manage private lessons

Extra permission enroll_private_activities — enroll for private lessons with a passcode.

Integrations

Membership module

  • Members and family members (primary / minor).
  • Automation: e.g. buying a given season pass → membership application or membership class automatically.

Payments module

  • All charges and payments as transactions.
  • A weekly-class payment reference pays only the weekly-class balance.

Notifications

  • A member can subscribe to email or push for season newsletters.
  • Filtering by activity type is possible when the club uses the type field to group classes.