Story 5.7: Navigation Integration - Slot Assignment Page

Story: Epic 5, Story 5.7 - Slot Assignment & Progressive Publishing

Last updated: January 5, 2026 Reading time: 20 minutes File size: 46.17 KB

Purpose

This wireframe documents how organizers navigate TO the dedicated slot assignment page from various entry points in the unified event page (Story 5.8), and how they navigate back after completing timing assignments.

Architecture: Slot assignment is a dedicated separate page at /organizer/events/:eventCode/slot-assignment, NOT a tab within the unified event page.


Navigation Entry Points

Entry Point 1: Speakers Tab

Location: /organizer/events/:eventCode?tab=speakers

Trigger: When event has accepted speakers awaiting timing assignment

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ ← Back              BATbern 2025 Spring Conference                                  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  [Overview] [●Speakers] [Venue & Logistics] [Team] [Publishing] [Settings]         β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                                      β”‚
β”‚  β”Œβ”€β”€β”€ SPEAKERS TAB ────────────────────────────────────────────────────────────┐   β”‚
β”‚  β”‚                                                                              β”‚   β”‚
β”‚  β”‚  ⚠️ Action Required: Session Timing Assignment                              β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚   β”‚
β”‚  β”‚  β”‚                                                                      β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  πŸ“… Next Step: Assign Session Timings                               β”‚  β”‚   β”‚
β”‚  β”‚  β”‚                                                                      β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  You have 5 accepted speakers awaiting session timing assignment.   β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  Assign timings to publish the event agenda (Phase 3).             β”‚  β”‚   β”‚
β”‚  β”‚  β”‚                                                                      β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  Progress: 3 of 8 sessions assigned (37%)                           β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  πŸ”Ά 5 sessions need timing                                           β”‚  β”‚   β”‚
β”‚  β”‚  β”‚                                                                      β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  [Assign Session Timings β†’]                                         β”‚  β”‚   β”‚
β”‚  β”‚  β”‚                                                                      β”‚  β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚   β”‚
β”‚  β”‚                                                                              β”‚   β”‚
β”‚  β”‚  Speaker Management Views: [Kanban] [Table] [●Sessions]                     β”‚   β”‚
β”‚  β”‚                                                                              β”‚   β”‚
β”‚  β”‚  Sessions Summary:                                                           β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚   β”‚
β”‚  β”‚  β”‚ Session                    β”‚ Speaker          β”‚ Timing       β”‚ Status β”‚  β”‚   β”‚
β”‚  β”‚  │──────────────────────────────────────────────────────────────────────│  β”‚   β”‚
β”‚  β”‚  β”‚ Keynote                    β”‚ Dr. Sarah Miller β”‚ 09:00-10:30  β”‚ βœ“      β”‚  β”‚   β”‚
β”‚  β”‚  β”‚ Workshop 1: Advanced       β”‚ Prof. John Chen  β”‚ 11:00-12:30  β”‚ βœ“      β”‚  β”‚   β”‚
β”‚  β”‚  β”‚ Workshop 2: Practical      β”‚ Dr. Maria Lopez  β”‚ 14:00-15:30  β”‚ βœ“      β”‚  β”‚   β”‚
β”‚  β”‚  β”‚ Panel Discussion           β”‚ (Not assigned)   β”‚ Not set      β”‚ ⚠️     β”‚  β”‚   β”‚
β”‚  β”‚  β”‚ Afternoon Workshop         β”‚ (Not assigned)   β”‚ Not set      β”‚ ⚠️     β”‚  β”‚   β”‚
β”‚  β”‚  β”‚ Evening Session            β”‚ (Not assigned)   β”‚ Not set      β”‚ ⚠️     β”‚  β”‚   β”‚
β”‚  β”‚  β”‚ Closing Keynote            β”‚ Robert Williams  β”‚ (No timing)  β”‚ ⚠️     β”‚  β”‚   β”‚
β”‚  β”‚  β”‚ Lightning Talks            β”‚ Multiple         β”‚ (No timing)  β”‚ ⚠️     β”‚  β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚   β”‚
β”‚  β”‚                                                                              β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                                      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

User Action: Click [Assign Session Timings β†’]
Result: Navigate to /organizer/events/:eventCode/slot-assignment

Visibility Conditions:

  • Banner appears when: speaker_pool has β‰₯1 speaker with status = 'ACCEPTED' AND session has start_time = null
  • Banner disappears when: All sessions have assigned timings (start_time β‰  null)
  • Progress bar updates in real-time as timings are assigned

Entry Point 2: Overview Tab

Location: /organizer/events/:eventCode?tab=overview

Trigger: Available as quick action when event is in planning phase

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ ← Back              BATbern 2025 Spring Conference                                  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  [●Overview] [Speakers] [Venue & Logistics] [Team] [Publishing] [Settings]         β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                                      β”‚
β”‚  β”Œβ”€β”€β”€ OVERVIEW TAB ────────────────────────────────────────────────────────────┐   β”‚
β”‚  β”‚                                                                              β”‚   β”‚
β”‚  β”‚  Event Status: In Planning                            Phase 2: Speakers βœ“   β”‚   β”‚
β”‚  β”‚                                                                              β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€ Quick Actions ─────────────────────────────────────────────────────┐  β”‚   β”‚
β”‚  β”‚  β”‚                                                                        β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β”‚ πŸ“§ Speaker       β”‚  β”‚ πŸ“… Slot          β”‚  β”‚ πŸ“’ Publishing    β”‚   β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β”‚    Outreach      β”‚  β”‚    Assignment    β”‚  β”‚    Controls      β”‚   β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β”‚                  β”‚  β”‚                  β”‚  β”‚                  β”‚   β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β”‚ Status: Active   β”‚  β”‚ Status: πŸ”Ά In    β”‚  β”‚ Status: Pending  β”‚   β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β”‚                  β”‚  β”‚         Progress β”‚  β”‚                  β”‚   β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β”‚ 8 speakers       β”‚  β”‚                  β”‚  β”‚ Blocked until    β”‚   β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β”‚ contacted        β”‚  β”‚ 3 of 8 sessions  β”‚  β”‚ timings assigned β”‚   β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β”‚                  β”‚  β”‚ assigned (37%)   β”‚  β”‚                  β”‚   β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β”‚                  β”‚  β”‚                  β”‚  β”‚                  β”‚   β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β”‚ [Manage]         β”‚  β”‚ [Assign Timings] β”‚  β”‚ [View Status]    β”‚   β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚  β”‚   β”‚
β”‚  β”‚  β”‚                                                                        β”‚  β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚   β”‚
β”‚  β”‚                                                                              β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€ Workflow Progress ──────────────────────────────────────────────────┐  β”‚   β”‚
β”‚  β”‚  β”‚                                                                        β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  Phase 1: Topic Selection        βœ“ Complete                           β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  Phase 2: Speaker Coordination   βœ“ Complete                           β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  Phase 3: Agenda Planning        ⏳ In Progress (awaiting timings)    β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  Phase 4: Publishing             ⏳ Pending                            β”‚  β”‚   β”‚
β”‚  β”‚  β”‚                                                                        β”‚  β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚   β”‚
β”‚  β”‚                                                                              β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                                      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

User Action: Click [Assign Timings] button on Slot Assignment card
Result: Navigate to /organizer/events/:eventCode/slot-assignment

Card Status Badges:

  • Not Started: Gray badge, β€œ0 of X sessions assigned”
  • In Progress: Orange badge (πŸ”Ά), β€œX of Y sessions assigned (Z%)”
  • Complete: Green badge (βœ“), β€œAll sessions assigned”

Button States:

  • Not Started: [Assign Timings]
  • In Progress: [Continue Assignment]
  • Complete: [Review Assignments]

Entry Point 3: Publishing Tab

Location: /organizer/events/:eventCode?tab=publishing

Trigger: Validation dashboard shows incomplete session timings

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ ← Back              Publishing Control Center - BATbern 2025                        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  [Overview] [Speakers] [Venue & Logistics] [Team] [●Publishing] [Settings]         β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                                      β”‚
β”‚  β”Œβ”€β”€β”€ PUBLISHING TAB ──────────────────────────────────────────────────────────┐   β”‚
β”‚  β”‚                                                                              β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€ Content Validation Dashboard ───────────────────────────────────────┐ β”‚   β”‚
β”‚  β”‚  β”‚                                                                          β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  Publishing Readiness: 73%  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘                 β”‚ β”‚   β”‚
β”‚  β”‚  β”‚                                                                          β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”Œβ”€β”€β”€ Required Items ────────────────────────────────────────────────┐  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚                                                                    β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚  Component              Status    Validation            Action    β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚  ────────────────────────────────────────────────────────────────  β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚  βœ“ Event Title          Ready     Passed all checks     [Edit]    β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚  βœ“ Date & Venue         Ready     Venue confirmed       [View]    β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚  βœ“ Topic Description    Ready     Within 500 chars      [Edit]    β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚  βœ“ Speaker List         Ready     8/8 confirmed         [Manage]  β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚  βœ“ Abstracts            Ready     8/8 validated         [Review]  β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚  βœ“ Speaker Photos       Ready     8/8 uploaded          [Upload]  β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚                                                                    β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚  ⚠️ Session Timings     Partial   5/8 sessions assigned [Assign]  β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚    └─ Keynote           βœ“ Ready   09:00-10:30, Room A  -          β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚    └─ Workshop 1        βœ“ Ready   11:00-12:30, Room A  -          β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚    └─ Workshop 2        βœ“ Ready   14:00-15:30, Room B  -          β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚    └─ Panel             βœ— Missing No start/end time     [Assign]  β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚    └─ Afternoon WS      βœ— Missing No start/end time     [Assign]  β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚    └─ Evening Session   βœ— Missing No start/end time     [Assign]  β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚    └─ Closing Keynote   ⚠️ Partial Speaker assigned,    [Assign]  β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚                                   no timing                        β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚    └─ Lightning Talks   ⚠️ Partial Speakers assigned,   [Assign]  β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚                                   no timing                        β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚                                                                    β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚  ⚠️ Agenda Times        Blocked   Cannot publish Phase 3 [Assign]  β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚                                   until all timings set            β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚                                                                    β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚  βœ“ Registration Link    Ready     Tested & working      [Test]    β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β”‚                                                                    β”‚  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚                                                                          β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  ⚠️ Warning: Phase 3 (Agenda) publish is blocked                       β”‚ β”‚   β”‚
β”‚  β”‚  β”‚     3 sessions require timing assignment before Agenda can be published β”‚ β”‚   β”‚
β”‚  β”‚  β”‚                                                                          β”‚ β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚   β”‚
β”‚  β”‚                                                                              β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€ Publishing Controls ────────────────────────────────────────────────┐ β”‚   β”‚
β”‚  β”‚  β”‚                                                                          β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  Current Phase: Phase 2 (Speakers) - Published                         β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  Next Phase: Phase 3 (Agenda) - Ready when timings complete            β”‚ β”‚   β”‚
β”‚  β”‚  β”‚                                                                          β”‚ β”‚   β”‚
β”‚  β”‚  β”‚  [Publish Phase 1] βœ“     [Publish Phase 2] βœ“     [Publish Phase 3] πŸ”’  β”‚ β”‚   β”‚
β”‚  β”‚  β”‚   (Topic)               (Speakers)              (Blocked)               β”‚ β”‚   β”‚
β”‚  β”‚  β”‚                                                                          β”‚ β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚   β”‚
β”‚  β”‚                                                                              β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                                      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

User Actions:
1. Click [Assign] button on "Session Timings" row β†’ Navigate to /organizer/events/:eventCode/slot-assignment
2. Click [Assign] button on specific sub-item β†’ Navigate with session focus parameter
   Example: /organizer/events/:eventCode/slot-assignment?session=panel-discussion

Result: Opens dedicated slot assignment page

Blocking Validation Logic:

  • Phase 3 (Agenda) [Publish] button is disabled (grayed out with lock icon πŸ”’) when ANY session has start_time = null OR end_time = null OR room = null
  • Error message displayed: β€œCannot publish Agenda phase. X sessions require timing assignment.”
  • [Assign] button appears on validation row, linking to slot assignment page

Return Navigation

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Event Management > BATbern 2025 > Slot Assignment          [Back to Event]   [Help] β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                                      β”‚
β”‚  Assign Session Timings - BATbern 2025 Spring Conference                           β”‚
β”‚                                                                                      β”‚
β”‚  [Full slot assignment interface here - see story-5.7-slot-assignment-page.md]     β”‚
β”‚                                                                                      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

User Actions:
1. Click breadcrumb "BATbern 2025" β†’ Navigate to /organizer/events/:eventCode (Overview tab)
2. Click [Back to Event] button β†’ Navigate to /organizer/events/:eventCode (last active tab)

Breadcrumb Navigation:

  • Event Management: Links to /organizer/events (event list)
  • BATbern 2025: Links to /organizer/events/:eventCode (returns to Overview tab)
  • Slot Assignment: Current page (no link)

[Back to Event] Button Behavior:

  • If user came from Speakers tab: Returns to /organizer/events/:eventCode?tab=speakers
  • If user came from Overview tab: Returns to /organizer/events/:eventCode?tab=overview
  • If user came from Publishing tab: Returns to /organizer/events/:eventCode?tab=publishing
  • Default (direct access): Returns to /organizer/events/:eventCode (Overview tab)
  • Preserves last active tab using browser session storage

Success State Navigation

Trigger: When all sessions have assigned timings (100% complete)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Event Management > BATbern 2025 > Slot Assignment          [Back to Event]   [Help] β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                                      β”‚
β”‚  β”Œβ”€β”€β”€ SUCCESS ──────────────────────────────────────────────────────────────────┐  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  βœ“ All Session Timings Assigned!                                             β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  πŸŽ‰ Congratulations! All 8 sessions now have assigned timings.              β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚  β”‚
β”‚  β”‚  β”‚                                                                        β”‚  β”‚  β”‚
β”‚  β”‚  β”‚  Sessions Assigned:       8 of 8 (100%)                               β”‚  β”‚  β”‚
β”‚  β”‚  β”‚  Average Match Score:     82% (Strong matches)                        β”‚  β”‚  β”‚
β”‚  β”‚  β”‚  Conflicts Resolved:      All clear                                   β”‚  β”‚  β”‚
β”‚  β”‚  β”‚                                                                        β”‚  β”‚  β”‚
β”‚  β”‚  β”‚  Next Step:               Proceed to Publishing                       β”‚  β”‚  β”‚
β”‚  β”‚  β”‚                                                                        β”‚  β”‚  β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  What's Next?                                                                 β”‚  β”‚
β”‚  β”‚  β€’ Review the full agenda in the Publishing tab                              β”‚  β”‚
β”‚  β”‚  β€’ Validate all content requirements are met                                 β”‚  β”‚
β”‚  β”‚  β€’ Publish Phase 3 (Agenda) to make the schedule public                      β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  [View Publishing Options β†’]        [Review Assignments]    [Back to Event]  β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                                      β”‚
β”‚  β”Œβ”€β”€β”€ SESSION TIMELINE (Read-Only Summary) ────────────────────────────────────┐  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  June 10, 2025                                                                β”‚  β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”‚  β”‚
β”‚  β”‚  β”‚        Room A           Room B          Main Hall                   β”‚     β”‚  β”‚
β”‚  β”‚  β”‚ 09:00  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚     β”‚  β”‚
β”‚  β”‚  β”‚        β”‚ βœ“ Keynote    β”‚ β”‚             β”‚ β”‚                      β”‚  β”‚     β”‚  β”‚
β”‚  β”‚  β”‚ 10:30  β”‚ S. Miller    β”‚ β”‚             β”‚ β”‚                      β”‚  β”‚     β”‚  β”‚
β”‚  β”‚  β”‚        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚     β”‚  β”‚
β”‚  β”‚  β”‚ 11:00  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                          β”‚     β”‚  β”‚
β”‚  β”‚  β”‚        β”‚ βœ“ Workshop 1 β”‚ β”‚ βœ“ Workshop 2β”‚                          β”‚     β”‚  β”‚
β”‚  β”‚  β”‚ 12:30  β”‚ J. Chen      β”‚ β”‚ M. Lopez    β”‚                          β”‚     β”‚  β”‚
β”‚  β”‚  β”‚        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                          β”‚     β”‚  β”‚
β”‚  β”‚  β”‚        [All sessions assigned - see full timeline in Publishing]  β”‚     β”‚  β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                                      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

User Actions:
1. Click [View Publishing Options β†’] β†’ Navigate to /organizer/events/:eventCode?tab=publishing
2. Click [Review Assignments] β†’ Scroll to session timeline on current page
3. Click [Back to Event] β†’ Navigate to last active tab (session storage)

Success State Features:

  • Celebration Banner: Green background with checkmark icon
  • Summary Statistics: Sessions assigned, average match score, conflicts status
  • Next Steps Guidance: Clear call-to-action for next workflow phase
  • Primary CTA: [View Publishing Options β†’] - Most prominent button, links to Publishing tab
  • Secondary Actions: Review assignments (stay on page), return to event (breadcrumb)
  • Read-Only Timeline: Collapsed view of assigned sessions, full details in Publishing tab

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                         Unified Event Page                                    β”‚
β”‚                    /organizer/events/:eventCode                               β”‚
β”‚                                                                               β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚
β”‚  β”‚   Overview   β”‚  β”‚   Speakers   β”‚  β”‚     Team     β”‚  β”‚  Publishing  β”‚    β”‚
β”‚  β”‚     Tab      β”‚  β”‚     Tab      β”‚  β”‚     Tab      β”‚  β”‚     Tab      β”‚    β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚
β”‚         β”‚                 β”‚                                    β”‚            β”‚
β”‚         β”‚                 β”‚                                    β”‚            β”‚
β”‚         β”‚  [Assign        β”‚  [Assign Session                  β”‚  [Assign   β”‚
β”‚         β”‚   Timings]      β”‚   Timings β†’]                      β”‚   Timings] β”‚
β”‚         β”‚  (Quick Action) β”‚  (Banner)                         β”‚  (Validation)
β”‚         β”‚                 β”‚                                    β”‚            β”‚
β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜            β”‚
β”‚                             β”‚                                               β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                              β–Ό
                β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                β”‚   Slot Assignment Page          β”‚
                β”‚   (Dedicated Full Page)         β”‚
                β”‚                                 β”‚
                β”‚   /organizer/events/:eventCode/ β”‚
                β”‚   slot-assignment               β”‚
                β”‚                                 β”‚
                β”‚   Features:                     β”‚
                β”‚   β€’ Speaker pool sidebar        β”‚
                β”‚   β€’ Session timeline grid       β”‚
                β”‚   β€’ Drag-drop interface         β”‚
                β”‚   β€’ Preference matching         β”‚
                β”‚   β€’ Conflict detection          β”‚
                β”‚                                 β”‚
                β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                β”‚                           β”‚
                β–Ό                           β–Ό
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚  Return Navigation    β”‚   β”‚  Success State          β”‚
    β”‚                       β”‚   β”‚                         β”‚
    β”‚  [Back to Event]      β”‚   β”‚  βœ“ All timings assigned β”‚
    β”‚  Breadcrumb           β”‚   β”‚                         β”‚
    β”‚                       β”‚   β”‚  [View Publishing       β”‚
    β”‚  β†’ Last active tab    β”‚   β”‚   Options β†’]            β”‚
    β”‚    (session storage)  β”‚   β”‚                         β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                              β”‚
                                              β–Ό
                              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                              β”‚   Publishing Tab          β”‚
                              β”‚                           β”‚
                              β”‚   β€’ Validation complete   β”‚
                              β”‚   β€’ Phase 3 unlocked      β”‚
                              β”‚   β€’ Ready to publish      β”‚
                              β”‚                           β”‚
                              β”‚   [Publish Agenda]        β”‚
                              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

URL State Management

Entry Point URLs

From Speakers Tab:

Current: /organizer/events/batbern-2025?tab=speakers
Action: Click [Assign Session Timings β†’]
Target: /organizer/events/batbern-2025/slot-assignment
Session Storage: { lastActiveTab: 'speakers' }

From Overview Tab:

Current: /organizer/events/batbern-2025?tab=overview
Action: Click [Assign Timings] on Slot Assignment card
Target: /organizer/events/batbern-2025/slot-assignment
Session Storage: { lastActiveTab: 'overview' }

From Publishing Tab:

Current: /organizer/events/batbern-2025?tab=publishing
Action: Click [Assign] on Session Timings validation row
Target: /organizer/events/batbern-2025/slot-assignment
Session Storage: { lastActiveTab: 'publishing' }

Direct Access (bookmark, external link):

Direct: /organizer/events/batbern-2025/slot-assignment
Session Storage: { lastActiveTab: null } β†’ defaults to 'overview'

Optional Session Focus

From Publishing Tab Sub-Item:

Current: /organizer/events/batbern-2025?tab=publishing
Action: Click [Assign] on specific session (e.g., "Panel Discussion")
Target: /organizer/events/batbern-2025/slot-assignment?session=panel-discussion
Behavior: Auto-scroll to Panel Discussion session in timeline grid, highlight with border

Return Navigation URLs

[Back to Event] Button:

From Slot Assignment: /organizer/events/batbern-2025/slot-assignment
Action: Click [Back to Event]
Target: /organizer/events/batbern-2025?tab={lastActiveTab}

Breadcrumb β€œBATbern 2025”:

From Slot Assignment: /organizer/events/batbern-2025/slot-assignment
Action: Click "BATbern 2025" breadcrumb
Target: /organizer/events/batbern-2025 (defaults to Overview tab)

Success State [View Publishing Options β†’]:

From Slot Assignment: /organizer/events/batbern-2025/slot-assignment
Action: Click [View Publishing Options β†’]
Target: /organizer/events/batbern-2025?tab=publishing
Session Storage: Updated { lastActiveTab: 'publishing' }

Implementation Notes

Session Storage Schema

typescript
interface SlotAssignmentNavigation {
  lastActiveTab: 'overview' | 'speakers' | 'venue' | 'team' | 'publishing' | 'settings' | null;
  focusSession?: string;  // Session identifier for auto-scroll
  returnUrl?: string;     // Full return URL with query params
}

// Storage key
const NAV_STORAGE_KEY = 'batbern:slot-assignment-nav';

On Entry to Slot Assignment Page:

typescript
// Store current location before navigating
const storeNavigationContext = (currentTab: string) => {
  const navContext: SlotAssignmentNavigation = {
    lastActiveTab: currentTab,
    returnUrl: window.location.href
  };
  sessionStorage.setItem(NAV_STORAGE_KEY, JSON.stringify(navContext));

  // Navigate to slot assignment
  navigate(`/organizer/events/${eventCode}/slot-assignment`);
};

On Return from Slot Assignment Page:

typescript
// Retrieve navigation context
const getNavigationContext = (): SlotAssignmentNavigation => {
  const stored = sessionStorage.getItem(NAV_STORAGE_KEY);
  return stored ? JSON.parse(stored) : { lastActiveTab: 'overview' };
};

// Navigate back
const handleBackToEvent = () => {
  const { lastActiveTab } = getNavigationContext();
  navigate(`/organizer/events/${eventCode}?tab=${lastActiveTab || 'overview'}`);
  sessionStorage.removeItem(NAV_STORAGE_KEY);  // Clean up
};

Success State Navigation:

typescript
// Navigate to Publishing tab after completion
const handleViewPublishingOptions = () => {
  navigate(`/organizer/events/${eventCode}?tab=publishing`);
  sessionStorage.removeItem(NAV_STORAGE_KEY);  // Clean up

  // Optional: Show toast notification
  toast.success('All session timings assigned! Ready to publish Agenda phase.');
};

Auto-Scroll to Focused Session

typescript
// If session parameter present in URL
const { session: focusSessionId } = useSearchParams();

useEffect(() => {
  if (focusSessionId) {
    const sessionElement = document.getElementById(`session-${focusSessionId}`);
    if (sessionElement) {
      sessionElement.scrollIntoView({ behavior: 'smooth', block: 'center' });
      sessionElement.classList.add('highlight-pulse');  // Add highlight animation

      // Remove highlight after 2 seconds
      setTimeout(() => {
        sessionElement.classList.remove('highlight-pulse');
      }, 2000);
    }
  }
}, [focusSessionId]);

Accessibility Considerations

Keyboard Navigation:

  • Tab to navigate between buttons
  • Enter or Space to activate buttons
  • Escape to trigger [Back to Event] (breadcrumb equivalent)
  • Focus management: Return focus to originating button when navigating back

Screen Reader Announcements:

html
<!-- On entry to slot assignment page -->
<div role="alert" aria-live="polite">
  Navigated to Slot Assignment page. 5 of 8 sessions awaiting timing assignment.
</div>

<!-- On success state -->
<div role="alert" aria-live="polite">
  Success! All 8 session timings have been assigned. You can now proceed to publishing.
</div>

<!-- On return navigation -->
<div role="alert" aria-live="polite">
  Returned to {Tab Name} tab. Your timing assignments have been saved.
</div>

ARIA Labels:

html
<button aria-label="Assign session timings to all unassigned sessions">
  Assign Session Timings β†’
</button>

<button aria-label="Return to BATbern 2025 event page">
  Back to Event
</button>

<button aria-label="View publishing options in Publishing tab">
  View Publishing Options
</button>

Responsive Design

Desktop (β‰₯1200px)

  • Full navigation header with breadcrumb visible
  • [Back to Event] button always visible in top-right
  • Success banner spans full width with all three buttons horizontal

Tablet (768px - 1199px)

  • Breadcrumb collapses to β€œβ€¦ > Slot Assignment”
  • [Back to Event] button remains visible
  • Success banner buttons stack vertically (2 columns)

Mobile (<768px)

  • Breadcrumb hidden, replaced with [← Back] icon button
  • Success banner buttons stack vertically (1 column)
  • Primary CTA [View Publishing Options β†’] full-width, prominent

Edge Cases

Concurrent Editing

Scenario: User A is on slot assignment page. User B (different organizer) also assigns timings simultaneously.

Behavior:

  • Real-time sync via WebSocket or polling
  • Progress bar updates live
  • If User B completes all assignments while User A still working:
    • User A sees success banner appear dynamically
    • Toast notification: β€œAnother organizer just completed the timing assignments!”
    • Session grid updates to show all assigned timings

Scenario: User has dragged a speaker to a slot but not confirmed/saved. Clicks [Back to Event].

Behavior:

  • Confirmation modal appears:
    ⚠️ Unsaved Changes
    
    You have 1 pending timing assignment that has not been saved.
    
    What would you like to do?
    
    [Save & Return]  [Discard Changes]  [Cancel]
    
  • [Save & Return]: Saves pending assignment, then navigates back
  • [Discard Changes]: Reverts assignment, navigates back
  • [Cancel]: Stays on slot assignment page

Deep Linking

Scenario: User receives a direct link to slot assignment page via email or bookmark.

URL: https://batbern.ch/organizer/events/batbern-2025/slot-assignment

Behavior:

  • Page loads normally (no authentication redirect issues)
  • Session storage lastActiveTab is null
  • [Back to Event] button defaults to Overview tab
  • No focus session highlight (no ?session= parameter)

Testing Checklist

Navigation Entry Points

Return Navigation

Success State

URL State

Edge Cases



Change Log

Date Version Description Author
2025-12-25 1.0 Initial navigation integration wireframe Sally (UX Expert)