Skip to main content

Sessions

Sessions are time blocks that organize performances within an event. They're a core concept in CheerKeeper that helps both organizers and attendees navigate complex schedules.

What Are Sessions?

A session represents a distinct time period during your event, like:

  • Morning Session (8:00 AM - 12:00 PM)
  • Afternoon Session (1:00 PM - 5:00 PM)
  • Awards Session (5:30 PM - 7:00 PM)

Sessions help attendees know:

  • When to arrive
  • Which part of the day their team competes
  • When breaks and awards occur

Session Structure

Each session has these properties:

PropertyRequiredDescription
idYesUnique identifier
eventIdYesParent event
sessionNumberYesOrder within the event (1, 2, 3...)
dateYesWhich event day
hallNoAssigned venue/room
labelNoDisplay label (e.g., "AM", "S1")

Creating Sessions

From the Event Builder

  1. Navigate to Event Builder → Step 4 (Sessions)
  2. Click + Add Session
  3. Fill in the details
  4. Sessions are automatically numbered

From Event Settings

  1. Go to Event SettingsSessions
  2. Click + Add Session
  3. Configure the session
  4. Drag to reorder

Auto-Generated Sessions

When you add performances without sessions, CheerKeeper can auto-generate sessions based on:

  • Time gaps in your schedule
  • Hall assignments
  • Date boundaries

Session Numbering

Sessions are numbered sequentially within an event:

Event: Spring Championship 2025
├── Session 1: Day 1 Morning
├── Session 2: Day 1 Afternoon
├── Session 3: Day 1 Awards
├── Session 4: Day 2 Morning
├── Session 5: Day 2 Afternoon
└── Session 6: Day 2 Awards

Session numbers are:

  • Unique per event - No duplicates
  • Sequential - 1, 2, 3... without gaps
  • Stable - Don't change when other sessions are modified

Sessions and Halls

Sessions can be assigned to specific halls:

Single Hall Events

All sessions share the same space. Hall assignment is optional.

Multi-Hall Events

Assign sessions to specific halls for parallel competitions:

Hall A (Main Floor)
├── Session 1: Morning Cheer
└── Session 2: Afternoon Cheer

Hall B (Side Room)
├── Session 3: Morning Dance
└── Session 4: Afternoon Dance

Session Labels

Labels are short identifiers shown in the mobile app:

Session NameLabel
Morning SessionAM
Afternoon SessionPM
Day 1 Session 1D1-S1
AwardsAWD

Keep labels short (2-6 characters) for mobile display.

Performances and Sessions

Assignment

Performances are assigned to sessions based on:

  1. Explicit assignment - You select the session when adding
  2. Time-based - Performance time falls within session boundaries
  3. Hall-based - Performance hall matches session hall

Moving Between Sessions

When you move a performance:

  • Within the same session: Time shifts, session stays
  • Across session boundary: Session assignment updates
  • To a different hall: May change session if hall-specific

Empty Sessions

Sessions persist even when empty. This is intentional:

Why Keep Empty Sessions?

  • Preserve event structure during editing
  • Allow adding performances later
  • Maintain consistent session numbering
  • Support schedule templates

In the Mobile App

Empty sessions are hidden from attendees. They only see sessions with performances.

Cascade Behavior

Schedule changes respect session boundaries:

Within Session

When you shift a performance time, subsequent performances in the same session cascade.

Across Sessions

By default, cascade changes stop at session boundaries. This prevents:

  • Morning changes affecting afternoon times
  • One hall affecting another hall's schedule

Override

Enable Cross-Session Cascade in settings if you want changes to flow across sessions.

Session Times

Sessions have implicit start and end times:

Calculated Times

  • Start: First performance time in the session
  • End: Last performance time + rotation interval

Display Times

In the mobile app, attendees see:

  • Session name and label
  • Approximate time range
  • Number of performances

Best Practices

Naming Conventions

Use clear, consistent names:

Good:

  • "Day 1 - Morning"
  • "Session 1 (AM)"
  • "Junior/Senior Session"

Avoid:

  • "S1" (too cryptic)
  • "Morning stuff" (unprofessional)
  • "8am session" (may change)

Session Count

  • Small events: 1-2 sessions per day
  • Medium events: 2-4 sessions per day
  • Large events: 4-6 sessions per day

More sessions = more organization but more complexity.

Time Gaps

Leave buffer time between sessions for:

  • Awards presentations
  • Venue transitions
  • Judge breaks
  • Running behind schedule

Troubleshooting

Sessions Not Appearing

Check that:

  • Session has at least one performance (for mobile app)
  • Session date matches event date
  • Session is not accidentally deleted

Wrong Session Assignment

Verify:

  • Performance time falls within expected session
  • Hall assignment matches (if hall-specific sessions)
  • Session boundaries don't overlap

Session Numbers Out of Order

Session numbers should auto-correct. If not:

  1. Go to Event Settings → Sessions
  2. Drag to reorder
  3. Numbers update automatically

Technical Details

For developers, see the Database Schema for session model details.

Key Constraints

  • Unique (eventId, sessionNumber) prevents duplicates
  • sessionId on performances is nullable (SetNull on delete)
  • MAX_CASCADE_DEPTH = 1000 prevents infinite loops