Story 5.7: Conflict Resolution Modal - Slot Assignment
Story: Epic 5, Story 5.7 - Slot Assignment & Progressive Publishing
Purpose
This wireframe documents the modal dialog that appears when an organizer attempts to assign a session timing that creates a conflict. The system detects three types of conflicts and provides resolution workflows.
Context: Triggered during drag-drop timing assignment on the dedicated slot assignment page.
Conflict Types
1. Room Overlap (ERROR - Must Resolve)
Trigger: Assigning a session to a room that is already occupied during the proposed time slot.
Severity: π΄ Error - Assignment blocked, must be resolved
Example: Trying to assign βWorkshop 2β to Room A from 14:00-15:30 when βPanel Discussionβ already occupies Room A from 14:00-16:00.
2. Speaker Double-Booked (ERROR - Must Resolve)
Trigger: Assigning a session to a speaker who is already assigned to another session with overlapping timing.
Severity: π΄ Error - Assignment blocked, must be resolved
Example: Trying to assign Dr. Sarah Miller to βWorkshop 2β at 14:00-15:30 when sheβs already assigned to βKeynoteβ at 13:00-14:30.
3. Speaker Preference Conflict (WARNING - Can Override)
Trigger: Assigning a session timing that conflicts with the speakerβs stated time preferences or avoid times.
Severity: β οΈ Warning - Assignment allowed with explicit override
Example: Assigning a speaker who prefers afternoon sessions to an early morning 08:00-09:30 time slot.
Modal Structure
Header (All Conflict Types)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β [Icon] Timing Conflict Detected [X] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Icons by Severity:
- π΄ Error: Red circle with exclamation mark
- β οΈ Warning: Yellow triangle with exclamation mark
Scenario 1: Room Overlap Conflict
Trigger: User drags βWorkshop 2β (Dr. Sarah Miller) to Room A, 14:00-15:30 Conflict: βPanel Discussionβ already occupies Room A from 14:00-16:00
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π΄ Timing Conflict Detected [X] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Conflict Type: Room Overlap β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β You are trying to assign: β β
β β β β
β β Session: "Workshop 2: Advanced Cloud Architecture" β β
β β Speaker: Dr. Sarah Miller β β
β β Time: 14:00 - 15:30, June 10, 2025 β β
β β Room: Conference Room A β β
β β Duration: 1.5 hours β β
β β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β But this room is already occupied: β β
β β β β
β β Session: "Panel Discussion: Industry Trends" β β
β β Speakers: John Smith, Jane Doe, Robert Chen (3 panelists) β β
β β Time: 14:00 - 16:00, June 10, 2025 β β
β β Room: Conference Room A β β
β β Duration: 2 hours β β
β β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Overlap Duration: 1.5 hours (14:00 - 15:30) β
β β
β ββββ Visual Timeline βββββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β β Conference Room A - June 10, 2025 β β
β β β β
β β 13:00 14:00 15:00 16:00 17:00 β β
β β βββββββββββ¬βββββββββ¬βββββββββ¬βββββββββ¬ββββββββ β β
β β β β β β β β
β β ββββββββββ΄βββββββββ΄βββββββββ€ β β
β β β Panel Discussion β β Existing session β β
β β β (14:00 - 16:00) β β β
β β βββββββββββββββββββββββββββ β β
β β β β
β β ββββββββββ΄βββββββββ€ β β
β β β Workshop 2 β β Attempted assignment β β
β β β (14:00 - 15:30)β β β
β β βββββββββββββββββββ β β
β β β β
β β βββββββββββββββββββ β β
β β OVERLAP: 1.5 hours (shown in red) β β
β β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β How would you like to resolve this conflict? β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β [1] Find Alternative Time Slot β β
β β View available slots in Room A or other rooms that match β β
β β Dr. Sarah Miller's preferences β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β [2] Assign to Different Room β β
β β Keep timing (14:00-15:30) but assign to a different room β β
β β Available rooms: Room B, Main Hall β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β [3] Reassign Panel Discussion β β
β β Move "Panel Discussion" to a different time or room β β
β β Warning: This affects 3 speakers β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β [Cancel] β β
β β Abort this assignment and return to slot assignment view β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Resolution Flow for Option 1 (Find Alternative Slot):
User clicks [1] Find Alternative Time Slot β Modal transitions to suggestion view:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π Alternative Time Slots for Workshop 2 [X] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Showing available slots that match Dr. Sarah Miller's preferences: β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β π’ Strong Match (85%) β β
β β β β
β β June 10, 2025 | 11:00 - 12:30 | Conference Room B β β
β β β β
β β β Afternoon slot (preferred) β β
β β β Room B has natural light (preferred) β β
β β β Projector and microphone available β β
β β β No conflicts with other sessions β β
β β β β
β β [Assign to This Slot] β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β π’ Strong Match (82%) β β
β β β β
β β June 10, 2025 | 16:00 - 17:30 | Conference Room A β β
β β β β
β β β Afternoon slot (preferred) β β
β β β Same room as originally intended β β
β β β All A/V requirements met β β
β β β οΈ Slightly later than typical (4pm start) β β
β β β β
β β [Assign to This Slot] β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β π‘ Acceptable Match (65%) β β
β β β β
β β June 11, 2025 | 09:00 - 10:30 | Main Hall β β
β β β β
β β β Large room with excellent A/V setup β β
β β β οΈ Morning slot (speaker prefers afternoon) β β
β β β οΈ Different day than originally planned β β
β β β β
β β [Assign to This Slot] β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Showing 3 of 8 available slots. [View All Slots] β
β β
β [β Back to Conflict Details] [Cancel] β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
User clicks [Assign to This Slot] β Modal shows confirmation:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Conflict Resolved [X] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Success! Workshop 2 has been assigned. β
β β
β Session: "Workshop 2: Advanced Cloud Architecture" β
β Speaker: Dr. Sarah Miller β
β Time: 11:00 - 12:30, June 10, 2025 β
β Room: Conference Room B β
β Match: 85% (Strong match with speaker preferences) β
β β
β [Return to Slot Assignment] β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Resolution Flow for Option 2 (Assign to Different Room):
User clicks [2] Assign to Different Room β Modal transitions to room selection:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π’ Select Alternative Room [X] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Keep timing: 14:00 - 15:30, June 10, 2025 β
β Speaker: Dr. Sarah Miller β
β β
β Available rooms during this time: β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β Conference Room B β β
β β β β
β β Capacity: 40 people β β
β β A/V Setup: β Projector, β Microphone, β Clicker β β
β β Features: Natural light, Standing desk available β β
β β Status: Available (no conflicts) β β
β β β β
β β Match Score: 90% π’ (Excellent match for speaker setup) β β
β β β β
β β [Assign to Room B] β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β Main Hall β β
β β β β
β β Capacity: 200 people β β
β β A/V Setup: β Projector, β Microphone, β Recording β β
β β Features: Stage, Theater seating β β
β β Status: Available (no conflicts) β β
β β β β
β β Match Score: 60% π‘ (Large room, may be oversized) β β
β β β β
β β [Assign to Main Hall] β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β [β Back to Conflict Details] [Cancel] β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Resolution Flow for Option 3 (Reassign Panel Discussion):
User clicks [3] Reassign Panel Discussion β Modal shows warning:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β οΈ Reassign Existing Session? [X] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β You are about to move an existing session to resolve this conflict. β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Session to Reassign: β β
β β β β
β β "Panel Discussion: Industry Trends" β β
β β Current: 14:00 - 16:00, Room A β β
β β Speakers: John Smith, Jane Doe, Robert Chen (3 panelists) β β
β β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β β οΈ Warning: This will affect multiple speakers β
β You will need to assign a new timing for the panel discussion that β
β works for all 3 panelists. β
β β
β Alternative suggested timings for Panel Discussion: β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β June 10, 2025 | 16:30 - 18:30 | Conference Room A β β
β β Match: 75% (all speakers available, Room A still free) β β
β β [Move Panel to This Slot] β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β June 11, 2025 | 10:00 - 12:00 | Main Hall β β
β β Match: 65% (different day, all speakers available) β β
β β [Move Panel to This Slot] β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β [View More Alternatives] β
β β
β [β Back to Conflict Details] [Cancel] β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Scenario 2: Speaker Double-Booked Conflict
Trigger: User drags βWorkshop 2β to 14:00-15:30 time slot, assigning Dr. Sarah Miller Conflict: Dr. Sarah Miller already assigned to βKeynoteβ at 13:00-14:30
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π΄ Timing Conflict Detected [X] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Conflict Type: Speaker Double-Booked β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β You are trying to assign Dr. Sarah Miller to: β β
β β β β
β β Session: "Workshop 2: Advanced Cloud Architecture" β β
β β Time: 14:00 - 15:30, June 10, 2025 β β
β β Room: Conference Room B β β
β β Duration: 1.5 hours β β
β β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β But Dr. Sarah Miller is already assigned to: β β
β β β β
β β Session: "Keynote: Future of Cloud Architecture" β β
β β Time: 13:00 - 14:30, June 10, 2025 β β
β β Room: Main Hall β β
β β Duration: 1.5 hours β β
β β Status: Already confirmed and published β β
β β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Overlap Duration: 30 minutes (14:00 - 14:30) β
β β
β ββββ Visual Timeline βββββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β β Dr. Sarah Miller's Schedule - June 10, 2025 β β
β β β β
β β 12:00 13:00 14:00 15:00 16:00 β β
β β βββββββββββ¬βββββββββ¬βββββββββ¬βββββββββ¬ββββββββ β β
β β β β β β β β
β β ββββββββββ΄βββββ€ β β
β β β Keynote β β Existing assignment β β
β β β 13:00-14:30β β β
β β βββββββββββββββ β β
β β β β
β β ββββββββββ΄βββββ€ β β
β β β Workshop 2 β β Attempted assignment β β
β β β 14:00-15:30β β β
β β βββββββββββββββ β β
β β β β
β β ββββ β β
β β OVERLAP: 30 min (shown in red) β β
β β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β β οΈ Note: Keynote is already published (Phase 2). Moving it would β
β require unpublishing and notifying subscribers. β
β β
β How would you like to resolve this conflict? β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β [1] Find Alternative Time Slot β β
β β View available slots for Workshop 2 that don't conflict β β
β β with Dr. Sarah Miller's schedule β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β [2] Assign Different Speaker β β
β β Keep Workshop 2 timing (14:00-15:30) but assign a β β
β β different speaker from the available pool β β
β β Available speakers: Prof. John Chen, Dr. Maria Lopez β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β [3] Reschedule Keynote (Not Recommended) β β
β β Move Keynote to a different time β β
β β β οΈ Requires unpublishing Phase 2 and notifying subscribers β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β [Cancel] β β
β β Abort this assignment and return to slot assignment view β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Resolution Flow for Option 2 (Assign Different Speaker):
User clicks [2] Assign Different Speaker β Modal transitions to speaker selection:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π€ Select Alternative Speaker [X] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Session: "Workshop 2: Advanced Cloud Architecture" β
β Keep timing: 14:00 - 15:30, June 10, 2025 β
β Room: Conference Room B β
β β
β Available speakers (no conflicts during this time): β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β Prof. John Chen β β
β β β β
β β Topic Expertise: Cloud Architecture, Microservices β β
β β Availability: Available all day June 10 β β
β β Time Preference: βοΈ Prefers afternoon (14:00-15:30 ideal) β β
β β A/V Requirements: Projector, Microphone (met by Room B) β β
β β Current Sessions: 1 assigned (Morning workshop) β β
β β β β
β β Match Score: 92% π’ (Excellent match for this workshop) β β
β β β β
β β [Assign Prof. Chen to Workshop 2] β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β Dr. Maria Lopez β β
β β β β
β β Topic Expertise: DevOps, Infrastructure β β
β β Availability: Available (no conflicts) β β
β β Time Preference: βͺ Neutral about afternoon slots β β
β β A/V Requirements: Projector, Whiteboard (Room B has both) β β
β β Current Sessions: 2 assigned (Morning + Evening) β β
β β β β
β β Match Score: 75% π’ (Good match, slightly off-topic) β β
β β β β
β β [Assign Dr. Lopez to Workshop 2] β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Showing 2 of 3 available speakers. [View All Speakers] β
β β
β [β Back to Conflict Details] [Cancel] β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Scenario 3: Speaker Preference Conflict (Warning)
Trigger: User drags βEarly Morning Workshopβ to 08:00-09:30, assigning Dr. Sarah Miller Conflict: Dr. Sarah Miller has marked βMorning before 09:00β as βAvoidβ in preferences
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β οΈ Preference Mismatch Warning [X] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Conflict Type: Speaker Preference Conflict β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β You are assigning Dr. Sarah Miller to: β β
β β β β
β β Session: "Early Morning Workshop: Getting Started" β β
β β Time: 08:00 - 09:30, June 10, 2025 β β
β β Room: Conference Room A β β
β β Duration: 1.5 hours β β
β β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Speaker preferences indicate: β β
β β β β
β β Time Preferences: β β
β β β Morning (6:00 - 12:00) Avoid (especially before 9am) β β
β β βοΈ Afternoon (12:00 - 18:00) Preferred β β
β β β Evening (18:00 - 22:00) Avoid β β
β β β β
β β Specific Avoid Time: β β
β β π΄ June 10, 08:00 - 09:00 (Morning commute) β β
β β β β
β β Additional Notes: β β
β β "I prefer afternoon sessions due to morning family β β
β β commitments. Early morning (before 9am) is very difficult." β β
β β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Match Score: 25% π΄ (Poor match - conflicts with stated preferences) β
β β
β ββββ Preference Comparison ββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β β Criteria Preference Actual Status β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β Time of Day Afternoon Morning β Mismatch β β
β β Specific Avoid Time 08:00-09:00 08:00-09:30 β Conflicts β β
β β Room Setup Natural light Available β Match β β
β β A/V Requirements Projector Available β Match β β
β β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β β οΈ This is a warning, not an error. You can proceed if needed, but β
β the speaker may request a time change or decline the assignment. β
β β
β How would you like to proceed? β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β [Find Better Matching Slot] (Recommended) β β
β β View alternative time slots that better match β β
β β Dr. Sarah Miller's preferences (afternoon slots) β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β [Assign Different Speaker] β β
β β Keep early morning timing but assign a speaker who β β
β β prefers or is available for morning sessions β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β [Override & Assign Anyway] β β
β β Proceed with this assignment despite preference mismatch β β
β β β οΈ You may need to contact the speaker to confirm β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β [Cancel] β β
β β Abort this assignment and return to slot assignment view β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Unique Features for Preference Conflict (vs. Hard Conflicts):
- Warning Severity: Yellow β οΈ icon instead of red π΄ error
- Override Option: [Override & Assign Anyway] button available (not present in hard conflicts)
- Match Score Display: Shows percentage match with color coding
- Preference Comparison Table: Detailed breakdown of criteria match/mismatch
- Advisory Language: βYou can proceed if neededβ vs. βAssignment blockedβ
Override Confirmation Flow:
User clicks [Override & Assign Anyway] β Modal shows confirmation:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β οΈ Confirm Override [X] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β You are about to override speaker preferences. β
β β
β This assignment has a match score of only 25% (Poor match). β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Recommendation: β β
β β β β
β β We recommend contacting Dr. Sarah Miller before confirming β β
β β this timing to ensure she can accommodate the early morning β β
β β slot despite her stated preferences. β β
β β β β
β β Contact: sarah.miller@example.com β β
β β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β β I understand the speaker may request a time change β
β β I will contact the speaker to confirm availability β
β β
β [Proceed with Assignment] [Cancel] β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
After clicking [Proceed with Assignment] β Success with warning flag:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β οΈ Assignment Confirmed with Override [X] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Session assigned successfully, but marked for follow-up. β
β β
β Session: "Early Morning Workshop: Getting Started" β
β Speaker: Dr. Sarah Miller β
β Time: 08:00 - 09:30, June 10, 2025 β
β Room: Conference Room A β
β Match: 25% (Poor match - override applied) β
β β
β β οΈ Action Required: β
β Contact Dr. Sarah Miller to confirm availability for this timing. β
β β
β [Send Email to Speaker] [Add to Follow-Up List] β
β β
β [Return to Slot Assignment] β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Conflict Detection Logic
Room Overlap Detection
Trigger Conditions:
- Proposed session has
room = XANDstart_time = T1ANDend_time = T2 - Existing session in database has
room = XAND time range overlaps with[T1, T2)
SQL Query:
SELECT * FROM sessions
WHERE room = :proposedRoom
AND event_id = :eventId
AND session_id != :proposedSessionId
AND (
(start_time < :proposedEndTime AND end_time > :proposedStartTime)
)
Conflict Severity: π΄ Error (blocking - must resolve)
Speaker Double-Booking Detection
Trigger Conditions:
- Proposed session assigns
speaker_id = SANDstart_time = T1ANDend_time = T2 - Existing session has same
speaker_id = SAND time range overlaps with[T1, T2)
SQL Query:
SELECT s.* FROM sessions s
JOIN speaker_pool sp ON s.id = sp.session_id
WHERE sp.speaker_id = :proposedSpeakerId
AND s.event_id = :eventId
AND s.session_id != :proposedSessionId
AND (
(s.start_time < :proposedEndTime AND s.end_time > :proposedStartTime)
)
Conflict Severity: π΄ Error (blocking - must resolve)
Speaker Preference Conflict Detection
Trigger Conditions:
- Proposed session timing falls outside speakerβs preferred time ranges
- Proposed session overlaps with speakerβs specific avoid times
- Match score calculated based on preferences falls below threshold (e.g., <50%)
Preference Match Algorithm:
interface PreferenceMatch {
score: number; // 0-100
severity: 'strong' | 'acceptable' | 'poor';
conflicts: string[];
}
function calculatePreferenceMatch(
sessionTiming: { start: Date, end: Date, room: Room },
preferences: SpeakerPreferences
): PreferenceMatch {
let score = 100;
const conflicts: string[] = [];
// Time of day preference (30 points)
if (isInPreferredTimeRange(sessionTiming, preferences.preferredTimes)) {
// No penalty
} else if (isInAvoidTimeRange(sessionTiming, preferences.avoidTimes)) {
score -= 30;
conflicts.push('Time of day conflicts with avoid preference');
} else {
score -= 15; // Neutral time
}
// Specific avoid times (40 points)
if (overlapsSpecificAvoidTime(sessionTiming, preferences.specificAvoidTimes)) {
score -= 40;
conflicts.push(`Conflicts with specific avoid time: ${formatAvoidTime(...)}`);
}
// Room setup preferences (15 points)
if (!roomMeetsRequirements(sessionTiming.room, preferences.roomSetup)) {
score -= 15;
conflicts.push('Room setup does not meet preferences');
}
// A/V requirements (15 points)
if (!roomHasAVSetup(sessionTiming.room, preferences.avRequirements)) {
score -= 15;
conflicts.push('Room lacks required A/V equipment');
}
// Determine severity
let severity: 'strong' | 'acceptable' | 'poor';
if (score >= 80) severity = 'strong';
else if (score >= 50) severity = 'acceptable';
else severity = 'poor';
return { score, severity, conflicts };
}
Conflict Severity: β οΈ Warning (non-blocking - can override)
Warning Threshold: Match score < 50% triggers preference conflict modal
Modal Behavior
Trigger Timing
When Conflicts Are Detected:
- During Drag: Real-time validation highlights potential conflicts (slot border color changes)
- On Drop: Modal appears immediately when drop action is attempted
- Before Save: Final validation before saving assignment to database
Modal Dismiss Behavior
Close Button [X]:
- Same as [Cancel] button
- Does NOT save any changes
- Returns to slot assignment page with no assignment made
[Cancel] Button:
- Abort assignment
- Return to slot assignment page
- Dragged speaker returns to speaker pool sidebar
- No changes saved
Background Click:
- Modal does NOT close (prevent accidental dismissal)
- User must use [X] or [Cancel] to close
Escape Key:
- Same as [Cancel] button
- Keyboard shortcut for quick dismissal
Success States
After successful resolution (any option):
- Modal transitions to success confirmation (green checkmark)
- Shows assignment details with match score
- Auto-dismisses after 2 seconds OR user clicks [Return to Slot Assignment]
- Toast notification appears in slot assignment page: ββ Session assigned successfullyβ
- Session grid updates to show new assignment
- Speaker card moves to βAssignedβ section in pool
Accessibility
Keyboard Navigation
Tab Order:
- Close button [X]
- Resolution option buttons ([1], [2], [3], etc.)
- [Cancel] button (always last)
Keyboard Shortcuts:
Escape: Close modal (same as [Cancel])1,2,3: Activate corresponding resolution optionEnter: Confirm currently focused buttonTab: Navigate between buttonsShift+Tab: Navigate backwards
ARIA Attributes
<div role="dialog" aria-labelledby="conflict-title" aria-modal="true">
<h2 id="conflict-title">π΄ Timing Conflict Detected</h2>
<!-- Conflict type announcement -->
<div role="alert" aria-live="assertive">
Conflict Type: Room Overlap. This assignment is blocked.
</div>
<!-- Resolution options -->
<button aria-label="Option 1: Find alternative time slot that matches speaker preferences">
[1] Find Alternative Time Slot
</button>
<!-- Close button -->
<button aria-label="Close conflict resolution modal and cancel assignment">
[X]
</button>
</div>
Screen Reader Announcements
On Modal Open:
"Timing conflict detected. Room overlap. The assignment is blocked and must be resolved. 3 resolution options available. Press 1, 2, or 3 to select an option, or press Escape to cancel."
On Resolution Selection:
"Finding alternative time slots. 3 slots found. Press Enter to assign to a slot, or Tab to review options."
On Success:
"Conflict resolved. Workshop 2 has been assigned to Conference Room B from 11:00 to 12:30. Match score: 85 percent, strong match. Returning to slot assignment page."
Responsive Design
Desktop (β₯1200px)
- Modal width: 800px (fixed)
- Visual timeline: Full horizontal layout
- All resolution options visible simultaneously
- Two-column layout for alternative slot suggestions
Tablet (768px - 1199px)
- Modal width: 90% viewport width (max 700px)
- Visual timeline: Condensed horizontal layout
- Resolution options: Single column, full width
- Alternative slots: Single column
Mobile (<768px)
- Modal: Full-screen overlay
- Header: Sticky at top
- Visual timeline: Simplified vertical timeline
- Resolution options: Large touch-friendly buttons (min 44px height)
- Scrollable content area
- Sticky footer with [Cancel] button
Edge Cases
Multiple Simultaneous Conflicts
Scenario: Proposed assignment violates BOTH room overlap AND speaker preference
Behavior:
- Modal shows MOST SEVERE conflict first (room overlap)
- After resolving room conflict, if new assignment still has preference conflict β second modal appears
- Conflicts are chained (resolve one at a time)
Example Flow:
- User drags speaker to conflicting room slot
- Modal shows: βπ΄ Room Overlapβ (error - blocking)
- User selects βAssign to Different Roomβ β chooses Room B
- Room conflict resolved
- Modal transitions to: ββ οΈ Preference Mismatchβ (warning - non-blocking)
- User can now choose to override or find better slot
Published Session Conflicts
Scenario: Conflict involves a session already published (Phase 2 or 3)
Behavior:
- Modal shows special warning badge: ββ οΈ Published Sessionβ
- Additional context: βThis session is already published. Moving it requires unpublishing.β
- Reassignment option labeled: β[Reschedule Keynote (Requires Unpublish)]β
- If user selects reassignment β additional confirmation modal:
β οΈ Unpublish Confirmation Required This action will: β’ Unpublish Phase 2 (Speakers) from the public site β’ Send notification to 247 active subscribers β’ Revert event to Phase 1 (Topic Only) Are you sure you want to proceed? [Yes, Unpublish & Reschedule] [Cancel]
Zero Alternative Slots
Scenario: User clicks [Find Alternative Time Slot] but no available slots exist that match preferences
Behavior:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π Alternative Time Slots [X] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β No available time slots found. β
β β
β We searched for slots matching Dr. Sarah Miller's preferences but β
β found no available options that: β
β β’ Are during afternoon (preferred time) β
β β’ Have no room conflicts β
β β’ Have no speaker conflicts β
β β’ Meet A/V requirements β
β β
β Suggestions: β
β 1. Expand search to include neutral time slots (morning/evening) β
β 2. Assign a different speaker to this session β
β 3. Create a new time slot by extending event schedule β
β β
β [Expand Search Criteria] [Assign Different Speaker] β
β β
β [β Back to Conflict Details] [Cancel] β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Testing Checklist
Room Overlap Conflict
Speaker Double-Booked Conflict
Speaker Preference Conflict
Multiple Conflicts
Edge Cases
Accessibility
Related Wireframes
- story-5.7-slot-assignment-page.md: Main slot assignment interface where conflicts are triggered
- story-5.7-speaker-preference-panel.md: Detailed speaker preferences used for match scoring
- story-5.7-navigation-integration.md: Navigation flows to/from slot assignment page
Change Log
| Date | Version | Description | Author |
|---|---|---|---|
| 2025-12-25 | 1.0 | Initial conflict resolution wireframe | Sally (UX Expert) |