System Administration
User Scenarios & Testing (mandatory)
User Story 1 - Admin Configures Default Event Deadlines (Priority: P1)
An admin accesses the system settings area and configures default deadline offsets that will automatically apply to new events. They set configuration deadline to 30 days before event start, artwork deadline to 14 days before event start, and proof approval deadline to 7 days before event start. When organisers create new events, these deadlines are automatically calculated based on the event start date, but can be overridden per event if needed.
Why this priority: Default deadlines eliminate repetitive data entry and ensure consistency across events. Without this, every event requires manual deadline entry, leading to errors and inconsistency. This is foundational for efficient event creation.
Independent Test: Can be fully tested by configuring default deadline offsets, creating a new event, verifying deadlines are auto-calculated correctly, and confirming organisers can override them. Delivers immediate value by streamlining event creation.
Acceptance Scenarios:
- Given an admin is in system settings, When they navigate to deadline configuration and set "Configuration Deadline" to "30 days before event start", Then the default offset is saved and will apply to all new events
- Given default deadlines are configured, When an organiser creates a new event with start date 2025-06-15, Then the system automatically calculates configuration deadline as 2025-05-16, artwork deadline based on its offset, and proof approval deadline based on its offset
- Given an event is created with auto-calculated deadlines, When an organiser views the event details, Then they see the calculated deadlines and can manually adjust them if needed
- Given an admin updates a default deadline offset, When organisers create new events, Then the new offset is used for calculation (existing events remain unchanged)
- Given default deadline offsets are configured, When validation runs, Then the system ensures deadlines maintain logical sequence (configuration < artwork < proof < event start)
User Story 2 - Admin Manages VAT Rate Configuration (Priority: P1)
An admin configures VAT rates for different combinations of sponsor location and event location. They define that UK sponsors booking UK events pay 20% VAT, EU sponsors booking UK events pay 0% VAT (reverse charge), and set a default rate of 20% for unmatched combinations. The system maintains a history of rate changes with effective dates for audit compliance.
Why this priority: VAT calculation is legally required and must be correct from day one. Incorrect VAT rates lead to compliance issues, financial penalties, and loss of customer trust. This must be configurable before any payments are processed.
Independent Test: Can be tested by configuring VAT rules for various location combinations, creating bookings with different sponsor/event locations, and verifying correct rates are applied at checkout. Delivers legal compliance.
Acceptance Scenarios:
- Given an admin is in VAT configuration, When they create a rule for "UK sponsor + UK event = 20% VAT" with effective date 2025-01-01, Then the rule is saved and will apply to qualifying transactions from that date
- Given multiple VAT rules exist, When a UK sponsor books a UK event after the effective date, Then the system applies the 20% VAT rate
- Given no VAT rule matches a booking combination, When the system calculates VAT, Then it applies the configured default rate and logs a warning for admin review
- Given an admin updates a VAT rate, When they save changes with a future effective date, Then the new rate applies from that date forward while maintaining rate history for audit
- Given an organiser creates an event, When they access event settings, Then they can override system-wide VAT rules for that specific event if needed
User Story 3 - Admin Customises Notification Templates (Priority: P2)
An admin reviews system notification templates and customises the "Sponsor Invitation" email to include company-specific branding and wording. They use template variables like {event_name}, {sponsor_name}, and {invitation_link} to personalize messages. They preview the template with sample data, save changes, and organisers immediately see the updated template when sending invitations.
Why this priority: Custom notification templates improve brand consistency and user experience, but the system can function with default templates. This enhances professionalism but isn't required for core operations.
Independent Test: Can be tested by modifying a template, previewing it with sample data, saving changes, and triggering that notification type to verify the customized version is used. Delivers brand customization capability.
Acceptance Scenarios:
- Given an admin is in template management, When they view available templates, Then they see categories including: Invitations, Deadline Reminders, Payment Confirmations, Event Updates, and System Notifications
- Given an admin selects the "Sponsor Invitation" template, When they edit content using the rich text editor and insert variables {event_name} and {sponsor_name}, Then the template is updated and variable placeholders are highlighted
- Given an admin has modified a template, When they click "Preview", Then they see how the email will look with sample variable values populated
- Given an admin saves template changes, When organisers send invitations, Then the customized template is used with actual variable values from the event and sponsor data
- Given multiple templates exist, When an organiser creates an event, Then they can optionally override system templates with event-specific versions
User Story 4 - Admin Reviews and Updates System Settings (Priority: P3)
An admin periodically reviews system-wide settings to ensure they reflect current business needs. They check default deadline offsets, review recent VAT transactions for compliance, verify notification templates are appropriate, and adjust settings as regulations or business processes change. All changes are logged for audit purposes.
Why this priority: Regular review and maintenance are important for long-term system health, but can be scheduled activities rather than immediate requirements. This provides ongoing optimization capability.
Independent Test: Can be tested by accessing system settings, reviewing each configuration area, making adjustments, and verifying audit logs capture all changes. Delivers system maintenance capability.
Acceptance Scenarios:
- Given an admin accesses system settings dashboard, When they view the overview, Then they see sections for: Deadline Configuration, VAT Rules, Notification Templates, and System Preferences
- Given an admin is reviewing VAT configuration, When they view the rate history, Then they see all historical rate changes with effective dates, who made changes, and when
- Given an admin needs to update multiple settings, When they make changes across different configuration areas, Then each change is independently saved and logged in the audit system
- Given an admin wants to understand system defaults, When they view deadline configuration, Then they see current default offsets, when they were last modified, and how many events are using defaults vs overrides
- Given changes are made to system settings, When admins review audit logs, Then they see complete change history including: setting changed, old value, new value, timestamp, and admin user who made the change
Edge Cases
- What happens when an admin sets deadline offsets that result in negative dates or invalid sequences? (Validation prevents saving illogical configurations)
- How does the system handle VAT rate changes that occur mid-booking between initial payment and balance payment? (Balance payment uses rate effective at time of payment, documented in assumptions)
- What happens when a template variable references data that doesn't exist for a particular notification? (Variable displays as empty string or placeholder text like "[Not Available]")
- How does the system handle concurrent admin updates to the same setting? (Last save wins, with both changes logged in audit trail)
- What happens when an event with overridden settings is duplicated? (Duplicated event inherits current system defaults, not the original event's overrides)
- How does the system handle multiple VAT rules with overlapping effective dates? (Most recent effective date takes precedence; system prevents creating rules with same criteria and overlapping dates)
- What happens when default deadlines are updated after many events already exist? (Existing events retain their configured deadlines; only new events use updated defaults)
- How are notification templates handled when events span multiple languages or regions? (Out of scope for initial version; single template set in system default language)
Requirements (mandatory)
Functional Requirements
Default Deadline Configuration
- FR-001: System MUST allow admins to configure default deadline offsets as number of days before event start date
- FR-002: System MUST support deadline types: configuration deadline, artwork deadline, proof approval deadline, and payment deadline
- FR-003: System MUST validate that default deadline offsets maintain logical sequence when applied (configuration < artwork < proof < event start)
- FR-004: System MUST automatically calculate event deadlines based on default offsets when events are created
- FR-005: System MUST allow organisers to override auto-calculated deadlines at the event level
- FR-006: System MUST display whether an event is using default deadlines or has overrides in event management interface
- FR-007: System MUST track when default deadline offsets were last modified and by which admin user
- FR-008: System MUST apply updated default offsets only to newly created events, not existing events
VAT Rate Configuration
- FR-009: System MUST allow admins to create VAT rules based on sponsor location and event location combinations
- FR-010: System MUST support location categories: UK, EU, and Rest of World for both sponsor and event locations
- FR-011: System MUST allow admins to set VAT rate as a percentage (0-100%) for each location combination
- FR-012: System MUST support effective dates for VAT rules to handle future rate changes
- FR-013: System MUST maintain complete history of VAT rate changes with effective dates for audit compliance
- FR-014: System MUST allow admins to configure a default VAT rate that applies when no specific rule matches
- FR-015: System MUST log a warning when default VAT rate is applied due to no matching rule
- FR-016: System MUST allow organisers to override system-wide VAT rules at the event level
- FR-017: System MUST validate VAT rates are between 0% and 100%
- FR-018: System MUST prevent creating duplicate VAT rules with overlapping effective dates for the same location combination
Notification Template Management
- FR-019: System MUST provide admins with access to manage system-wide notification templates
- FR-020: System MUST support template categories: Invitations, Deadline Reminders, Payment Confirmations, Event Updates, System Notifications
- FR-021: System MUST provide a rich text editor for template content editing
- FR-022: System MUST support template variables that are replaced with actual data when notifications are sent
- FR-023: System MUST support minimum template variables: user information (name, email, company), event details (name, date, location, deadlines), stand information, payment information
- FR-024: System MUST highlight template variables in the editor to distinguish them from regular text
- FR-025: System MUST provide a preview function that shows how templates appear with sample data
- FR-026: System MUST allow organisers to create event-specific template overrides that take precedence over system defaults
- FR-027: System MUST handle missing variable data gracefully by displaying empty string or "[Not Available]" placeholder
- FR-028: System MUST maintain template version history for rollback capability
System Settings Access and Security
- FR-029: System MUST restrict system settings access to users with admin role only
- FR-030: System MUST provide a system settings dashboard showing all configurable areas
- FR-031: System MUST validate admin permissions before allowing any configuration changes
- FR-032: System MUST log all system setting changes in the audit system with: setting name, old value, new value, timestamp, admin user
- FR-033: System MUST prevent non-admin users from accessing or viewing system settings pages
- FR-034: System MUST support concurrent admin access with last-save-wins approach for conflict resolution
Event-Level Overrides
- FR-035: System MUST allow organisers with appropriate permissions to override default deadlines for specific events
- FR-036: System MUST allow organisers to override VAT rules for specific events
- FR-037: System MUST allow organisers to override notification templates for specific events
- FR-038: System MUST display whether an event is using system defaults or has overrides
- FR-039: System MUST track override history at the event level
- FR-040: System MUST allow organisers to revert event-level overrides back to system defaults
Key Entities
-
Default Deadline Configuration: System-wide settings defining deadline offsets in days before event start, containing configuration deadline offset, artwork deadline offset, proof approval deadline offset, payment deadline offset, last modified date, and last modified by admin user. Applied automatically to new events.
-
VAT Rule: Configuration defining VAT rates for sponsor-event location combinations, containing sponsor location (UK/EU/Rest of World), event location (UK/EU/Rest of World), VAT rate percentage, effective date, end date (optional), created date, and created by admin user. Maintains historical record for audit compliance.
-
Notification Template: Customizable email or in-app message template containing template name, category (Invitations/Reminders/Confirmations/Updates/System), subject line, body content (rich text), supported variables list, version number, last modified date, last modified by admin user, and active status.
-
System Setting: General configuration entry containing setting name, setting value, data type, default value, validation rules, last modified date, last modified by admin user, and description.
-
Event Override: Record of event-specific configuration that supersedes system defaults, containing event reference, override type (deadline/VAT/template), override value, original system default value at time of override, created date, created by user, and active status.
-
Template Variable: Placeholder in notification templates that gets replaced with actual data, containing variable name, variable key (e.g., {event_name}), data source (user/event/stand/payment), description, example value, and supported templates.
Success Criteria (mandatory)
Measurable Outcomes
- SC-001: Admins can configure complete default deadline settings (all deadline types) in under 5 minutes
- SC-002: 90% of newly created events use auto-calculated deadlines without requiring manual adjustment
- SC-003: System correctly applies VAT rates for 100% of bookings based on configured rules
- SC-004: Admins can create or modify a VAT rule in under 2 minutes
- SC-005: Notification templates can be customized and previewed in under 10 minutes per template
- SC-006: 95% of notification templates use variables correctly without missing data errors
- SC-007: System settings page loads all configuration areas in under 2 seconds
- SC-008: Audit logs capture 100% of system setting changes with complete attribution
- SC-009: Organisers can override event-specific settings in under 3 minutes
- SC-010: Event creation time is reduced by 40% when using default deadline auto-calculation compared to manual entry
- SC-011: VAT compliance audit requests can be satisfied within 30 minutes using system rate history
- SC-012: Template preview accurately represents final notification appearance with 100% variable replacement accuracy
Assumptions (optional)
Business Process Assumptions
- Admin users are trusted to configure system-wide settings appropriately
- VAT rules require periodic review and updates as tax legislation changes
- Template customization follows corporate brand guidelines managed outside the system
- Event-level overrides are exception cases, not the norm (most events use defaults)
User Behaviour Assumptions
- Admins will validate deadline sequences before saving default configurations
- Admins understand VAT compliance requirements for their jurisdiction
- Admins test notification templates using preview before deploying to production use
- Organisers understand when to use system defaults vs when overrides are necessary
System Context Assumptions
- User management system enforces admin role-based access control
- Audit logging system exists and captures all configuration changes
- Event management system supports deadline calculation from event start date
- Payment system can query VAT rules based on sponsor and event locations
- Notification system can parse and replace template variables with actual data
Data Assumptions
- Location data (UK/EU/Rest of World) is maintained for both sponsors and events
- Event start dates are mandatory and validated before deadline calculation
- Template variables reference data that exists in the system at notification send time
- Historical VAT rates are retained indefinitely for compliance (no data purging)
Configuration Assumptions
- Default deadline offsets initially configured as: configuration deadline = 30 days, artwork deadline = 14 days, proof approval deadline = 7 days, payment deadline = 7 days
- Default VAT rate set to 20% UK standard rate when no specific rule matches
- System installed with standard template set covering all notification categories
- Concurrent admin edits resolve with last-save-wins (no conflict detection or locking)
Dependencies (optional)
Internal Dependencies
- User Management System: Required for admin role validation and access control
- Event Management System: Required to apply default deadlines and support event-level overrides
- Payment System: Required to query and apply VAT rules during checkout
- Notification System: Required to use templates and replace variables when sending notifications
- Audit Logging System: Required to track all system setting changes for compliance
- Permission System: Required to enforce admin-only access to system settings
External Dependencies
- Email Service: Required for sending notifications using customized templates
- None for VAT or deadline configuration (purely internal system functionality)
Constraints (optional)
Business Constraints
- System settings changes require admin privileges - cannot be delegated to organiser role
- VAT rate changes must maintain historical records for minimum 7 years for audit compliance
- Default deadline offsets must result in future dates when applied to event start dates
- Event-level overrides do not affect other events (changes are isolated per event)
- Template variables must reference data that exists in the system (no external data sources)
Technical Constraints
- Maximum 50 VAT rules can be configured to maintain query performance
- Template content limited to 50,000 characters to prevent email delivery issues
- Default deadline offsets limited to 365 days maximum (approximately 1 year before event)
- Concurrent admin setting updates use last-save-wins (no optimistic locking)
- Template preview limited to 10 sample records to prevent performance impact
User Experience Constraints
- System settings interface must clearly indicate which settings affect new events vs existing events
- Template editor must validate variable syntax before saving
- VAT rule effective dates cannot overlap for the same location combination
- Event-level overrides must clearly display which system default they are replacing
- Audit logs for system settings must be accessible to admins within 2 clicks
Security and Compliance Constraints
- All system setting changes must be logged with user attribution for audit trail
- VAT rate history cannot be deleted or modified retroactively
- Admin access to system settings must be validated on every request
- Template content is not sanitized for script injection (templates created by trusted admin users only)
- Event-level overrides do not require approval workflow (organiser decision is final)