StackTrading Docs

SRS: UC_4.12.4 — Notification Center (LIVE)

FieldValue
BA in ChargeTrang Nguyen
Date Created2026-08-12
Versionv1.1
Document ReferencesRFQ_ Website and Dashboard Implementation V7.pdf L667-671 (Notification Center filtering engine) · Zapier Integration V7.pdf (Flow 4 — Promotion · Flow 4B — Drawdown Defense Activated · Flow 5 — Payouts · Flow 7 — Account Failed/Terminated · Flow 10 — Pod Leader Match · Flow 22 — Monthly Data Fee Billing) ·docs/BA/UC_4.1-4.17/dashboard_live/UC_4.12.4/QnA_init_docs.md (QN-4.12.4-01..05) · UC_4.7.1 / UC_4.7.2 / UC_4.7.3 (SIM siblings — UI/UX pattern reused 100%) · [CHR-54] (new "Billings & Subscriptions" category)

UC_4.12.4 — Notification Center (LIVE)

1. Overview

FieldContent
IDUC_4.12.4
Use CaseNotification Center (LIVE)
DescriptionThe notification bell, unread badge, dropdown panel, filters, and paginated history — same UI/UX component as the SIM siblings (UC_4.7.1 bell/badge/panel-toggle, UC_4.7.2 filters, UC_4.7.3 list/pagination/mark-as-read) — reused 100% unchanged (Ref: QN-4.12.4-02). This UC does not re-describe that UI/UX; it links to the SIM UCs for all display/interaction behavior and documents only what differs on LIVE: the concrete backend event mapping (with per-trigger message pattern) that feeds user_notifications/NOTIFICATION for the 4 categories SIM left unconfirmed/incomplete (Level Events, Payout Events, Mentor/Community Prompts — including the 72h Trading Plan SLA warning/breach, confirmed as part of Mentor/Community Prompts — and Billings & Subscriptions 🆕[CHR-54]) (Ref: BR_4.12.4.1).
Zapier FlowFlow 4 (Promotion) · Flow 4B (Drawdown Defense Activated) · Flow 5 (Payouts) · Flow 7 (Account Failed/Terminated) · Flow 10 (Pod Leader Match) · Flow 22 (Monthly Data Fee Billing 🆕[CHR-54])
Zapier Table
3rd Party

References/Wireframe/Stage 2/Dashboard/ — shared bell/badge/panel wireframe with SIM (Ref: UC_4.7.1 §1); no LIVE-specific wireframe variant identified for the 72h SLA WARN/CRITICAL notification card (filed under Mentor/Community Prompts, Ref: BR_4.12.4.1).

2. Trigger

  • Any of the backend events mapped in BR_4.12.4.1 fires — the Node.js middleware inserts a record into user_notifications and simultaneously pushes the NOTIFICATION WebSocket payload (Source: BA verbatim, QN-4.12.4-01).
  • User opens the notification panel — same trigger mechanism as SIM (Ref: UC_4.7.1 §2).

3. Pre-conditions

  • User is on the Dashboard, account type LIVE, per the persistent header (Ref: UC_4.1.1).

4. Post-conditions

  • The bell badge, dropdown panel, and history list reflect the current set of user_notifications records for the user, including any records inserted by the LIVE-specific event mapping in BR_4.12.4.1. UI/UX behavior (badge count, filters, mark-as-read, pagination, empty state) matches SIM exactly (Ref: BR_4.12.4.2).

5. Basic Flow

  1. On Dashboard load, frontend calls GET /notifications for the initial list — same mechanism as SIM, initial-load-only, real-time updates arrive via WS push (Ref: BR_4.12.4.3).
  2. [When a backend event in BR_4.12.4.1 fires] middleware inserts into user_notifications and pushes the NOTIFICATION WS payload; frontend store updates immediately (Ref: BR_4.12.4.1, BR_4.12.4.3).
  3. User interacts with the bell/badge/panel/filters/list/mark-as-read — identical flow to SIM; not repeated here (Ref: UC_4.7.1 §5, UC_4.7.2 §5, UC_4.7.3 §5).

6. Alternative Flow

  • None beyond the boundary cases already covered by the SIM siblings (UC_4.7.1, UC_4.7.2, UC_4.7.3), which apply unchanged to LIVE.

7. Exceptional Flow

  • WebSocket/API connection drops: the panel retains its last-known notification list (stale data) while the client applies exponential backoff and automatically reconnects, per CR-14 (Ref: BR_4.12.4.3) .
  • All other exceptional flows (empty state, no severity visual treatment, click-row behavior) — same as SIM, Ref: UC_4.7.3 §Exceptional Flow — not repeated here.

8. Business Rules

BR_4.12.4.1: LIVE Event Mapping — Level/Payout/Mentor/Billing Categories

CategoryTrigger conditionMessage Patternseverity
Level EventsFlow 4A:Net_PnL >= Profit_Target (Promotion)"Promotion unlocked. You are now Level[Next_Level]."INFO
Level EventsFlow 4B:Net_PnL <= Market_Stop_Loss, Defense_used = false (Drawdown Defense Activated)"Drawdown Defense activated. Your account is locked for a mandatory 48-hour cooling-off period."CRITICAL
Level EventsFlow 7A: Account Failed/Terminated — max drawdown reached,Defense_Used = True, resignation = true"Account terminated. Trading access has been revoked."CRITICAL
Payout EventsFlow 5 — transaction clears and the Immutable Ledger is updated"Your payout of $[Payout_Amount] has cleared."INFO
Mentor/Community PromptsFlow 10 — user is successfully matched with a Pod Leader"You have been matched with Pod Leader [Leader_Name]. Your 72-hour Trading Plan window has started."INFO
Mentor/Community Prompts72-hour Trading Plan SLA drops to 24 hours remaining"Action Required. Your Trading Plan is due in 24 hours."WARN
Mentor/Community Prompts72-hour Trading Plan SLA is officially missed"Compliance Breach. Your Trading Plan submission deadline has passed."CRITICAL
Billings & Subscriptions 🆕[CHR-54]Flow 22 — the recurring charge fails (Payment Failure Warning)"Market Data payment failed. Please update your billing method to avoid service interruption."WARN
Billings & Subscriptions 🆕[CHR-54]Flow 22 — End of Month Hard Check executes the downgrade"Market Data downgraded due to unpaid balance. Additional exchange feeds have been disabled."CRITICAL

BR_4.12.4.2: UI/UX — 100% Reused from SIM

All display and interaction behavior — badge count (filter-independent), category filter (multi-select, default "All"), status tab (All/Unread), date range filter (AND-combined), page list, mark-as-read (individual hover or bulk "Mark as read"), empty state, no severity visual treatment, click-row = expand/collapse only — is reused unchanged from the SIM siblings and is not repeated here:

  • Bell, badge, panel toggle — Ref: UC_4.7.1.
  • Filters (status/category/date) — Ref: UC_4.7.2.
  • List, pagination, mark-as-read, empty state — Ref: UC_4.7.3.

BR_4.12.4.3: Real-Time Update Mechanism — Same as SIM

WS push (NOTIFICATION event) updates the frontend store immediately; GET /notifications is used only for the initial load at mount time — identical mechanism to SIM. Because this is a WS-fed widget, CR-14 (WS Reconnection Resiliency) applies — resolved via research, no separate BA answer needed (Ref: QN-4.12.4-04).

BR_4.12.4.4: Page Size — 10 Records, Infinite Scroll (Reconciled with SIM's Final Value)

Page size is 10 records per page, with infinite scroll — no visible pagination controls, no page-size selector, no Previous/Next, no "Showing X-Y of Z".

9. Screen Description

No.Field NameField TypeDisplaying rule / Behaviour rule
1Notification bell + badgeIcon + BadgeDisplaying rule:- Same as SIM — Ref: UC_4.7.1 §9 Screen Description. Badge count reflects user_notifications including LIVE event mapping (Ref: BR_4.12.4.1).
2Filter bar (status/category/date)Displaying rule:- Same as SIM — Ref: UC_4.7.2 §9 Screen Description. Category options: 6 (5 per A-13, plus Billings & Subscriptions 🆕[CHR-54]); the 72h SLA warning/breach triggers are filed under Mentor/Community Prompts, not a separate category (Ref: BR_4.12.4.1).
3Notification list + paginationListDisplaying rule:- Same as SIM — Ref: UC_4.7.3 §9 Screen Description. Page size 10, infinite scroll (Ref: BR_4.12.4.4).Behaviour rule:- Mark-as-read (hover individual / bulk "Mark as read") — same as SIM.

Update History

DateVersionUpdated itemBeforeAfterNotes
2026-08-22v1 → v1.1CR_ID citation (L9, 23, 24, 87, 88, 119 — 6 occurrences)CR-20260817-001 (+ dead link to References/CR/2026-08-17_billing-subscriptions-notification-category/CR_summary.md)[CHR-54] (REPLACE hoàn toàn, không giữ mã cũ) + corrected link to References/CR/2026-08-17_CR54_billing-subscriptions-notification-category/CR_summary.mdBA confirmed 2026-08-22: doc cited stale pre-renumbering ID CR-20260817-001 (that ID now belongs to the FAQ CR, unrelated) instead of the corrected CR-20260817-003 (Billings & Subscriptions notification, CHR-54) — per CR_summary.md's own audit note, all citations for this topic should use the renumbered ID. v4 Change Plan row A25 was based on the stale literal string and would have applied [CHR-56] (FAQ) — overridden per BA decision

On this page