Story 1.16: Event Detail/Edit Screen - Wireframe

Story: Epic 1, Story 1.16 - Event Management Service

Last updated: January 2, 2026 Reading time: 29 minutes File size: 51.22 KB

Event Detail/Edit Screen

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ ← Back to Dashboard    Event Details                      [Save Changes] [Event Settings] β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                                       β”‚
β”‚  β”Œβ”€β”€β”€ EVENT INFORMATION ─────────────────────────────────────────────────────────┐  β”‚
β”‚  β”‚                                                                                β”‚  β”‚
β”‚  β”‚  Title: [Spring Conference 2025                                         ] ✎   β”‚  β”‚
β”‚  β”‚                                                                                β”‚  β”‚
β”‚  β”‚  Description:                                                                  β”‚  β”‚
β”‚  β”‚  [A comprehensive Spring conference covering advanced microservices    ] ✎   β”‚  β”‚
β”‚  β”‚  [architecture patterns, cloud-native development, and lessons learned]       β”‚  β”‚
β”‚  β”‚  [from production deployments.                                         ]      β”‚  β”‚
β”‚  β”‚                                                                                β”‚  β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚  β”‚
β”‚  β”‚  β”‚ Event # β”‚ Event Date   β”‚ Event Type β”‚ Status      β”‚ Publishing Date      β”‚ β”‚  β”‚
β”‚  β”‚  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚  β”‚
β”‚  β”‚  β”‚   54    β”‚ Mar 15, 2025 β”‚ Full Day β–Ό β”‚ Published ● β”‚ Jan 15, 2025         β”‚ β”‚  β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚  β”‚
β”‚  β”‚                                                                                β”‚  β”‚
β”‚  β”‚  Theme: [Cloud-Native Architecture                                      ] ✎   β”‚  β”‚
β”‚  β”‚                                                                                β”‚  β”‚
β”‚  β”‚  Registration Deadline: [Mar 10, 2025  πŸ“…]    Capacity: [150] Current: 87    β”‚  β”‚
β”‚  β”‚                                                                                β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                                       β”‚
β”‚  β”Œβ”€β”€β”€ WORKFLOW PROGRESS ────────┬─── KEY METRICS ──────────────────────────────┐  β”‚
β”‚  β”‚                               β”‚                                              β”‚  β”‚
β”‚  β”‚  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘ 80%     β”‚  πŸ“Š Speakers: 12/12 confirmed               β”‚  β”‚
β”‚  β”‚                               β”‚  βœ“ Topics: 3 assigned                        β”‚  β”‚
β”‚  β”‚  Step 12/16: Agenda Final.   β”‚  ⚠️ Materials: 2 pending                    β”‚  β”‚
β”‚  β”‚                               β”‚  πŸ“ Registrations: 87/150                   β”‚  β”‚
β”‚  β”‚  [View Workflow Details]      β”‚  πŸ’° Budget: CHF 15,000                      β”‚  β”‚
β”‚  β”‚                               β”‚                                              β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                                       β”‚
β”‚  β”Œβ”€β”€β”€ VENUE & LOGISTICS ────────────────────────────────────────────────────────┐  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  Venue: [Kursaal Bern β–Ό]                             [Change Venue]          β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  Address: Kornhausstrasse 3, 3013 Bern                                       β”‚  β”‚
β”‚  β”‚  Capacity: 200 | Parking: Available | Wheelchair Access: Yes                β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  Booking Status: βœ“ Confirmed (Confirmation #: KB-2025-03-001)               β”‚  β”‚
β”‚  β”‚  Contact: Anna Schmidt (anna.schmidt@kursaal-bern.ch, +41 31 339 55 00)     β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  β”Œβ”€ Catering ────────────────────────────────────────────────┐              β”‚  β”‚
β”‚  β”‚  β”‚ Provider: [Select Caterer β–Ό]           [+ Add Caterer]    β”‚              β”‚  β”‚
β”‚  β”‚  β”‚ Menu: Not configured                 [Configure Menu]      β”‚              β”‚  β”‚
β”‚  β”‚  β”‚ Dietary Requirements: 5 vegetarian, 2 vegan, 3 gluten-free β”‚              β”‚  β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  [View Full Logistics Details]                                               β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                                       β”‚
β”‚  β”Œβ”€β”€β”€ ASSIGNED TOPICS (3) ──────────────────────────────────────────────────────┐  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  ● Microservices Architecture Patterns                      [View] [Remove]  β”‚  β”‚
β”‚  β”‚    Last used: BATbern #48 (2023) | Partner votes: 18                         β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  ● Cloud-Native Development Best Practices                  [View] [Remove]  β”‚  β”‚
β”‚  β”‚    Last used: Never | Partner votes: 12                                      β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  ● Production Deployment Lessons Learned                    [View] [Remove]  β”‚  β”‚
β”‚  β”‚    Last used: BATbern #51 (2024) | Partner votes: 15                         β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  [+ Add Topic from Backlog]                                                  β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                                       β”‚
β”‚  β”Œβ”€β”€β”€ SPEAKERS & SESSIONS (12) ─────────────────────────────────────────────────┐  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  Slot 1 | 09:00-10:00 | Dr. Sarah Miller (Accenture)               βœ“        β”‚  β”‚
β”‚  β”‚     "Microservices: From Theory to Practice"                                 β”‚  β”‚
β”‚  β”‚     [View Details] [Edit Slot] [Materials: Complete βœ“]                       β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  Slot 2 | 10:15-11:15 | Prof. James Wilson (University of Bern)     βœ“        β”‚  β”‚
β”‚  β”‚     "Cloud Security Architecture"                                            β”‚  β”‚
β”‚  β”‚     [View Details] [Edit Slot] [Materials: Pending ⚠️]                      β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  Slot 3 | 11:30-12:30 | Anna Schmidt (SwissRe)                       βœ“        β”‚  β”‚
β”‚  β”‚     "Kubernetes in Production: Real-World Experience"                        β”‚  β”‚
β”‚  β”‚     [View Details] [Edit Slot] [Materials: Pending ⚠️]                      β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  ... (9 more slots)                                                          β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  [View Full Agenda] [Manage Speaker Assignments] [Auto-Assign Speakers]      β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                                       β”‚
β”‚  β”Œβ”€β”€β”€ TEAM ASSIGNMENTS ──────────────────────────────────────────────────────────┐  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  Lead Organizer: Sally Organizer (sally@batbern.ch)                          β”‚  β”‚
β”‚  β”‚  Co-Organizers: Mark Thompson, Anna Weber                                    β”‚  β”‚
β”‚  β”‚  Moderator: [Not assigned β–Ό]                               [Assign]          β”‚  β”‚
β”‚  β”‚  Content Reviewer: Dr. Peter Lang                          [Change]          β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  [Manage Team Assignments]                                                   β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                                       β”‚
β”‚  β”Œβ”€β”€β”€ PUBLISHING CONFIGURATION ──────────────────────────────────────────────────┐  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  Publishing Strategy: Progressive ●                                           β”‚  β”‚
β”‚  β”‚  Current Phase: Agenda Published                                             β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  Publishing Timeline:                                                         β”‚  β”‚
β”‚  β”‚    βœ“ Topic Published (Immediate) - Jan 5, 2025                              β”‚  β”‚
β”‚  β”‚    βœ“ Speakers Published (1 month prior) - Feb 15, 2025                      β”‚  β”‚
β”‚  β”‚    βœ“ Final Agenda Published (2 weeks prior) - Mar 1, 2025                   β”‚  β”‚
β”‚  β”‚    β—‹ Post-Event Materials (After event) - Not yet available                 β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  Quality Checkpoints:                                                         β”‚  β”‚
β”‚  β”‚    βœ“ Abstract length validation (max 1000 chars)                            β”‚  β”‚
β”‚  β”‚    βœ“ Lessons learned requirement met                                        β”‚  β”‚
β”‚  β”‚    βœ“ All materials submitted                                                β”‚  β”‚
β”‚  β”‚    βœ“ Moderator review complete                                              β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  [Configure Publishing] [Republish Event] [Preview Public Page]              β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                                       β”‚
β”‚  β”Œβ”€β”€β”€ NOTIFICATIONS & REMINDERS ────────────────────────────────────────────────┐  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  Active Automations: 8                                                        β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  ● Speaker deadline reminders (3 days before) - Active                       β”‚  β”‚
β”‚  β”‚  ● Registration confirmation emails - Active                                 β”‚  β”‚
β”‚  β”‚  ● Final agenda distribution - Scheduled for Mar 1, 2025                     β”‚  β”‚
β”‚  β”‚  ● Event day check-in reminders - Scheduled for Mar 15, 2025                β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  [Manage Notifications] [Send Manual Notification]                           β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                                       β”‚
β”‚  β”Œβ”€β”€β”€ ACTION BUTTONS ───────────────────────────────────────────────────────────┐  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β”‚  [Cancel Changes]  [Save as Draft]  [Save & Continue]  [Delete Event]        β”‚  β”‚
β”‚  β”‚                                                                               β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                                       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Key Interactive Elements

  • Edit Fields (✎): Click to edit event title, description, theme inline
  • Dropdown Selectors (β–Ό): Select event type, venue, caterer from predefined lists
  • Date Picker (πŸ“…): Interactive calendar for selecting registration deadline
  • Progress Bar: Shows workflow completion percentage, click to view details
  • Topic Cards: View topic details, remove topics, add new topics from backlog
  • Speaker/Session Rows: Expandable rows showing session details with edit/view actions
  • Status Indicators: Visual feedback for materials status, booking confirmation
  • Action Buttons: Context-specific actions for each section (manage, configure, assign)
  • Auto-Assign: Intelligent algorithm to automatically assign speakers to optimal slots
  • Publishing Timeline: Visual representation of publishing phases with checkpoints
  • Team Assignment Dropdowns: Select team members for various roles
  • Notification Management: Configure automated notification rules and send manual notifications

Functional Requirements Met

  • FR2: Complete 16-step workflow visibility with current step and progress percentage
  • FR5: Progressive event publishing configuration with automated content updates
  • FR12: Multi-year venue reservations, catering coordination, and logistics management integrated
  • FR17: Intelligent speaker matching and assignment tracking with slot management
  • FR19: Progressive publishing engine with content validation and quality checkpoints
  • FR20: Intelligent notification system with role-based alerts and automated escalation

User Interactions

  1. Edit Event Information: Click edit icon (✎) to modify title, description, or theme
  2. Change Event Date: Click date field to open calendar picker and select new date (all dates and times in Swiss timezone CET/CEST only)
  3. Update Event Type: Select from dropdown (Full Day, Afternoon, Evening) to reconfigure slots
  4. View Workflow Details: Click workflow section to navigate to detailed 16-step visualization
  5. Change Venue: Click [Change Venue] to open venue selection dialog
  6. Configure Catering: Select caterer, configure menu options, specify dietary requirements
  7. Manage Topics: View topic details, remove topics, or add from backlog
  8. View Speaker Details: Click [View Details] to see full speaker profile and session information
  9. Edit Slot Assignment: Reassign speakers to different time slots via drag-and-drop or manual selection (all slot times in Swiss timezone CET/CEST)
  10. Auto-Assign Speakers: Use AI algorithm to automatically optimize speaker slot assignments
  11. Assign Team Members: Select organizers, moderators, and reviewers from team member list
  12. Configure Publishing: Set up progressive publishing timeline and quality checkpoints
  13. Manage Notifications: Enable/disable automated notifications, send manual messages
  14. Save Changes: Save draft or publish changes immediately
  15. Delete Event: Permanently remove event (with confirmation dialog)

Technical Notes

  • Auto-save always enabled - Saves automatically with 5-second debounce after field changes (not configurable per user)
  • Optimistic UI updates for immediate feedback
  • Real-time validation for required fields and constraints
  • Confirmation dialogs for destructive actions (delete event, remove speakers)
  • Deletion requires organizer confirmation only - No admin approval needed (organizer role has sufficient authority)
  • No event templates in MVP - Each event created from scratch
  • Swiss timezone only (CET/CEST) - All times displayed in local Swiss timezone, no special timezone handling for international speakers
  • No real-time presence indicators - Concurrent editing conflicts resolved via version mismatch detection and conflict dialog
  • Rich text editor for event description with formatting options
  • Inline editing for quick updates without page navigation
  • Responsive layout adapts to tablet and mobile devices
  • Role-based field visibility (some fields only for lead organizer)
  • Audit trail for all changes (who changed what and when)
  • Integration with workflow state machine for status transitions
  • Optimistic concurrency control for concurrent editing detection
  • Data persistence uses Event aggregate root pattern (DDD)

API Requirements

Initial Page Load APIs

When the Event Detail/Edit Screen loads, the following APIs are called to provide the necessary data:

CONSOLIDATED API APPROACH (Story 1.15a.1 - Events API Consolidation):

  1. GET /api/v1/events/{eventId}?include=venue,speakers,sessions,workflow,registrations,team,analytics

    • Implementation: Story 1.15a.1 (AC2) with resource expansion
    • Returns: Complete event entity with all sub-resources expanded in a single call
    • Response includes:
      • Event core data: id, eventNumber, title, description, eventDate, eventType, status, workflowState, theme, registrationDeadline, capacity, currentAttendeeCount, publishedAt, metadata
      • venue: Venue entity with id, name, address, capacity, amenities (parking, wheelchair access), bookingStatus, confirmationNumber, contactPerson (name, email, phone)
      • catering: Catering configuration with providerId, providerName, menuStatus, dietaryRequirements (breakdown by type)
      • workflow: Workflow state with currentStep (1-16), completionPercentage, stepName, nextSteps, blockers, warnings
      • analytics: Key metrics including confirmedSpeakersCount, totalSpeakersCount, assignedTopicsCount, pendingMaterialsCount, registrationCount, registrationCapacity, budgetAmount
      • topics: Array of assigned topics with id, title, lastUsedEvent (eventNumber, year), partnerVotes count, usageHistory
      • sessions: Array of sessions with id, slotNumber, startTime, endTime, speaker (id, name, company), title, materialsStatus (complete/pending/missing)
      • team: Team assignments with leadOrganizerId, leadOrganizerName, coOrganizers array (id, name), moderatorId (optional), contentReviewerId
      • publishing: Publishing configuration with strategy (progressive/immediate), currentPhase, timeline (array of phases with name, date, status), qualityCheckpoints (array with name, status)
      • notifications: Active notification automations with type, description, status (active/paused), scheduledDate
    • Used for: Populate all sections of the event detail screen in a single request
    • Performance: Reduced from 10 API calls to 1 (90% reduction in HTTP requests)
    • Caching: 15-minute Caffeine in-memory cache with automatic invalidation on updates
    • Response Time: <50ms cached, <500ms uncached with all includes (P95)
  2. GET /api/v1/venues

    • Query params: available=true, includeMetadata=true
    • Returns: Array of available venues for dropdown selection with id, name, capacity, location
    • Used for: Populate venue selection dropdown
  3. GET /api/v1/organizers/{organizerId}/team-members

    • Returns: Team members available for assignment with id, name, role, availability
    • Used for: Populate team member selection dropdowns

MIGRATION NOTE (Story 1.15a.1 - Events API Consolidation): The original implementation required 12 separate API calls on page load, causing slow initial render and complex loading states. The new consolidated API (Story 1.15a.1) reduces this to 3 calls:

  • 1 primary call for all event data with ?include= parameter (previously 10 calls)
  • 2 supporting calls for dropdowns (venues, team members)

This consolidation improves:

  • Page load time: ~80% faster (from ~3s to <500ms with caching)
  • Loading state complexity: Single loading indicator instead of 10
  • Data consistency: Atomic snapshot of event state
  • Network efficiency: Reduced latency from multiple round trips
  • Caching efficiency: Caffeine in-memory cache (15min TTL) provides <50ms cached responses

Action APIs

Event Information Updates

  1. PUT /api/v1/events/{eventId}

    • Implementation: Story 1.15a.1 (AC4)
    • Triggered by: [Save Changes] button or auto-save (5-second debounce after field changes)
    • Payload: { title?, description?, date?, status?, theme?, capacity? }
    • Response: Updated event entity with new updatedAt timestamp, validation results
    • Used for: Save all event information changes (full replacement)
    • Cache invalidation: Automatically clears event cache
    • Note: Auto-save is always enabled for all organizers (not configurable)
  2. PATCH /api/v1/events/{eventId}

    • Implementation: Story 1.15a.1 (AC5)
    • Triggered by: Inline field edit (title, description, etc.) on blur
    • Payload: { title?: string, description?: string, ... } (only changed fields)
    • Response: Confirmation with updated fields, timestamp
    • Used for: Quick inline update of event fields (partial update)
    • Cache invalidation: Automatically clears event cache

Workflow Management

  1. POST /api/v1/events/{eventId}/workflow/advance
    • Implementation: Story 1.15a.1 (AC8)
    • Triggered by: [View Workflow Details] β†’ Advance Step button
    • Payload: None (advances to next workflow state)
    • Response: Updated event with new workflowState, completion percentage
    • Used for: Manually advance workflow to next step
    • Cache invalidation: Automatically clears event cache

Venue & Logistics Management

  1. PUT /api/v1/events/{eventId}/venue

    • Triggered by: [Change Venue] β†’ Select new venue β†’ Confirm
    • Payload: { venueId: string, bookingNotes?: string }
    • Response: Updated venue assignment, booking status, confirmation needed flag
    • Used for: Assign or change event venue
  2. POST /api/v1/events/{eventId}/venue/booking/confirm

    • Triggered by: Confirm venue booking dialog
    • Payload: { confirmationNumber: string, contactPerson: { name, email, phone }, specialRequirements?: string }
    • Response: Confirmed booking with status, confirmation details, next steps
    • Used for: Confirm venue booking with confirmation number
  3. PUT /api/v1/events/{eventId}/catering

    • Triggered by: [Configure Menu] β†’ Save catering configuration
    • Payload: { catererId: string, menuConfiguration: object, dietaryRequirements: object, attendeeCount: number }
    • Response: Updated catering configuration, cost estimate, confirmation status
    • Used for: Configure or update catering provider and menu
  4. POST /api/v1/caterers

    • Triggered by: [+ Add Caterer] in catering section
    • Payload: { name: string, contactPerson: string, email: string, phone: string, specialties: string[] }
    • Response: Created caterer entity with id, confirmation
    • Used for: Add new caterer to system database

Topic Management

  1. POST /api/v1/events/{eventId}/topics

    • Triggered by: [+ Add Topic from Backlog] β†’ Select topic β†’ Add
    • Payload: { topicId: string }
    • Response: Topic assignment confirmation, updated topics array
    • Used for: Assign topic from backlog to event
  2. DELETE /api/v1/events/{eventId}/topics/{topicId}

    • Triggered by: [Remove] button on topic card
    • Response: Confirmation of topic removal, updated topics array
    • Used for: Remove assigned topic from event
  3. GET /api/v1/topics/{topicId}

    • Triggered by: [View] button on topic card
    • Returns: Complete topic details with title, description, usageHistory (array of events), partnerVotes, duplicateCheck
    • Used for: Display full topic information in modal or detail view

Speaker & Session Management

  1. GET /api/v1/events/{eventId}/sessions/{sessionId}

    • Triggered by: [View Details] button on speaker/session row
    • Returns: Full session details with speakers array, materials (files with status), schedule, requirements
    • Used for: Display complete session information in expanded view or modal
  2. PUT /api/v1/events/{eventId}/sessions/{sessionId}/slot

    • Triggered by: [Edit Slot] β†’ Change time slot β†’ Save
    • Payload: { slotId: string, startTime: Date, endTime: Date }
    • Response: Updated slot assignment, conflict warnings (if any), schedule updated confirmation
    • Used for: Reassign session to different time slot
  3. POST /api/v1/events/{eventId}/speakers/auto-assign

    • Triggered by: [Auto-Assign Speakers] button
    • Payload: { considerPreferences: boolean, optimizationCriteria: string[] }
    • Response: Proposed slot assignments with algorithm reasoning, confidence scores, conflicts
    • Used for: Use AI algorithm to automatically optimize speaker slot assignments
  4. GET /api/v1/events/{eventId}/agenda

    • Triggered by: [View Full Agenda] button
    • Returns: Complete agenda with all sessions sorted by time, speaker details, materials status
    • Used for: Navigate to full agenda view screen
  5. GET /api/v1/events/{eventId}/speakers/assignments

    • Triggered by: [Manage Speaker Assignments] button
    • Returns: Speaker assignment interface data with available speakers, assigned speakers, slots
    • Used for: Navigate to speaker matching/assignment interface

Team Management

  1. PUT /api/v1/events/{eventId}/team/moderator

    • Triggered by: [Assign] button in moderator field β†’ Select moderator β†’ Confirm
    • Payload: { moderatorId: string }
    • Response: Moderator assignment confirmation, notification sent status
    • Used for: Assign or change event moderator
  2. PUT /api/v1/events/{eventId}/team/reviewer

    • Triggered by: [Change] button in content reviewer field β†’ Select reviewer β†’ Confirm
    • Payload: { reviewerId: string }
    • Response: Reviewer assignment confirmation, notification sent status
    • Used for: Change content reviewer for quality control
  3. GET /api/v1/events/{eventId}/team/assignments

    • Triggered by: [Manage Team Assignments] button
    • Returns: Complete team assignment interface data with roles, assignments, permissions
    • Used for: Navigate to team management screen

Publishing Management

  1. PUT /api/v1/events/{eventId}/publishing/configuration

    • Triggered by: [Configure Publishing] β†’ Update settings β†’ Save
    • Payload: { strategy: "progressive" | "immediate", timeline: object[], qualityCheckpoints: string[] }
    • Response: Updated publishing configuration, next publication date, validation results
    • Used for: Configure or update publishing strategy and timeline
  2. POST /api/v1/events/{eventId}/publishing/republish

    • Triggered by: [Republish Event] button
    • Payload: { reason: string, notifyAttendees: boolean }
    • Response: Republication confirmation, updated publishedAt timestamp, notification count
    • Used for: Force republish event to public page (for updates after initial publication)
  3. GET /api/v1/events/{eventId}/public-preview

    • Triggered by: [Preview Public Page] button
    • Returns: Public page preview URL with authentication token for preview access
    • Used for: Open public event landing page in preview mode

Notification Management

  1. GET /api/v1/events/{eventId}/notifications/rules

    • Triggered by: [Manage Notifications] button
    • Returns: All notification rules with id, type, trigger conditions, recipients, status
    • Used for: Display notification management interface
  2. POST /api/v1/events/{eventId}/notifications/send

    • Triggered by: [Send Manual Notification] β†’ Compose message β†’ Send
    • Payload: { recipientType: "speakers" | "attendees" | "partners" | "team", subject: string, message: string, urgency: "normal" | "high" }
    • Response: Notification sent confirmation, recipient count, delivery status
    • Used for: Send manual notification to specific audience
  3. PUT /api/v1/events/{eventId}/notifications/rules/{ruleId}/toggle

    • Triggered by: Toggle notification rule on/off
    • Payload: { enabled: boolean }
    • Response: Rule status updated, confirmation
    • Used for: Enable or disable automated notification rules

Save & Delete Actions

  1. POST /api/v1/events/{eventId}/draft

    • Triggered by: [Save as Draft] button
    • Payload: Current form state as draft
    • Response: Draft saved confirmation with timestamp, auto-saved status
    • Used for: Save incomplete changes as draft without validation
  2. DELETE /api/v1/events/{eventId}

    • Implementation: Story 1.15a.1 (AC6)
    • Triggered by: [Delete Event] β†’ Confirmation dialog β†’ Confirm Delete
    • Response: 204 No Content on success
    • Used for: Permanently delete event
    • Cache invalidation: Automatically clears event cache
    • Authorization: Organizer role required (no admin approval needed)
    • Validation: Cannot delete if registrations exist (must cancel event instead)
  3. GET /api/v1/events/{eventId}/deletion-impact

    • Triggered by: [Delete Event] button click (before confirmation)
    • Returns: Impact analysis with registrationCount, confirmedSpeakers, associatedMaterials, dependentData, canDelete (boolean)
    • Used for: Show deletion impact in confirmation dialog
    • Displays: β€œThis will permanently delete: X registrations, Y confirmed speakers, Z materials”
    • If registrations exist: Shows β€œCannot delete - please cancel event instead” message

Primary Navigation Actions

  1. ← Back to Dashboard button β†’ Navigate to Event Management Dashboard (story-1.16-event-management-dashboard.md)

    • Returns to organizer main dashboard
    • Unsaved changes prompt if modifications exist
    • Context: Navigates back to event list view
  2. [Event Settings] button β†’ Navigate to Event Settings Screen (Missing Wireframe - HIGH PRIORITY)

    • Advanced event configuration
    • Integration settings
    • Notification preferences
    • Access permissions management
    • Context: Passes eventId for settings configuration
  3. BATbern logo/header β†’ Navigate to Event Management Dashboard

    • Returns to home dashboard
    • Confirms save/discard changes if modified
    • Context: Global navigation to dashboard

Section-Specific Navigation

  1. [View Workflow Details] button β†’ Navigate to Workflow Visualization (story-1.16-workflow-visualization.md)

    • Detailed 16-step workflow view
    • Step-by-step progress tracking
    • Context: Passes eventId to show workflow for this specific event
  2. Workflow progress bar click β†’ Navigate to Workflow Visualization (story-1.16-workflow-visualization.md)

    • Same as [View Workflow Details]
    • Focuses on current workflow step
    • Context: eventId with currentStep highlighted
  3. [Change Venue] button β†’ Opens Venue Selection Dialog (Modal)

    • Searchable venue list
    • Venue comparison
    • Booking availability check
    • Context: Returns selected venueId to update event
  4. [View Full Logistics Details] button β†’ Navigate to Logistics Coordination (story-4.4-logistics-coordination.md)

    • Complete logistics management
    • Venue booking details
    • Catering coordination
    • Context: Passes eventId for logistics view
  5. [Configure Menu] button β†’ Opens Catering Configuration Dialog (Modal)

    • Menu selection interface
    • Dietary requirements form
    • Cost estimation
    • Context: Returns catering configuration object
  6. [+ Add Caterer] button β†’ Opens Add Caterer Form (Modal)

    • New caterer creation form
    • Contact information input
    • Specialty selection
    • Context: Returns new catererId on creation
  7. [View] button on Topic card β†’ Opens Topic Detail Modal (Modal)

    • Full topic description
    • Usage history across events
    • Partner vote breakdown
    • Duplicate topic warnings
    • Context: Displays topicId details
  8. [+ Add Topic from Backlog] button β†’ Navigate to Topic Backlog Management (story-2.2-topic-backlog-management.md)

    • Topic search and selection
    • Historical usage tracking
    • Partner voting influence
    • Context: Returns with selected topicId(s) to add to event
  9. [View Details] button on Speaker/Session row β†’ Opens Session Detail Dialog (Modal)

    • Full session information
    • Speaker profile
    • Material submission status
    • Quality review feedback
    • Context: Displays sessionId and speakerId details
  10. [Edit Slot] button on Speaker/Session row β†’ Opens Slot Assignment Editor (Modal)

    • Time slot selection
    • Conflict checking
    • Speaker preferences display
    • Technical requirements
    • Context: Allows slot reassignment for sessionId
  11. [Materials: Pending ⚠️] link β†’ Opens Material Submission Status (Modal)

    • Missing materials checklist
    • Submission deadlines
    • Contact speaker action
    • Material review status
    • Context: Shows submission status for sessionId
  12. [View Full Agenda] button β†’ Navigate to Event Timeline View (story-3.5-event-timeline.md)

    • Complete day timeline
    • All sessions chronologically
    • Visual schedule representation
    • Context: Passes eventId for timeline view
  13. [Manage Speaker Assignments] button β†’ Navigate to Speaker Matching Interface (story-3.1-speaker-matching-interface.md)

    • Intelligent speaker matching
    • Slot assignment management
    • Overflow handling
    • Context: Passes eventId for speaker management
  14. [Auto-Assign Speakers] button β†’ Opens Auto-Assignment Preview Dialog (Modal)

    • AI-generated slot assignments
    • Reasoning explanation
    • Conflict warnings
    • Accept/reject assignment options
    • Context: Shows proposed assignments for eventId
  15. [Manage Team Assignments] button β†’ Navigate to Team Management Screen (Missing Wireframe)

    • Team member roles
    • Permission assignments
    • Workload distribution
    • Context: Passes eventId for team configuration
  16. [Configure Publishing] button β†’ Opens Publishing Configuration Dialog (Modal)

    • Progressive publishing timeline
    • Quality checkpoint selection
    • Phase date configuration
    • Content validation rules
    • Context: Returns publishing configuration object
  17. [Republish Event] button β†’ Opens Republish Confirmation Dialog (Modal)

    • Republication reason input
    • Attendee notification option
    • Impact summary
    • Confirm/cancel actions
    • Context: Triggers republish for eventId
  18. [Preview Public Page] button β†’ Opens in new tab/window

    • Public event landing page
    • Preview mode with edit indicator
    • Organizer view of attendee experience
    • Context: Opens public URL for eventId with preview token
  19. [Manage Notifications] button β†’ Navigate to Notification Center (story-1.20-notification-center.md)

    • All notification rules
    • Automation configuration
    • Delivery status tracking
    • Context: Filtered to eventId notifications
  20. [Send Manual Notification] button β†’ Opens Compose Notification Dialog (Modal)

    • Recipient selection
    • Message composition
    • Template selection
    • Send immediately or schedule
    • Context: Pre-populates eventId context

Save & Delete Actions Navigation

  1. [Save Changes] button β†’ Saves and stays on current screen

    • Validates all form fields
    • Shows success/error toast notification
    • Updates timestamp
    • No navigation
  2. [Save as Draft] button β†’ Saves and stays on current screen

    • Saves without validation
    • Draft indicator displayed
    • Success toast notification
    • No navigation
  3. [Save & Continue] button β†’ Saves and advances workflow

    • Validates form
    • Advances to next workflow step
    • Navigation depends on next step (may navigate to different screen)
    • Context: May navigate to workflow-specific screen
  4. [Delete Event] button β†’ Opens Delete Confirmation Dialog (Modal)

    • Deletion impact summary (registrations, speakers, materials counts)
    • Cascading deletion warnings
    • Organizer confirmation required (no admin approval)
    • Validation: Cannot delete if registrations exist
    • Confirm/cancel options
    • On confirm: Delete event and navigate to Event Management Dashboard
    • On validation failure: Show β€œCannot delete - cancel event instead” message
  5. [Cancel Changes] button β†’ Discards changes and returns to Event Management Dashboard

    • Confirmation dialog if unsaved changes
    • Reverts all modifications
    • Context: Returns to dashboard

Error States & Redirects

  1. Unauthorized Access β†’ Redirect to Login Screen

    • User not authenticated
    • Session expired
    • Context: Returns to event detail after successful login
  2. Insufficient Permissions β†’ Redirect to Event Management Dashboard with error message

    • User lacks organizer role
    • Not assigned to this event
    • Context: Shows permission denied message
  3. Event Not Found β†’ Redirect to Event Management Dashboard with error message

    • Invalid eventId
    • Event deleted by another user
    • Context: Shows β€œEvent not found” error
  4. Concurrent Edit Conflict β†’ Shows Conflict Resolution Dialog (Modal)

    • Another organizer modified event (detected via version number mismatch)
    • Shows conflicting changes with diff view
    • Options: reload (discard local changes), force save (overwrite server changes)
    • No real-time presence indicators (MVP limitation)
    • Context: Allows user to resolve conflict manually
    • Note: Last-write-wins strategy, no automatic merge

Responsive Design Considerations

Mobile Layout Changes

  • Event information section becomes vertically stacked single column
  • Workflow progress and key metrics stack vertically instead of side-by-side
  • Speaker/session rows show condensed view with expand icon
  • Action buttons collapse into hamburger menu or bottom sheet
  • Inline edit fields may open in modal dialogs for better touch interaction
  • Date pickers use mobile-optimized calendar widgets

Tablet Layout Changes

  • Two-column layout maintained but with adjusted widths
  • Speaker/session section shows fewer rows with scroll
  • Side-by-side sections (workflow/metrics) remain but with reduced padding
  • Action buttons remain visible but with smaller font size

Mobile-Specific Interactions

  • Swipe left on speaker/session row to reveal quick actions (edit, delete, view)
  • Pull-to-refresh to reload event data
  • Bottom sheet for action menus instead of dropdowns
  • Touch-optimized hit targets (minimum 44px)
  • Floating action button (FAB) for primary save action

Accessibility Notes

  • All form inputs have associated labels with proper for/id attributes
  • ARIA labels on all interactive elements (buttons, links, dropdowns)
  • Keyboard navigation: Tab through all form fields, Escape to close modals
  • Focus indicators clearly visible with high contrast outline
  • Error messages announced via ARIA live regions
  • Color contrast meets WCAG 2.1 AA standards (4.5:1 for normal text, 3:1 for large text)
  • Status indicators use both color and icon for color-blind users
  • Form field validation errors announced to screen readers
  • Heading hierarchy properly structured (h1 for page title, h2 for sections)
  • Skip navigation link for keyboard users to bypass header

State Management

Local Component State

  • Form field values (title, description, date, etc.) managed locally
  • Inline edit mode flags (isEditingTitle, isEditingDescription)
  • Validation errors per field
  • Dirty/modified flags to track unsaved changes
  • Modal open/close states (venueSelectionOpen, cateringConfigOpen)
  • Expanded/collapsed states for speaker/session rows
  • Auto-save debounce timer (5 seconds after last field change)
  • Last saved timestamp for user feedback

Global State (Zustand Store)

  • Current user and role (organizerId, permissions)
  • Active event ID (for deep linking and navigation context)
  • Notification count for header badge
  • Recent events list for quick navigation
  • Team member cache (for assignment dropdowns)

Server State (React Query)

  • Event entity data (cached 5 minutes)
  • Venue list (cached 1 hour)
  • Team members (cached 30 minutes)
  • Topics (cached 10 minutes)
  • Sessions (cached 5 minutes, invalidated on updates)
  • Publishing configuration (cached 10 minutes)
  • Stale-while-revalidate pattern for fresh data
  • Automatic refetch on window focus
  • Optimistic updates for immediate UI feedback

Concurrent Editing (No Real-Time Collaboration)

  • No real-time presence indicators - MVP limitation, deferred to future enhancement
  • Version-based conflict detection (optimistic concurrency control)
  • Save conflicts detected via version number mismatch
  • Show conflict resolution dialog when save fails due to concurrent edit
  • User must manually reload to see other users’ changes
  • Last-write-wins strategy for conflict resolution
  • Auto-save (5-second debounce) may trigger conflict detection if another organizer saves between intervals
  • No live cursors, no collaborative editing indicators

Form Validation Rules

Field-Level Validations

  • Title: Required, min 10 characters, max 200 characters
  • Description: Required, min 50 characters, max 2000 characters
  • Event Date: Required, must be future date (at least 30 days from now)
  • Event Type: Required, must be one of [full_day, afternoon, evening]
  • Registration Deadline: Required, must be before event date
  • Capacity: Required, positive integer, min 20, max 1000
  • Theme: Optional, max 100 characters
  • Venue: Required, must reference existing venue
  • Budget: Optional, positive number

Form-Level Validations

  • Registration deadline must be at least 7 days before event date
  • Capacity cannot be less than current registration count
  • At least 1 topic must be assigned before publishing
  • Minimum speaker count must meet event type requirements (6-8 for full day/afternoon, 3-4 for evening)
  • All speakers must have confirmed status before finalizing agenda
  • Venue must be confirmed before advancing to publishing stage
  • Publishing configuration required before marking event as published
  • Cannot delete event if registrations exist (must cancel event instead)

Edge Cases & Error Handling

  • Empty State (New Event): Show guided setup wizard instead of full form
  • Loading State: Display skeleton screens for all sections during initial data fetch
  • Error State (API Failure): Show error message with [Retry] button and support contact
  • No Topics Assigned: Show prominent call-to-action to add topics from backlog
  • No Speakers Assigned: Display warning banner with [Invite Speakers] quick action
  • Concurrent Edit Conflict: Show conflict resolution dialog with side-by-side comparison
  • Venue Unavailable: Show warning badge and suggest alternative venues
  • Budget Exceeded: Display warning indicator if estimated costs exceed budget
  • Missing Materials (Speaker): Highlight pending materials with deadline countdown
  • Registration Full: Show waitlist option and disable new registrations
  • Past Event Date: Display read-only archive mode with limited editing capabilities
  • Insufficient Permissions: Hide edit controls, show read-only view
  • Network Offline: Cache form data locally, show offline indicator, sync when online
  • Auto-Save Failure: Show persistent warning banner until successful save (auto-save always enabled, not configurable)
  • Validation Errors on Save: Scroll to first error field, highlight all errors, show summary message
  • Deletion Blocked: If registrations exist, show error: β€œCannot delete event with registrations. Please cancel event instead.”
  • Concurrent Edit Detected: Show conflict dialog with options to reload or force save (no automatic merge, no real-time presence)

Change Log

Date Version Description Author
2025-10-01 1.0 Initial wireframe creation Sally (UX)
2025-10-04 1.1 Updated with stakeholder decisions: auto-save always enabled (5s debounce), Swiss timezone only, no templates, organizer-only deletion, no real-time collaboration Sally (UX)

Review Notes

Stakeholder Feedback

  • βœ… Auto-save always enabled (5-second debounce) - not configurable per user
  • βœ… Swiss timezone only (CET/CEST) - no special timezone handling
  • βœ… No event templates in MVP - each event created from scratch
  • βœ… Deletion requires organizer confirmation only - no admin approval
  • βœ… No real-time presence indicators - conflict resolution via version mismatch dialog

Design Iterations

  • v1.0: Initial comprehensive design with all functional sections
  • v1.1: Clarified based on stakeholder decisions:
    • Auto-save always enabled (5-second debounce, not configurable)
    • Swiss timezone only (no international timezone support)
    • No event templates in MVP
    • Deletion: organizer confirmation only (no admin approval)
    • No real-time collaboration features (presence indicators, live cursors)

Open Questions

All open questions have been resolved:

  1. βœ… Auto-save Configuration: Should auto-save be configurable per user preference?

    • DECISION: No - Auto-save is always enabled for all organizers (5-second debounce after field changes)
    • Consistent behavior across all users
    • Simpler implementation and UX
  2. βœ… Timezone Display: How should we handle timezone display for international speakers?

    • DECISION: No special timezone handling - All times displayed in local timezone (CET/CEST for Switzerland)
    • Event times are Swiss-local only
    • International speakers work with Swiss time
  3. βœ… Event Templates: Should we support event templates for faster event creation?

    • DECISION: No - Not in MVP scope
    • Each event created from scratch
    • Can be added as future enhancement if needed
  4. βœ… Deletion Approval: Should deletion require admin approval or just organizer confirmation?

    • DECISION: Organizer confirmation only - Only organizers can delete events anyway
    • Confirmation dialog with impact summary required
    • No additional admin approval needed
    • Organizer role already has sufficient authority
  5. βœ… Real-Time Presence Indicators: Should concurrent editing show real-time cursors/presence indicators?

    • DECISION: No - Not in MVP scope
    • Conflict resolution via last-write-wins with conflict dialog
    • Real-time collaboration features deferred to future enhancement