HOCO B2B
Team tasksAkram

DES-06 — Day 6 — Reseller app: onboarding & account

Splash, welcome with guest browsing, guest price lock, sign-up (phone, OTP, store details, customer type), pending validation, sign-in, forgot password.

FieldDetails
Task codeDES-06
PhaseP0 — Foundations (cadrage, UX/UI, architecture & contract)
Product scopeV1
StatusPlanned
StartSun 25 Oct 2026
DueSun 25 Oct 2026
ResponsibleAkram — UI/UX designer
Co-responsible—
Effort1 person-day(s) planned · 1.25 from scratch · size S
Area · appReseller app design · design
Depends onDES-05
UnblocksMOB-06, DES-07
Milestones—

Summary

Splash, welcome with guest browsing, guest price lock, sign-up (phone, OTP, store details, customer type), pending validation, sign-in, forgot password.

Description

Day 6 designs the reseller app's onboarding and account access: RA-01…RA-08 and RA-41 guest mode. A visitor can browse as a guest with prices locked, sign up (phone, OTP, store details, declared customer type, password, optional invitation code), wait for validation, sign in and recover a password. Inputs: cahier §5 and §6.6, the delegate-01 reference for the form pattern (there is no reseller onboarding reference), requirements AUTH-03/04/05/07/08/10/11, ADM-07 and IVT-04, and the operations auth.otp.send, auth.otp.verify, auth.signup.reseller, auth.login, auth.password.reset, invitations.resolve, reference.wilayas, reference.communes, appConfig.get. Akram also drafts the delegate splash, sign-in and reset (DA-01…03) as variants, because MOB-06 builds the authentication of both apps right after today. Consumers: Imad's MOB-06 (RA-02…08, RA-41, DA-02, DA-03) and MOB-05 (RA-01).

Subtasks

#SubtaskOwner
1RA-01 Démarrage: loading; forced update (426 UPGRADE_REQUIRED, store link); maintenance (503, with the expected end time); offline at launch, with a cached session (home + offline banner) or without oneAkram
2RA-02 Bienvenue: first launch; opened from an invitation link with the code AB12-CD34 pre-filled; three exits « Créer un compte », « Se connecter », « Découvrir le catalogue » (guest)Akram
3RA-03 Inscription — téléphone: phone shown as 0555 12 34 56 and stored E.164; invalid number; PHONE_ALREADY_EXISTS offering sign-in or the account claim of a field-created prospect (AUTH-05); optional invitation code invalid or expiredAkram
4RA-04 Vérification du code: 6 boxes with SMS autofill; 5-minute validity countdown; resend after 60 s (OTP_RESEND_TOO_SOON); 5 sends per hour (RATE_LIMITED); 5 wrong attempts (TOO_MANY_ATTEMPTS); expired codeAkram
5RA-05 Inscription — magasin: store name, owner, wilaya → commune cascade, address, business type (BUSINESS_TYPE list); required customer-type cards Super-gros / Demi-gros / Détail with « Vérifié par HOCO lors de la validation de votre compte » and the error « Choisissez votre type de client : super-gros, demi-gros ou détail. »; password and confirmation with the rule shown; submittingAkram
6RA-06 Compte en attente: pending (declared-type prices visible behind a Decision pending sticker; « Commander » locked by ACCOUNT_PENDING_VALIDATION with an explanation); rejected (reason + « Contacter l'assistance » via WhatsApp); suspended (ACCOUNT_SUSPENDED)Akram
7RA-07 Connexion: « Numéro ou mot de passe incorrect. »; 15-minute lockout after 5 failures, with a countdown; routing for pending and suspended accounts. RA-08 Mot de passe oublié: phone → OTP (reuses RA-04) → new password → success → sign-inAkram
8RA-41 Mode invité: price lock « Créez un compte pour voir les prix » on cards and product detail; sign-up prompt sheet triggered by add to cart, favourite, the Panier / Commandes / Compte tabs, the price filter and « Commander maintenant »; guest banner on home « Vous naviguez en invité »; no price facet or price sort; WhatsApp button still availableAkram
9Draft DA-01 / DA-02 / DA-03 as variants of RA-01 / RA-07 / RA-08: delegate header, no sign-up link (finalised on Day 11)Akram
10Write every message in final French (form patterns: vous, sentence case, no-break spaces) and annotate each frame with its API op ids and error codesAkram
11Feasibility check: SMS autofill, invitation-code prefill from the link or install referrer, session restore, guest-to-account transition without losing the browsing contextImad
12Asynchronous HOCO look on Day 7: a prototype link plus 5 questions (customer-type wording, prices before validation, required store fields, invitation code placement, guest banner tone)Akram

Deliverables

  • Claude Design › Reseller App › RA · Onboarding & account: RA-01…RA-08 and RA-41 with every state, named RA-xx · Name · state
  • Draft variants DA-01…DA-03 in Claude Design › Delegate App › DA · Access
  • Onboarding copy sheet (every field label, helper and error message in French) annotated on the frames
  • Asynchronous client feedback link with 5 questions

Acceptance criteria

  • Every state listed above has its own frame, and the guest variant exists for each bottom-nav tab
  • The customer type is required, uses the CustomerType French labels and is read-only once submitted (AUTH-11)
  • No guest frame shows a price, a price filter or a price sort
  • Every auth error code has its French message on a frame
  • Targets are 48 dp or more, OTP boxes 48 × 56 dp, contrast 4.5:1 or more, labels never placeholders
  • Imad's review answer is OK or OK with notes

Requirements covered

RequirementTitleRelease
AUTH-03Reseller self sign-up: phone verified by OTP, store details, declared customer type (super-gros, demi-gros, détail), password, optional invitation codeV1
AUTH-04Reseller sign-in (phone + password) and password reset by OTPV1
AUTH-05Account claim: a prospect created in the field is activated by the reseller without creating a duplicateV1

Screens

ScreenNameApp
RA-01Splash & version checkRA
RA-02Welcome (sign in, sign up, browse as guest)RA
RA-03Sign-up — phone & invitation codeRA
RA-04OTP verificationRA
RA-05Sign-up — store details, customer type & passwordRA
RA-06Account pending validation / rejectedRA
RA-07Sign inRA
RA-08Forgot passwordRA
RA-41Guest mode — price lock and sign-up promptsRA

Test measures

  • Prototype walkthrough guest → sign-up → pending → sign-in, with Imad
  • Error-coverage check: each error of the auth operations maps to a frame or a message
  • 130 % text scale on RA-05 and RA-04

Risks

  • Prices visible before or after validation is still open — design both variants behind a Decision pending sticker (default: right away); the ordering lock stays until validation either way.
  • The account claim is easy to get wrong — confirm with Anis that the OTP links the existing prospect without creating a duplicate (AUTH-05), and design the claim confirmation explicitly.

KPI

  • Delivered by Sun 25 Oct 2026 within 1 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.

On this page