Screen inventory
Every screen of the four interfaces with its release, design day and build task — the list Akram, Imad and Anis validate on Day 5, the back-office template strategy, the navigation map of each app and the coverage check.
This page is the list of everything Akram designs. It is generated from content/spec/screens.json, the canonical inventory. Each screen has a stable id (RA-xx reseller app, DA-xx delegate app, BO-xx back-office, RW-xx reseller web), a section, a release (V1 or V2), the design task that produces it (DES-xx = design day) and the build task that consumes it. The detailed specification of each screen (purpose, data, states, rules) is on the screen pages.
On Day 5 (DES-05), Akram, Imad and Anis walk this page and the checklist at the bottom. Agreed changes are applied to screens.json by Anis, and the inventory is then frozen (milestone Screen inventory frozen). Later changes are change requests.
Totals
| App | Screens | V1 | V2 | Designed on | Built by |
|---|---|---|---|---|---|
| RA Reseller app (Flutter) | 41 | 38 | 3 | Days 6–10 (DES-06…DES-10); V2 in DES-30 | Imad: MOB-05, MOB-06, MRA-01…MRA-10; V2 MRA-20 |
| DA Delegate app (Flutter) | 28 | 28 | 0 | Days 11–14 (DES-11…DES-14) | Imad: MOB-05, MOB-06, MOB-10, MDA-01…MDA-11 |
| BO Back-office (Next.js) | 71 | 66 | 5 | Days 15–19 (DES-15…DES-19); V2 in DES-30 | Anis: DSH-01…DSH-13; V2 DSH-20, DSH-21 |
| RW Reseller web (Next.js) | 15 | 14 | 1 | Day 20 (DES-20); V2 in DES-30 | Anis: WEB-01…WEB-05; V2 WEB-20 |
| Total | 155 | 146 | 9 | 15 screen days | — |
The nine V2 screens are RA-37 (packs), RA-38 (loyalty), RA-39 (rewards), BO-47 (overdue and reminders), BO-48 (accounting exports), BO-52 (packs), BO-53 (loyalty settings), BO-54 (rewards) and RW-15 (loyalty, rewards and packs on the web). They are designed in DES-30. Returns and after-sales (RA-40, BO-69) are V1 since the decisions of 17 October.
By section
| App | Section | Screens (V1 / V2) | Ids |
|---|---|---|---|
| RA | Onboarding & account | 8 / 0 | RA-01…RA-08 |
| RA | Shopping | 8 / 0 | RA-09…RA-16 |
| RA | Ordering | 4 / 0 | RA-17…RA-20 |
| RA | Orders | 4 / 0 | RA-21, RA-22, RA-23, RA-40 |
| RA | Promotions | 2 / 0 | RA-24, RA-25 |
| RA | Account | 4 / 0 | RA-26, RA-27, RA-28, RA-35 |
| RA | Finance | 3 / 0 | RA-29, RA-30, RA-31 |
| RA | Support | 3 / 0 | RA-32, RA-33, RA-34 |
| RA | System | 2 / 0 | RA-36, RA-41 |
| RA | V2 | 0 / 3 | RA-37, RA-38, RA-39 |
| DA | Access | 4 / 0 | DA-01…DA-04 |
| DA | Day | 3 / 0 | DA-05, DA-20, DA-21 |
| DA | Tour | 4 / 0 | DA-06…DA-09 |
| DA | Visit | 3 / 0 | DA-10, DA-11, DA-12 |
| DA | Prospects | 4 / 0 | DA-13, DA-14, DA-15, DA-19 |
| DA | Conversion | 3 / 0 | DA-16, DA-17, DA-18 |
| DA | Profile | 5 / 0 | DA-22…DA-26 |
| DA | System | 2 / 0 | DA-27, DA-28 |
| BO | Access | 3 / 0 | BO-01…BO-03 |
| BO | Dashboards | 5 / 0 | BO-04…BO-08 |
| BO | CRM | 7 / 0 | BO-09…BO-15 |
| BO | Field | 11 / 0 | BO-16…BO-26 |
| BO | Catalog | 7 / 0 | BO-27…BO-32, BO-71 |
| BO | Stock | 5 / 0 | BO-33…BO-37 |
| BO | Orders | 7 / 0 | BO-38…BO-43, BO-69 |
| BO | Finance | 3 / 2 | BO-44…BO-48 |
| BO | Promotions | 3 / 3 | BO-49…BO-54 |
| BO | Support | 2 / 0 | BO-55, BO-56 |
| BO | Communication | 2 / 0 | BO-57, BO-58 |
| BO | Reports | 2 / 0 | BO-59, BO-60 |
| BO | Administration | 9 / 0 | BO-61…BO-68, BO-70 |
| RW | Account | 3 / 0 | RW-01, RW-11, RW-12 |
| RW | Shopping | 4 / 0 | RW-02…RW-05 |
| RW | Ordering | 2 / 0 | RW-06, RW-07 |
| RW | Orders | 2 / 0 | RW-08, RW-09 |
| RW | Promotions · Finance · Support | 3 / 0 | RW-10, RW-13, RW-14 |
| RW | V2 | 0 / 1 | RW-15 |
By design day (the design plan has the detail of each day)
| Day | Task | Screens | Back-office bespoke / template |
|---|---|---|---|
| 6 | DES-06 | RA-01…RA-08, RA-41 (9) | — |
| 7 | DES-07 | RA-09…RA-13 (5) | — |
| 8 | DES-08 | RA-14…RA-20 (7) | — |
| 9 | DES-09 | RA-21, RA-22, RA-23, RA-29, RA-30, RA-31, RA-40 (7) | — |
| 10 | DES-10 | RA-24…RA-28, RA-32…RA-36 (10) | — |
| 11 | DES-11 | DA-01…DA-05, DA-22, DA-24, DA-25, DA-26 (9) | — |
| 12 | DES-12 | DA-06…DA-09 (4) | — |
| 13 | DES-13 | DA-10…DA-13, DA-19 (5) | — |
| 14 | DES-14 | DA-14…DA-18, DA-20, DA-21, DA-23, DA-27, DA-28 (10) | — |
| 15 | DES-15 | BO-01…BO-08 (8) | 4 / 4 |
| 16 | DES-16 | BO-09…BO-15 (7) | 4 / 3 |
| 17 | DES-17 | BO-27…BO-37, BO-71 (12) | 2 / 10 |
| 18 | DES-18 | BO-38…BO-46, BO-69 (10) | 3 / 7 |
| 19 | DES-19 | BO-16…BO-26, BO-49…BO-51, BO-55…BO-68, BO-70 (29) | 8 / 21 |
| 20 | DES-20 | RW-01…RW-14 (14) | — |
Back-office: bespoke vs template pages
Of the 66 V1 back-office pages, 21 are bespoke and 45 are template pages (kind in screens.json). A bespoke page has a layout of its own: a map, a calendar, a kanban board, a matrix, a multi-tab editor, a 360° view, a live view. Akram designs it fully.
A template page is one of five page templates, defined once on Day 4 (DES-04), plus a filled page spec. The spec is a structured table of what is specific to the page: columns, filters, actions, fields, permissions and copy. Akram fills the spec on the template frame; Anis builds the page from the template code and the spec. No pixel mock is drawn unless the page breaks the template.
This is what makes Day 19 (29 pages) and the three-month frame workable. Template code is written once in DSH-01, so 45 pages reuse one table, one form, one settings layout and one detail layout. Consistency comes for free, and design time goes to the 21 pages that need it.
The five page templates
| Template | Anatomy | The page spec must give |
|---|---|---|
| List | Page header (title, total count, primary action, export) · filter bar (search, up to 4 inline filters, « Plus de filtres » drawer, saved views) · data table · bulk action bar · row actions menu · pagination · optional drawer for create, edit or quick view | Permission keys (view, create, export) · columns (label, field, format, alignment, sortable, default width) · default sort · filters (field, control, options source) · bulk actions · row actions with the status where each one is allowed · row-click target · empty and filtered-empty copy · live updates (yes / no) |
| Detail with tabs | Entity header (name, business number, status pills, key facts, actions) · tabs · side panel (summary, timeline) | Header fields · actions per status, with their permission and confirmation · tabs and the content of each (description list, sub-table, timeline) · events shown in the timeline |
| Form | Sections (title and description) · 1 or 2 columns (2 at 1280 px and up) · sticky action bar · unsaved-changes guard | Each field: label, type, required, validation, help text, default, read-only on edit · the server error codes and the field they map to · what happens after saving |
| Settings | Grouped sections · one row per setting (label, description, control, unit, default) · save per section · « Modifié par … le … » | Each setting: key, control, unit, allowed range, default, who can change it (settings.administer by default), audit (always) |
| Dashboard | Filter row (period plus dimensions) · KPI row (4–6 cards) · chart grid (2 columns) · ranked lists · « Mis à jour à … » | Each KPI: definition, formula, source operation, permission · each chart: type, measure, dimension, period · role visibility |
Proposed assignment of the 50 template pages. This assignment is not stored in screens.json; Akram and Anis confirm it on Day 5.
| Template | V1 pages | V2 pages |
|---|---|---|
| List (31 + 4) | BO-14 follow-ups, BO-15 segments, BO-16 delegates, BO-20 objectives, BO-24 visits, BO-27 products, BO-29 brands, BO-30 categories (tree variant), BO-31 prices, BO-33 stock overview, BO-34 movements, BO-36 inventory sessions, BO-37 warehouses, BO-41 orders to confirm (queue variant), BO-43 carriers, BO-44 invoices and credit notes, BO-45 payments and declarations, BO-46 credit accounts, BO-49 promotions, BO-51 banners, BO-55 tickets, BO-57 announcements, BO-60 export centre, BO-61 users, BO-63 activity log, BO-65 reference lists, BO-66 app versions, BO-67 imports, BO-69 returns and after-sales (queue plus detail drawer), BO-70 support regions (list plus drawer), BO-71 attributes (grouped by category, plus drawer) | BO-47, BO-48, BO-52, BO-54 |
| Detail with tabs (2) | BO-25 visit detail, BO-56 ticket detail (with the after-sales diagnosis and resolution panel) | — |
| Form (5) | BO-02 password reset, BO-12 reseller create/edit, BO-18 delegate create/edit, BO-35 stock receipt and adjustment, BO-40 order on behalf of a reseller | — |
| Settings (4 + 1) | BO-26 visit types and checklists, BO-58 notification templates and rules, BO-64 business settings, BO-68 my profile and sessions | BO-53 |
| Dashboard (3) | BO-05 sales, BO-07 stock, BO-08 finance | — |
The 21 bespoke pages: BO-01 sign-in · BO-03 app shell · BO-04 general dashboard (role-configurable cards) · BO-06 field dashboard and live map · BO-09 resellers list (list/map toggle, saved views, bulk assign) · BO-10 resellers map · BO-11 reseller 360° · BO-13 account validation queue (side-by-side review, customer type) · BO-17 delegate detail and performance · BO-19 zones map editor · BO-21 tour planner (calendar) · BO-22 tour editor (stops, map, recommended order) · BO-23 tour live detail · BO-28 product editor (three prices, attributes) · BO-32 import wizard · BO-38 orders list · BO-39 order detail (controls, actions, history) · BO-42 delivery board (kanban) · BO-50 promotion editor (targeting, preview) · BO-59 reports library · BO-62 permissions matrix.
Example page spec: BO-41, orders to confirm (template List, queue variant).
page: BO-41 · Orders to confirm
permission: orders.validate # hidden from roles without it
source: admin.orders.toConfirm # SUBMITTED and PENDING orders, oldest first
live: admin.events.stream → order.created, order.status_changed (row highlight)
columns:
- Commande (CMD-2026-000158, link to BO-39)
- Revendeur (name, REV number, wilaya) · first-order badge
- Canal (Application, Web, Assistée, Back-office)
- Contrôles (stock, crédit, prix, minimum, adresse: icon + text, failed first)
- Montant TTC (right-aligned, 1 250,00 DA)
- Âge ("depuis 3 h"; warning tone after 4 h)
- Statut (Envoyée / En attente pill)
filters: canal, wilaya, délégué, contrôles en échec, première commande
row actions: Confirmer · Mettre en attente (reason) · Refuser (reason, ORDER_REFUSAL_REASON)
bulk actions: Confirmer (only rows whose controls all pass)
empty: "Aucune commande à confirmer."
sidebar counter: yes (number of rows)Reseller app (RA)
| ID | Screen | UI title | Section | Release | Design | Build |
|---|---|---|---|---|---|---|
RA-01 | Splash & version check | Démarrage | Onboarding & account | V1 | Day 6 | MOB-05 |
RA-02 | Welcome (sign in, sign up, browse as guest) | Bienvenue | Onboarding & account | V1 | Day 6 | MOB-06 |
RA-03 | Sign-up — phone & invitation code | Inscription — téléphone | Onboarding & account | V1 | Day 6 | MOB-06 |
RA-04 | OTP verification | Vérification du code | Onboarding & account | V1 | Day 6 | MOB-06 |
RA-05 | Sign-up — store details, customer type & password | Inscription — magasin | Onboarding & account | V1 | Day 6 | MOB-06 |
RA-06 | Account pending validation / rejected | Compte en attente | Onboarding & account | V1 | Day 6 | MOB-06 |
RA-07 | Sign in | Connexion | Onboarding & account | V1 | Day 6 | MOB-06 |
RA-08 | Forgot password | Mot de passe oublié | Onboarding & account | V1 | Day 6 | MOB-06 |
RA-09 | Home | Accueil | Shopping | V1 | Day 7 | MRA-01 |
RA-10 | Search | Recherche | Shopping | V1 | Day 7 | MRA-02 |
RA-11 | Barcode scanner | Scanner | Shopping | V1 | Day 7 | MRA-02 |
RA-12 | Catalog | Catalogue | Shopping | V1 | Day 7 | MRA-02 |
RA-13 | Advanced filters & sort (price range, category/sub-category, brand, attributes…) | Filtres avancés et tri | Shopping | V1 | Day 7 | MRA-02 |
RA-14 | Product detail | Détail produit | Shopping | V1 | Day 8 | MRA-03 |
RA-15 | Full specifications | Caractéristiques | Shopping | V1 | Day 8 | MRA-03 |
RA-16 | Favorites | Favoris | Shopping | V1 | Day 8 | MRA-03 |
RA-17 | Cart | Panier | Ordering | V1 | Day 8 | MRA-04 |
RA-18 | Checkout | Validation de commande | Ordering | V1 | Day 8 | MRA-04 |
RA-19 | Address book & address form | Adresses de livraison | Ordering | V1 | Day 8 | MRA-04 |
RA-20 | Order confirmation | Commande envoyée | Ordering | V1 | Day 8 | MRA-04 |
RA-21 | Orders | Commandes | Orders | V1 | Day 9 | MRA-05 |
RA-22 | Order detail & tracking | Suivi de commande | Orders | V1 | Day 9 | MRA-05 |
RA-23 | Assisted order confirmation | Commande assistée à confirmer | Orders | V1 | Day 9 | MRA-05 |
RA-24 | Promotions & daily offers | Promotions | Promotions | V1 | Day 10 | MRA-06 |
RA-25 | Promotion detail | Détail de l'offre | Promotions | V1 | Day 10 | MRA-06 |
RA-26 | Notifications | Notifications | Account | V1 | Day 10 | MRA-08 |
RA-27 | Account hub | Compte | Account | V1 | Day 10 | MRA-07 |
RA-28 | Store profile & documents | Mon magasin | Account | V1 | Day 10 | MRA-07 |
RA-29 | Balance & credit | Solde et crédit | Finance | V1 | Day 9 | MRA-07 |
RA-30 | Invoices | Factures | Finance | V1 | Day 9 | MRA-07 |
RA-31 | Payments & payment declaration | Paiements | Finance | V1 | Day 9 | MRA-07 |
RA-32 | Support: tickets, after-sales claims & WhatsApp | Assistance | Support | V1 | Day 10 | MRA-08 |
RA-33 | New ticket / after-sales claim | Nouvelle demande | Support | V1 | Day 10 | MRA-08 |
RA-34 | Ticket conversation | Conversation | Support | V1 | Day 10 | MRA-08 |
RA-35 | Settings | Paramètres | Account | V1 | Day 10 | MRA-07 |
RA-36 | System states (offline, maintenance, forced update, errors, empty) | États système | System | V1 | Day 10 | MOB-05 |
RA-37 | Packs list & detail | Packs rentables | V2 | V2 | DES-30 | MRA-20 |
RA-38 | Loyalty: points, level, history | Fidélité | V2 | V2 | DES-30 | MRA-20 |
RA-39 | Rewards & redemption | Récompenses | V2 | V2 | DES-30 | MRA-20 |
RA-40 | Return request | Demande de retour | Orders | V1 | Day 9 | MRA-10 |
RA-41 | Guest mode — price lock and sign-up prompts | Mode invité | System | V1 | Day 6 | MOB-06 |
Navigation. Five bottom tabs: Accueil · Catalogue · Panier · Commandes · Compte. The WhatsApp support button is fixed on the tab roots. Guests can use Accueil and Catalogue; the other tabs open the sign-up prompt (RA-41).
RA-36 (system states) can appear over any screen: offline banner, maintenance, forced update, errors, session expired.
Delegate app (DA)
| ID | Screen | UI title | Section | Release | Design | Build |
|---|---|---|---|---|---|---|
DA-01 | Splash & version check | Démarrage | Access | V1 | Day 11 | MOB-05 |
DA-02 | Sign in | Connexion | Access | V1 | Day 11 | MOB-06 |
DA-03 | Forgot password | Mot de passe oublié | Access | V1 | Day 11 | MOB-06 |
DA-04 | Permissions & location consent | Autorisations et consentement | Access | V1 | Day 11 | MOB-10 |
DA-05 | Home | Accueil délégué | Day | V1 | Day 11 | MDA-01 |
DA-06 | Tour programme | Programme de tournée | Tour | V1 | Day 12 | MDA-02 |
DA-07 | Tours calendar & history | Mes tournées | Tour | V1 | Day 12 | MDA-02 |
DA-08 | Map & navigation | Carte et navigation | Tour | V1 | Day 12 | MDA-03 |
DA-09 | Point-of-sale sheet | Fiche point de vente | Tour | V1 | Day 12 | MDA-04 |
DA-10 | Visit & check-in | Détail de la visite | Visit | V1 | Day 13 | MDA-05 |
DA-11 | Visit not done — reason | Visite non réalisée | Visit | V1 | Day 13 | MDA-05 |
DA-12 | Visit report | Rapport de visite | Visit | V1 | Day 13 | MDA-06 |
DA-13 | Prospects & resellers (list / map) | Prospects | Prospects | V1 | Day 13 | MDA-04 |
DA-14 | New reseller | Nouveau revendeur | Prospects | V1 | Day 14 | MDA-07 |
DA-15 | Edit reseller / prospect | Modifier la fiche | Prospects | V1 | Day 14 | MDA-07 |
DA-16 | Invite a reseller | Inviter un revendeur | Conversion | V1 | Day 14 | MDA-08 |
DA-17 | First-order assistance | Aide à la 1ère commande | Conversion | V1 | Day 14 | MDA-09 |
DA-18 | Assisted orders & orders of my resellers | Commandes | Conversion | V1 | Day 14 | MDA-09 |
DA-19 | Follow-ups & tasks | Relances | Prospects | V1 | Day 13 | MDA-06 |
DA-20 | Tour closing & results | Clôture de tournée | Day | V1 | Day 14 | MDA-10 |
DA-21 | Reports & performance | Rapports | Day | V1 | Day 14 | MDA-10 |
DA-22 | Objectives | Mes objectifs | Profile | V1 | Day 11 | MDA-01 |
DA-23 | Messages & notifications | Messages | Profile | V1 | Day 14 | MDA-11 |
DA-24 | Profile hub | Compte | Profile | V1 | Day 11 | MDA-01 |
DA-25 | My zone | Ma zone | Profile | V1 | Day 11 | MDA-01 |
DA-26 | Settings | Paramètres | Profile | V1 | Day 11 | MDA-11 |
DA-27 | Sync centre | Synchronisation | System | V1 | Day 14 | MDA-11 |
DA-28 | System states (offline, GPS off, out of tolerance, permission denied, forced update) | États système | System | V1 | Day 14 | MOB-10 |
Navigation. Five bottom tabs: Accueil · Tournée · Prospects · Rapports · Compte. The map is a view of the tour, and visits open from a stop. The sync badge sits in the app bar of every tab.
DA-28 (system states: offline, GPS off, out of tolerance, permission denied, forced update) appears over any screen, with the GPS states also inline in DA-08 and DA-10.
Back-office (BO)
| ID | Screen | Section | Template | Release | Design | Build |
|---|---|---|---|---|---|---|
BO-01 | Sign in | Access | bespoke | V1 | Day 15 | DSH-01 |
BO-02 | Forgot / reset password | Access | template | V1 | Day 15 | DSH-01 |
BO-03 | App shell: navigation by role, global search, notifications | Access | bespoke | V1 | Day 15 | DSH-01 |
BO-04 | General dashboard | Dashboards | bespoke | V1 | Day 15 | DSH-02 |
BO-05 | Sales dashboard | Dashboards | template | V1 | Day 15 | DSH-02 |
BO-06 | Field dashboard & live map | Dashboards | bespoke | V1 | Day 15 | DSH-08 |
BO-07 | Stock dashboard | Dashboards | template | V1 | Day 15 | DSH-05 |
BO-08 | Finance dashboard | Dashboards | template | V1 | Day 15 | DSH-07 |
BO-09 | Resellers & prospects list | CRM | bespoke | V1 | Day 16 | DSH-03 |
BO-10 | Resellers map | CRM | bespoke | V1 | Day 16 | DSH-03 |
BO-11 | Reseller 360° | CRM | bespoke | V1 | Day 16 | DSH-03 |
BO-12 | Reseller create / edit | CRM | template | V1 | Day 16 | DSH-03 |
BO-13 | Account validation queue | CRM | bespoke | V1 | Day 16 | DSH-03 |
BO-14 | Follow-ups & tasks | CRM | template | V1 | Day 16 | DSH-03 |
BO-15 | Segments | CRM | template | V1 | Day 16 | DSH-03 |
BO-16 | Delegates list | Field | template | V1 | Day 19 | DSH-08 |
BO-17 | Delegate detail & performance | Field | bespoke | V1 | Day 19 | DSH-08 |
BO-18 | Delegate create / edit | Field | template | V1 | Day 19 | DSH-08 |
BO-19 | Zones (list + map editor) | Field | bespoke | V1 | Day 19 | DSH-08 |
BO-20 | Objectives | Field | template | V1 | Day 19 | DSH-08 |
BO-21 | Tour planner (calendar) | Field | bespoke | V1 | Day 19 | DSH-08 |
BO-22 | Tour editor (stops, order, recommendation) | Field | bespoke | V1 | Day 19 | DSH-08 |
BO-23 | Tour live detail | Field | bespoke | V1 | Day 19 | DSH-08 |
BO-24 | Visits list | Field | template | V1 | Day 19 | DSH-08 |
BO-25 | Visit detail | Field | template | V1 | Day 19 | DSH-08 |
BO-26 | Visit types & checklist templates | Field | template | V1 | Day 19 | DSH-08 |
BO-27 | Products list | Catalog | template | V1 | Day 17 | DSH-04 |
BO-28 | Product editor | Catalog | bespoke | V1 | Day 17 | DSH-04 |
BO-29 | Brands | Catalog | template | V1 | Day 17 | DSH-04 |
BO-30 | Categories | Catalog | template | V1 | Day 17 | DSH-04 |
BO-31 | Price grid — three customer-type prices (bulk edit) | Catalog | template | V1 | Day 17 | DSH-04 |
BO-32 | Product import wizard | Catalog | bespoke | V1 | Day 17 | DSH-04 |
BO-33 | Stock overview | Stock | template | V1 | Day 17 | DSH-05 |
BO-34 | Stock movements journal | Stock | template | V1 | Day 17 | DSH-05 |
BO-35 | Stock receipt / adjustment | Stock | template | V1 | Day 17 | DSH-05 |
BO-36 | Inventory sessions | Stock | template | V1 | Day 17 | DSH-05 |
BO-37 | Warehouses | Stock | template | V1 | Day 17 | DSH-05 |
BO-38 | Orders list | Orders | bespoke | V1 | Day 18 | DSH-06 |
BO-39 | Order detail (controls, actions, history) | Orders | bespoke | V1 | Day 18 | DSH-06 |
BO-40 | New order on behalf of a reseller | Orders | template | V1 | Day 18 | DSH-06 |
BO-41 | Orders to confirm (new, on hold, assisted) | Orders | template | V1 | Day 18 | DSH-06 |
BO-42 | Delivery board | Orders | bespoke | V1 | Day 18 | DSH-06 |
BO-43 | Carriers | Orders | template | V1 | Day 18 | DSH-06 |
BO-44 | Invoices | Finance | template | V1 | Day 18 | DSH-07 |
BO-45 | Payments & declarations | Finance | template | V1 | Day 18 | DSH-07 |
BO-46 | Credit accounts | Finance | template | V1 | Day 18 | DSH-07 |
BO-47 | Overdue & reminders | Finance | template | V2 | DES-30 | DSH-20 |
BO-48 | Accounting exports | Finance | template | V2 | DES-30 | DSH-20 |
BO-49 | Promotions list | Promotions | template | V1 | Day 19 | DSH-09 |
BO-50 | Promotion editor | Promotions | bespoke | V1 | Day 19 | DSH-09 |
BO-51 | Banners & daily offers | Promotions | template | V1 | Day 19 | DSH-09 |
BO-52 | Packs | Promotions | template | V2 | DES-30 | DSH-21 |
BO-53 | Loyalty settings & levels | Promotions | template | V2 | DES-30 | DSH-21 |
BO-54 | Rewards & redemptions | Promotions | template | V2 | DES-30 | DSH-21 |
BO-55 | Tickets list | Support | template | V1 | Day 19 | DSH-10 |
BO-56 | Ticket detail | Support | template | V1 | Day 19 | DSH-10 |
BO-57 | Announcements | Communication | template | V1 | Day 19 | DSH-10 |
BO-58 | Notification templates & rules | Communication | template | V1 | Day 19 | DSH-10 |
BO-59 | Reports library | Reports | bespoke | V1 | Day 19 | DSH-11 |
BO-60 | Export centre | Reports | template | V1 | Day 19 | DSH-11 |
BO-61 | Users | Administration | template | V1 | Day 19 | DSH-12 |
BO-62 | Roles & permissions matrix | Administration | bespoke | V1 | Day 19 | DSH-12 |
BO-63 | Activity log | Administration | template | V1 | Day 19 | DSH-12 |
BO-64 | Business settings | Administration | template | V1 | Day 19 | DSH-12 |
BO-65 | Reference lists | Administration | template | V1 | Day 19 | DSH-12 |
BO-66 | Mobile app versions | Administration | template | V1 | Day 19 | DSH-12 |
BO-67 | Data imports | Administration | template | V1 | Day 19 | DSH-12 |
BO-68 | My profile & sessions | Administration | template | V1 | Day 19 | DSH-12 |
BO-69 | Returns & after-sales claims | Orders | template | V1 | Day 18 | DSH-13 |
BO-70 | Support regions & WhatsApp numbers | Administration | template | V1 | Day 19 | DSH-12 |
BO-71 | Product attributes (filters) per category | Catalog | template | V1 | Day 17 | DSH-04 |
Navigation. A light 208 px sidebar on the app ground, grouped by activity (HOCO PRO). Every group and item is shown only when the user's role has the permission (<module>.view). Counters show work waiting in the queues. The proposed groups are below; Akram finalises them on Day 15.
| Sidebar group | Items (page) | Permission module |
|---|---|---|
| Pilotage | Tableau de bord (BO-04), Ventes (BO-05), Terrain en direct (BO-06), Stock (BO-07), Finance (BO-08), Rapports (BO-59), Exports (BO-60) | dashboard, reports |
| Commandes | À confirmer (BO-41, counter), Toutes les commandes (BO-38), Nouvelle commande (BO-40), Livraisons (BO-42), Retours et SAV (BO-69, counter), Transporteurs (BO-43) | orders, delivery |
| Revendeurs | Revendeurs et prospects (BO-09, BO-10), Validation des comptes (BO-13, counter), Relances (BO-14), Segments (BO-15) | crm |
| Terrain | Délégués (BO-16), Zones (BO-19), Objectifs (BO-20), Tournées (BO-21), Visites (BO-24), Types de visite (BO-26) | field |
| Catalogue | Produits (BO-27), Marques (BO-29), Catégories (BO-30), Attributs (BO-71), Prix (BO-31), Import (BO-32) | catalog, pricing |
| Stock | Vue d'ensemble (BO-33), Mouvements (BO-34), Réception et ajustement (BO-35), Inventaires (BO-36), Entrepôts (BO-37) | stock |
| Finance | Factures et avoirs (BO-44), Paiements (BO-45), Crédit (BO-46) | finance |
| Promotions | Promotions (BO-49), Bannières et offres du jour (BO-51) | promotions |
| Support | Tickets (BO-55), Annonces (BO-57) | support, communication |
| Administration | Utilisateurs (BO-61), Rôles et droits (BO-62), Journal d'activité (BO-63), Paramètres (BO-64), Listes de référence (BO-65), Régions support (BO-70), Modèles de notification (BO-58), Versions mobiles (BO-66), Imports (BO-67) | users, roles, audit, settings, communication |
| User menu | Mon profil et sessions (BO-68) | — |
Pages reached from a list rather than the sidebar: BO-11, BO-12, BO-17, BO-18, BO-22, BO-23, BO-25, BO-28, BO-39, BO-50, BO-56. Sign-in (BO-01) and reset (BO-02) are outside the shell.
Reseller web (RW)
| ID | Screen | Section | Release | Design | Build |
|---|---|---|---|---|---|
RW-01 | Sign in, sign-up (with customer type), OTP, password reset — and guest browsing | Account | V1 | Day 20 | WEB-01 |
RW-02 | Home | Shopping | V1 | Day 20 | WEB-02 |
RW-03 | Catalog with advanced sidebar filters & search | Shopping | V1 | Day 20 | WEB-02 |
RW-04 | Product detail | Shopping | V1 | Day 20 | WEB-02 |
RW-05 | Favorites | Shopping | V1 | Day 20 | WEB-02 |
RW-06 | Cart | Ordering | V1 | Day 20 | WEB-03 |
RW-07 | Checkout & confirmation | Ordering | V1 | Day 20 | WEB-03 |
RW-08 | Orders list | Orders | V1 | Day 20 | WEB-04 |
RW-09 | Order detail, tracking & assisted-order confirmation | Orders | V1 | Day 20 | WEB-04 |
RW-10 | Promotions & daily offers | Promotions | V1 | Day 20 | WEB-05 |
RW-11 | Notifications | Account | V1 | Day 20 | WEB-05 |
RW-12 | Profile, store, addresses & settings | Account | V1 | Day 20 | WEB-05 |
RW-13 | Invoices, payments & credit | Finance | V1 | Day 20 | WEB-04 |
RW-14 | Support: tickets, after-sales claims, returns & WhatsApp | Support | V1 | Day 20 | WEB-05 |
RW-15 | Loyalty, rewards & packs | V2 | V2 | DES-30 | WEB-20 |
Navigation. A top header (logo, search, categories menu, favourites, cart, account) instead of bottom tabs, plus a fixed WhatsApp button at the bottom right. At phone widths the web reuses the mobile designs, including their bottom navigation. Guests browse RW-02, RW-03, RW-04 and RW-10 without prices.
Coverage check
Method. Each requirement in requirements.json lists the apps it applies to. For every app among RA, DA, BO and RW, at least one screen of that app should list the requirement in its reqs. Separately, each screen should reach at least one API operation of endpoints.json: same app, sharing a requirement.
Result on the current screens.json.
- Every screen reaches at least one endpoint.
- Every functional V1 requirement has a screen somewhere.
- Some requirements are missing from one of their apps. Most of these are cross-cutting (performance, accessibility, RTL, maintainability) and are covered by the design system, not by a screen. The gaps that need a screen decision on Day 5:
| Requirement | Missing in | Proposed carrier (add to reqs on Day 5) |
|---|---|---|
| CRM-05 Assignment to a delegate and zone, reassignment history | BO | BO-11 (header and history), BO-12 (fields), BO-09 (bulk assign) |
| AUD-02 Entity histories viewable in context | BO | BO-39 (history tab), BO-28 (price history), BO-34, BO-11 (timeline) |
| ACL-04 Financial data strictly limited | BO | BO-28 (purchase price masked), BO-08, BO-46 |
| ACL-01 Eight roles | BO | BO-61, BO-62 |
| CRM-10 Store photos and documents | BO | BO-11 (Documents et photos tab), BO-12, BO-13 |
| IVT-03 Activation steps | BO | BO-11 (Invitation tab) |
| ORD-09 First order flagged and attributed | BO | BO-38, BO-39, BO-41 (badge), BO-59 |
| ORD-10 Cancellation rules | BO, RW | BO-39, RW-09 |
| ORD-03 Order immediately visible in the back-office | BO | BO-41 (live row) |
| FIN-08 Credit notes and receipts (now V1) | BO, RA | BO-44 (invoices and credit notes), BO-69 (credit note issued), RA-30, RA-40 |
| DLV-06, FIN-02, FLD-15 Delivery fees, payment methods, location policy as settings | BO | BO-64 |
| GEO-01 Wilaya and commune reference | BO, DA, RW | BO-12, BO-19, BO-70, DA-14, RW-01, RW-12 |
| CRM-02 Creation with its source recorded | RA, DA | RA-05, DA-14 |
| CAT-07 Catalog search | DA | DA-17 (assisted-order catalog) |
| PRC-05, STK-07 Own price only; availability only | RW | RW-03, RW-04, RW-06 |
| AUTH-10 Guest mode | RW (only RW-01 lists it) | RW-02, RW-03, RW-04, RW-10 |
| ORD-12 Order documents | RW | RW-09 |
| SUP-03 Support contacts and FAQ | RW | RW-14 |
| IVT-04 Invitation link attribution | RW | RW-01 |
| AUTH-06 Sessions | DA, RW | DA-26, RW-12 |
| AUTH-08 Account statuses gate access | BO, RW | BO-01, RW-01 |
| NOT-02 Push with deep links | DA | DA-23, DA-04 (permission) |
| SYN-03 Critical data sent immediately | RA, DA | RA-36, DA-27, DA-28 |
| INT-01, INT-02 Maps provider, push | RA, DA, BO | DA-08, BO-06, BO-10, BO-19 (maps); RA-26, DA-23 (push) |
| ACL-05 The UI hides what the user cannot do | RA, DA, RW | A pattern on every screen, not a screen |
| RWA-01, RWA-02 Reseller web parity | RW | Every RW screen |
| NFR-01, NFR-04…NFR-07, NFR-09 | all | The design system (skeleton budgets, breakpoints, RTL, accessibility) |
| V2 without a screen: CRM-13 (duplicate merge), PRC-03 (per-reseller agreements), FLD-18 (tour optimisation), ANA-06 (advanced analytics) | BO | Decided in DES-30 |
Other inventory questions for Day 5.
- BO-31 Price lists & agreements is V1 in
screens.json, but price lists and per-reseller agreements are V2 since 17 October (PRC-03). Either rename it to a bulk price editor of the three customer-type prices with change history (V1), or move it to V2. - French names. BO and RW screens have no
frname inscreens.json. The sidebar and page titles need them; the sidebar table above proposes names. - DA-14 customer type. May the delegate record the customer type the reseller announces, as a hint for the back-office? See reference screens.
Day-5 validation checklist
Akram leads, Imad and Anis co-sign. Every item is ticked or turned into an action with an owner before the inventory is frozen.
Scope and counts
- 155 screens confirmed (146 V1, 9 V2), or every addition, merge and split recorded in
screens.json. - Every V2 screen is parked in DES-30, and no V2 element (points, levels, packs, rewards) appears in a V1 frame.
- BO-31 decided (V1 bulk price editor or V2).
Requirements
- Every V1 MUST and SHOULD requirement of an app has at least one screen of that app: the coverage table is resolved and
reqsupdated. - The 17 October decisions are carried by named screens:
- guest mode: RA-41, RW-01…RW-04;
- customer type: RA-05, RA-28, BO-11, BO-12, BO-13;
- advanced filters: RA-13, RW-03, BO-71;
- WhatsApp: RA-32, RW-14, BO-70;
- after-sales and returns: RA-33, RA-40, RW-14, BO-56, BO-69;
- live status: RA-21, RA-22, RW-08, RW-09;
- confirmation queue: BO-41.
Data
- Every screen reaches its API operations: same app, shared requirement. The screen pages list the operation ids.
- Every field shown on a screen exists in the API response or is derived, with the derivation written down (for example En retard = planned and time slot passed).
- No reseller- or delegate-facing screen shows a stock quantity.
States
- Each screen page lists its states: default, loading, empty, error, offline or permission when relevant, and the business states (each status value the screen can show).
- Guest, pending-validation and suspended variants are listed for every reseller screen they affect.
Navigation and naming
- Every screen is reachable in a navigation map, with no orphan.
- Every screen has a French name (BO and RW added).
- The bespoke and template assignment of the back-office pages is agreed with Anis.
Feasibility
- Imad has flagged the custom mobile widgets and their cost: map and pins, range slider, offline queue UI, scanner, QR, live updates.
- Anis has flagged the complex web components: calendar, kanban, zone map editor, permission matrix, live rows.
- Day 19's 29 pages are accepted as planned, or rebalanced (for example by moving template specs to Day 17 or 18).
Flows and wireframes
- The four flows are drawn: reseller ordering, delegate day, back-office confirmation and delivery, after-sales and returns.
- Wireframes of checkout, the visit flow and tour closing are reviewed by Imad.
Freeze
- The inventory is frozen (milestone Screen inventory frozen). From now on, changes go through change requests.
Client reference screens
The 16 reference screens HOCO attached to the cahier — what each one asks for, what we keep, what we change and why, and which inventory screens it maps to.
Reseller app
Who uses the HOCO reseller app, how it is navigated, the behaviours every screen shares (guest mode, pricing, live updates, WhatsApp support), its deep links and the list of its 41 screens.