Story 5.13: Moderation Assignment - Wireframe

Epic: Epic 5 - Enhanced Organizer Workflows

Last updated: January 2, 2026 Reading time: 17 minutes File size: 38.32 KB

Overview

This wireframe defines the organizer interface for assigning a moderator to an event and the moderator’s view of their assigned events. The system provides a simple dropdown selection with notification to the assigned moderator.

Key Features:

  • Simple moderator selection dropdown (select from organizers)
  • Notification to assigned moderator
  • Moderator dashboard showing assigned events
  • Event details visible to moderator

MVP Scope:

  • βœ… Simple dropdown field (select from organizers)
  • βœ… Notification to assigned moderator
  • βœ… Moderator sees event dashboard
  • ❌ No special briefing materials (Phase 2)
  • ❌ No day-of tools (Phase 2)

Screen 1: Moderator Assignment (Organizer View)

Context: Event Detail page β†’ β€œSettings” tab β†’ β€œModeration” section

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Event: Spring BATbern 2025 - Nachhaltiges Bauen                       β”‚
β”‚ [Event Details] [Speakers] [Agenda] [Settings] [Communication]        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Event Settings                                                          β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                         β”‚
β”‚ Basic Information                                                       β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚ β”‚ Event Type: [Hauptveranstaltung                          β–Ό]    β”‚  β”‚
β”‚ β”‚ Date:       [2025-03-15                   ] Time: [18:00]      β”‚  β”‚
β”‚ β”‚ Location:   [Zunfthaus zur Zimmerleuten, Bern            ]    β”‚  β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                         β”‚
β”‚ Moderation                                                              β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚ β”‚ Moderator Assignment                                            β”‚  β”‚
β”‚ β”‚                                                                 β”‚  β”‚
β”‚ β”‚ Assign Moderator:                                              β”‚  β”‚
β”‚ β”‚ [Thomas MΓΌller (mueller@batbern.ch)                      β–Ό]    β”‚  β”‚
β”‚ β”‚                                                                 β”‚  β”‚
β”‚ β”‚ Status: βœ“ Assigned                                             β”‚  β”‚
β”‚ β”‚ Assigned: 2025-02-01 by Anna Schmidt                           β”‚  β”‚
β”‚ β”‚ Notification sent: 2025-02-01 14:30                            β”‚  β”‚
β”‚ β”‚                                                                 β”‚  β”‚
β”‚ β”‚ [Change Moderator] [Send Reminder]                             β”‚  β”‚
β”‚ β”‚                                                                 β”‚  β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                         β”‚
β”‚ Contact Information                                                     β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚ β”‚ Primary Contact: [Anna Schmidt                            β–Ό]   β”‚  β”‚
β”‚ β”‚ Email:           [schmidt@batbern.ch                      ]    β”‚  β”‚
β”‚ β”‚ Phone:           [+41 31 123 45 67                        ]    β”‚  β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                         β”‚
β”‚                                              [Cancel] [Save Changes]   β”‚
β”‚                                                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Interactions:

  1. Moderator Dropdown

    • Lists all users with β€œOrganizer” role
    • Shows name and email address
    • Selecting moderator enables β€œSave Changes” button
    • Empty option: β€œ-- Select Moderator --” (unassign moderator)
  2. Status Indicator

    • Shows current assignment status
    • β€œβœ“ Assigned” (moderator assigned)
    • β€œβ§— Pending” (moderator assigned but not yet notified)
    • β€œβ—‹ Unassigned” (no moderator)
  3. Assignment Metadata

    • Shows when moderator was assigned
    • Shows who assigned the moderator
    • Shows when notification email was sent
  4. Change Moderator Button

    • Clears current selection
    • Allows new moderator selection
    • Confirmation dialog: β€œSend notification to new moderator?”
  5. Send Reminder Button

    • Only visible if moderator assigned
    • Sends reminder email to moderator with event details
    • Shows toast: β€œReminder sent to Thomas MΓΌller”
  6. Save Changes

    • Saves moderator assignment
    • Sends notification email to moderator
    • Shows success toast: β€œModerator assigned. Notification sent to Thomas MΓΌller.”

Screen 2: Moderator Assignment Notification Email

Context: Email sent to moderator when assigned to event

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ From: BATbern Event Management <noreply@batbern.ch>                   β”‚
β”‚ To: mueller@batbern.ch                                                 β”‚
β”‚ Subject: Sie wurden als Moderator fΓΌr Spring BATbern 2025 zugeteilt   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Guten Tag Thomas MΓΌller,

Sie wurden als Moderator fΓΌr die folgende Veranstaltung zugeteilt:

Event: Spring BATbern 2025 - Nachhaltiges Bauen
Datum: 15. MΓ€rz 2025, 18:00 Uhr
Ort: Zunfthaus zur Zimmerleuten, Bern

Aufgaben des Moderators:
β€’ BegrΓΌssung der Teilnehmer
β€’ Vorstellung der Referenten
β€’ Zeitmanagement wΓ€hrend der VortrΓ€ge
β€’ Moderation der Diskussionsrunde

Eventdetails anzeigen:
https://platform.batbern.ch/events/evt_12345/moderator-view

Bei Fragen wenden Sie sich bitte an:
Anna Schmidt (schmidt@batbern.ch)

Mit freundlichen GrΓΌssen,
BATbern Event Management System

---
Diese E-Mail wurde automatisch generiert. Bitte antworten Sie nicht auf diese E-Mail.

Screen 3: Moderator Dashboard

Context: Moderator logs in and sees their assigned events

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ BATbern Event Management                              [Thomas MΓΌller β–Ό]β”‚
β”‚ [Dashboard] [Events] [Profile]                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ My Moderator Assignments                                                β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                         β”‚
β”‚ Upcoming Events                                                         β”‚
β”‚                                                                         β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚ β”‚ Spring BATbern 2025 - Nachhaltiges Bauen                       β”‚  β”‚
β”‚ β”‚                                                                 β”‚  β”‚
β”‚ β”‚ Datum: 15. MΓ€rz 2025, 18:00 Uhr                                β”‚  β”‚
β”‚ β”‚ Ort: Zunfthaus zur Zimmerleuten, Bern                          β”‚  β”‚
β”‚ β”‚ Status: Agenda Finalized                                        β”‚  β”‚
β”‚ β”‚                                                                 β”‚  β”‚
β”‚ β”‚ Referenten: 3 confirmed                                         β”‚  β”‚
β”‚ β”‚ Teilnehmer: 142 registered                                      β”‚  β”‚
β”‚ β”‚                                                                 β”‚  β”‚
β”‚ β”‚ Kontakt: Anna Schmidt (schmidt@batbern.ch)                     β”‚  β”‚
β”‚ β”‚                                                                 β”‚  β”‚
β”‚ β”‚                          [View Event Details] [Download Agenda]β”‚  β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                         β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚ β”‚ Autumn BATbern 2025 - Digitalisierung in der Architektur       β”‚  β”‚
β”‚ β”‚                                                                 β”‚  β”‚
β”‚ β”‚ Datum: 20. September 2025, 18:00 Uhr                           β”‚  β”‚
β”‚ β”‚ Ort: Kornhausforum, Bern                                        β”‚  β”‚
β”‚ β”‚ Status: Planning                                                β”‚  β”‚
β”‚ β”‚                                                                 β”‚  β”‚
β”‚ β”‚ Referenten: 2 confirmed, 1 pending                              β”‚  β”‚
β”‚ β”‚ Teilnehmer: 45 registered                                       β”‚  β”‚
β”‚ β”‚                                                                 β”‚  β”‚
β”‚ β”‚ Kontakt: Peter Weber (weber@batbern.ch)                        β”‚  β”‚
β”‚ β”‚                                                                 β”‚  β”‚
β”‚ β”‚                          [View Event Details]                   β”‚  β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                         β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Past Events                                                             β”‚
β”‚                                                                         β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚ β”‚ Date         β”‚ Event                    β”‚ Attendees  β”‚ Status   β”‚  β”‚
β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€  β”‚
β”‚ β”‚ 2024-09-15   β”‚ Autumn BATbern 2024      β”‚ 156        β”‚ Complete β”‚  β”‚
β”‚ β”‚ 2024-03-20   β”‚ Spring BATbern 2024      β”‚ 148        β”‚ Complete β”‚  β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Interactions:

  1. Upcoming Events Cards

    • Shows all events where user is assigned as moderator
    • Sorted by event date (earliest first)
    • Color-coded status (Planning/Agenda Finalized/In Progress)
  2. View Event Details

    • Navigates to Event Detail page (read-only for moderator)
    • Shows full agenda, speaker bios, registered attendees
    • Shows organizer contact information
  3. Download Agenda

    • Only available when agenda status = β€œfinalized”
    • Downloads PDF with full agenda and speaker information
    • Used for moderator preparation
  4. Past Events Table

    • Shows historical moderator assignments
    • Clicking row navigates to archived event details

Screen 4: Moderator Event Detail View

Context: Moderator clicks β€œView Event Details” from dashboard

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Event: Spring BATbern 2025 - Nachhaltiges Bauen                       β”‚
β”‚ [Overview] [Agenda] [Speakers] [Attendees]                            β”‚
β”‚                                                         Moderator View β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Overview                                                                β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                         β”‚
β”‚ Your Role: Moderator                                                   β”‚
β”‚                                                                         β”‚
β”‚ Event Information                                                       β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚ β”‚ Event: Spring BATbern 2025 - Nachhaltiges Bauen                β”‚  β”‚
β”‚ β”‚ Date: 15. MΓ€rz 2025                                             β”‚  β”‚
β”‚ β”‚ Time: 18:00 - 21:00 Uhr                                         β”‚  β”‚
β”‚ β”‚ Location: Zunfthaus zur Zimmerleuten, Limmatquai 40, Bern      β”‚  β”‚
β”‚ β”‚ Expected Attendees: 142 registered                              β”‚  β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                         β”‚
β”‚ Moderator Responsibilities                                              β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚ β”‚ ☐ Review event agenda (see Agenda tab)                         β”‚  β”‚
β”‚ β”‚ ☐ Familiarize with speaker bios (see Speakers tab)             β”‚  β”‚
β”‚ β”‚ ☐ Prepare opening remarks                                      β”‚  β”‚
β”‚ β”‚ ☐ Prepare speaker introductions                                β”‚  β”‚
β”‚ β”‚ ☐ Prepare closing remarks                                      β”‚  β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                         β”‚
β”‚ Organizer Contact                                                       β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚ β”‚ Primary Contact: Anna Schmidt                                   β”‚  β”‚
β”‚ β”‚ Email: schmidt@batbern.ch                                       β”‚  β”‚
β”‚ β”‚ Phone: +41 31 123 45 67                                         β”‚  β”‚
β”‚ β”‚                                                                 β”‚  β”‚
β”‚ β”‚ [Send Message]                                                  β”‚  β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                         β”‚
β”‚                                                      [Download Agenda]  β”‚
β”‚                                                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Agenda                                                                  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                         β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚ β”‚ Time β”‚ Session                                                  β”‚  β”‚
β”‚ β”œβ”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€  β”‚
β”‚ β”‚ 18:00β”‚ BegrΓΌssung & Einleitung (Moderator: Thomas MΓΌller)      β”‚  β”‚
β”‚ β”‚      β”‚ β€’ Welcome attendees                                      β”‚  β”‚
β”‚ β”‚      β”‚ β€’ Event overview                                         β”‚  β”‚
β”‚ β”‚      β”‚ β€’ Introduce first speaker                               β”‚  β”‚
β”‚ β”œβ”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€  β”‚
β”‚ β”‚ 18:10β”‚ Dr. Anna MΓΌller - Kreislaufwirtschaft im Bauwesen       β”‚  β”‚
β”‚ β”‚      β”‚ Abstract: Strategien fΓΌr nachhaltiges Bauen...          β”‚  β”‚
β”‚ β”‚      β”‚ Duration: 25 min presentation + 5 min Q&A               β”‚  β”‚
β”‚ β”œβ”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€  β”‚
β”‚ β”‚ 18:40β”‚ Prof. Thomas Schneider - CO2-neutrale Baustoffe         β”‚  β”‚
β”‚ β”‚      β”‚ Abstract: Innovative Materialien fΓΌr klimaneutrales...  β”‚  β”‚
β”‚ β”‚      β”‚ Duration: 25 min presentation + 5 min Q&A               β”‚  β”‚
β”‚ β”œβ”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€  β”‚
β”‚ β”‚ 19:10β”‚ Pause & Networking                                       β”‚  β”‚
β”‚ β”œβ”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€  β”‚
β”‚ β”‚ 19:30β”‚ Dipl.-Arch. Sarah Weber - Energieeffizienz in Praxis   β”‚  β”‚
β”‚ β”‚      β”‚ Abstract: Praxisbeispiele aus realisierten Projekten... β”‚  β”‚
β”‚ β”‚      β”‚ Duration: 25 min presentation + 5 min Q&A               β”‚  β”‚
β”‚ β”œβ”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€  β”‚
β”‚ β”‚ 20:00β”‚ Diskussionsrunde (Moderator: Thomas MΓΌller)             β”‚  β”‚
β”‚ β”‚      β”‚ β€’ Panel discussion with all speakers                    β”‚  β”‚
β”‚ β”‚      β”‚ β€’ Audience Q&A                                           β”‚  β”‚
β”‚ β”œβ”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€  β”‚
β”‚ β”‚ 20:30β”‚ Schlusswort & ApΓ©ro (Moderator: Thomas MΓΌller)          β”‚  β”‚
β”‚ β”‚      β”‚ β€’ Thank speakers and attendees                          β”‚  β”‚
β”‚ β”‚      β”‚ β€’ Announce next event                                    β”‚  β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Interactions:

  1. Moderator View Badge

    • Indicates this is read-only view for moderator
    • No edit capabilities
  2. Moderator Responsibilities Checklist

    • Static checklist (not interactive in MVP)
    • Provides guidance on moderator tasks
    • Future: Make interactive with progress tracking
  3. Organizer Contact

    • Click β€œSend Message” to email organizer
    • Opens default email client with pre-filled subject/recipient
  4. Download Agenda

    • Downloads PDF with full agenda
    • Includes speaker bios and session details
    • Used for moderator preparation
  5. Agenda Tab

    • Shows detailed time-blocked agenda
    • Highlights moderator responsibilities (BegrΓΌssung, Diskussionsrunde, Schlusswort)
    • Read-only view
  6. Speakers Tab

    • Shows speaker bios, photos, contact info
    • Helps moderator prepare introductions
  7. Attendees Tab

    • Shows registered attendee count
    • Future: Show attendee list (privacy permitting)

Event Detail Page (Organizer)
β”‚
β”œβ”€ Settings Tab
β”‚  β”‚
β”‚  └─ Moderation Section
β”‚     β”‚
β”‚     β”œβ”€ Moderator Dropdown (Screen 1)
β”‚     β”‚  β”‚
β”‚     β”‚  └─ Save β†’ Sends Notification Email (Screen 2)
β”‚     β”‚
β”‚     └─ Send Reminder β†’ Sends Reminder Email

Moderator Dashboard (Screen 3)
β”‚
└─ View Event Details β†’ Moderator Event Detail View (Screen 4)
   β”‚
   β”œβ”€ Overview Tab
   β”œβ”€ Agenda Tab
   β”œβ”€ Speakers Tab
   └─ Attendees Tab

API Requirements

Service: Event Management Service

All moderator assignment functionality is part of the Event Management Service. The moderator is simply a field on the Event entity referencing a user with the Organizer role.


PATCH /api/v1/events/{eventCode}

Purpose: Update event details including moderator assignment

Request:

json
{
  "moderatorUserId": "john.doe"
}

Response:

json
{
  "id": "BATbern56",
  "eventNumber": 56,
  "title": "Spring BATbern 2025 - Nachhaltiges Bauen",
  "eventDate": "2025-03-15T18:00:00Z",
  "status": "agenda_finalized",
  "organizerId": "anna.schmidt",
  "moderatorUserId": "john.doe",
  "moderatorAssignedAt": "2025-02-01T14:30:00Z",
  "moderatorAssignedBy": "anna.schmidt",
  "updatedAt": "2025-02-01T14:30:00Z"
}

Notes:

  • eventCode uses meaningful identifier (e.g., β€œBATbern56”) per ADR-003
  • moderatorUserId is username (e.g., β€œjohn.doe”), not UUID, per Story 1.16.2
  • Validation: moderatorUserId must reference a user with Organizer role
  • Side effect: Triggers email notification to assigned moderator

Error Response:

json
{
  "error": "INVALID_MODERATOR",
  "message": "User 'john.doe' does not have Organizer role",
  "code": "MODERATOR_NOT_ORGANIZER"
}

POST /api/v1/events/{eventCode}/notifications/moderator-reminder

Purpose: Send reminder email to assigned moderator

Response:

json
{
  "notificationId": "notif_12345",
  "eventId": "BATbern56",
  "recipientUserId": "john.doe",
  "recipientEmail": "mueller@batbern.ch",
  "notificationType": "MODERATOR_REMINDER",
  "sentAt": "2025-02-10T09:00:00Z",
  "status": "sent"
}

Error Response:

json
{
  "error": "NO_MODERATOR_ASSIGNED",
  "message": "Event BATbern56 has no moderator assigned",
  "code": "MODERATOR_NOT_SET"
}

GET /api/v1/events?moderatorUserId={username}

Purpose: Get all events where current user is assigned as moderator

Query Parameters:

  • moderatorUserId: Filter events by moderator username (e.g., β€œjohn.doe”)
  • status: Filter by event status (optional)
  • timeframe: Filter by timeframe (upcoming, past, all) (default: all)

Response:

json
{
  "events": [
    {
      "id": "BATbern56",
      "eventNumber": 56,
      "title": "Spring BATbern 2025 - Nachhaltiges Bauen",
      "eventDate": "2025-03-15T18:00:00Z",
      "location": {
        "name": "Zunfthaus zur Zimmerleuten",
        "address": "Limmatquai 40, 8001 Bern"
      },
      "status": "agenda_finalized",
      "speakerCount": 3,
      "attendeeCount": 142,
      "organizerId": "anna.schmidt",
      "moderatorUserId": "john.doe",
      "moderatorAssignedAt": "2025-02-01T14:30:00Z"
    }
  ],
  "pagination": {
    "total": 2,
    "page": 1,
    "limit": 20
  }
}

Usage Example:

javascript
// Get current user's moderator assignments
const response = await fetch('/api/v1/events?moderatorUserId=john.doe&timeframe=upcoming');

GET /api/v1/events/{eventCode}

Purpose: Get full event details (includes moderator information for moderator view)

Response:

json
{
  "id": "BATbern56",
  "eventNumber": 56,
  "title": "Spring BATbern 2025 - Nachhaltiges Bauen",
  "description": "Event zum Thema nachhaltiges Bauen...",
  "eventDate": "2025-03-15T18:00:00Z",
  "eventType": "HAUPTVERANSTALTUNG",
  "venue": {
    "name": "Zunfthaus zur Zimmerleuten",
    "address": "Limmatquai 40, 8001 Bern",
    "capacity": 200
  },
  "status": "agenda_finalized",
  "organizerId": "anna.schmidt",
  "organizerDetails": {
    "userId": "anna.schmidt",
    "name": "Anna Schmidt",
    "email": "schmidt@batbern.ch",
    "phone": "+41 31 123 45 67"
  },
  "moderatorUserId": "john.doe",
  "moderatorDetails": {
    "userId": "john.doe",
    "name": "Thomas MΓΌller",
    "email": "mueller@batbern.ch"
  },
  "moderatorAssignedAt": "2025-02-01T14:30:00Z",
  "moderatorAssignedBy": "anna.schmidt",
  "sessions": [
    {
      "sessionId": "session_1",
      "time": "18:10",
      "title": "Kreislaufwirtschaft im Bauwesen",
      "abstract": "Strategien fΓΌr nachhaltiges Bauen...",
      "duration": 30,
      "speaker": {
        "name": "Dr. Anna MΓΌller",
        "bio": "Dr. MΓΌller ist Expertin fΓΌr...",
        "photo": "https://cdn.batbern.ch/speakers/mueller.jpg"
      }
    }
  ],
  "attendeeCount": 142,
  "capacity": 200
}

Notes:

  • Standard event detail endpoint used by both organizers and moderators
  • Moderator sees same data as organizers (read-only)
  • Frontend determines UI based on user role

Validation Rules

  1. Moderator Selection

    • Only users with β€œOrganizer” role can be assigned as moderators
    • Cannot assign same user as both organizer and moderator (warning only, not blocking)
  2. Notification

    • Notification email sent immediately after assignment
    • If email send fails, show error but still save assignment
    • Organizer can manually resend notification via β€œSend Reminder”
  3. Unassignment

    • Can unassign moderator at any time
    • Sends unassignment notification email to moderator
    • Confirmation dialog: β€œRemove Thomas MΓΌller as moderator?”

Edge Cases

  1. Moderator User Deleted

    • If assigned moderator is deleted from system, show warning
    • β€œAssigned moderator (Thomas MΓΌller) no longer active. Please reassign.”
    • Allow reassignment without error
  2. Event Cancelled After Assignment

    • Send cancellation email to moderator
    • Remove event from moderator dashboard
  3. Multiple Events Same Day

    • Moderator dashboard shows all events
    • Warning if moderator assigned to events with overlapping times
  4. Email Send Failure

    • Show error toast: β€œFailed to send notification email. Assignment saved. Use β€˜Send Reminder’ to retry.”
    • Log failure for debugging
  5. Moderator Without Email

    • Block assignment if moderator user has no email address
    • Show error: β€œCannot assign moderator without email address”

Internationalization (i18n)

FROM MVP LAUNCH (Day 1):

Language Support

  • Primary: German (de-CH) - Swiss German locale (default)
  • Secondary: English (en-US)
  • Language Selector: Header shows 🌐 DE β–Ό | EN for language switching

UI Text Translation

All interface text translated in both languages:

  • Moderator assignment dropdown label
  • Status indicators (Assigned/Pending/Unassigned)
  • Button labels (Change Moderator, Send Reminder, Save Changes)
  • Moderator dashboard headings (Upcoming Events, Past Events)
  • Moderator responsibilities checklist
  • Organizer contact section labels
  • All notification and confirmation messages

Email Notifications

  • Bilingual AWS SES Templates: Moderator notification emails in both German and English
  • Language Detection: Email sent in moderator’s preferred language (from user profile preferredLanguage field)
  • Fallback: German (de-CH) if no preference set
  • Template IDs:
    • moderator_assignment_notification_de
    • moderator_assignment_notification_en
    • moderator_reminder_de
    • moderator_reminder_en

Translation Keys

javascript
// Moderator Assignment (Organizer View)
moderation.title = "Moderation" | "Moderation"
moderation.assignLabel = "Assign Moderator" | "Moderator zuweisen"
moderation.status.assigned = "Assigned" | "Zugeteilt"
moderation.status.pending = "Pending" | "Ausstehend"
moderation.status.unassigned = "Unassigned" | "Nicht zugeteilt"
moderation.assignedBy = "Assigned: {date} by {name}" | "Zugeteilt: {date} von {name}"
moderation.notificationSent = "Notification sent: {date}" | "Benachrichtigung gesendet: {date}"
moderation.button.change = "Change Moderator" | "Moderator Γ€ndern"
moderation.button.sendReminder = "Send Reminder" | "Erinnerung senden"
moderation.success.assigned = "Moderator assigned. Notification sent to {name}." | "Moderator zugeteilt. Benachrichtigung an {name} gesendet."
moderation.success.reminder = "Reminder sent to {name}" | "Erinnerung an {name} gesendet"

// Moderator Dashboard
moderator.dashboard.title = "My Moderator Assignments" | "Meine Moderationsaufgaben"
moderator.dashboard.upcoming = "Upcoming Events" | "Anstehende Events"
moderator.dashboard.past = "Past Events" | "Vergangene Events"
moderator.button.viewDetails = "View Event Details" | "Event-Details anzeigen"
moderator.button.downloadAgenda = "Download Agenda" | "Agenda herunterladen"
moderator.contact = "Contact" | "Kontakt"
moderator.attendees = "Attendees" | "Teilnehmer"
moderator.speakers = "Speakers" | "Referenten"
moderator.status = "Status" | "Status"

// Moderator Event Detail View
moderator.role = "Your Role: Moderator" | "Ihre Rolle: Moderator"
moderator.responsibilities.title = "Moderator Responsibilities" | "Moderationsaufgaben"
moderator.responsibilities.reviewAgenda = "Review event agenda" | "Event-Agenda prΓΌfen"
moderator.responsibilities.reviewSpeakers = "Familiarize with speaker bios" | "Mit Referenten-Biografien vertraut machen"
moderator.responsibilities.openingRemarks = "Prepare opening remarks" | "BegrΓΌssungsworte vorbereiten"
moderator.responsibilities.speakerIntros = "Prepare speaker introductions" | "Referenten-Vorstellungen vorbereiten"
moderator.responsibilities.closingRemarks = "Prepare closing remarks" | "Schlussworte vorbereiten"
moderator.organizer.contact = "Organizer Contact" | "Organisator-Kontakt"
moderator.button.sendMessage = "Send Message" | "Nachricht senden"

Implementation

  • Framework: react-i18next with i18next-browser-languagedetector
  • Translation Files:
    • /locales/de/moderation.json
    • /locales/en/moderation.json
  • Dynamic Switching: Language change applies immediately without page reload
  • Namespace: moderation namespace for all moderator-related translations
  • Date Formatting: Use date-fns with locale support
    • German: β€œ15. MΓ€rz 2025, 18:00 Uhr”
    • English: β€œMarch 15, 2025, 6:00 PM”

Email Template Content (Example)

German (de-CH):

Betreff: Sie wurden als Moderator fΓΌr {eventTitle} zugeteilt

Guten Tag {moderatorName},

Sie wurden als Moderator fΓΌr die folgende Veranstaltung zugeteilt:

Event: {eventTitle}
Datum: {eventDate}
Ort: {eventLocation}

Aufgaben des Moderators:
β€’ BegrΓΌssung der Teilnehmer
β€’ Vorstellung der Referenten
β€’ Zeitmanagement wΓ€hrend der VortrΓ€ge
β€’ Moderation der Diskussionsrunde

Eventdetails anzeigen:
{eventUrl}

Bei Fragen wenden Sie sich bitte an:
{organizerName} ({organizerEmail})

Mit freundlichen GrΓΌssen,
BATbern Event Management System

English (en-US):

Subject: You have been assigned as moderator for {eventTitle}

Dear {moderatorName},

You have been assigned as moderator for the following event:

Event: {eventTitle}
Date: {eventDate}
Location: {eventLocation}

Moderator Responsibilities:
β€’ Welcome attendees
β€’ Introduce speakers
β€’ Time management during presentations
β€’ Moderate discussion panel

View event details:
{eventUrl}

For questions, please contact:
{organizerName} ({organizerEmail})

Best regards,
BATbern Event Management System

Future Enhancements (Phase 2)

  • Moderator Briefing Materials: Auto-generate moderator briefing PDF with speaker bios, agenda, Q&A guidelines (bilingual PDF support)
  • Day-of Tools: Real-time agenda timer, speaker cue cards, Q&A tracking (bilingual UI)
  • Interactive Checklist: Track moderator preparation tasks with completion status
  • Speaker Communication: Direct messaging between moderator and speakers
  • Feedback Collection: Post-event moderator feedback form (bilingual)
  • Moderator Availability: Check moderator calendar before assignment
  • French Support: Add French language option for trilingual Switzerland

  • Story 5.10: Progressive Publishing Engine (publishes agenda for moderator view)
  • Story 5.11: Agenda Finalization (triggers moderator notification)
  • Epic 2 Story 2.1: User Management (defines Organizer role)
  • Epic 4: Public Website (publishes event details visible to moderator)

Accessibility Notes

  • Moderator dropdown must be keyboard accessible (arrow keys to navigate)
  • Screen reader support for status indicators
  • Email notifications must be accessible (plain text + HTML)
  • Moderator dashboard must support screen readers
  • Color-blind safe status colors

Responsive Behavior

  • Desktop (>1024px): Full layout with sidebar
  • Tablet (768-1024px): Stacked layout
  • Mobile (<768px): Single column, simplified moderator dashboard

Testing Checklist