Screen Catalog

Every screen the product must include, categorised by how often users interact with it. Main Operation screens drive daily work · Setup screens are touched once per event (or per year) · Rare / Modification screens fire on exceptions, audits, and edge cases.

48Total screens
16Main operation (daily)
13One-time setup
19Rare / modification

Main operation 16

Daily-use screens. Staff, operators, and external clients/suppliers live here.

Dashboard — Command Center

/dashboard
Maindaily · open per session

Role-routed landing. Inventory & Distribution Command Center design: KPIs (Total Sold / Purchased / Allocated / Pending Dispatch), Action Center (urgent items), Match Summary Widgets, Stock Overview, Open Distribution CTA.

Rolessuper_adminops_managersr_operatoroperatorstaff Key dataEvent-scoped KPIs · 5–10 latest urgent actions · live refresh Key actionsDrill-down · switch event · jump to Distribution

Events list

/events
Maindaily

Grid/list of all events. Status pills (DRAFT / PLANNING / BUYING / SELLING / ALLOCATING / DISPATCHING / CLOSED / ARCHIVED). Quick filters by type.

Rolessuper_adminops_managersr_operatoroperator ActionsCreate event · open detail · switch active

Event detail

/events/:id
Maindaily

Event overview with matches list, per-match inventory dashboard (Category × Purchased / Sold / Remaining / Oversold-alert), status transitions, match result entry for placeholder resolution.

ActionsAdd match · edit match · enter result · change status · export

Purchases list

/purchases
Maindaily

Table of purchases with vendor · match · category · qty · price. Drill-down drawer shows expanded units, per-unit allocation status, seat position.

Rolesoperatorsr_operatorops_manager

New Purchase

/purchases/new
Mainmany per day

Manual entry or CSV bulk import tabs. Vendor / match / category / qty / price per line. Auto-expands to N _PURCHASE_UNITS on save. Optional: attach contract doc, deposit, delivery channel.

Sales list

/sales
Maindaily

Table of sales with client · multi-match support · credit status · allocation status · oversell indicators. Drawer with line-item details.

New Sale

/sales/new
Mainmany per day

Revised form layout: client typable-autocomplete at top · USD/EUR currency only (no FX) · match field moves to each line item (one client can buy across multiple matches in one sale). Real-time inventory feedback per line (green/amber/red).

GatesCredit check · oversell check (may require manager override)

Distribution (allocation hub)

/distribution
Maincontinuous

The operational center. Table of unallocated + allocated distribution rows. Side drawer opens for allocation. Special Handling panel for unallocate / override / reset. Bulk allocation by SetID.

Rolessr_operatorops_manager

Allocation Preview

/distribution/:saleId/preview
Maincontinuous

Shows top-6 candidate plans with scores, chunks, vendor mix, margin delta, policy violations. Operator picks one to commit.

StrategiesEXACT · GREEDY_LARGEST · GREEDY_SMALLEST · ROTATED_DESC

Staff Queue

/staff-queue
Maincontinuous

Filtered dispatch queue. Tabs: All / Not Sent / Sent / Issues. "Assigned to me" toggle. Priority + status pills.

Rolesops_manager (assigns)staff (works)

Staff Task detail

/staff-queue/:taskId
Mainper dispatch

Full task: INV_NO · vendor creds (show/hide · PASSWORD_VIEWED audit) · client details · activity log. Mark SENT with proof URL.

Client Portal (external)

/client-portal/:token
Externalclient-access

Token-gated. Advanced filter bar (match · category · delivery · block/row · ticket holder). Yellow editable block (AB–AF). Copy-down button. Accept / Confirm Receipt (per-ticket, bulk, filtered-bulk). Column P = purchased, Q = allocated.

Roleclient

Supplier Portal (external)

/supplier-portal/:token · /supplier/*
Externalsupplier-access

Token-gated (FEW suppliers only). Company=MIRRA redacted. Pre-generated from Purchases; allocated client detail streams in. Editable Delivery (adds UPLOADED value) + DispatchNotes. Confidentiality banner.

Supplier Portals admin list

/supplier-portals
Mainweekly

Internal view: all FEW-supplier portals, their token status, last activity, dispatch progress per supplier. Regenerate / refresh links.

Reports & Analytics

/reports
Mainweekly

Tabbed: Event Summary · Inventory Health · Allocation Progress · Dispatch Status · P&L. Drill-down by match / subgame. Charts (pie · bar · line).

Login

/login
Mainsession start

Email + password. Demo-account chips for quick role-switching during development. Redirects by role after login.

One-time setup 13

Configuration screens — set once per event, per venue, or per calendar year.

Organisation settings

/settings/org
Setuponce

Org name · address · timezone · default currency · contact / support emails · fiscal year. One-time on install.

Rolesuper_admin

System settings

/settings/system
Setupoccasional

Default thresholds: priceChangeApprovalThreshold · dispatchBuffer · portalTokenExpiry · session timeout · audit retention · default allocation strategy.

Currencies

/masters/currencies
Setupannual

Currently restricted to USD + EUR (per new rule). Retained for future expansion; no FX field on the Sale form.

Venues

/masters/venues
Setupper new venue

Name · city · country · timezone · capacity · address · map URL. Cross-event.

Seat Maps upload

/masters/venues/:id/seatmap
Setupper venue / per match

New requirement. Upload stadium layout (Blocks · Rows · Seats · optional X/Y). Paint category zones. Capacity sanity check. Enables visual allocation.

Clients master

/clients, /masters/clients/:id
Setupas needed

Company · type (CORPORATE/AGENCY/INDIVIDUAL) · credit limit · payment terms · tax ID · VIP flag. Used by Sale form autocomplete.

Vendors master

/vendors, /masters/vendors/:id
Setupas needed

Name · type (MARKETPLACE/DIRECT/AGENCY) · country · primary contact · website. Used by Purchase form.

Contracts

/masters/contracts
Setupper event party

PURCHASE or SALE · party × event · valid dates · maxValue · currency · document attach.

Vendor credentials

/admin/vendor-credentials
Setupper event

Login ID + email + password per vendor (optionally per event). Event-specific wins over global fallback.

Notification templates

/admin/notifications
Setupoccasional

10 seed templates. Code · name · channels (email/WhatsApp/Slack/in_app) · subject · body markdown · variables · active. Triggers linked.

Users & roles

/admin/users
Setupas needed

Add / deactivate users. Roles: super_admin · event_admin · ops_manager · sr_operator · operator · staff · client · supplier.

Schedule upload

/events/:id/schedule/upload
Setuponce per event

New requirement. Drag-drop / browse .xlsx/.csv. Auto-detects FIFA vs Olympics flat shape. Column mapper UI. Creates Matches/SubGames/Categories/Venues in bulk. Handles placeholder teams.

Allocation policies

/admin/allocation-policies
Setupper event (optional)

Name / scope / mode (SUGGEST / SEMI_AUTO / FULLY_AUTO) · vendor whitelist/blocklist · margin floor · split policy · VIP exclusion · rank gaps · auto-commit cap.

Rare / modification 19

Exception-path screens — fired on audit, override, recovery, or post-event. Not part of the daily loop.

Special Handling drawer

DistributionPage · side panel
Rareexception

Unallocate sale · unallocate by SetID · reset seats · set/clear AllocFromCategory. Requires typing UNDO + reason. Writes to _ALLOC_LOG.

Oversell Resolution drawer

DistributionPage · drawer
Rareexception

Approve override / reject / upgrade. Manager-only. Triggered when sale line qty > inventory at sale time.

Upgrade modal

Oversell context modal
Rareexception

Proposes higher-tier category with recalculated price + margin. Sets AllocFromCategory on acceptance.

Match result entry

EventDetailPage · result modal
Rareper match completion

New requirement. Enter winner/loser for a knockout match. Triggers placeholder resolution cascade. Notifies affected clients.

Placeholder team resolver

EventDetailPage
Rareas tournament progresses

Bulk-edit screen for resolving TBD / Qualifier N / Winner-of-X after draws / results.

Sale cancellation

SalesPage · action
Rareexception

Void sale post-creation. Auto-unallocates all child DistRows (units → AVAILABLE). Appends CANCEL_SALE to _ALLOC_LOG. Refund flow triggered.

Reconciliation

/admin/reconciliation
Rareperiodic

Sales tab vs Distribution row count diff. Actions: KEEP · DELETE_CANDIDATE · MANUAL_REVIEW · PROTECTED_EXCESS · MISSING_IN_DIST. Tick Process_Now to re-sync.

Allocation Audit report

/admin/allocation-audit
Rareperiodic

9 integrity checks. Severity: CRITICAL / HIGH / MEDIUM. Summary row shows invariant: unique UnitIDs referenced == allocated units count.

Audit log

/admin/audit-log
Rarecompliance

_ALLOC_LOG append-only. Actions: ALLOCATE · UNDO_SALE · UNDO_SET · RESET_SEATS · SET/CLEAR_ALLOC_FROM_CATEGORY · CANCEL_SALE · PASSWORD_VIEWED · credential CRUD · event transitions.

Rolesuper_admin

Credential history

VendorCredentialsPage · drawer
Rareaudit

Per-credential timeline: CREATED · UPDATED · DEACTIVATED · PASSWORD_VIEWED. Actor + timestamp + details. Drives compliance.

Password reveal + audit

Staff task detail · micro-UX
Rareper dispatch

Show/hide password on vendor creds. Reveal fires PASSWORD_VIEWED audit with actor + timestamp. Auto-hide after 30s.

Visual seat allocator overlay

DistributionPage · seat map overlay
Rarebespoke sales

New requirement. Rubber-band lasso on rendered map. "Consecutive seats" enforcement. Distance-proximity scoring. Writes Block/Row/Seat onto DistRows.

Event status transitions

EventDetailPage · status panel
Rareper phase change

Move event between DRAFT → PLANNING → BUYING → SELLING → ALLOCATING → DISPATCHING → CLOSED → ARCHIVED. Each transition gates which screens are usable.

Category scheme switch

EventDetailPage · advanced
Raresetup anomaly

Change between FIFA scheme (Top Cat 1, Cat 1–4) and Olympics scheme (First, A–E) on an existing event — for data migration / cleanup.

Schedule re-import

EventDetailPage · re-upload
Rareschedule change

Occasionally organisers publish revised schedules (venue / time changes). Re-import with merge semantics (preserves sales, updates match metadata).

Notification log

/admin/notifications/log
Rareops review

Sent / failed notifications. Payload · recipients · channel · retryCount · error. Resend / debug.

Portal regenerate / revoke

Supplier Portals · Client portals admin
Raresecurity

Invalidate a token (security incident / client offboarding). Generate new token. Notify recipient with new URL.

Financial close / invoicing

/admin/finance · TBD
Rareend-of-event

Invoice generation · vendor settlement · refund tracking · margin report. Workflow TBD — open product decision.

Data export / retention

/admin/archive
Rarearchive time

Export event as CSV/Excel/PDF. Manual retention policy trigger. GDPR-style client data-subject requests.