Story 3.3: Material Submission Wizard - Wireframe

Story: Epic 3, Story 3.3

Last updated: October 22, 2025 Reading time: 15 minutes File size: 32.34 KB

Material Submission Wizard (Multi-Step)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ ← Back to Dashboard            Submit Speaker Materials                    [Save Draft]β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                                       β”‚
β”‚  Spring Conference 2025 - Kubernetes Best Practices                                  β”‚
β”‚                                                                                       β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚  Step 1         Step 2         Step 3         Step 4         Step 5    Review   β”‚ β”‚
β”‚  β”‚    ●━━━━━━━━━━━━━○━━━━━━━━━━━━━○━━━━━━━━━━━━━○━━━━━━━━━━━━━○━━━━━━━━━━○       β”‚ β”‚
β”‚  β”‚  Basic Info    Abstract      Biography       Photo         Presentation         β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚                                                                                       β”‚
β”‚  β”Œβ”€β”€β”€β”€ STEP 1: BASIC INFORMATION ─────────────────────────────────────────────────┐  β”‚
β”‚  β”‚                                                                                 β”‚  β”‚
β”‚  β”‚  Presentation Title * (max 100 characters)                                     β”‚  β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”‚  β”‚
β”‚  β”‚  β”‚ Kubernetes Best Practices for Production Environments           β”‚ 58/100    β”‚  β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β”‚  β”‚
β”‚  β”‚                                                                                 β”‚  β”‚
β”‚  β”‚  Presentation Language *                                                       β”‚  β”‚
β”‚  β”‚  ● English    β—‹ German    β—‹ German with English slides                        β”‚  β”‚
β”‚  β”‚                                                                                 β”‚  β”‚
β”‚  β”‚  Session Format Preference                                                     β”‚  β”‚
β”‚  β”‚  ● Presentation only (45 min)                                                 β”‚  β”‚
β”‚  β”‚  β—‹ Presentation (30 min) + Demo (15 min)                                      β”‚  β”‚
β”‚  β”‚  β—‹ Workshop style (interactive)                                                β”‚  β”‚
β”‚  β”‚                                                                                 β”‚  β”‚
β”‚  β”‚  Special Requirements (optional)                                               β”‚  β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”‚  β”‚
β”‚  β”‚  β”‚ Live demo planned - will need internet connection and backup    β”‚          β”‚  β”‚
β”‚  β”‚  β”‚ plan. May require audience participation.                        β”‚          β”‚  β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β”‚  β”‚
β”‚  β”‚                                                                                 β”‚  β”‚
β”‚  β”‚                     [← Previous]  [Save Draft]  [Next Step β†’]                 β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚                                                                                       β”‚
β”‚  β”Œβ”€β”€β”€β”€ PROGRESS & TIPS ────────────────────────────────────────────────────────────┐ β”‚
β”‚  β”‚  βœ“ Auto-saved 30 seconds ago                                                   β”‚  β”‚
β”‚  β”‚  πŸ’‘ Tip: Clear titles help attendees choose the right sessions                 β”‚  β”‚
β”‚  β”‚  πŸ“Š 20% complete                                                                β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚                                                                                       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

[STEP 2: ABSTRACT]
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  β”Œβ”€β”€β”€β”€ STEP 2: PRESENTATION ABSTRACT ─────────────────────────────────────────────┐  β”‚
β”‚  β”‚                                                                                 β”‚  β”‚
β”‚  β”‚  Abstract * (max 1000 characters)                                              β”‚  β”‚
β”‚  β”‚  Your abstract should include:                                                 β”‚  β”‚
β”‚  β”‚  β€’ What attendees will learn                                                   β”‚  β”‚
β”‚  β”‚  β€’ Key takeaways                                                               β”‚  β”‚
β”‚  β”‚  β€’ ⚠️ Must include "Lessons Learned" from real experience                     β”‚  β”‚
β”‚  β”‚                                                                                 β”‚  β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”‚  β”‚
β”‚  β”‚  β”‚ This talk explores production-ready Kubernetes practices based   β”‚          β”‚  β”‚
β”‚  β”‚  β”‚ on 3 years of managing 50+ clusters at scale.                   β”‚          β”‚  β”‚
β”‚  β”‚  β”‚                                                                   β”‚          β”‚  β”‚
β”‚  β”‚  β”‚ You'll learn:                                                    β”‚          β”‚  β”‚
β”‚  β”‚  β”‚ β€’ Cluster architecture patterns that scale                       β”‚          β”‚  β”‚
β”‚  β”‚  β”‚ β€’ Security hardening beyond defaults                             β”‚          β”‚  β”‚
β”‚  β”‚  β”‚ β€’ Monitoring strategies that actually work                       β”‚          β”‚  β”‚
β”‚  β”‚  β”‚ β€’ Cost optimization techniques                                   β”‚          β”‚  β”‚
β”‚  β”‚  β”‚                                                                   β”‚          β”‚  β”‚
β”‚  β”‚  β”‚ Lessons learned: We'll share real failures including our         β”‚          β”‚  β”‚
β”‚  β”‚  β”‚ 2-hour production outage, DNS mysteries, and how we reduced     β”‚          β”‚  β”‚
β”‚  β”‚  β”‚ our cloud costs by 40% while improving reliability.             β”‚          β”‚  β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β”‚  β”‚
β”‚  β”‚                                                              789/1000          β”‚  β”‚
β”‚  β”‚                                                                                 β”‚  β”‚
β”‚  β”‚  βœ“ Length requirement met                                                      β”‚  β”‚
β”‚  β”‚  βœ“ Lessons learned included                                                    β”‚  β”‚
β”‚  β”‚  ⚠️ Consider adding specific technologies/tools                               β”‚  β”‚
β”‚  β”‚                                                                                 β”‚  β”‚
β”‚  β”‚                                                                                 β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

[STEP 3: BIOGRAPHY]
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  β”Œβ”€β”€β”€β”€ STEP 3: SPEAKER BIOGRAPHY ─────────────────────────────────────────────────┐  β”‚
β”‚  β”‚                                                                                 β”‚  β”‚
β”‚  β”‚  Professional Bio * (max 500 characters)                                       β”‚  β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”‚  β”‚
β”‚  β”‚  β”‚ Peter Muller is a Principal Cloud Architect at TechCorp with    β”‚          β”‚  β”‚
β”‚  β”‚  β”‚ 10+ years in cloud native technologies. He leads the platform   β”‚          β”‚  β”‚
β”‚  β”‚  β”‚ team managing Kubernetes infrastructure for 500+ microservices.  β”‚          β”‚  β”‚
β”‚  β”‚  β”‚ Peter is a CNCF contributor and speaks regularly at DevOps      β”‚          β”‚  β”‚
β”‚  β”‚  β”‚ conferences across Europe. He holds certifications in CKA,      β”‚          β”‚  β”‚
β”‚  β”‚  β”‚ CKAD, and AWS Solutions Architect Professional.                 β”‚          β”‚  β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β”‚  β”‚
β”‚  β”‚                                                              420/500          β”‚  β”‚
β”‚  β”‚                                                                                 β”‚  β”‚
β”‚  β”‚  Company/Organization *                        Job Title *                     β”‚  β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”‚  β”‚
β”‚  β”‚  β”‚ TechCorp AG          β”‚                     β”‚ Principal Architect  β”‚       β”‚  β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β”‚  β”‚
β”‚  β”‚                                                                                 β”‚  β”‚
β”‚  β”‚  Social/Professional Links (optional)                                          β”‚  β”‚
β”‚  β”‚  LinkedIn:  [linkedin.com/in/pmuller_____________________________]            β”‚  β”‚
β”‚  β”‚  Twitter/X: [@pmuller_devops_____________________________________]            β”‚  β”‚
β”‚  β”‚  GitHub:    [github.com/pmuller__________________________________]            β”‚  β”‚
β”‚  β”‚  Website:   [https://pmuller.tech________________________________]            β”‚  β”‚
β”‚  β”‚                                                                                 β”‚  β”‚
β”‚  β”‚  Previous Speaking Experience                                                  β”‚  β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”‚  β”‚
β”‚  β”‚  β”‚ β€’ KubeCon EU 2024 - "Scaling Kubernetes"                       β”‚          β”‚  β”‚
β”‚  β”‚  β”‚ β€’ DevOps Days Zurich 2023 - "GitOps Best Practices"           β”‚          β”‚  β”‚
β”‚  β”‚  β”‚ β€’ BATbern Spring 2023 - "Container Security" (Rating: 4.8/5)   β”‚          β”‚  β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β”‚  β”‚
β”‚  β”‚                                                                                 β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

[STEP 4: PHOTO UPLOAD]
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  β”Œβ”€β”€β”€β”€ STEP 4: SPEAKER PHOTO ─────────────────────────────────────────────────────┐  β”‚
β”‚  β”‚                                                                                 β”‚  β”‚
β”‚  β”‚  Upload Professional Photo *                                                   β”‚  β”‚
β”‚  β”‚                                                                                 β”‚  β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”‚  β”‚
β”‚  β”‚  β”‚                                                                   β”‚          β”‚  β”‚
β”‚  β”‚  β”‚                      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                         β”‚          β”‚  β”‚
β”‚  β”‚  β”‚                      β”‚                 β”‚                         β”‚          β”‚  β”‚
β”‚  β”‚  β”‚                      β”‚                 β”‚                         β”‚          β”‚  β”‚
β”‚  β”‚  β”‚                      β”‚   πŸ“· Drop       β”‚                         β”‚          β”‚  β”‚
β”‚  β”‚  β”‚                      β”‚   Photo Here    β”‚                         β”‚          β”‚  β”‚
β”‚  β”‚  β”‚                      β”‚                 β”‚                         β”‚          β”‚  β”‚
β”‚  β”‚  β”‚                      β”‚   or Browse     β”‚                         β”‚          β”‚  β”‚
β”‚  β”‚  β”‚                      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                         β”‚          β”‚  β”‚
β”‚  β”‚  β”‚                                                                   β”‚          β”‚  β”‚
β”‚  β”‚  β”‚              [Browse Files]  or drag and drop                    β”‚          β”‚  β”‚
β”‚  β”‚  β”‚                                                                   β”‚          β”‚  β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β”‚  β”‚
β”‚  β”‚                                                                                 β”‚  β”‚
β”‚  β”‚  Requirements:                      Current Photo:                            β”‚  β”‚
β”‚  β”‚  β€’ Minimum 400x400px               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                               β”‚  β”‚
β”‚  β”‚  β€’ Maximum 5MB                     β”‚ [Photo   β”‚                               β”‚  β”‚
β”‚  β”‚  β€’ JPG or PNG format               β”‚  Preview β”‚                               β”‚  β”‚
β”‚  β”‚  β€’ Professional headshot           β”‚  Here]   β”‚                               β”‚  β”‚
β”‚  β”‚  β€’ Good lighting                   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                               β”‚  β”‚
β”‚  β”‚  β€’ Recent (within 2 years)         peter-muller.jpg                           β”‚  β”‚
β”‚  β”‚                                     2.3MB β€’ 800x800px                         β”‚  β”‚
β”‚  β”‚                                     [Remove] [Replace]                        β”‚  β”‚
β”‚  β”‚                                                                                 β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Key Interactive Elements

  • Progress indicator: Visual step-by-step wizard showing current position
  • Auto-save: Every 30 seconds to prevent data loss
  • Drag & drop: Upload photo and presentation files
  • Real-time validation: Character counts, required field checking
  • Smart tips: Contextual guidance for each step
  • Step navigation: Previous/Next buttons with save draft option
  • Progress estimation: Shows percentage complete and time remaining

Functional Requirements Met

  • FR3: Speaker self-service capabilities for content submission
  • Multi-step wizard reduces cognitive load
  • Auto-save prevents data loss
  • Clear validation and feedback
  • Support for all required speaker materials

User Interactions

  1. Step 1 - Basic Info: Enter presentation title, language, format preferences, special requirements
  2. Step 2 - Abstract: Provide detailed abstract with lessons learned
  3. Step 3 - Biography: Professional bio, company info, social links, speaking experience
  4. Step 4 - Photo: Upload professional headshot with requirements guidance
  5. Step 5 - Presentation: Upload presentation slides and supplementary materials
  6. Review: Final review before submission

Technical Notes

  • React Hook Form for form state management
  • Resumable file uploads with progress tracking
  • IndexedDB for auto-save and offline support
  • Validation engine with real-time feedback
  • Component hierarchy: MaterialWizard.tsx β†’ StepComponents (BasicInfo, Abstract, Biography, PhotoUpload, Presentation)
  • Support for drag-and-drop file uploads
  • Image preview with crop/resize functionality

API Requirements

APIs needed to load and display data for this screen:

Initial Load

  1. GET /api/v1/speakers/{speakerId}/events/{eventId}?include=materials,checklist

    • Consolidated API: Replaces /materials/draft endpoint
    • Retrieve event details with materials and checklist
    • Response includes:
      • Draft/submitted materials with all form data
      • File metadata and submission status
      • Event-specific requirements and checklist
    • Used for: Pre-populating form fields with saved/existing data
    • Auto-recovery: If session interrupted, resume from last saved state
    • Consolidation benefit: Single call for event context and materials
  2. GET /api/v1/speakers/{speakerId}?include=profile

    • Consolidated API: Uses standard speaker endpoint with profile inclusion
    • Retrieve speaker profile data
    • Response includes: bio, photo, company, social links, speaking history
    • Used for: Pre-filling biography step (Step 3) with existing profile data
    • Optimization: Reduce duplicate data entry
    • Consolidation benefit: Consistent profile data access pattern
  3. GET /api/v1/events/{eventId}/submission-requirements

    • Retrieve event-specific submission requirements and guidelines
    • Response includes: required fields, optional fields, format specifications, deadlines
    • Used for: Dynamic form validation and requirement display
    • Context: Different events may have different requirements

Reference Data

  1. GET /api/v1/reference/languages
    • Retrieve supported presentation languages
    • Response: Array of language options
    • Used for: Language selection (Step 1)

Action APIs

APIs called by user interactions and actions:

Auto-Save

  1. PATCH /api/v1/speakers/{speakerId}/events/{eventId}/materials
    • Consolidated API: Uses PATCH for draft auto-save
    • Triggered by: Auto-save (every 30 seconds) or field blur
    • Payload: Partial material data (current step + all previous steps)
    • Response: Draft saved timestamp, draft ID
    • Debounced: 30-second interval to reduce API calls
    • Offline support: Queue in IndexedDB, sync when online
    • Consolidation benefit: Standard PATCH pattern for partial updates

Step Navigation

  1. POST /api/v1/speakers/{speakerId}/events/{eventId}/materials/validate-step
    • Triggered by: [Next Step β†’] button
    • Payload: { step: number, data: object }
    • Response: Validation result, errors if any
    • Used for: Server-side validation before allowing progression
    • Returns: { valid: boolean, errors: [], warnings: [] }

File Uploads

  1. POST /api/v1/speakers/{speakerId}/upload/photo

    • Triggered by: Photo file drop or browse (Step 4)
    • Payload: Multipart form-data with image file
    • Response: File URL, CDN path, image dimensions, file size
    • Integration: AWS S3 with presigned upload URL
    • Processing: Server-side image optimization and validation
    • Max size: 5MB
  2. POST /api/v1/speakers/{speakerId}/events/{eventId}/materials

    • Consolidated API: Uses unified materials endpoint
    • Triggered by: Presentation file drop or browse (Step 5)
    • Payload: Multipart form-data with presentation file + { type: "presentation" }
    • Response: File URL, CDN path, page count (for PDFs), file size
    • Integration: AWS S3 with resumable upload support
    • Supported formats: PDF, PPTX, KEY, Google Slides link
    • Max size: 50MB
    • Chunked upload: For large files, support resume capability
    • Consolidation benefit: Single materials endpoint handles all material types
  3. DELETE /api/v1/speakers/{speakerId}/events/{eventId}/materials/{materialId}

    • Consolidated API: Uses nested materials endpoint
    • Triggered by: [Remove] or [Replace] button on uploaded files
    • Response: File deleted confirmation
    • Side effect: Remove file from S3 storage
    • Consolidation benefit: Consistent material deletion pattern

Submission

  1. POST /api/v1/speakers/{speakerId}/events/{eventId}/materials/submit
    • Triggered by: [Submit Materials] button on Review step
    • Payload: Complete material submission data (all steps)
    • Response: Submission confirmation, submission ID, next steps
    • Side effects:
      • Notifies organizer of submission
      • Updates speaker dashboard task status
      • Triggers quality review workflow (if configured)
    • State change: Material status β†’ β€œsubmitted”, speaker task β†’ β€œcompleted”

Draft Management

  1. GET /api/v1/speakers/{speakerId}/events/{eventId}?include=materials

    • Consolidated API: Uses event endpoint with materials inclusion
    • Triggered by: Optional β€œView Previous Versions” link
    • Response: Event data with material versions and timestamps
    • Used for: Viewing submission history, reverting to previous versions
    • Consolidation benefit: Materials history is part of event resource
  2. POST /api/v1/speakers/{speakerId}/events/{eventId}/materials/{materialId}/restore

    • Consolidated API: Uses materials restore endpoint
    • Triggered by: β€œRevert to Version” action
    • Payload: { versionId }
    • Response: Reverted material data
    • Used for: Recovering from mistakes or changes

Profile Integration

  1. PATCH /api/v1/speakers/{speakerId}
    • Consolidated API: Uses speaker PATCH for profile updates
    • Triggered by: Checkbox β€œSave bio to my profile” (Step 3)
    • Payload: { bio, photo, company, socialLinks }
    • Response: Profile updated confirmation
    • Optimization: Allow speakers to update profile while submitting materials
    • Consolidation benefit: Standard PATCH pattern, no special endpoint needed

Validation & Feedback

  1. POST /api/v1/materials/check-quality
    • Triggered by: Real-time as user types in abstract field
    • Payload: { abstract }
    • Response: Quality score, suggestions, requirement check
    • Used for: Real-time feedback on abstract quality
    • Returns: { score: number, suggestions: [], requirementsMet: {} }

Screen transitions triggered by actions and events:

Primary Navigation

  1. ← Back to Dashboard

    • Target: Speaker Dashboard (Story 3.3)
    • Context: Exit wizard, return to dashboard
    • Warning: If unsaved changes, show β€œSave draft?” confirmation dialog
  2. [Save Draft] (top-right button)

    • Action: Saves current progress
    • No Navigation: Remains on current step
    • Feedback: β€œDraft saved” toast notification
    • Update: Last saved timestamp displayed

Step Navigation

  1. [Next Step β†’]

    • Target: Next wizard step (Step 2, 3, 4, 5, or Review)
    • Validation: Validates current step before progression
    • Error Handling: If validation fails, show errors inline, don’t progress
    • Auto-save: Triggers auto-save before moving to next step
  2. [← Previous]

    • Target: Previous wizard step
    • No Validation: Allow backward navigation without validation
    • Context: Review or edit previous step data
  3. Progress Indicator Click (Step circles at top)

    • Target: Clicked step (if already visited)
    • Restriction: Can’t skip ahead to unvisited steps
    • Use case: Quick navigation to previously completed steps

Submission Flow

  1. [Submit Materials] (on Review step)

    • Action: POST final submission
    • Target: Submission Confirmation page
    • Feedback: Success message with next steps
    • Navigation Options:
      • β€œReturn to Dashboard” button
      • β€œView Event Details” button β†’ Event Timeline (Story 3.5)
    • Notification: Organizer notified of submission
  2. On Submission Success

    • Target: Submission Success page
    • Content: Confirmation message, what happens next, timeline
    • Actions:
      • [Return to Dashboard] β†’ Speaker Dashboard (Story 3.3)
      • [View Event] β†’ Event Timeline (Story 3.5)
      • [Update Materials] β†’ Returns to wizard in edit mode

File Upload Navigation

  1. Photo Upload - Browse Files

    • Target: System file picker dialog
    • Return: Remains on Step 4 after file selection
    • Feedback: Image preview, upload progress, validation status
  2. Photo Upload - Drag & Drop

    • No Navigation: Inline file processing
    • Feedback: Drop zone highlight, upload progress, preview
  3. [Remove] or [Replace] File

    • Action: Deletes file, optionally opens file picker
    • No Navigation: Remains on current step
    • Feedback: Confirmation dialog before deletion

Error States & Recovery

  1. On Upload Failure

    • No Navigation: Remains on current step
    • Feedback: Error message with retry option
    • Action: [Retry Upload] button or drag file again
  2. On Validation Error

    • No Navigation: Remains on current step
    • Feedback: Inline error messages on invalid fields
    • Focus: Auto-scroll to first error field
  3. On Session Timeout

    • Target: Login page
    • Protection: Draft saved to IndexedDB before redirect
    • Recovery: After re-login, prompt β€œResume previous submission?”
  4. On Network Error

    • No Navigation: Remains on current step
    • Feedback: β€œOffline mode” banner
    • Auto-save: Queued locally, sync when connection restored

Auto-Save & Recovery

  1. On Page Refresh/Close with Unsaved Changes

    • Browser Warning: β€œYou have unsaved changes. Are you sure?”
    • Recovery: On return, load from IndexedDB or last server draft
    • Prompt: β€œWould you like to continue your previous submission?”
  2. On Auto-Save Success

    • No Navigation: Remains on current step
    • Feedback: Small checkmark icon, β€œSaved 5 seconds ago” text
  3. On Auto-Save Failure

    • No Navigation: Remains on current step
    • Feedback: Warning icon, β€œUnable to auto-save” message
    • Action: [Save Now] button to retry

Profile Integration

  1. β€œUse Profile Data” Button (Step 3)

    • Action: GET profile data and populate bio fields
    • No Navigation: Remains on Step 3
    • Feedback: Fields auto-filled with profile data
    • Option: β€œSave to profile” checkbox to update profile with changes
  2. β€œView My Profile” Link (Step 3)

    • Target: Speaker Profile Management (Story 7.1)
    • Type: Open in new tab/window
    • Context: Review current profile without losing wizard progress

Contextual Help

  1. πŸ’‘ Tip Links

    • Target: Help modal or tooltip expansion
    • Type: Inline modal overlay
    • Content: Expanded guidance and examples
    • Close: Remains on current step after reading
  2. β€œSee Example” Link (on Abstract step)

    • Target: Example abstract modal
    • Type: Modal overlay
    • Content: Sample high-quality abstracts
    • Inspiration: Helps speakers improve their content

Event-Driven Navigation

  1. On Deadline Approaching (< 7 days)

    • Feedback: Warning banner β€œSubmission due in 5 days”
    • Urgency: Red deadline indicator in progress section
  2. On Deadline Passed

    • Feedback: Error banner β€œSubmission overdue”
    • Action: Prompt to contact organizer
    • Option: β€œRequest Extension” button
  3. On Organizer Revision Request

    • Entry: Link from dashboard notification or email
    • Target: Wizard opens to relevant step needing revision
    • Context: Organizer feedback displayed inline
    • Mode: Edit mode with feedback visible

Mobile-Specific

  1. Mobile Step Navigation

    • UI: Bottom sticky navigation buttons
    • Steps: One step fully visible at a time
    • Progress: Compact progress indicator at top
  2. Mobile File Upload

    • Options: Camera, Photo Library, or Files
    • Native: Use device file picker/camera
    • Optimization: Image compression before upload on mobile