MRA-11 — Reseller app — Notification Centre, action buttons, group preferences, promotion tabs & flash-sale countdown
The reseller-app side of document 03: home Notification Centre, grouped inbox with action buttons, Android push action, per-group push switches, Promotions / Ventes flash tabs, FlashSaleCard countdown and flash sales in the home carousel.
| Field | Details |
|---|---|
| Task code | MRA-11 |
| Phase | P1 — V1 build & integration |
| Product scope | V1 |
| Status | Planned |
| Start | Tue 24 Nov 2026 |
| Due | Wed 25 Nov 2026 |
| Responsible | Imad — Mobile developer (Flutter) |
| Co-responsible | — |
| Effort | 1.5 person-day(s) planned · 4 from scratch · size S |
| Area · app | Reseller app · mobile |
| Depends on | MRA-06, MRA-08, MRA-10, DES-23, SRV-39 |
| Unblocks | — |
| Milestones | — |
Summary
The reseller-app side of document 03: home Notification Centre, grouped inbox with action buttons, Android push action, per-group push switches, Promotions / Ventes flash tabs, FlashSaleCard countdown and flash sales in the home carousel.
Description
Builds the V1 app surfaces of /docs/srs/smart-notifications on top of MRA-01 (home), MRA-06 (promotions), MRA-08 (inbox) and MRA-10 (SSE client), with the DES-23 frames and the SRV-39 contract (mock server first, staging when SRV-40 is deployed). The client asked for no pop-ups: smart notifications only update the badge and the home section; only the Urgent group shows the in-app banner in the foreground.
Subtasks
| # | Subtask | Owner |
|---|---|---|
| 1 | NotificationCentreCard on RA-09: group chips with byGroup counts, 3 latest unread with ActionButton, « Vous êtes à jour », live update from notification.created (with group) | Imad |
| 2 | RA-26 group tabs (?group=), hidden empty tabs, action button on rows (mark read + deep link), grouped items | Imad |
| 3 | Android push action button: display data messages through the local notification plugin with one action (data.actionLabel) opening route; body tap opens the same route; fallback to plain notification when unsupported | Imad |
| 4 | Foreground rule: in-app banner only for group URGENT; other groups update badge and home only | Imad |
| 5 | RA-35 per-group push switches (Promotions, Nouveautés, Suggestions), Urgent locked | Imad |
| 6 | RA-24 TabBar Promotions / Ventes flash, FlashSaleCard with Countdown (hh:mm:ss under 24 h, server-time offset, ended state); flash sales in the home carousel after the daily offer | Imad |
| 7 | Deep-link table: /notifications?group=, /promotions?tab=, /catalog?tab=new, /orders/{id}?reorder=1, /products/{id}?variantId=, /messages/{id} (catalogue PDF) | Imad |
Deliverables
- apps/reseller/lib/src/features/notifications/notification_centre/ (card, group tabs, action button)
- packages/hoco_catalog/lib/src/widgets/flash_sale_card.dart and countdown.dart
- Widget tests for the countdown and the group tabs
Acceptance criteria
- The home card shows the unread count of each group and the button of an item opens its target (NOT-09, NOT-10)
- A smart notification received in the foreground shows no banner; an order status change does
- Muting Suggestions on RA-35 stops abandoned-cart pushes, the inbox still receives them (NOT-17)
- A flash-sale countdown matches the server time with a phone clock 10 minutes off and turns « Offre terminée » at zero (PRM-07)
Requirements covered
| Requirement | Title | Release |
|---|---|---|
| NOT-09 | Notification groups and the Notification Centre on the reseller home (Urgent, Promotions, Nouveautés, Points et niveaux, Academy, Suggestions) | V1 |
| NOT-10 | An action button (label and deep link) on every reseller notification | V1 |
| NOT-17 | Anti-fatigue rules: promotional push caps, priority, merge, quiet hours, opt-out per group | V1 |
| PRM-07 | Flash sales (2 h to 48 h) with countdown and the promotion tabs Promotions / Flash Sales | V1 |
Screens
API surface
| Endpoint group | Operations |
|---|---|
| Notifications & announcements | 10 |
| Promotions, banners & packs | 5 |
| Catalog & favorites | 12 |
Test measures
- Widget tests: countdown with fake clock and offset; tabs hide when empty
- Integration test with the mock server: notification with action → tap button → product page, item read
Risks
- Push action buttons on aggressive OEM skins — the body tap always works; the button is a bonus
KPI
- Delivered by Wed 25 Nov 2026 within 1.5 person-day(s).
- Every acceptance criterion above demonstrated before hand-off; linked requirements' acceptance criteria pass.
- Zero open critical defects, permission gaps or data-integrity regressions at sign-off.
Generated from content/plan/tasks.json by scripts/generate-team-tasks.mjs. Dates are computed by the scheduler (Sunday–Thursday weeks, holidays excluded) — change the plan, not this page.
MRA-10 — Reseller app — returns & live order updates
Return request from a delivered order (lines, quantities, reason, photos) and its tracking; the SSE client that keeps order screens live while the app is open.
MDA-01 — Delegate app — home, profile, zone, objectives
Home with today's tour and counters, objectives and conversion widgets, profile hub, my zone, objectives page.