Live Sessions
The Live Sessions app combines live class hosting with one-on-one meeting scheduling. Hosts can create sessions (live classes, webinars, workshops, office hours), set up recurring availability slots for bookable meetings, and track attendance across all session types.
Key Features
Section titled “Key Features”- Session types — live class, webinar, workshop, office hours
- Session lifecycle — scheduled, live, ended, cancelled with participant counting
- Recurring sessions with configurable rules (daily, weekly, biweekly, monthly)
- Availability management — define bookable time slots by day of week with pricing
- Meeting bookings — guests book available slots; bookings track status (confirmed, cancelled, completed, no show)
- Attendance tracking with per-participant join/leave times and duration
- Pricing support — sessions and meeting slots can be free or paid
- Meeting provider integration via
meeting_urlandmeeting_providerfields
Page Structure
Section titled “Page Structure”| Route | Purpose |
|---|---|
/business/apps/live-sessions | Dashboard with quick nav, upcoming sessions, and recent meetings |
/business/apps/live-sessions/sessions | Full session listing |
/business/apps/live-sessions/sessions/new | Create a new session |
/business/apps/live-sessions/sessions/[id] | Session detail and management |
/business/apps/live-sessions/availability | Manage availability time slots |
/business/apps/live-sessions/meetings | Meeting bookings listing |
Data Model Overview
Section titled “Data Model Overview”Session
Section titled “Session”Core entity with host_id, title, type (live_class, webinar, workshop, office_hours), status (scheduled, live, ended, cancelled), scheduled_at, duration_minutes, timezone, optional meeting_url/meeting_provider, max_participants, participant_count, recurrence rule, and pricing (is_free, price).
MeetingSlot
Section titled “MeetingSlot”Availability definition: day_of_week (0-6), start_time/end_time, duration_minutes, is_active toggle, price, and timezone.
MeetingBooking
Section titled “MeetingBooking”A booked meeting linking slot_id, host_id, and guest_id. Tracks scheduled_date, start_time/end_time, meeting_url, notes, status (confirmed, cancelled, completed, no_show), and cancellation details.
Attendance
Section titled “Attendance”Per-participant attendance records for sessions: status (present, absent, late, excused), joined_at/left_at, and duration_seconds.
AttendanceReport
Section titled “AttendanceReport”Aggregate type with total_expected, total_present, total_absent, total_late, and the full records array.
SessionStats
Section titled “SessionStats”Dashboard metrics: total_sessions, live_sessions, total_participants, total_meetings, total_revenue.
Key Components
Section titled “Key Components”- Quick nav grid — four cards: Sessions, New Session, Availability, Meetings
- Upcoming sessions list — card rows with video icon, session title, formatted date/time, duration, participant count, and status badge (scheduled=secondary, live=default, ended=outline, cancelled=destructive)
- Recent meetings list — card rows showing scheduled date, time range, notes, and status badge (confirmed=default, cancelled=destructive, other=secondary)
- Date/time formatting — separate
fmtDateandfmtTimehelpers for human-readable scheduling info
Notable Integrations
Section titled “Notable Integrations”- Services:
listUpcomingandlistMeetingsfrom$lib/apps/live-sessions/services - Types:
SessionandMeetingBookingfrom$lib/apps/live-sessions/types - Composite types:
SessionWithHost,SessionWithAttendance,MeetingBookingWithSlot,MeetingBookingWithGuestfor detail views - Database: Stored in a separate
ext_live_sessionsschema