Chapter 15: Tenant Admin Portal (Merchant Dashboard)

The Back Office Command Center for Merchants

Architecture Note: RapOS uses a three-portal architecture based on industry best practices from leading POS vendors (Square, Toast, Stripe). See the Three-Portal Strategy section for the complete picture.

The Tenant Admin Portal (app.{domain}) is the web-based management interface for tenant users - store managers, regional managers, and tenant administrators. It provides comprehensive control over their business’s inventory, products, employees, and reporting.

This is NOT the Platform Admin Portal - that’s a separate internal tool for NexusDenim team members to manage the multi-tenant platform itself.


15.1 Technology Stack

ComponentTechnologyRationale
FrameworkBlazor ServerReal-time updates, shared .NET codebase
StylingCustom CSS + Bootstrap 5Consistent design system
StateBlazor component state + servicesSimple, reactive
Real-timeSignalR (built-in)Live dashboard updates
ChartsChart.js or ApexChartsInteractive visualizations

15.2 Architecture Overview

┌─────────────────────────────────────────────────────────────────────┐
│                      ADMIN PORTAL (Blazor Server)                    │
├─────────────────────────────────────────────────────────────────────┤
│                                                                      │
│  ┌─────────────────────────────────────────────────────────────────┐│
│  │                         HEADER                                   ││
│  │  [Logo]  [Breadcrumb]                [Notifications] [Profile]  ││
│  └─────────────────────────────────────────────────────────────────┘│
│  ┌────────────┬────────────────────────────────────────────────────┐│
│  │            │                                                    ││
│  │  SIDEBAR   │                    CONTENT AREA                    ││
│  │            │                                                    ││
│  │ Dashboard  │    ┌──────────────────────────────────────────┐   ││
│  │ Inventory  │    │                                          │   ││
│  │ Products   │    │           Page Content                   │   ││
│  │ Employees  │    │                                          │   ││
│  │ Reports    │    │                                          │   ││
│  │ Settings   │    └──────────────────────────────────────────┘   ││
│  │            │                                                    ││
│  └────────────┴────────────────────────────────────────────────────┘│
│  ┌─────────────────────────────────────────────────────────────────┐│
│  │                         STATUS BAR                               ││
│  └─────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────┘

15.3 Navigation Structure

ADMIN PORTAL
│
├── Dashboard (/dashboard)
│   ├── KPIs
│   ├── Alerts
│   └── Activity Feed
│
├── Inventory (/inventory)
│   ├── Stock Levels (/inventory/levels)
│   ├── Transfers (/inventory/transfers)
│   │   ├── Create Transfer
│   │   └── Transfer History
│   ├── Counts (/inventory/counts)
│   │   ├── New Count
│   │   ├── In Progress
│   │   └── Completed
│   └── Adjustments (/inventory/adjustments)
│
├── Products (/products)
│   ├── Catalog (/products/catalog)
│   │   ├── Product List
│   │   ├── Product Detail
│   │   └── Add/Edit Product
│   ├── Categories (/products/categories)
│   ├── Pricing (/products/pricing)
│   └── Import/Export (/products/import)
│
├── Employees (/employees)
│   ├── Users (/employees/users)
│   ├── Roles (/employees/roles)
│   ├── Schedules (/employees/schedules)
│   └── Performance (/employees/performance)
│
├── Reports (/reports)
│   ├── Sales (/reports/sales)
│   ├── Inventory (/reports/inventory)
│   ├── RFID Analytics (/reports/rfid)      ← Feature-flagged
│   │   ├── Scan Sessions
│   │   ├── Tag Lifecycle
│   │   └── Reconciliation
│   ├── Performance (/reports/performance)
│   └── Custom (/reports/custom)
│
├── Devices (/devices)                       ← NEW section
│   ├── POS Terminals (/devices/pos)
│   └── RFID Scanners (/devices/rfid)        ← Feature-flagged
│       ├── Device List
│       ├── Claim Codes
│       └── Activity Log
│
└── Settings (/settings)
    ├── Locations (/settings/locations)
    ├── Integrations (/settings/integrations)
    ├── RFID Configuration (/settings/rfid)  ← Feature-flagged
    │   ├── Devices (/settings/rfid/devices)
    │   ├── Printers (/settings/rfid/printers)
    │   ├── Tag Config (/settings/rfid/tags)
    │   └── Templates (/settings/rfid/templates)
    ├── System (/settings/system)
    └── Audit Log (/settings/audit)

15.4 Screen Specifications

Screen 1: Dashboard

Purpose: Executive overview with KPIs, alerts, and activity monitoring.

Route: /dashboard

╔════════════════════════════════════════════════════════════════════════════════╗
║ ADMIN PORTAL                                        [Bell] [?] [Admin User ▼]  ║
╠════════════════════════════════════════════════════════════════════════════════╣
║         │                                                                      ║
║ Dashbrd │  DASHBOARD                              Today  [Date Range ▼]        ║
║         │                                                                      ║
║ ─────── │  ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐        ║
║         │  │ TODAY'S    │ │ REVENUE    │ │ ITEMS      │ │ AVG ORDER  │        ║
║ INVNTRY │  │ SALES      │ │            │ │ SOLD       │ │ VALUE      │        ║
║  Levels │  │            │ │            │ │            │ │            │        ║
║  Transfr│  │   $12,450  │ │   $45,230  │ │     423    │ │    $78.50  │        ║
║  Counts │  │   +12% ▲   │ │   +8% ▲    │ │   +15% ▲   │ │   +3% ▲    │        ║
║  Adjust │  └────────────┘ └────────────┘ └────────────┘ └────────────┘        ║
║         │                                                                      ║
║ ─────── │  ┌────────────────────────────────┐ ┌──────────────────────────────┐║
║         │  │ SALES TREND (Last 7 Days)      │ │ ALERTS                  (5)  │║
║ PRODUCT │  │                                │ ├──────────────────────────────┤║
║  Catalog│  │         ╱╲      ╱╲             │ │ [!] Low Stock: NXJ1078      ││
║  Categry│  │    ╱╲  ╱  ╲    ╱  ╲            │ │     Only 3 units at GM      ││
║  Pricing│  │   ╱  ╲╱    ╲  ╱    ╲           │ │                              │║
║  Import │  │  ╱         ╲╱      ╲          │ │ [!] Price Mismatch: SKU-042  ││
║         │  │ ╱                   ╲_        │ │     Shopify: $29, POS: $32   ││
║ ─────── │  │                                │ │                              │║
║         │  │ Mon Tue Wed Thu Fri Sat Sun    │ │ [i] Transfer #1234 Ready     ││
║ EMPLOYE │  └────────────────────────────────┘ │     From HQ to GM (5 items)  ││
║  Users  │                                     │                              │║
║  Roles  │  ┌────────────────────────────────┐ │ [i] Count #567 Pending       ││
║  Sched  │  │ STORE PERFORMANCE              │ │     GM needs review          ││
║  Perform│  ├────────────────────────────────┤ │                              │║
║         │  │ Location  │ Sales  │ Trans │ % │ │ [!] Register offline: NM-02  ││
║ ─────── │  │───────────┼────────┼───────┼───│ │     Last seen: 15 min ago   ││
║         │  │ GM        │ $4,230 │   47  │32%│ └──────────────────────────────┘║
║ REPORTS │  │ HM        │ $3,890 │   42  │29%│                                ║
║  Sales  │  │ LM        │ $2,980 │   35  │22%│ ┌──────────────────────────────┐║
║  Invntry│  │ NM        │ $2,130 │   28  │16%│ │ RECENT ACTIVITY              │║
║  Perform│  └────────────────────────────────┘ ├──────────────────────────────┤║
║  Custom │                                     │ 2:45 PM - Sale #4521 ($89)   ││
║         │                                     │ 2:42 PM - Return processed   ││
║ ─────── │                                     │ 2:38 PM - New customer added ││
║         │                                     │ 2:35 PM - Inventory adjusted ││
║ SETTING │                                     │ 2:30 PM - Transfer completed ││
║  Locatns│                                     │                              │║
║  Integr │                                     │ [View All Activity]          │║
║  System │                                     └──────────────────────────────┘║
║  Audit  │                                                                      ║
╠════════════════════════════════════════════════════════════════════════════════╣
║ Connected: 4 registers  |  Last sync: 30 sec ago  |  System: Healthy           ║
╚════════════════════════════════════════════════════════════════════════════════╝

Dashboard Components:

ComponentSpecification
KPI Cards (4)Stat value, trend arrow, percentage change
Sales ChartLine chart, 7-day trend, interactive hover
Alerts PanelPriority-sorted, color-coded, actionable
Store TableSortable columns, percentage bar
Activity FeedReal-time, auto-scroll, clickable items

Screen 2: Inventory Management

Purpose: Monitor and manage stock levels across all locations.

Route: /inventory/levels

╔════════════════════════════════════════════════════════════════════════════════╗
║ INVENTORY > STOCK LEVELS                                      [Refresh] [Export]║
╠════════════════════════════════════════════════════════════════════════════════╣
║                                                                                ║
║  ┌─────────────────────────────────────────────────────────────────────────┐  ║
║  │ [Search by SKU, name, barcode...]                   Location: [All ▼]   │  ║
║  │                                                                         │  ║
║  │ Category: [All Categories ▼]  Status: [All ▼]  Stock: [All Levels ▼]   │  ║
║  └─────────────────────────────────────────────────────────────────────────┘  ║
║                                                                                ║
║  ┌─────────────────────────────────────────────────────────────────────────┐  ║
║  │ SKU        │ PRODUCT          │ CAT   │  HQ  │  GM  │  HM  │  LM  │  NM │  ║
║  ├────────────┼──────────────────┼───────┼──────┼──────┼──────┼──────┼─────┤  ║
║  │            │                  │       │      │      │      │      │     │  ║
║  │ NXJ1078    │ Galaxy V-Neck    │ Tops  │  45  │   3* │  12  │   8  │  15 │  ║
║  │            │                  │       │      │ LOW  │      │      │     │  ║
║  │────────────┼──────────────────┼───────┼──────┼──────┼──────┼──────┼─────│  ║
║  │ NXP0892    │ Slim Fit Chinos  │Bottms │  32  │  18  │  14  │   0* │  22 │  ║
║  │            │                  │       │      │      │      │ OUT  │     │  ║
║  │────────────┼──────────────────┼───────┼──────┼──────┼──────┼──────┼─────│  ║
║  │ NXA0234    │ Leather Belt     │Access │  60  │  25  │  20  │  15  │  18 │  ║
║  │            │                  │       │      │      │      │      │     │  ║
║  │────────────┼──────────────────┼───────┼──────┼──────┼──────┼──────┼─────│  ║
║  │ NXJ2156    │ Oxford Shirt     │ Tops  │  28  │  12  │   8  │  10  │   6 │  ║
║  │            │                  │       │      │      │      │      │     │  ║
║  │────────────┼──────────────────┼───────┼──────┼──────┼──────┼──────┼─────│  ║
║  │ NXP1045    │ Classic Jeans    │Bottms │  75  │  30  │  25  │  22  │  28 │  ║
║  │            │                  │       │      │      │      │      │     │  ║
║  └─────────────────────────────────────────────────────────────────────────┘  ║
║                                                                                ║
║  Showing 1-25 of 1,245 items       << < Page 1 of 50 > >>    Items/page: [25▼]║
║                                                                                ║
║  ┌─────────────────────────────────────────────────────────────────────────┐  ║
║  │ BULK ACTIONS:  [Create Transfer]  [Request Recount]  [Adjust Stock]     │  ║
║  └─────────────────────────────────────────────────────────────────────────┘  ║
║                                                                                ║
╚════════════════════════════════════════════════════════════════════════════════╝

Inventory Features:

FeatureDescription
Multi-location GridShows stock at all locations in one view
Status IndicatorsLOW (yellow), OUT (red), OK (green)
Click-to-FilterClick column headers to filter by location
Bulk ActionsSelect multiple items for batch operations
ExportCSV/Excel download with current filters

Transfer Creation Modal:

╔════════════════════════════════════════════════════════════════════╗
║ CREATE INVENTORY TRANSFER                                    [X]   ║
╠════════════════════════════════════════════════════════════════════╣
║                                                                    ║
║  From Location:  [HQ - Headquarters        ▼]                      ║
║  To Location:    [GM - Greenbrier Mall     ▼]                      ║
║                                                                    ║
║  ┌──────────────────────────────────────────────────────────────┐ ║
║  │ ITEMS TO TRANSFER                                            │ ║
║  ├──────────────────────────────────────────────────────────────┤ ║
║  │ SKU       │ Product           │ Available │ Transfer Qty     │ ║
║  │───────────┼───────────────────┼───────────┼──────────────────│ ║
║  │ NXJ1078   │ Galaxy V-Neck (M) │    45     │ [     10     ]   │ ║
║  │ NXP0892   │ Slim Fit Chinos   │    32     │ [      5     ]   │ ║
║  └──────────────────────────────────────────────────────────────┘ ║
║                                                                    ║
║  [+ Add More Items]                                                ║
║                                                                    ║
║  Notes: [________________________________]                          ║
║                                                                    ║
║  Priority:  ○ Normal  ○ Urgent                                     ║
║                                                                    ║
║  ┌────────────────────────────────────────────────────────────────╢
║  │                                                                ║
║  │                                   [CREATE TRANSFER]  [CANCEL]  ║
║  │                                                                ║
║  └────────────────────────────────────────────────────────────────╢
╚════════════════════════════════════════════════════════════════════╝

Screen 3: Product Catalog

Purpose: Manage product information, variants, and pricing.

Route: /products/catalog

╔════════════════════════════════════════════════════════════════════════════════╗
║ PRODUCTS > CATALOG                                   [+ Add Product] [Import]  ║
╠════════════════════════════════════════════════════════════════════════════════╣
║                                                                                ║
║  ┌─────────────────────────────────────────────────────────────────────────┐  ║
║  │ [Search products...]                                                    │  ║
║  │                                                                         │  ║
║  │ Category: [All ▼]  Status: [Active ▼]  Price Range: [$0] to [$999]     │  ║
║  └─────────────────────────────────────────────────────────────────────────┘  ║
║                                                                                ║
║  ┌─────────────────────────────────────────────────────────────────────────┐  ║
║  │ [x] │ PRODUCT              │ SKU       │ CATEGORY │ PRICE  │ STOCK│ ACT│  ║
║  ├─────┼──────────────────────┼───────────┼──────────┼────────┼──────┼────┤  ║
║  │     │                      │           │          │        │      │    │  ║
║  │ [ ] │ [img] Galaxy V-Neck  │ NXJ1078   │ Tops     │ $29.00 │  83  │[Ed]│  ║
║  │     │       3 variants     │           │          │        │      │[De]│  ║
║  │─────┼──────────────────────┼───────────┼──────────┼────────┼──────┼────│  ║
║  │ [ ] │ [img] Slim Fit Chino │ NXP0892   │ Bottoms  │ $46.00 │  86  │[Ed]│  ║
║  │     │       5 variants     │           │          │        │      │[De]│  ║
║  │─────┼──────────────────────┼───────────┼──────────┼────────┼──────┼────│  ║
║  │ [ ] │ [img] Oxford Shirt   │ NXJ2156   │ Tops     │ $54.00 │  64  │[Ed]│  ║
║  │     │       4 variants     │           │          │        │      │[De]│  ║
║  │─────┼──────────────────────┼───────────┼──────────┼────────┼──────┼────│  ║
║  │ [ ] │ [img] Leather Belt   │ NXA0234   │ Access.  │ $35.00 │ 138  │[Ed]│  ║
║  │     │       3 variants     │           │          │        │      │[De]│  ║
║  │─────┼──────────────────────┼───────────┼──────────┼────────┼──────┼────│  ║
║  │ [ ] │ [img] Classic Jeans  │ NXP1045   │ Bottoms  │ $59.00 │ 180  │[Ed]│  ║
║  │     │       6 variants     │           │          │        │      │[De]│  ║
║  └─────────────────────────────────────────────────────────────────────────┘  ║
║                                                                                ║
║  Selected: 0  |  Total Products: 1,245                    << < 1 of 50 > >>   ║
║                                                                                ║
║  ┌─────────────────────────────────────────────────────────────────────────┐  ║
║  │ WITH SELECTED:  [Edit Category]  [Update Pricing]  [Archive]  [Delete]  │  ║
║  └─────────────────────────────────────────────────────────────────────────┘  ║
║                                                                                ║
╚════════════════════════════════════════════════════════════════════════════════╝

Product Detail/Edit Modal:

╔════════════════════════════════════════════════════════════════════════════════╗
║ EDIT PRODUCT                                                             [X]   ║
╠════════════════════════════════════════════════════════════════════════════════╣
║                                                                                ║
║  [Basic Info] [Variants] [Pricing] [Inventory] [Media]                         ║
║  ═══════════════════════════════════════════════════════════════════════════   ║
║                                                                                ║
║  ┌────────────────────┐  PRODUCT INFORMATION                                   ║
║  │                    │                                                        ║
║  │   [Product Image]  │  Name *                                                ║
║  │                    │  ┌──────────────────────────────────────────────────┐ ║
║  │   [Upload Image]   │  │ Galaxy V-Neck Tee                                │ ║
║  │                    │  └──────────────────────────────────────────────────┘ ║
║  └────────────────────┘                                                        ║
║                          SKU *                    Barcode                      ║
║                          ┌────────────────────┐   ┌────────────────────────┐  ║
║                          │ NXJ1078            │   │ 0657381512532          │  ║
║                          └────────────────────┘   └────────────────────────┘  ║
║                                                                                ║
║  Category *              Brand                                                 ║
║  ┌────────────────────┐  ┌────────────────────────────────────────────────┐  ║
║  │ Tops           ▼   │  │ Nexus Originals                                │  ║
║  └────────────────────┘  └────────────────────────────────────────────────┘  ║
║                                                                                ║
║  Description                                                                   ║
║  ┌─────────────────────────────────────────────────────────────────────────┐  ║
║  │ Classic V-neck tee made from premium cotton blend. Features a          │  ║
║  │ relaxed fit and reinforced stitching for durability.                    │  ║
║  │                                                                         │  ║
║  └─────────────────────────────────────────────────────────────────────────┘  ║
║                                                                                ║
║  [x] Active    [x] Visible on Website    [ ] Featured                          ║
║                                                                                ║
║  ┌────────────────────────────────────────────────────────────────────────────╢
║  │                                                                            ║
║  │                                           [SAVE CHANGES]  [CANCEL]         ║
║  │                                                                            ║
║  └────────────────────────────────────────────────────────────────────────────╢
╚════════════════════════════════════════════════════════════════════════════════╝

Screen 4: Employee Management

Purpose: Manage users, roles, permissions, and schedules.

Route: /employees/users

╔════════════════════════════════════════════════════════════════════════════════╗
║ EMPLOYEES > USERS                                            [+ Add Employee]  ║
╠════════════════════════════════════════════════════════════════════════════════╣
║                                                                                ║
║  [All Employees] [Active (24)] [Inactive (3)] [Pending (2)]                    ║
║  ═══════════════════════════════════════════════════════════════════════════   ║
║                                                                                ║
║  ┌─────────────────────────────────────────────────────────────────────────┐  ║
║  │ [Search by name, email, employee ID...]         Location: [All ▼]       │  ║
║  └─────────────────────────────────────────────────────────────────────────┘  ║
║                                                                                ║
║  ┌─────────────────────────────────────────────────────────────────────────┐  ║
║  │       │ EMPLOYEE         │ ROLE          │ LOCATION │ STATUS  │ ACTIONS│  ║
║  ├───────┼──────────────────┼───────────────┼──────────┼─────────┼────────┤  ║
║  │       │                  │               │          │         │        │  ║
║  │ [img] │ Sarah Miller     │ Store Manager │ GM       │ Active  │ [Ed]   │  ║
║  │       │ sarah.m@nexus    │               │          │ Online  │ [...]  │  ║
║  │───────┼──────────────────┼───────────────┼──────────┼─────────┼────────│  ║
║  │ [img] │ James Wilson     │ Sales Assoc.  │ GM       │ Active  │ [Ed]   │  ║
║  │       │ james.w@nexus    │               │          │ Offline │ [...]  │  ║
║  │───────┼──────────────────┼───────────────┼──────────┼─────────┼────────│  ║
║  │ [img] │ Maria Garcia     │ Asst. Manager │ HM       │ Active  │ [Ed]   │  ║
║  │       │ maria.g@nexus    │               │          │ Online  │ [...]  │  ║
║  │───────┼──────────────────┼───────────────┼──────────┼─────────┼────────│  ║
║  │ [img] │ David Chen       │ Sales Assoc.  │ LM       │ Active  │ [Ed]   │  ║
║  │       │ david.c@nexus    │               │          │ Offline │ [...]  │  ║
║  │───────┼──────────────────┼───────────────┼──────────┼─────────┼────────│  ║
║  │ [img] │ Emma Johnson     │ Sales Assoc.  │ NM       │ Pending │ [Ed]   │  ║
║  │       │ emma.j@nexus     │               │          │ Invite  │ [...]  │  ║
║  └─────────────────────────────────────────────────────────────────────────┘  ║
║                                                                                ║
║  Showing 1-25 of 29 employees                             << < 1 of 2 > >>    ║
║                                                                                ║
╚════════════════════════════════════════════════════════════════════════════════╝

Employee Detail Form:

╔════════════════════════════════════════════════════════════════════════════════╗
║ EDIT EMPLOYEE                                                            [X]   ║
╠════════════════════════════════════════════════════════════════════════════════╣
║                                                                                ║
║  [Profile] [Permissions] [Schedule] [Performance]                              ║
║  ═══════════════════════════════════════════════════════════════════════════   ║
║                                                                                ║
║  ┌────────────────────┐  PERSONAL INFORMATION                                  ║
║  │                    │                                                        ║
║  │   [Photo]          │  First Name *              Last Name *                 ║
║  │                    │  ┌───────────────────────┐ ┌───────────────────────┐  ║
║  │   [Change Photo]   │  │ Sarah                 │ │ Miller                │  ║
║  │                    │  └───────────────────────┘ └───────────────────────┘  ║
║  └────────────────────┘                                                        ║
║                          Email *                   Phone                       ║
║                          ┌───────────────────────┐ ┌───────────────────────┐  ║
║                          │ sarah.m@nexuscloth.com│ │ (555) 123-4567        │  ║
║                          └───────────────────────┘ └───────────────────────┘  ║
║                                                                                ║
║  EMPLOYMENT                                                                    ║
║                                                                                ║
║  Employee ID            Hire Date                 Status                       ║
║  ┌───────────────────┐  ┌───────────────────────┐ ┌───────────────────────┐  ║
║  │ EMP-00042         │  │ 03/15/2022            │ │ Active             ▼ │  ║
║  └───────────────────┘  └───────────────────────┘ └───────────────────────┘  ║
║                                                                                ║
║  Role *                 Primary Location *                                     ║
║  ┌───────────────────┐  ┌───────────────────────────────────────────────────┐ ║
║  │ Store Manager  ▼  │  │ GM - Greenbrier Mall                          ▼ │ ║
║  └───────────────────┘  └───────────────────────────────────────────────────┘ ║
║                                                                                ║
║  Additional Locations (can work at):                                           ║
║  [x] HQ - Headquarters   [x] HM - Peninsula   [ ] LM - Lynnhaven  [ ] NM      ║
║                                                                                ║
║  PIN: [****]  [Reset PIN]                                                      ║
║                                                                                ║
║  ┌────────────────────────────────────────────────────────────────────────────╢
║  │                                                                            ║
║  │                                           [SAVE CHANGES]  [CANCEL]         ║
║  │                                                                            ║
║  └────────────────────────────────────────────────────────────────────────────╢
╚════════════════════════════════════════════════════════════════════════════════╝

Screen 5: Reporting

Purpose: Generate and view sales, inventory, and performance reports.

Route: /reports/sales

╔════════════════════════════════════════════════════════════════════════════════╗
║ REPORTS > SALES                                           [Schedule] [Export]  ║
╠════════════════════════════════════════════════════════════════════════════════╣
║                                                                                ║
║  [Sales Summary] [By Product] [By Location] [By Employee] [By Time]            ║
║  ═══════════════════════════════════════════════════════════════════════════   ║
║                                                                                ║
║  ┌─────────────────────────────────────────────────────────────────────────┐  ║
║  │ Date Range: [12/01/2024] to [12/29/2024]      Location: [All ▼]         │  ║
║  │                                                                         │  ║
║  │ Compare to: [x] Previous Period  [ ] Same Period Last Year              │  ║
║  │                                                      [Generate Report]   │  ║
║  └─────────────────────────────────────────────────────────────────────────┘  ║
║                                                                                ║
║  ┌────────────────────────────────┐  ┌────────────────────────────────────┐   ║
║  │ TOTAL REVENUE                  │  │ TRANSACTIONS                       │   ║
║  │                                │  │                                    │   ║
║  │      $145,678.90               │  │        1,847                       │   ║
║  │      +12.3% vs prev            │  │        +8.2% vs prev               │   ║
║  └────────────────────────────────┘  └────────────────────────────────────┘   ║
║                                                                                ║
║  ┌─────────────────────────────────────────────────────────────────────────┐  ║
║  │ REVENUE TREND                                                           │  ║
║  │                                                                         │  ║
║  │  $8K ┤                                          ╱╲                      │  ║
║  │      │                              ╱╲         ╱  ╲       ╱╲            │  ║
║  │  $6K ┤                   ╱╲        ╱  ╲       ╱    ╲     ╱  ╲           │  ║
║  │      │          ╱╲      ╱  ╲      ╱    ╲     ╱      ╲   ╱    ╲          │  ║
║  │  $4K ┤    ╱╲   ╱  ╲    ╱    ╲    ╱      ╲   ╱        ╲_╱      ╲_        │  ║
║  │      │   ╱  ╲_╱    ╲__╱      ╲__╱        ╲_╱                            │  ║
║  │  $2K ┤                                                                  │  ║
║  │      └──────────────────────────────────────────────────────────────    │  ║
║  │       Dec 1   Dec 5   Dec 10   Dec 15   Dec 20   Dec 25   Dec 29        │  ║
║  │                                                                         │  ║
║  │  ── Current Period     - - Previous Period                              │  ║
║  └─────────────────────────────────────────────────────────────────────────┘  ║
║                                                                                ║
║  ┌─────────────────────────────────────────────────────────────────────────┐  ║
║  │ TOP SELLING PRODUCTS                          │ SALES BY LOCATION       │  ║
║  ├───────────────────────────────────────────────┼─────────────────────────┤  ║
║  │ 1. Galaxy V-Neck Tee        $12,450  (8.5%)   │ GM    ████████████ 35%  │  ║
║  │ 2. Slim Fit Chinos          $10,230  (7.0%)   │ HM    █████████   28%   │  ║
║  │ 3. Classic Jeans            $ 9,875  (6.8%)   │ LM    ███████     22%   │  ║
║  │ 4. Oxford Shirt             $ 8,920  (6.1%)   │ NM    █████       15%   │  ║
║  │ 5. Leather Belt             $ 7,560  (5.2%)   │                         │  ║
║  └───────────────────────────────────────────────┴─────────────────────────┘  ║
║                                                                                ║
╚════════════════════════════════════════════════════════════════════════════════╝

Screen 6: Settings

Purpose: Configure locations, integrations, and system parameters.

Settings Categories: The full settings taxonomy is defined in the BRD Module 5 (Setup & Configuration), Sections 5.2-5.19. The Tenant Admin Portal exposes these settings across 5 tabs: Locations (5.2-5.5), Integrations (5.8-5.12), RFID (5.16), System (5.13-5.15), and Audit Log (5.17-5.19). Platform-level settings (tenant provisioning, billing, feature flags) are managed in the Platform Admin Portal only.

Route: /settings

╔════════════════════════════════════════════════════════════════════════════════╗
║ SETTINGS                                                                       ║
╠════════════════════════════════════════════════════════════════════════════════╣
║                                                                                ║
║  [Locations] [Integrations] [RFID] [System] [Audit Log]                        ║
║  ═══════════════════════════════════════════════════════════════════════════   ║
║                                                                                ║
║  STORE LOCATIONS                                              [+ Add Location] ║
║                                                                                ║
║  ┌─────────────────────────────────────────────────────────────────────────┐  ║
║  │ CODE │ NAME                │ ADDRESS              │ STATUS  │ REGISTERS │  ║
║  ├──────┼─────────────────────┼──────────────────────┼─────────┼───────────┤  ║
║  │      │                     │                      │         │           │  ║
║  │ HQ   │ Headquarters        │ 123 Warehouse Blvd   │ Active  │    0      │  ║
║  │      │                     │ Chesapeake, VA       │         │           │  ║
║  │──────┼─────────────────────┼──────────────────────┼─────────┼───────────│  ║
║  │ GM   │ Greenbrier Mall     │ 1401 Greenbrier Pkwy │ Active  │    3      │  ║
║  │      │                     │ Chesapeake, VA       │ Online  │           │  ║
║  │──────┼─────────────────────┼──────────────────────┼─────────┼───────────│  ║
║  │ HM   │ Peninsula Town Ctr  │ 4410 E Claiborne Sq  │ Active  │    2      │  ║
║  │      │                     │ Hampton, VA          │ Online  │           │  ║
║  │──────┼─────────────────────┼──────────────────────┼─────────┼───────────│  ║
║  │ LM   │ Lynnhaven Mall      │ 701 Lynnhaven Pkwy   │ Active  │    2      │  ║
║  │      │                     │ Virginia Beach, VA   │ Online  │           │  ║
║  │──────┼─────────────────────┼──────────────────────┼─────────┼───────────│  ║
║  │ NM   │ Patrick Henry Mall  │ 12300 Jefferson Ave  │ Active  │    2      │  ║
║  │      │                     │ Newport News, VA     │ Offline │           │  ║
║  └─────────────────────────────────────────────────────────────────────────┘  ║
║                                                                                ║
║  GENERAL SETTINGS                                                              ║
║                                                                                ║
║  ┌─────────────────────────────────────────────────────────────────────────┐  ║
║  │                                                                         │  ║
║  │  Company Name:     [Nexus Clothing                             ]        │  ║
║  │  Tax Rate:         [6.00    ] %                                         │  ║
║  │  Currency:         [USD - US Dollar                         ▼ ]         │  ║
║  │  Timezone:         [America/New_York                        ▼ ]         │  ║
║  │                                                                         │  ║
║  │  Receipt Footer:   [Thank you for shopping at Nexus!           ]        │  ║
║  │                                                                         │  ║
║  └─────────────────────────────────────────────────────────────────────────┘  ║
║                                                                                ║
║  ┌────────────────────────────────────────────────────────────────────────────╢
║  │ [!] You have unsaved changes                                              ║
║  │                                           [RESET]  [SAVE SETTINGS]        ║
║  │                                                                            ║
║  └────────────────────────────────────────────────────────────────────────────╢
╚════════════════════════════════════════════════════════════════════════════════╝

Integrations Tab:

╔════════════════════════════════════════════════════════════════════════════════╗
║ SETTINGS > INTEGRATIONS                                                        ║
╠════════════════════════════════════════════════════════════════════════════════╣
║                                                                                ║
║  SHOPIFY                                                    ● Connected        ║
║  ┌─────────────────────────────────────────────────────────────────────────┐  ║
║  │                                                                         │  ║
║  │  Store Domain:    nexuspremier.myshopify.com                            │  ║
║  │  API Version:     2024-01                                               │  ║
║  │  Last Sync:       12/29/2024 2:45 PM                                    │  ║
║  │  Sync Status:     ✓ Products  ✓ Orders  ✓ Inventory                     │  ║
║  │                                                                         │  ║
║  │                              [Test Connection]  [Sync Now]  [Configure] │  ║
║  └─────────────────────────────────────────────────────────────────────────┘  ║
║                                                                                ║
║  QUICKBOOKS DESKTOP                                         ● Connected        ║
║  ┌─────────────────────────────────────────────────────────────────────────┐  ║
║  │                                                                         │  ║
║  │  Company File:    NexusClothing.qbw                                     │  ║
║  │  QB Version:      QuickBooks POS v19                                    │  ║
║  │  Bridges Online:  4 of 5                                                │  ║
║  │                                                                         │  ║
║  │                              [View Bridge Status]  [Refresh]            │  ║
║  └─────────────────────────────────────────────────────────────────────────┘  ║
║                                                                                ║
║  PAYMENT PROCESSOR                                          ○ Not Connected    ║
║  ┌─────────────────────────────────────────────────────────────────────────┐  ║
║  │                                                                         │  ║
║  │  Provider:        [Select Payment Processor         ▼]                  │  ║
║  │                                                                         │  ║
║  │                              [Configure]                                │  ║
║  └─────────────────────────────────────────────────────────────────────────┘  ║
║                                                                                ║
╚════════════════════════════════════════════════════════════════════════════════╝

RFID Tab (Feature-flagged for RFID subscribers):

╔════════════════════════════════════════════════════════════════════════════════╗
║ SETTINGS > RFID (Raptag)                                                       ║
╠════════════════════════════════════════════════════════════════════════════════╣
║                                                                                ║
║  [Devices] [Printers] [Tag Configuration] [Templates]                          ║
║  ═══════════════════════════════════════════════════════════════════════════   ║
║                                                                                ║
║  RFID SCANNERS                                           [+ Generate Claim Code]║
║                                                                                ║
║  ┌─────────────────────────────────────────────────────────────────────────┐  ║
║  │ DEVICE          │ LOCATION    │ LAST SEEN        │ STATUS  │ ACTIONS    │  ║
║  ├─────────────────┼─────────────┼──────────────────┼─────────┼────────────┤  ║
║  │                 │             │                  │         │            │  ║
║  │ Zebra MC3300    │ HQ          │ 2 min ago        │ ● Online│ [Release]  │  ║
║  │ ID: RFID-001    │             │                  │         │            │  ║
║  │─────────────────┼─────────────┼──────────────────┼─────────┼────────────│  ║
║  │ Zebra MC3300    │ GM          │ 15 min ago       │ ● Online│ [Release]  │  ║
║  │ ID: RFID-002    │             │                  │         │            │  ║
║  │─────────────────┼─────────────┼──────────────────┼─────────┼────────────│  ║
║  │ Zebra MC3300    │ HM          │ 3 hours ago      │ ○ Idle  │ [Release]  │  ║
║  │ ID: RFID-003    │             │                  │         │            │  ║
║  └─────────────────────────────────────────────────────────────────────────┘  ║
║                                                                                ║
║  PENDING CLAIM CODES                                                           ║
║  ┌─────────────────────────────────────────────────────────────────────────┐  ║
║  │ CODE      │ CREATED          │ FOR LOCATION  │ EXPIRES      │ ACTION   │  ║
║  ├───────────┼──────────────────┼───────────────┼──────────────┼──────────┤  ║
║  │ X7K9M2    │ Today 2:30 PM    │ LM            │ in 23 hours  │ [Revoke] │  ║
║  │ P4N8Q1    │ Yesterday        │ NM            │ EXPIRED      │ [Delete] │  ║
║  └─────────────────────────────────────────────────────────────────────────┘  ║
║                                                                                ║
╚════════════════════════════════════════════════════════════════════════════════╝

RFID Printers Tab:

╔════════════════════════════════════════════════════════════════════════════════╗
║ SETTINGS > RFID > PRINTERS                                     [+ Add Printer] ║
╠════════════════════════════════════════════════════════════════════════════════╣
║                                                                                ║
║  RFID TAG PRINTERS                                                             ║
║                                                                                ║
║  ┌─────────────────────────────────────────────────────────────────────────┐  ║
║  │ PRINTER         │ MODEL      │ IP ADDRESS     │ STATUS    │ ACTIONS    │  ║
║  ├─────────────────┼────────────┼────────────────┼───────────┼────────────┤  ║
║  │                 │            │                │           │            │  ║
║  │ HQ Warehouse    │ Zebra ZD500R│192.168.1.100  │ ● Ready   │ [Test]     │  ║
║  │                 │            │                │           │ [Edit]     │  ║
║  │                 │            │                │           │ [Delete]   │  ║
║  │─────────────────┼────────────┼────────────────┼───────────┼────────────│  ║
║  │ GM Stockroom    │ Zebra ZD500R│192.168.2.100  │ ● Ready   │ [Test]     │  ║
║  │                 │            │                │           │ [Edit]     │  ║
║  └─────────────────────────────────────────────────────────────────────────┘  ║
║                                                                                ║
║  ┌─────────────────────────────────────────────────────────────────────────┐  ║
║  │ ADD NEW PRINTER                                                         │  ║
║  ├─────────────────────────────────────────────────────────────────────────┤  ║
║  │                                                                         │  ║
║  │  Printer Name:   [HQ Warehouse Printer              ]                   │  ║
║  │  Model:          [Zebra ZD500R                   ▼ ]                    │  ║
║  │  IP Address:     [192.168.1.100                    ]                    │  ║
║  │  Location:       [HQ - Headquarters              ▼ ]                    │  ║
║  │                                                                         │  ║
║  │                              [Test Connection]  [Save Printer]          │  ║
║  └─────────────────────────────────────────────────────────────────────────┘  ║
║                                                                                ║
╚════════════════════════════════════════════════════════════════════════════════╝

Tag Configuration Tab (Advanced Settings):

╔════════════════════════════════════════════════════════════════════════════════╗
║ SETTINGS > RFID > TAG CONFIGURATION                                            ║
╠════════════════════════════════════════════════════════════════════════════════╣
║                                                                                ║
║  EPC ENCODING CONFIGURATION                                                    ║
║  ┌─────────────────────────────────────────────────────────────────────────┐  ║
║  │                                                                         │  ║
║  │  Company EPC Prefix:     52E98DC418  (read-only)                        │  ║
║  │                          ⓘ Contact support to change                    │  ║
║  │                                                                         │  ║
║  │  Prefix Length:          38 bits                                        │  ║
║  │  Asset ID Bits:          20 bits (allows 1,048,576 unique SKUs)         │  ║
║  │  Serial Bits:            38 bits (allows 274 billion tags per SKU)      │  ║
║  │                                                                         │  ║
║  │  Next Serial Number:     400,001                                        │  ║
║  │                          [Reset Counter] ⚠️ Use with caution            │  ║
║  │                                                                         │  ║
║  └─────────────────────────────────────────────────────────────────────────┘  ║
║                                                                                ║
║  SCAN SETTINGS                                                                 ║
║  ┌─────────────────────────────────────────────────────────────────────────┐  ║
║  │                                                                         │  ║
║  │  Variance Threshold:     [5    ] % (alert if count differs by more)     │  ║
║  │  Session Timeout:        [30   ] minutes (auto-close inactive sessions) │  ║
║  │  Require Section Selection: [x] Yes - operators must select section first│  ║
║  │  Allow Overrides:        [x] Yes - managers can override variances      │  ║
║  │                                                                         │  ║
║  └─────────────────────────────────────────────────────────────────────────┘  ║
║                                                                                ║
║  ┌────────────────────────────────────────────────────────────────────────────╢
║  │                                           [RESET]  [SAVE CONFIGURATION]    ║
║  └────────────────────────────────────────────────────────────────────────────╢
╚════════════════════════════════════════════════════════════════════════════════╝

Implementation Note: The RFID settings section is feature-flagged and only visible to tenants with RFID subscription enabled. See ADR-013 (Chapter 02) for the architectural decision to embed RFID configuration in the Tenant Admin Portal rather than creating a separate RFID portal.

Blazor Feature Flag Pattern (used for all RFID sections in the navigation and content):

@inject ITenantService TenantService

@if (TenantService.CurrentTenant.HasRfidSubscription)
{
    <NavLink href="/settings/rfid" Match="NavLinkMatch.Prefix">
        <span class="nav-icon">📡</span> RFID Configuration
    </NavLink>
}

<!-- Same pattern applies to Reports > RFID Analytics and Devices > RFID Scanners -->

Cross-Reference: For comprehensive Setup & Configuration module specifications (Sections 5.1-5.19), see Chapter 05 Module 5. RFID configuration (see Chapter 05 Section 5.16) is a one-time tenant setup performed during initial Raptag deployment.

RFID Configuration Lifecycle: RFID device management follows a claim-code provisioning flow: Admin generates a 6-digit claim code in Settings > RFID > Devices, operator enters it on the Raptag mobile app (Chapter 16), device appears as “pending” until first successful scan session, then transitions to “active”. Device decommissioning requires OWNER role with type-to-confirm safety. Tag templates and EPC serial sequences are configured in Settings > RFID > Templates before any counting sessions can begin.


15.5 Responsive Design Considerations

Breakpoints

BreakpointWidthLayout Adaptation
Desktop XL1400px+Full 3-column layout
Desktop1024-1399px2-column with collapsible panels
Tablet768-1023pxHamburger menu, stacked cards
Mobile< 768pxSingle column, bottom nav
/* Desktop: Fixed sidebar */
@media (min-width: 1024px) {
    .sidebar {
        width: 240px;
        position: fixed;
        height: calc(100vh - 56px - 40px);
    }
}

/* Tablet: Overlay sidebar */
@media (max-width: 1023px) {
    .sidebar {
        position: fixed;
        z-index: 1000;
        transform: translateX(-100%);
        transition: transform 0.3s ease;
    }
    .sidebar.open {
        transform: translateX(0);
    }
}

/* Mobile: Hide sidebar, use bottom nav */
@media (max-width: 767px) {
    .sidebar { display: none; }
    .bottom-nav { display: flex; }
}

Table Responsiveness

/* Horizontal scroll for data tables on smaller screens */
@media (max-width: 1023px) {
    .data-table-container {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}

/* Card layout for mobile */
@media (max-width: 767px) {
    .data-table tr {
        display: block;
        margin-bottom: 16px;
        border: 1px solid var(--color-border);
        border-radius: 8px;
    }
    .data-table td {
        display: flex;
        justify-content: space-between;
        padding: 8px 12px;
    }
    .data-table td::before {
        content: attr(data-label);
        font-weight: 600;
    }
}

15.6 Role-Based Access

FeatureAdminManagerSupervisorAssociate
DashboardFullFullLimitedView Only
Inventory - ViewYesYesYesYes
Inventory - TransferYesYesYesNo
Inventory - AdjustYesYesRequestNo
Products - ViewYesYesYesYes
Products - EditYesYesNoNo
Products - CreateYesYesNoNo
Employees - ViewYesYesOwn TeamSelf
Employees - EditYesOwn StoreNoNo
Reports - AllYesYesLimitedNo
Settings - ViewYesLimitedNoNo
Settings - EditYesNoNoNo

15.7 Real-Time Updates

The Admin Portal uses SignalR for live updates:

EventHub MethodUI Update
Sale CompletedReceiveSaleDashboard KPIs, Activity Feed
Inventory ChangedReceiveInventoryUpdateInventory grid, alerts
Bridge StatusReceiveBridgeStatusStatus indicators
New AlertReceiveAlertAlert panel, notification bell
Transfer CompleteReceiveTransferInventory grid, activity

15.8 Summary

The Tenant Admin Portal provides:

  1. Dashboard: Real-time KPIs, alerts, and activity monitoring
  2. Inventory: Multi-location stock management with transfers
  3. Products: Full catalog CRUD with variants and pricing
  4. Employees: User management, roles, schedules
  5. Reports: Comprehensive sales and performance analytics
  6. Settings: Location, integration, and system configuration

15.9 Three-Portal Architecture

Overview

Based on industry best practices from leading SaaS POS vendors, RapOS implements a three-portal architecture with clear separation of concerns:

┌─────────────────────────────────────────────────────────────────────────────────┐
│                        RAPOS THREE-PORTAL ARCHITECTURE                           │
├─────────────────────────────────────────────────────────────────────────────────┤
│                                                                                  │
│   ┌─────────────────────┐  ┌─────────────────────┐  ┌─────────────────────┐    │
│   │  PLATFORM ADMIN     │  │  TENANT ADMIN       │  │  POS TERMINAL       │    │
│   │  admin.rapos.com    │  │  app.rapos.com      │  │  pos.rapos.com      │    │
│   ├─────────────────────┤  ├─────────────────────┤  ├─────────────────────┤    │
│   │                     │  │                     │  │                     │    │
│   │  • Tenant CRUD      │  │  • Store Dashboard  │  │  • Sale Screen      │    │
│   │  • System Health    │  │  • Inventory Mgmt   │  │  • Payment Flow     │    │
│   │  • Billing/Usage    │  │  • Product Catalog  │  │  • Receipt Print    │    │
│   │  • Global Settings  │  │  • Employee Mgmt    │  │  • Offline Mode     │    │
│   │  • Support Tickets  │  │  • Reports          │  │  • Hardware IO      │    │
│   │  • Feature Flags    │  │  • Settings         │  │  • Sync Engine      │    │
│   │                     │  │                     │  │                     │    │
│   │  Users: ~5          │  │  Users: Thousands   │  │  Users: Per Store   │    │
│   │  (NexusDenim team)  │  │  (Merchants)        │  │  (Cashiers)         │    │
│   └─────────────────────┘  └─────────────────────┘  └─────────────────────┘    │
│                                                                                  │
│          Blazor Server             Blazor Server       .NET MAUI Blazor Hybrid  │
│          Internal Only             Multi-tenant            Native + Offline     │
│                                                                                  │
└─────────────────────────────────────────────────────────────────────────────────┘
                                        │
                                        ▼
                    ┌───────────────────────────────────────┐
                    │         SHARED BACKEND SERVICES        │
                    ├───────────────────────────────────────┤
                    │  • Auth Service (JWT + PIN)           │
                    │  • API Gateway (tenant routing)       │
                    │  • Database (PostgreSQL RLS)          │
                    │  • Event Bus (LISTEN/NOTIFY)          │
                    │  • File Storage (receipts, images)    │
                    └───────────────────────────────────────┘

Portal Comparison

AspectPlatform AdminTenant Admin (This Chapter)POS Terminal
URLadmin.rapos.comapp.rapos.com or {tenant}.rapos.comNative app or pos.rapos.com
TechnologyBlazor ServerBlazor Server.NET MAUI Blazor Hybrid
Users~5 (NexusDenim staff)Thousands (merchants)Per-store (cashiers)
AccessInternal network / VPNPublic internet (multi-tenant)In-store (offline-capable)
AuthenticationEmail + Password + MFAEmail + PasswordPIN (fast clock-in)
Primary FocusPlatform operationsBusiness managementRevenue transactions
Offline SupportNoNoYes (critical)
Hardware IntegrationNoNoPrinters, scanners, cash drawers

Why Three Portals?

Research findings from Toast, Square, Stripe, Lightspeed, and Clover:

  1. Security Isolation: Platform admin tools should NEVER be accessible from the public tenant portal
  2. UX Optimization: Different user personas have different mental models and workflows
  3. Performance: Tenant portal doesn’t load platform-admin code; POS terminal doesn’t load admin UI
  4. Compliance: PCI DSS requires separation of administrative functions
  5. Scalability: Platform admin remains fast even with thousands of tenants

Subdomain Strategy

PRODUCTION DOMAINS
==================

Platform Admin:    admin.pos.nexusdenim.com  →  admin.rapos.com (future)
Tenant Admin:      app.pos.nexusdenim.com    →  app.rapos.com (future)
                   {tenant}.pos.nexusdenim.com →  {tenant}.rapos.com
POS Terminal:      Download from app portal   →  pos.rapos.com (PWA fallback)
API Gateway:       api.pos.nexusdenim.com    →  api.rapos.com (future)
Update Server:     updates.pos.nexusdenim.com →  updates.rapos.com

DEVELOPMENT DOMAINS
===================

Platform Admin:    admin.pos-dev.nexusdenim.com
Tenant Admin:      app.pos-dev.nexusdenim.com
API Gateway:       api.pos-dev.nexusdenim.com

Implementation Strategy

Phase 1 (MVP): Single codebase with feature flags

RapOS.Web/
├── Areas/
│   ├── Platform/       # Platform Admin pages (feature-flagged)
│   │   ├── Tenants/
│   │   ├── Billing/
│   │   └── System/
│   ├── Merchant/       # Tenant Admin pages (main focus)
│   │   ├── Dashboard/
│   │   ├── Inventory/
│   │   ├── Products/
│   │   └── Settings/
│   └── Shared/         # Shared components

Phase 2 (Post-MVP): Physical separation

apps/
├── platform-admin/     # Deployed to admin.rapos.com
├── merchant-portal/    # Deployed to app.rapos.com
├── pos-terminal/       # .NET MAUI native apps
└── shared/             # Shared component library

Platform Admin Portal (Internal)

Not covered in this chapter - The Platform Admin Portal is documented separately because:

  • It’s internal tooling for ~5 users (NexusDenim team)
  • It has different security requirements (VPN access)
  • It manages cross-tenant concerns

Platform Admin Features:

  • Tenant CRUD (create, suspend, delete tenants)
  • System health monitoring
  • Usage/billing dashboards
  • Global feature flags
  • Support ticket escalation
  • Database maintenance tools

See: Chapter-20A-Platform-Admin.md (to be created)


15.10 Role Hierarchy Clarification

The role system spans all three portals:

ROLE HIERARCHY (Cross-Portal)
==============================

Level 5: SuperAdmin (Platform Admin only)
         ├── Manages ALL tenants
         ├── System configuration
         └── Billing/subscriptions

Level 4: Admin (Tenant Admin)
         ├── Full tenant access
         ├── Manages all locations
         └── Creates managers

Level 3: Manager (Tenant Admin)
         ├── Own store access
         ├── Employee management
         └── Reports

Level 2: Cashier (POS Terminal only)
         ├── Sale transactions
         ├── Returns with approval
         └── End-of-day counts

Level 1: Viewer (Tenant Admin)
         ├── Read-only access
         └── View reports

Document Information

AttributeValue
Version5.0.0
Created2025-12-29
Updated2026-02-25
AuthorClaude Code
StatusActive
PartV - Frontend
Chapter15 of 32

This chapter is part of the POS Blueprint Book. All content is self-contained.