HOCO B2B
SRS

Software requirements specification

What the SRS of the HOCO B2B ecosystem contains, how to use it, the baseline in numbers, the map of its pages and the change-control rule.

The SRS says exactly how the HOCO B2B ecosystem must behave — the back-office, the reseller app and web, the delegate app and the central API. The PRD explains what is built and why; the SRS is the contract the team builds, tests and accepts against. It turns the client's Cahier des charges — Écosystème B2B HOCO v1.0 (July 2026) into identified requirements, state machines, numbered business rules, permissions, notifications, acceptance scenarios, a data model and an API catalogue, and it records the product decisions of 17 and 18 October 2026 (customer-type prices, guest mode, no automatic order confirmation, returns and after-sales in V1, the reseller web in V1, the three-month frame).

Status: baseline 0.1.0, to be validated by HOCO at the cadrage workshop (PRJ-03, milestone Cadrage validated — validation sheet signed). From then on it changes only through the change-control rule.

How to use it

Every feature is read the same way, from the requirement to the test:

Find the requirement in its area page under requirements — an id like ORD-14, with its release (V1 or V2), its priority and its cahier source. Non-functional and transverse needs are in cross-cutting requirements.

Check the behaviour: the states and allowed moves in lifecycles and statuses, the numbered rules and their settings in business rules, who may do it in the permissions matrix, who is told in the notifications matrix.

Find the data and the API: the module that owns it in the service catalogue, the tables in database design, the operations in the API reference, background work in jobs and scheduler, offline behaviour in offline sync design.

Know how it is accepted: the matching scenario in acceptance scenarios, and the screens in the screen inventory.

Find who builds it and when: the task pages under team tasks list the requirement, screen and API ids of each task; dates are on the timeline.

Example — the order confirmation queue: ORD-14 → OrderStatus transitions and BR-24 → orders.validate in the permissions matrix → admin.orders.toConfirm and admin.orders.validate → screen BO-41 → tasks SRV-16 and DSH-06.

Identifiers used everywhere

KindFormatSource of truth
RequirementAREA-nn (CRM-03), release V1 or V2, priority MUST · SHOULD · COULDcontent/spec/requirements.json
ScreenRA-nn reseller app · RW-nn reseller web · DA-nn delegate app · BO-nn back-officecontent/spec/screens.json
API operationOperation id (cart.checkout), method and path under /v1content/spec/endpoints.json
Status and enumUPPER_SNAKE_CASE value with its French labelcontent/spec/enums.json
Business ruleBR-nnBusiness rules
DecisionD-nnDecision register
TaskSRV-nn, DSH-nn, WEB-nn, MRA-nn, MDA-nn, DES-nn…content/plan/tasks.json

Priorities: MUST — required for the acceptance of its release; SHOULD — planned in its release, may move to the next one by written agreement; COULD — done if capacity allows. Release: V1 is delivered within the three-month frame (design, build, deployment, go-live at the start of January 2027, then a two-week pilot); V2 comes after it (cahier §14.2).

The baseline in numbers

Counts of baseline 0.1.0 (18 October 2026); the tables linked from each line are generated live from the JSON files.

ItemTotalV1V2
Requirements (25 areas)19417717
— of which MUST · SHOULD · COULD155 · 33 · 6
Screens and pages (4 interfaces)1551469
API operations28627115
Enums and statuses54
Plan tasks145P0 45 · P1 76 · P2 7P3 4 (generalisation) · P4 13 (V2)

Requirements by area

AreaNameV1V2Total
AUTHAuthentication & accounts11011
ACLRoles, permissions & data scope505
AUDAudit trail & history303
GEOGeography, zones & GPS404
CRMResellers & prospects12113
CATCatalog13013
PRCPricing415
STKStock819
ORDCart & orders15015
DLVPreparation & delivery516
FINInvoicing, payments & credit7310
PRMPromotions & packs516
LOYLoyalty programme055
FLDField operations18119
IVTInvitations & activation404
SUPSupport & claims505
NOTNotifications & messaging718
ANADashboards, KPIs & reports516
ADMAdministration & settings808
SYNSynchronisation & offline707
INTExternal integrations617
RWAReseller web app202
NFRNon-functional909
SECSecurity, privacy & compliance808
OPSDeployment, training & maintenance606

Screens per interface

InterfaceScreensV1V2Built by
Reseller app (RA)41383Imad
Delegate app (DA)28280Imad
Back-office (BO)71665Anis
Reseller web (RW)15141Anis

API operations per audience

AudienceGroupsOperationsV1V2
Every appauth, me and reference data, files, notifications and live events30300
Reseller and delegate (guests included)catalog and favorites12120
Resellercart, orders and returns, finance, promotions, loyalty, profile, support50428
Public and resellerinvitations and attribution330
Delegateday, tours and visits, resellers, assisted orders, sync47470
Back-officetwelve admin groups and the real-time stream1441377

Eleven operations are public and fifteen accept guests (auth: optional); 44 require an Idempotency-Key. The full catalogue is on the API reference.

Tasks per person — Anis owns 67 tasks (server, back-office, reseller web, operations), Imad 43 (both Flutter apps), Akram 35 (design, design QA, assets, training material); load and dates per lane:

PersonRoleEffortTasksWindowOwns
AnisFull-stack developer · 1 FTE60.75 d3918 Oct 2026 → 18 Feb 2027Server (API), back-office dashboard, reseller web app, docs, DevOps
ImadMobile developer (Flutter) · 1 FTE69.75 d4418 Oct 2026 → 31 Jan 2027Reseller app and delegate app (Flutter monorepo)
AkramUI/UX designer · 1 FTE43.25 d3618 Oct 2026 → 22 Feb 2027Design system and every interface, design QA, training and store assets

Structure of the SRS

Scope

Purpose, audiences, what each surface contains, the V1/V2 boundary per area, exclusions, numbered assumptions and constraints.

Glossary

French ↔ English business, administrative and technical terms used across the docs.

Source traceability

Every section of the cahier mapped to requirements, screens and pages; team additions and how revisions are handled.

Lifecycles and statuses

Every state machine — orders, returns, tickets, tours, visits, resellers… — with actors, guards, side effects and API operations.

Business rules

BR-01 to BR-86 grouped like cahier §8, with worked examples, and the catalogue of every business setting.

Permissions matrix

Permission catalogue, role × permission matrix, sensitive fields, data scopes, guard rails and the ACL test checklist.

Notifications matrix

Each event → channels → recipients, with templates and preferences.

Acceptance scenarios

The priority scenarios of cahier §12 as executable test cases for the PV de recette.

Requirements

One page per area with every requirement, its release, priority, source and the screens and operations that realise it.

Cross-cutting requirements

Performance, availability, security, accessibility, languages, logging and other transverse requirements with measurable targets.

Architecture and data

Containers, the modular monolith, data flows between the apps and the API, the outbox and real-time streams.

Service catalogue

The server modules: responsibilities, data owned, events emitted and consumed, jobs.

Database design

Entities, fields, relations, indexes and constraints of the Prisma schema.

API reference

Conventions, errors, idempotency and every operation with request and response.

Jobs and scheduler

Queues, scheduled jobs, retries, monitoring and the runbook.

Offline sync design

How the delegate app works without network: local store, outbox, replay, conflicts.

Integrations

Maps, push, SMS, email, WhatsApp, storage, stores and the V2 integrations, with costs and accounts.

Deployment and operations

Environments, deployment, backups, monitoring, training and maintenance.

Releases and team

Phases, release content, who builds what and the capacity behind the three-month frame.

Decision register

Every open decision with options, recommendation, owner, needed-by task and default.

Change control

The cahier's validation sheet (p. 2) carries the scope clause: « Toute fonctionnalité non décrite ou non validée dans le présent cahier des charges fera l'objet d'une analyse complémentaire, d'un chiffrage séparé ou d'une planification dans une version ultérieure. »

Applied to this SRS:

  1. What is described here, once validated at the cadrage, is the scope. Anything not described — a new feature, screen, field, report, rule, integration, or a change to a validated design or a decided register entry — is a change request, analysed, priced and planned separately (process).
  2. Not a change request: a behaviour that contradicts the SRS (a bug, handled by the bug process); a detail left open inside the described scope (a clarification logged in the register); a value changed within the allowed range of a setting.
  3. Team additions already in the plan (the reseller web, the product decisions of 17 October) are part of the baseline presented to HOCO, listed in source traceability.
  4. Every accepted change updates the JSON files first (a new id, never a reused one), then the pages and tasks.json, in one pull request; the plan recomputes the dates (planning method).
  5. Within the three-month frame, a slip moves scope after go-live along the ordered list of decision D-38, unless HOCO decides otherwise in writing.

On this page