Skip to content

Architecture-to-Features Mapping

This document maps architecture entities and system components to features, enabling developers and AI assistants to understand which data and systems are involved when implementing any feature.

How to Use This Document

  1. When implementing a feature: Find the feature in the Entity-Feature Matrix to understand which entities it reads/writes
  2. When modifying an entity: Find the entity in the Entity Ownership table to see all affected features
  3. When working on a system component: Find the component in System Responsibilities to see its owned features
  4. When understanding data flows: See Epic Data Flows for simplified diagrams

Quick Reference: Entity Ownership

Entity Primary Epic Key Features Description
User E1 E1-F1, E1-F2, E1-F3, E1-F4 User accounts and authentication
UserProfile E1 E1-F3, E1-F4, E1-F5 Ticketing profiles with OIB
Match E2 E2-F1, E2-F2, E2-F4, E2-F7, E2-F9 Match configuration and lifecycle
Stadium E2 E2-F3, E2-F4, E2-F5 Stadium templates and configurations
Sector E2/E3 E2-F3, E2-F10, E3-F5, E3-F6 Stadium sectors and seat groups
Seat E3 E3-F1, E3-F2, E3-F3, E3-F4 Individual seat inventory
Ticket E9 E9-F1, E9-F2, E9-F3, E9-F5 Issued tickets with QR codes
TicketHolder E4 E4-F5, E4-F6 Ticket holder identity information
Order E4/E8 E4-F4, E4-F8, E8-F2, E8-F3 Purchase orders
Payment E8 E8-F1, E8-F3, E8-F4, E8-F5 Payment transactions
Quota E7 E7-F1, E7-F2, E7-F3, E7-F4, E7-F7 Partner/sponsor ticket allocations
SubQuota E7 E7-F6 Delegated quota portions
QuotaSeat E7 E7-F1, E7-F5 Seats allocated to quotas
LoyaltyPoint E6 E6-F1, E6-F3 Fan attendance tracking
Reservation E4/E5 E4-F4, E5-F4 Cart and seat reservations
Blacklist E11 E11-F1, E11-F2, E11-F3, E11-F4 Banned attendees
Queue E5 E5-F1, E5-F2, E5-F3, E5-F4, E5-F5 Waiting queue positions
AuditLog All E3-F1, E10-F2, E10-F3 System-wide activity logging

Entity-Feature Detail Matrix

User Entity

The User entity is managed by HNS Drupal 10 and referenced by the Ticketing Backend.

Operation Features
Create E1-F1 (Registration API)
Read E1-F2, E1-F3, E4-F5, E6-F1, E10-F1
Update E1-F3, E1-F4
Authenticate E1-F2

UserProfile Entity

Ticketing-specific profile data stored in the Ticketing Backend.

Operation Features
Create E1-F3 (Default Profile)
Read E4-F5, E7-F5, E10-F1, E12-F1
Update E1-F3, E1-F4
Validate OIB E1-F5, E4-F6, E7-F5

Match Entity

Central entity for event management.

Operation Features
Create E2-F1 (Match CRUD)
Read E2-F2, E2-F4, E4-F1, E4-F2, E5-F1, E7-F1, E13-F1, E14-F1
Update E2-F1, E2-F2, E2-F4, E2-F6, E2-F7, E2-F9
Delete/Cancel E2-F7 (Cancellation)
Close E2-F9, E6-F3, E13-F2

Stadium Entity

Stadium templates and per-match configurations.

Operation Features
Create Template E2-F3
Read E2-F4, E2-F5, E3-F5, E4-F2
Update E2-F3, E2-F10
Configure for Match E2-F4, E2-F5

Sector Entity

Logical groupings of seats within a stadium.

Operation Features
Create E2-F3, E2-F10
Read E3-F4, E3-F5, E3-F6, E4-F2, E7-F1
Update E2-F10, E3-F6
Visualize E3-F5

Seat Entity

Individual seat inventory with status tracking.

Operation Features
Create E2-F3, E2-F10
Read E3-F4, E3-F5, E4-F2, E4-F3, E7-F1
Update Status E3-F1, E3-F2, E3-F3, E4-F4, E4-F8, E7-F5, E8-F3
Reserve E4-F4, E5-F4, E12-F3
Transfer E3-F6, E9-F5, E10-F2
Allocate to Quota E7-F1, E7-F2, E7-F3

Ticket Entity

Issued tickets with QR codes and holder information.

Operation Features
Create E4-F8, E7-F5, E9-F1
Read E9-F2, E9-F3, E9-F4, E10-F1, E13-F1
Update E9-F5, E10-F2, E10-F4
Cancel E8-F3, E10-F3, E11-F4
Transfer E9-F5, E10-F2
Mark Attended E2-F9, E6-F3, E13-F2

TicketHolder Entity

Identity information for ticket holders.

Operation Features
Create E4-F5, E7-F5
Read E4-F6, E10-F1, E11-F3
Update E9-F5, E10-F2
Validate E1-F5, E4-F6, E11-F3

Order Entity

Purchase orders linking payments to tickets.

Operation Features
Create E4-F4 (Cart), E4-F8 (Confirm)
Read E8-F2, E10-F1, E14-F1, E14-F3
Update E4-F7, E8-F3
Complete E4-F8
Refund E8-F3, E10-F3

Payment Entity

Payment transactions and processing.

Operation Features
Create E4-F7, E8-F1
Read E8-F3, E10-F3, E14-F3
Update E8-F1 (webhooks), E8-F3 (refund)
Process E4-F7, E8-F1, E8-F4
Refund E8-F3, E10-F3
Invoice E8-F5

Quota Entity

Partner and sponsor ticket allocations.

Operation Features
Create E7-F1, E7-F2, E7-F3
Read E7-F4, E12-F2
Update E7-F5, E7-F7
Cancel E7-F7
Claim E7-F5

SubQuota Entity

Delegated portions of quotas.

Operation Features
Create E7-F6
Read E7-F4
Update E7-F6
Claim E7-F5

QuotaSeat Entity

Seats allocated to specific quotas.

Operation Features
Create E7-F1, E7-F2
Read E7-F4, E7-F5
Update E7-F5 (claim), E7-F7 (cancel)

LoyaltyPoint Entity

Fan attendance and loyalty tracking.

Operation Features
Create E6-F3 (after match)
Read E6-F1, E6-F2
Calculate Balance E6-F1, E6-F2

Reservation Entity

Temporary seat holds (cart, queue purchase windows).

Operation Features
Create E4-F4, E5-F4, E12-F3
Read E4-F4, E5-F4
Extend E4-F4
Release E4-F4 (TTL), E5-F4 (window)
Convert to Order E4-F8

Blacklist Entity

Banned attendees database.

Operation Features
Create E11-F1
Read E4-F6, E7-F5, E9-F5, E10-F2, E11-F3
Bulk Import E11-F2
Check E11-F3
Auto-Cancel E11-F4

Queue Entity

Waiting queue for high-demand matches.

Operation Features
Join E5-F1
Read Position E5-F2
Update E5-F2 (position), E5-F3 (notification)
Grant Window E5-F4
Handle Disconnect E5-F5

System Component Responsibilities

HNS Mobile App

Primary responsibility: Customer-facing UI for ticket discovery, purchase, storage, and presentation.

Epic Features Description
E4 E4-F1, E4-F2, E4-F3, E4-F4, E4-F5, E4-F6, E4-F7, E4-F8 Complete ticket purchase flow
E5 E5-F1, E5-F2, E5-F3, E5-F4, E5-F5 Waiting queue experience
E9 E9-F1, E9-F2, E9-F3, E9-F4, E9-F5 Ticket wallet and display
E6 E6-F1 (read) Loyalty points display
E7 E7-F5 (claiming) Mobile quota claiming
E12 E12-F1 Petrol sales section (PIN generation)
E1 E1-F2, E1-F3, E1-F4 Profile management
E15 E15-F2 Push notification receipt

Admin Portal

Primary responsibility: HNS staff operations for match lifecycle, inventory, quotas, support, and reporting.

Epic Features Description
E2 E2-F1 through E2-F10 Match and stadium management
E3 E3-F1, E3-F2, E3-F3, E3-F4, E3-F5, E3-F6 Seat inventory operations
E7 E7-F1, E7-F2, E7-F3, E7-F7 Quota creation and management
E10 E10-F1, E10-F2, E10-F3, E10-F4 Customer support operations
E11 E11-F1, E11-F2, E11-F4, E11-F5 Blacklist management
E13 E13-F1, E13-F2 Access control exports/imports
E14 E14-F1, E14-F2, E14-F3 Reporting and analytics
E6 E6-F2, E6-F3 Loyalty configuration and awarding
E8 E8-F3, E8-F4, E8-F5 Payment and refund operations

Quota Web Portal

Primary responsibility: Web UI for quota holders and partner staff workflows.

Epic Features Description
E7 E7-F4 Quota dashboard
E7 E7-F5 Web-based quota claiming
E7 E7-F6 Subquota creation and delegation
E12 E12-F2 Petrol staff portal (PIN lookup, sale confirmation)
E12 E12-F3 Petrol reservation management

Ticketing Backend (PHP/Symfony)

Primary responsibility: System of record for all ticketing domain operations. Provides APIs consumed by all frontend applications.

Category Features Description
User/Profile E1-F1, E1-F3, E1-F4, E1-F5 Profile and OIB validation APIs
Match/Stadium E2-F1 through E2-F10 Match and stadium configuration APIs
Inventory E3-F1 through E3-F6 Seat status and inventory APIs
Purchase E4-F1 through E4-F8 Purchase flow APIs
Queue E5-F1 through E5-F5 Queue management APIs
Loyalty E6-F1, E6-F2, E6-F3 Loyalty tracking APIs
Quota E7-F1 through E7-F7 Quota management APIs
Payment E8-F1 through E8-F5 Payment processing integration
Ticket E9-F1 through E9-F6 Ticket generation and delivery APIs
Support E10-F1 through E10-F4 Support operation APIs
Security E11-F1 through E11-F5 Blacklist management APIs
Petrol E12-F1 through E12-F3 Petrol flow APIs
Access Control E13-F1, E13-F2 Export/import APIs
Reporting E14-F1 through E14-F3 Reporting and analytics APIs
Notifications E15-F1, E15-F2 Email and push notification dispatch

HNS Drupal 10

Primary responsibility: User account management and authentication (SSO).

Epic Features Description
E1 E1-F1 User registration (identity creation)
E1 E1-F2 User authentication and session management

Epic Data Flows

E1: User & Profile Management

┌─────────────────┐     ┌──────────────────┐     ┌──────────────────┐
│  HNS Mobile App │────▶│  HNS Drupal 10   │────▶│ Ticketing Backend │
│  (Login/Profile)│◀────│  (Auth/SSO)      │◀────│ (Profile Storage) │
└─────────────────┘     └──────────────────┘     └──────────────────┘
                                                           │
                                                           ▼
                                              ┌────────────────────────┐
                                              │ Entities:              │
                                              │ - User                 │
                                              │ - UserProfile          │
                                              └────────────────────────┘

Features: E1-F1 → E1-F2 → E1-F3 → E1-F4 → E1-F5

E4: Ticket Purchase Flow

┌─────────────────┐     ┌──────────────────┐     ┌──────────────────┐
│  HNS Mobile App │────▶│ Ticketing Backend │────▶│ Payment Gateway  │
│  (Purchase UI)  │◀────│ (Order/Seat Mgmt) │◀────│ (Stripe)         │
└─────────────────┘     └──────────────────┘     └──────────────────┘
                                 │
                                 ▼
                    ┌────────────────────────┐
                    │ Entities:              │
                    │ - Match (read)         │
                    │ - Seat (reserve/sold)  │
                    │ - Reservation (create) │
                    │ - TicketHolder (create)│
                    │ - Order (create)       │
                    │ - Payment (create)     │
                    │ - Ticket (create)      │
                    │ - Blacklist (read)     │
                    └────────────────────────┘

Features: E4-F1 → E4-F2 → E4-F3 → E4-F4 → E4-F5 → E4-F6 → E4-F7 → E4-F8

E5: Waiting Queue System

┌─────────────────┐     ┌──────────────────┐
│  HNS Mobile App │────▶│ Ticketing Backend │
│  (Queue UI)     │◀────│ (Redis Queue)    │
└─────────────────┘     └──────────────────┘
        │                       │
        │   WebSocket/Polling   │
        └───────────────────────┘
                                 │
                                 ▼
                    ┌────────────────────────┐
                    │ Entities:              │
                    │ - Queue (positions)    │
                    │ - Reservation (window) │
                    │ - Match (read)         │
                    └────────────────────────┘

Features: E5-F1 → E5-F2 → E5-F3 → E5-F4 → E5-F5

E7: Quota Management

┌─────────────────┐     ┌──────────────────┐     ┌──────────────────┐
│   Admin Portal  │────▶│ Ticketing Backend │────▶│  Email Service   │
│ (Quota Creation)│     │  (Quota Engine)   │     │ (Invitations)    │
└─────────────────┘     └──────────────────┘     └──────────────────┘
                                 │
        ┌────────────────────────┼────────────────────────┐
        ▼                        ▼                        ▼
┌───────────────┐     ┌──────────────────┐     ┌──────────────────┐
│Quota Web Portal│     │  HNS Mobile App  │     │ Entities:        │
│(Claiming/Deleg)│     │ (Claiming)       │     │ - Quota          │
└───────────────┘     └──────────────────┘     │ - SubQuota       │
                                               │ - QuotaSeat      │
                                               │ - Seat (allocate)│
                                               │ - Ticket (claim) │
                                               └──────────────────┘

Features: E7-F1 → E7-F2 → E7-F3 → E7-F4 → E7-F5 → E7-F6 → E7-F7

E8: Payment Processing

┌─────────────────┐     ┌──────────────────┐     ┌──────────────────┐
│  HNS Mobile App │────▶│ Ticketing Backend │────▶│ Payment Gateway  │
│  (Payment UI)   │     │ (Payment Service) │◀────│ (Stripe Webhooks)│
└─────────────────┘     └──────────────────┘     └──────────────────┘
                                 │
                                 ├──────────────────────────┐
                                 ▼                          ▼
                    ┌────────────────────────┐  ┌──────────────────┐
                    │ Entities:              │  │ e-racuni.com     │
                    │ - Payment (process)    │  │ (Invoicing)      │
                    │ - Order (update)       │  └──────────────────┘
                    │ - Ticket (create/cancel)
                    │ - Seat (status)        │
                    └────────────────────────┘

Features: E8-F1 → E8-F2 → E8-F3 → E8-F4 → E8-F5

E11: Blacklist & Security

┌─────────────────┐     ┌──────────────────┐
│   Admin Portal  │────▶│ Ticketing Backend │
│ (Import/Manage) │     │ (Blacklist DB)   │
└─────────────────┘     └──────────────────┘
                                 │
        ┌────────────────────────┼────────────────────────┐
        ▼                        ▼                        ▼
┌───────────────────┐  ┌───────────────────┐  ┌───────────────────┐
│ E4-F6: Checkout   │  │ E7-F5: Quota Claim│  │ E9-F5: Transfer   │
│ (Blacklist Check) │  │ (Blacklist Check) │  │ (Blacklist Check) │
└───────────────────┘  └───────────────────┘  └───────────────────┘
                                 │
                                 ▼
                    ┌────────────────────────┐
                    │ Entities:              │
                    │ - Blacklist (manage)   │
                    │ - Ticket (auto-cancel) │
                    │ - AuditLog (violations)│
                    └────────────────────────┘

Features: E11-F1 → E11-F2 → E11-F3 → E11-F4 → E11-F5

E12: Physical Sales (Petrol)

┌─────────────────┐     ┌──────────────────┐     ┌──────────────────┐
│  HNS Mobile App │────▶│ Ticketing Backend │◀────│ Quota Web Portal │
│ (PIN Request)   │     │ (PIN Management)  │     │ (Petrol Staff)   │
└─────────────────┘     └──────────────────┘     └──────────────────┘
        │                       │                        │
        │   PIN Code            │                        │
        └───────────────────────┼────────────────────────┘
                                │
                                ▼
                    ┌────────────────────────┐
                    │ Entities:              │
                    │ - Quota (Petrol)       │
                    │ - Reservation (PIN)    │
                    │ - TicketHolder (entry) │
                    │ - Ticket (create)      │
                    │ - Blacklist (check)    │
                    └────────────────────────┘

Features: E12-F1 → E12-F2 → E12-F3


Cross-Cutting Feature Dependencies

Features That Check Blacklist

All these features call E11-F3 (Blacklist Check Service):

  • E4-F6: Checkout ticket holder validation
  • E7-F5: Quota claiming process
  • E9-F5: Ticket transfer self-service
  • E10-F2: Support ticket transfer
  • E12-F1: Petrol PIN generation

Features That Generate Tickets

All these features use E9-F1 (Ticket Generation):

  • E4-F8: Order confirmation (standard purchase)
  • E7-F5: Quota claiming process
  • E12-F3: Petrol sale confirmation

Features That Send Notifications

All these features use E15-F1/E15-F2:

  • E2-F6: Match update notifications
  • E4-F8: Order confirmation
  • E5-F3: Queue progressive notifications
  • E7-F1: Quota invitation
  • E7-F5: Quota claim confirmation
  • E9-F5: Transfer notification
  • E10-F2: Support transfer notification
  • E10-F3: Refund notification

Features That Update Seat Status

All these features modify Seat entity status via E3-F1:

  • E3-F2: Individual seat status change
  • E3-F3: Bulk seat operations
  • E4-F4: Cart reservation
  • E4-F8: Order completion (sold)
  • E7-F1: Quota allocation
  • E7-F7: Quota cancellation
  • E8-F3: Refund processing
  • E9-F5: Ticket transfer


Last Updated: January 2026