Cahier des charges — E-Grenier V2.1
Commercialisation des produits vivriers, traçabilité des lots et convergence avec OCPV Info-Prix
Bénéficiaire : Office d’aide à la Commercialisation des Produits Vivriers — OCPV
Proposition élaborée par : CIACEMS
Date : 18 septembre 2026
Version : 1.4 — projet de cahier des charges à examiner avec l’OCPV
Document associé : Offre technique et financière CIACEMS — E-Grenier V2.1, version 1.4
1. Objet et résultats attendus
Le présent cahier des charges définit la plateforme E-Grenier V2.1 à concevoir, réaliser, déployer et accompagner pour l’OCPV. La solution reliera les producteurs, les acheteurs, les agents des hubs et les services de pilotage autour d’un parcours traçable : déclaration d’une récolte, réception et contrôle, publication commerciale, réservation, paiement et enlèvement.
La prestation comprend explicitement la reprise et la refonte du code source E-Grenier V2 fourni par l’ancien prestataire, ainsi que la production de la documentation technique du code refondu. CIACEMS analysera les éléments remis, déterminera les composants à conserver, à restructurer ou à remplacer et réalisera les adaptations nécessaires au périmètre V2.1. La documentation sera produite pendant ces travaux et remise avec les versions du logiciel.
La refonte technique est arrêtée sur Python avec Django pour les services backend, Django Ninja pour les API et Vue.js pour l’application web SPA, avec les fonctions PWA prévues. La cible sera une architecture intégralement organisée en microservices, conteneurisée avec Docker, orchestrée par Docker Swarm et administrée au moyen de Dokploy sur des VPS hébergés localement. PostgreSQL, Redis et Celery assureront respectivement la persistance, le cache et les traitements asynchrones.
La V2.1 devra permettre à l’OCPV de disposer d’un système sur mesure, accessible sur téléphone et ordinateur, dont les données opérationnelles contribueront à l’information sur les marchés. Son développement et son évolution seront conduits avec les agents et les utilisateurs, grâce à un accompagnement en présentiel et à une maintenance organisée dans la durée.
Les résultats attendus sont les suivants :
- reprendre et refondre le code source V2 pour obtenir un socle maintenable, documenté et adapté aux exigences V2.1 ;
- remplacer l’inscription libre par un enrôlement producteur contrôlé par l’OCPV, avec plusieurs moyens de connexion pour les comptes validés ;
- rendre commandables uniquement les quantités effectivement contrôlées et disponibles ;
- conserver la trace des opérations et des responsabilités sur chaque lot ;
- suivre les paiements et leurs exceptions jusqu’à la confirmation ;
- rapprocher les données de commercialisation et les informations de marché ;
- donner aux équipes de l’OCPV les moyens d’administrer le service et de participer à ses évolutions.
Les exigences ci-dessous constituent la proposition de référence. Les hypothèses de volume, de calendrier et de service seront arrêtées lors du cadrage. Toute modification du périmètre financé fera l’objet d’une estimation et d’une décision écrite avant sa réalisation.
2. Périmètre de réalisation
2.1 Périmètre initial couvert par l’offre
| Domaine | Réalisation attendue |
|---|---|
| Reprise et refonte du code source | Inventaire et diagnostic du code V2 remis ; plan de refonte ; restructuration ou remplacement des composants concernés ; tests de non-régression |
| Production de la documentation | Documentation du code, de l’architecture, des données et des API ; guides d’installation, de test, de déploiement et de maintenance ; mise à jour à chaque livraison |
| Accès et identité | SPA Vue.js responsive avec fonctions PWA ; Auth0 ; SMS OTP et moyens de connexion complémentaires ; enrôlement et habilitations |
| Producteurs et lots | Fiches acteurs, déclarations, références de lot, préparation de collecte ou de dépôt, suivi des statuts |
| Hubs et catalogue | Réception, pesée, contrôle, mouvements de stock, publication et réservation |
| Transactions | Commandes, intégration d’un prestataire ou agrégateur de paiement, confirmations, exceptions et rapprochement |
| SIM et pilotage | Référentiels, indicateurs, carte des stocks et flux, exports et un connecteur Info-Prix |
| Analyse prédictive | Étude des données, expérimentation limitée et rapport d’évaluation des prévisions à J+7/J+30 |
| Architecture et exploitation | Microservices Django/Django Ninja, PostgreSQL, Redis, workers Celery ; Docker et Docker Swarm pilotés par Dokploy sur VPS locaux ; sécurité, supervision, sauvegardes et restauration |
| Accompagnement | Pilote, formation, documentation, transfert et maintenance initiale de 12 mois proposée |
La période de 12 mois est une hypothèse de rédaction pour cette proposition ; sa durée sera confirmée dans l’offre retenue. Elle commence à la réception de la mise en service, selon le procès-verbal convenu.
2.2 Hypothèses proposées pour dimensionner la prestation
Ces valeurs définissent une base de chiffrage et de recette ; elles ne décrivent pas les volumes réels de l’OCPV.
| Paramètre | Base proposée |
|---|---|
| Code à reprendre | Version identifiée du code source E-Grenier V2 remise à CIACEMS ; inventaire des modules et plan de refonte arrêtés au cadrage pour couvrir les exigences V2.1 |
| Pilote | Jusqu’à 3 hubs dans 2 régions à désigner avec l’OCPV |
| Utilisateurs du pilote | Jusqu’à 300 producteurs et acheteurs, avec 30 agents ou référents formés |
| Langue initiale | Français ; vocabulaire et messages simplifiés, testés avec les utilisateurs |
| Capacité de référence | 10 000 comptes enregistrés, 100 000 lots historisés, 100 sessions simultanément actives |
| Initialisation des données | Une famille de fichiers normalisés, jusqu’à 20 000 lignes au total ; une répétition de reprise et un chargement final |
| Paiement | Une intégration avec un prestataire ou agrégateur disposant des services nécessaires au parcours retenu |
| Info-Prix | Un connecteur selon un contrat d’échange défini avec les interlocuteurs concernés |
| Expérimentation prédictive | Jusqu’à 3 couples produit–marché, selon la disponibilité d’un historique exploitable |
| Déploiement initial | Un environnement de production en microservices sur des VPS locaux, un environnement de test isolé et des sauvegardes séparées ; nombre de VPS et ressources arrêtés au dimensionnement |
La capacité technique de référence permet une montée en usage au-delà du pilote. L’accompagnement physique d’une généralisation nationale sera planifié et chiffré selon les sites et moyens retenus.
2.3 Extensions à programmer séparément
La trajectoire comprend des applications mobiles Android et iOS développées avec Flutter, en langage Dart, et distribuées sur les stores. Elles utiliseront les API Django Ninja du backend et les mêmes règles métier et d’habilitation que la plateforme web. Elle comprend également des services USSD, WhatsApp et SMS interactifs, un numéro vert, une assistance vocale et l’élargissement des analyses prédictives. Leur mise en production complète ne fait pas partie du forfait initial. Chaque extension sera spécifiée et chiffrée avec ses dépendances opérateurs et ses frais récurrents.
L’accès mobile initial sera assuré par la PWA depuis les navigateurs compatibles. La généralisation nationale, l’équipement des hubs, les terminaux, les balances connectées et l’exploitation physique des activités logistiques seront également organisés hors de ce forfait logiciel.
3. Utilisateurs et responsabilités
| Profil | Actions principales | Limites de responsabilité |
|---|---|---|
| Producteur ou représentant de coopérative | Gérer son dossier, déclarer un lot, suivre le contrôle, les commandes et les paiements | Accès à ses données et aux opérations autorisées sur ses lots |
| Acheteur | Consulter les offres, réserver, commander, payer et suivre l’enlèvement | Accès à ses commandes ; données personnelles du producteur limitées au besoin métier |
| Agent de hub | Réceptionner, peser, contrôler et autoriser les opérations du hub | Périmètre territorial et fonctions attribués par l’OCPV |
| Superviseur territorial | Suivre les hubs, examiner les écarts et les incidents | Accès aux unités placées sous sa responsabilité |
| Agent de suivi des transactions | Examiner les confirmations, rapprochements et exceptions | Aucun droit implicite de modifier les stocks ou les habilitations |
| Agent SIM ou analyste | Contrôler les données, exploiter les indicateurs et produire les exports | Périmètre d’accès défini selon la sensibilité des données |
| Administrateur OCPV | Gérer les référentiels, les comptes et les habilitations | Actions sensibles journalisées ; droits attribués explicitement |
| Support CIACEMS | Diagnostiquer et maintenir les fonctions autorisées | Accès nominatif, limité, traçable et révocable |
L’OCPV désignera les personnes habilitées à valider les règles de gestion, les données de référence, les contrôles au hub et la recette. CIACEMS assurera la conception, la réalisation, la documentation et l’accompagnement du périmètre convenu.
4. Exigences fonctionnelles
4.1 Accès, authentification et enrôlement
Constat sur E-Grenier V2.0 : l’écran d’inscription (register) est accessible à tous, sans vérification préalable : n’importe qui peut ouvrir un compte producteur, y compris à tort. Par ailleurs, le producteur peut faire apparaître une récolte avant contrôle de l’OCPV ; seuls les agents en sont informés, alors que la publication sur la marketplace relève de l’OCPV.
Orientation V2.1 : un espace d’enrôlement des producteurs remplace l’inscription libre. Le candidat dépose une demande ; l’OCPV vérifie les pièces KYC, valide ou refuse avec motif, puis génère les accès du producteur. Une fois authentifié, il déclare ses récoltes reçues et contrôlées ; seuls les agents habilités de l’OCPV publient les offres sur la marketplace. L’acheteur intéressé règle directement le producteur sur mobile money — le produit ayant été vérifié par l’OCPV — et les taxes ou recettes institutionnelles dues à l’OCPV sont identifiées et tracées à part du prix de la marchandise.
L’ajout d’Auth0 vise à diversifier les moyens de connexion en complément du SMS OTP, à réduire éventuellement la dépense de SMS à grande échelle et à permettre un accès alternatif lors d’une indisponibilité du service SMS. Les alternatives devront être préparées avant un incident et rattachées au même compte métier de manière sécurisée.
| Réf. | Exigence | Critère d’acceptation |
|---|---|---|
| ACC-01 | Proposer des entrées adaptées à l’intention : vendre, acheter ou accéder à un espace professionnel | Chaque profil réalise son parcours principal sur téléphone et ordinateur sans installation obligatoire |
| ACC-02 | Intégrer Auth0 avec SMS OTP, compte avec adresse électronique et mot de passe, et une connexion Google | Chaque méthode retenue fonctionne sur le périmètre de recette ; une panne SMS simulée permet la connexion à un compte ayant une alternative préparée, sans code SMS |
| ACC-03 | Rattacher les méthodes au compte après vérification de la maîtrise des identités concernées | Aucune fusion automatique sur la seule égalité d’une adresse ou d’un numéro ; les droits métier restent identiques après rattachement |
| ACC-04 | Organiser récupération de compte, révocation, limitation des tentatives et renvois OTP | Les scénarios de perte d’accès, d’abus de renvoi et de session révoquée sont vérifiés ; aucune récupération ne contourne les contrôles d’identité définis |
| ACC-05 | Distinguer création du compte et validation métier par l’OCPV | Un utilisateur non validé accède seulement aux fonctions autorisées ; les refus et demandes de complément sont motivés |
| ACC-06 | Appliquer les habilitations par profil, territoire et opération ; renforcer l’authentification des comptes privilégiés | Les appels directs à l’API hors périmètre sont refusés ; les administrateurs utilisent un second facteur sans dépendance exclusive au SMS |
| ACC-07 | Remplacer l’inscription libre producteur par un parcours d’enrôlement dédié, sans création automatique de compte producteur | Aucun accès producteur actif n’est obtenu sans demande d’enrôlement et décision OCPV ; l’ancien parcours register ouvert n’est plus proposé pour ce profil |
| ACC-08 | Permettre à l’OCPV de recevoir, instruire, compléter et trancher les demandes KYC avant génération des accès | Dossier consultable, historique des décisions, pièces associées ; compte producteur créé ou activé seulement après validation explicite |
Les moyens complémentaires ne seront pas rendus obligatoires pour les producteurs qui utilisent le SMS OTP. La formation présentera leur préparation et leurs conditions d’usage. Les abonnements Auth0 et les services de messagerie seront souscrits selon les dispositions financières retenues.
4.2 Déclaration des lots et préparation logistique
| Réf. | Exigence | Critère d’acceptation |
|---|---|---|
| LOT-01 | Créer une déclaration avec producteur, produit, unité, quantité estimée, localisation et période de disponibilité | Un identifiant unique est généré et conservé pendant le cycle du lot ; les données obligatoires sont contrôlées |
| LOT-02 | Prévoir le dépôt au hub ou une demande de collecte, avec suivi de la prise en charge | Le mode choisi, le hub, les rendez-vous et les changements de statut sont visibles et historisés |
| LOT-03 | Permettre une saisie assistée par un agent identifié | La fiche conserve le bénéficiaire, l’agent intervenant et la date ; l’action ne confère pas à l’agent la propriété du lot |
| LOT-04 | Conserver les brouillons de déclaration en faible connectivité et synchroniser sans duplication | Après coupure et reprise, un même brouillon ne crée qu’un lot ; l’utilisateur distingue enregistré sur l’appareil, transmis et validé |
| LOT-05 | Limiter le producteur à la déclaration et au suivi de ses lots ; interdire toute publication commerciale directe | Aucune offre visible sur la marketplace sans action d’un agent OCPV habilité ; tentative bloquée côté interface et API |
La planification initiale de collecte sera manuelle et assistée par le système. L’optimisation automatique des tournées et le suivi de véhicules en temps réel relèvent d’extensions.
4.3 Hubs, contrôle et stocks
| Réf. | Exigence | Critère d’acceptation |
|---|---|---|
| HUB-01 | Enregistrer réception, quantité mesurée, unité, agent, date et écarts avec la déclaration | Un bordereau est produit ; tout écart est conservé et expliqué |
| HUB-02 | Enregistrer le contrôle selon une grille validée par l’OCPV | Le lot reçoit un statut accepté, en attente ou refusé ; la décision et son auteur sont consultables |
| HUB-03 | Conditionner la publication commerciale au contrôle, à un stock positif et à une action explicite d’un agent OCPV habilité | Un lot non accepté, sans quantité disponible ou non publié par l’OCPV ne peut être commandé, y compris par appel direct à l’API |
| HUB-04 | Distinguer stocks reçus, disponibles, réservés, sortis et retirés pour perte ou non-conformité | Toute variation possède un motif et un auteur ; la somme des mouvements explique le stock affiché |
| HUB-05 | Émettre un bon d’enlèvement rattaché au lot et à la commande | Une sortie ne dépasse pas la quantité autorisée ; un bon déjà exécuté ne permet pas un second enlèvement |
Le contrôle OCPV correspondra à la procédure métier validée. Les critères de qualité, les instruments de pesée et les responsabilités physiques devront être définis avec les responsables des hubs.
4.4 Catalogue, réservations et commandes
| Réf. | Exigence | Critère d’acceptation |
|---|---|---|
| COM-01 | Présenter les offres par produit, localisation, hub, quantité, unité, prix et date de contrôle | Les informations publiques proviennent des données validées ; les données personnelles non nécessaires restent masquées |
| COM-02 | Réserver la quantité lors de la confirmation de commande pour une durée paramétrée | Deux commandes concurrentes ne peuvent réserver la même quantité ; l’expiration libère le stock selon les règles convenues |
| COM-03 | Suivre commande, annulation, paiement, autorisation d’enlèvement et sortie | Chaque étape possède sa date et son acteur ; les états incompatibles sont refusés |
| COM-04 | Notifier les changements importants dans l’application et par le canal retenu | Les échecs d’envoi sont visibles et relançables sans répéter l’opération métier |
| COM-05 | Réserver la publication et la dépublication des offres marketplace aux agents OCPV habilités | Seuls ces agents déclenchent la visibilité commerciale après contrôle ; auteur, date et motif de retrait sont historisés |
Le prix applicable, la durée de réservation, les frais et les conditions d’annulation seront présentés avant confirmation. Une modification ultérieure des paramètres ne réécrira pas l’historique d’une commande.
4.5 Paiements et traitement des exceptions
L’orientation proposée est un paiement direct au producteur sur mobile money via le prestataire retenu, une fois le lot contrôlé et publié par l’OCPV. Le parcours financier sera défini avant l’intégration : bénéficiaire producteur, part institutionnelle due à l’OCPV, confirmation, délais, frais, remboursement et conditions d’enlèvement. L’OCPV et CIACEMS valideront que les services du prestataire permettent ce fonctionnement et la traçabilité des deux composantes.
| Réf. | Exigence | Critère d’acceptation |
|---|---|---|
| PAY-01 | Initier un paiement associé à une commande et à un bénéficiaire identifié | Montant, référence et bénéficiaire sont vérifiables ; les tentatives et résultats sont conservés |
| PAY-02 | Vérifier les notifications et traiter les doublons et les retards | Une notification répétée ne produit ni double règlement enregistré ni double autorisation ; un retour navigateur seul ne valide pas le paiement |
| PAY-03 | Distinguer paiement initié, en attente, confirmé, échoué, annulé et remboursé | Les transitions respectent les confirmations du prestataire et les règles métier ; les conflits sont soumis à examen |
| PAY-04 | Rapprocher commandes et règlements et traiter les exceptions | Les montants incomplets, notifications absentes et bénéficiaires incorrects apparaissent dans une file de traitement avec historique |
| PAY-05 | Suivre réclamations, annulations et remboursements | Un dossier contient motif, pièces, responsable et décision ; le remboursement est suivi jusqu’à confirmation du prestataire ou justification de son statut |
Les opérations de paiement, de remboursement et de sortie nécessitent une confirmation en ligne. Aucun mécanisme automatique de répartition de recettes institutionnelles n’est inclus dans le périmètre initial.
4.6 Information de marché, pilotage et analyse
| Réf. | Exigence | Critère d’acceptation |
|---|---|---|
| SIM-01 | Gérer les références produits, unités, marchés, hubs et territoires | Les échanges utilisent des correspondances documentées ; les valeurs inconnues sont rejetées ou soumises à validation |
| SIM-02 | Produire des tableaux de bord sur stocks, transactions, volumes, transport renseigné et flux entre sites | Les indicateurs disposent d’une définition, d’une période, d’une provenance et d’un export vérifiable |
| SIM-03 | Prévoir une vue cartographique par territoire ou hub | Les données affichées correspondent aux filtres ; leur date de mise à jour et leur statut sont visibles |
| SIM-04 | Échanger les données convenues avec Info-Prix par un connecteur documenté | Le connecteur traite les erreurs, les reprises et les doublons ; les jeux de recette sont rapprochés avec le système destinataire |
| SIM-05 | Conserver séparément les observations de marché et les transactions de la plateforme | Les utilisateurs identifient la source et la couverture ; les données ne sont pas additionnées sans règle d’agrégation |
| SIM-06 | Évaluer des prévisions à J+7/J+30 sur le périmètre d’expérimentation | Un rapport décrit les données, les limites, les erreurs et la comparaison à une référence simple sur des périodes de test distinctes |
Si l’API Info-Prix n’est pas disponible, un échange par fichiers pourra être validé comme solution transitoire. Il ne vaudra pas recette du connecteur API : la prestation restante sera identifiée et replanifiée par écrit.
L’expérimentation prédictive donnera lieu à un rapport même si les données sont insuffisantes ou si les modèles ne surpassent pas la référence simple. La mise en production de prévisions opérationnelles sera décidée selon ces résultats ; aucun taux de précision n’est promis avant l’évaluation.
4.7 Administration et traçabilité
| Réf. | Exigence | Critère d’acceptation |
|---|---|---|
| ADM-01 | Administrer comptes, hubs, référentiels et paramètres métier | Les droits sont vérifiés ; les changements sensibles conservent auteur, date et valeurs concernées |
| ADM-02 | Consulter les événements des lots, commandes et paiements | Une recherche par référence reconstitue la chaîne des opérations sans exposer de secrets d’authentification |
| ADM-03 | Exporter les données selon les habilitations | L’export respecte le périmètre de l’agent et est journalisé pour les données sensibles |
| ADM-04 | Gérer les demandes d’assistance et d’évolution | Chaque demande possède une catégorie, une priorité, un responsable, un statut et une réponse traçable |
5. Données et règles de cohérence
Le modèle de données couvrira les acteurs, identités de connexion, habilitations, territoires, hubs, produits, unités, lots, contrôles, stocks, réservations, commandes, règlements, sorties et observations économiques. Les données personnelles seront séparées des informations destinées à la publication.
Les invariants suivants seront vérifiés à la recette :
- Un identifiant de lot reste stable pendant toute sa progression.
- La quantité disponible ne devient jamais négative.
- Une déclaration ou une notification reçue plusieurs fois ne produit pas plusieurs opérations équivalentes.
- Un lot non contrôlé ne devient pas commandable.
- Une confirmation de paiement possède une source vérifiable.
- Une modification d’habilitation s’applique aux opérations suivantes, y compris via les API.
- Une correction conserve l’historique utile à la traçabilité.
La reprise initiale comprendra un modèle de fichier, les règles de validation, un rapport d’erreurs, une répétition sur l’environnement de test et un bilan du chargement final. L’OCPV sera responsable de la validation métier des données remises et des rapprochements.
6. Exigences techniques et qualité de service
6.1 Architecture et exploitation
L’architecture V2.1 sera entièrement structurée en microservices métier déployables séparément. Chaque service backend disposera de son projet Django, de ses API Django Ninja, de sa configuration, de ses tests et de son image Docker. Les traitements asynchrones seront exécutés dans des conteneurs workers distincts des processus qui répondent aux requêtes HTTP.
6.1.1 Technologies retenues et rôle de chaque composant
| Composant | Technologie retenue | Rôle dans la V2.1 |
|---|---|---|
| Services backend | Python et Django | Règles métier, accès aux données, migrations, contrôles d’accès et administration technique |
| API | Django Ninja | API HTTP/JSON, validation des entrées et sorties, contrats OpenAPI et documentation des interfaces |
| Interface web | Vue.js en SPA | Navigation et composants d’interface ; fonctions PWA, brouillons hors ligne et synchronisation conformément au périmètre |
| Applications mobiles Android et iOS | Flutter, langage Dart | Applications distribuées sur les stores et connectées aux API Django Ninja ; extension prévue au §2.3 |
| Serveur du frontend | Nginx dans un conteneur dédié | Distribution des fichiers compilés de la SPA et prise en charge des routes côté navigateur |
| Exécution des API | Serveur ASGI de production, Uvicorn | Exécution des services Django derrière le reverse proxy ; le serveur de développement ne sera pas utilisé en production |
| Données persistantes | PostgreSQL | Données métier, transactions, contraintes d’intégrité et migrations par service |
| Cache initial | Redis | Mise en cache à durée de vie contrôlée des données de consultation et calculs réutilisables |
| Tâches asynchrones | Celery et workers dédiés | Notifications, imports, exports, synchronisations, rapprochements et traitements analytiques |
| File de tâches | Instance Redis distincte du cache | Transport initial des tâches Celery, avec persistance et politique de reprise documentées |
| Planification | Celery Beat | Déclenchement des tâches périodiques avec une seule instance active du planificateur |
| Conteneurisation | Docker | Images versionnées des services et des composants auto-hébergés |
| Orchestration | Docker Swarm | Placement des services, réplicas, redémarrage, réseaux internes et déploiements progressifs |
| Gestion des déploiements | Dokploy | Pilotage des versions, configurations, domaines, environnements et déploiements sur les VPS |
| Entrée HTTPS | Traefik | Routage vers les services, certificats et restrictions d’accès aux points d’entrée |
| Métriques et alertes | Prometheus, Grafana et Alertmanager | Mesure de l’état des services, tableaux de bord et alertes opérationnelles |
| Journaux centralisés | Grafana Loki et Grafana Alloy | Collecte, consultation et corrélation des journaux des conteneurs |
Les versions exactes seront fixées dans le dossier de conception et les fichiers de dépendances, en retenant des versions maintenues et compatibles. Le socle Django privilégiera une branche à support long lorsqu’elle répond aux besoins. Chaque mise à jour suivra un cycle de vérification, de recette et de déploiement documenté.
6.1.2 Intérêt de Django, Django Ninja et Vue.js
Django apporte un cadre de développement structuré : modèles de données, ORM, migrations et administration intégrée. Ce socle facilite l’organisation des règles métier et la maintenance du backend dans la durée. L’administration Django sera réservée aux usages techniques autorisés ; les parcours des utilisateurs seront réalisés dans Vue.js. Présentation officielle de Django
Django fournit notamment des mécanismes de protection contre les injections SQL dans les usages couverts par son ORM, les requêtes intersites avec authentification par cookie lorsque la protection CSRF est activée, ainsi que des réglages de sécurisation HTTP. Leur efficacité dépend de leur configuration et des pratiques de développement ; les droits métier et la sécurité de la SPA seront vérifiés séparément. Sécurité Django
Django Ninja permet de décrire et valider les données des API à partir de schémas typés et de produire des contrats OpenAPI. Cela soutient les échanges entre microservices, l’intégration du frontend et la production documentaire. Les contrats générés seront complétés par les règles métier, les erreurs, les droits requis et les exemples d’usage. Documentation Django Ninja
Vue.js est retenu pour son organisation en composants et la réalisation d’une SPA, dont la navigation est assurée dans le navigateur. Les fonctions PWA et hors ligne seront développées explicitement et vérifiées sur les appareils retenus. Documentation Vue.js
6.1.3 Découpage des microservices et propriété des données
| Microservice | Responsabilité principale | Données sous sa responsabilité |
|---|---|---|
| Acteurs et habilitations | Enrôlement, profils et droits métier, rattachement à l’identité Auth0 | Acteurs, rattachements territoriaux et habilitations |
| Lots, hubs et stocks | Déclaration, réception, contrôle, catalogue disponible, réservation et sortie physique | Lots, contrôles, mouvements et réservations de stock |
| Commandes | Parcours commercial, prix applicables, états et demandes d’annulation | Commandes et historique commercial |
| Paiements | Intégration du prestataire, confirmations, rapprochements et remboursements | Références de règlement, notifications vérifiées et exceptions financières |
| SIM et analyse | Échanges Info-Prix, indicateurs, cartographie et traitements analytiques | Observations, données agrégées et résultats d’analyse |
| Notifications | Préparation, envoi et suivi des notifications | Demandes d’envoi et statuts de livraison |
Chaque microservice possédera une base logique PostgreSQL et un compte d’accès limités à ses données. Une instance PostgreSQL peut initialement héberger plusieurs de ces bases, sans autoriser les autres services à lire ou modifier directement leurs tables. Les échanges passeront par des API authentifiées ou des événements documentés.
La réservation et la modification du stock resteront dans une même transaction du service lots–hubs–stocks. Les parcours traversant plusieurs services utiliseront des références stables, des opérations idempotentes, des délais et des compensations explicites. Les événements critiques seront enregistrés avec l’opération métier dans PostgreSQL avant leur transmission ; les envois non aboutis seront repris et rapprochés. Les tests couvriront les notifications dupliquées et les interruptions entre commande, réservation et paiement.
6.1.4 VPS locaux, orchestration et déploiement
Les composants auto-hébergés seront déployés en conteneurs Docker sur des VPS locaux, dont la localisation physique en Côte d’Ivoire sera confirmée avec l’hébergeur et l’OCPV. Le dossier de conception précisera le nombre de VPS, les ressources CPU/RAM/disque, les réseaux privés, la répartition des rôles et la capacité d’évolution. Les environnements de test et de production seront isolés.
Docker Swarm assurera l’orchestration ; Dokploy constituera l’interface de gestion des déploiements et des serveurs. Les images seront identifiées par version, conservées dans un registre et déployées après validation des tests. Les migrations PostgreSQL, les contrôles de santé et le retour à une version compatible seront documentés et exercés. Les réplicas et les limites de ressources seront définis service par service. Docker Swarm, architecture Dokploy
Les volumes PostgreSQL, les fichiers métier et les données persistantes du transport de tâches feront l’objet de règles de stockage et de sauvegarde distinctes des images. Leur placement et leur restauration seront définis explicitement : le redémarrage d’un conteneur sur un autre VPS ne suffit pas à rendre ses données disponibles. La topologie précisera aussi le nombre de nœuds de gestion Swarm et le maintien de leur quorum selon le niveau de continuité retenu.
L’hébergement local couvre les composants placés sous l’exploitation du projet. Auth0 et les prestataires de SMS ou de paiement restent des services externes ; les données échangées, leur localisation et leurs conditions de traitement seront documentées dans le dossier de sécurité.
6.2 Objectifs proposés et modalités de mesure
| Réf. | Objectif initial proposé | Vérification |
|---|---|---|
| QUA-01 | Temps de réponse API inférieur à 2 secondes au 95e percentile pour les opérations courantes | Test de 30 minutes avec 100 sessions actives et scénario de charge documenté ; services tiers et imports massifs mesurés séparément |
| QUA-02 | Réussite d’au moins 99 % des requêtes métier valides dans ce test | Les refus attendus d’autorisation ou de stock ne sont pas comptés comme erreurs techniques ; absence de violation des invariants |
| QUA-03 | Disponibilité applicative mensuelle cible de 99,5 % sur l’infrastructure retenue | Mesure externe du service ; publication de la disponibilité brute et de la mesure contractuelle avec exclusions explicites et approuvées |
| QUA-04 | Perte de données maximale cible de 24 heures et restauration cible en 8 heures | Exercice complet sur environnement de reprise ; durée mesurée depuis le début de la restauration et prérequis documentés |
| QUA-05 | Compatibilité sur la matrice de navigateurs et appareils validée au cadrage | Recette des parcours principaux sur Android, iPhone et ordinateur via navigateur ; fonctionnalités hors ligne vérifiées par appareil |
| QUA-06 | Interfaces utilisables au clavier, libellés explicites et absence de dépendance à la seule couleur | Vérification des parcours et tests d’usage avec un panel représentatif |
Ces objectifs supposent la souscription des moyens d’hébergement et de sauvegarde dimensionnés pour les atteindre. Les contrats de services tiers, leur disponibilité et leurs coûts seront examinés avant d’arrêter les engagements d’exploitation. Une haute disponibilité multisite constitue une extension à dimensionner séparément.
6.3 Reprise et refonte du code source E-Grenier V2
La reprise commencera par l’identification de la version remise, l’inventaire des modules et des dépendances, puis l’examen des règles métier, des interfaces, des accès et des procédures disponibles. CIACEMS reconstituera les éléments nécessaires à la compréhension du fonctionnement lorsque ceux-ci ne sont pas documentés.
Le plan de refonte précisera les composants conservés, restructurés ou remplacés, les raisons de ces choix, les effets sur les données et les interfaces et l’ordre des travaux. La réalisation portera sur les composants nécessaires au périmètre V2.1 défini dans le présent cahier des charges. Les décisions seront examinées avec l’OCPV avant les modifications correspondantes.
La reprise des règles et des données de la V2 conduira à une refonte du backend dans les microservices Django/Django Ninja et du web dans la SPA Vue.js. Le plan décrira les correspondances entre les fonctions reprises et les nouveaux services, les conversions de données et les contrats d’API associés.
| Réf. | Tâche exigée | Critère d’acceptation |
|---|---|---|
| REF-01 | Réceptionner et analyser le code source V2 | La version ou l’archive remise est identifiée ; un inventaire des modules, dépendances, procédures disponibles et difficultés de reprise est livré |
| REF-02 | Établir le plan de refonte | Chaque composant concerné possède une décision motivée de conservation, restructuration ou remplacement et un rattachement aux exigences V2.1 |
| REF-03 | Réaliser la refonte du code source | Les composants refondus sont livrés dans un dépôt versionné ; les responsabilités des modules sont explicites et les changements sont traçables |
| REF-04 | Vérifier les fonctions conservées et les nouvelles fonctions | Les scénarios de référence définis au diagnostic et les critères V2.1 sont exécutés ; les écarts sont justifiés ou corrigés avant recette |
6.4 Production et recette de la documentation
La documentation du code constituera une tâche de réalisation à part entière. Elle couvrira les modules, les règles métier, les traitements complexes, les dépendances et les décisions de conception. Elle sera complétée par le modèle de données, les contrats d’API et les procédures nécessaires à l’installation, aux tests, au déploiement, à l’exploitation et à la maintenance.
| Réf. | Tâche exigée | Critère d’acceptation |
|---|---|---|
| DOC-01 | Produire la documentation technique du code refondu | Les modules livrés, leurs responsabilités, règles et interfaces sont décrits ; les traitements nécessitant une explication sont documentés au plus près du code |
| DOC-02 | Livrer les guides et les maintenir avec le logiciel | Chaque version livrée est associée à une documentation correspondante et à un historique des changements ; les guides couvrent prérequis, configuration sans secrets, installation, tests, déploiement et maintenance |
| DOC-03 | Vérifier l’utilisabilité de la documentation et transmettre les connaissances | Un intervenant technique habilité autre que l’auteur des guides installe la solution sur un environnement de test, exécute les vérifications et retrouve les modules concernés à partir des documents remis ; le compte rendu et les corrections sont fournis |
La réception technique inclura la vérification des exigences REF-01 à REF-04 et DOC-01 à DOC-03. La remise du code seul ne permettra pas de considérer les tâches de refonte et de documentation comme achevées.
6.5 Cache Redis et traitements asynchrones Celery
Le cache Redis accélérera les consultations qui le permettent. Chaque famille de clés aura une durée de vie, une règle d’invalidation et un périmètre d’accès définis. Les quantités commandables, les habilitations sensibles et les confirmations de paiement seront vérifiées auprès du service propriétaire ; une valeur en cache ne décidera pas seule d’une opération irréversible.
Le Redis du cache et celui qui transporte les tâches Celery seront des instances distinctes. Le premier pourra appliquer une politique d’éviction adaptée ; le second utilisera une persistance, une limite mémoire et une politique sans éviction automatique des messages. Des alertes seront prévues avant saturation. Politiques Redis, transport Redis de Celery
Les workers Celery seront déployés séparément des API et répartis en files selon les usages : notifications, échanges et imports, traitements financiers différés, analyses. Les délais maximaux, les nouvelles tentatives, les erreurs définitives et la reprise manuelle seront définis. Les tâches seront conçues pour éviter de répéter les effets d’une même demande ; un traitement financier conservera une référence et un état métier durables dans PostgreSQL. Une seule instance active de Celery Beat déclenchera les travaux planifiés. Règles de traitement des tâches Celery
6.6 Supervision et maintenance de l’infrastructure
Prometheus collectera les métriques des VPS, conteneurs, API et composants de données. Grafana présentera les tableaux de bord et Alertmanager acheminera les alertes aux interlocuteurs désignés. Le suivi couvrira la disponibilité, les erreurs, les temps de réponse, le disque, la mémoire, les connexions PostgreSQL, les files Celery et les échecs de sauvegarde. Principes de Prometheus
Grafana Alloy collectera les journaux destinés à Loki. Les services propageront un identifiant de corrélation pour reconstituer le parcours d’une demande entre API et workers. Les secrets, codes OTP et pièces sensibles seront exclus des journaux ; leurs accès et durées de conservation seront définis. Grafana Alloy, Grafana Loki
Les sauvegardes des bases, fichiers métier et configurations nécessaires à la reprise seront chiffrées et conservées sur un stockage distinct de l’hôte de production concerné. Des restaurations seront exercées selon les objectifs QUA-04. Les sauvegardes PostgreSQL incluront une stratégie documentée de cohérence et, si le niveau de reprise le nécessite, d’archivage des journaux de transactions. Sauvegarde et restauration PostgreSQL
6.7 Recette de l’architecture technique
| Réf. | Exigence | Preuve attendue |
|---|---|---|
| TEC-01 | Livrer les microservices Python/Django et leurs API Django Ninja | Inventaire des services, contrats OpenAPI, tests et versions ; déploiement d’un service sans reconstruction imposée de tous les autres |
| TEC-02 | Livrer la SPA Vue.js et ses fonctions PWA | Vérification de la navigation, du rechargement d’une route, des droits et des brouillons hors ligne prévus |
| TEC-03 | Isoler la propriété des données PostgreSQL | Un compte de service ne peut pas lire ou modifier la base d’un autre ; les contrats d’échange et migrations sont documentés |
| TEC-04 | Préserver la cohérence des opérations entre microservices | Tests de réservation concurrente, événement dupliqué, service indisponible et reprise après interruption ; aucun double effet métier |
| TEC-05 | Séparer le cache Redis et le transport Celery | Configurations et instances distinctes ; purge du cache sans perte des tâches ; opérations critiques vérifiées hors cache |
| TEC-06 | Exécuter et reprendre les tâches asynchrones | Test d’arrêt d’un worker, reprise, erreur définitive et nouvelle tentative ; état traçable et absence de double règlement |
| TEC-07 | Déployer les conteneurs avec Swarm et Dokploy sur VPS locaux | Inventaire des VPS et images, contrôles de santé, réseaux, secrets, procédure de déploiement et exercice de retour |
| TEC-08 | Superviser les services et centraliser les journaux | Tableaux de bord opérationnels ; simulation d’une indisponibilité et d’un échec de sauvegarde avec réception des alertes |
| TEC-09 | Restaurer les données persistantes | Restauration de PostgreSQL et des fichiers métier, puis vérification d’un parcours applicatif ; mesure des objectifs de reprise |
Les résultats TEC-01 à TEC-09 seront joints au dossier de recette. La documentation L12 décrira la topologie, les API, les files Celery, les règles de cache, les responsabilités des bases et les procédures de surveillance et de reprise.
7. Sécurité et protection des données
| Réf. | Exigence | Preuve attendue |
|---|---|---|
| SEC-01 | Protéger les échanges, les secrets, les comptes privilégiés et les sauvegardes | Configuration revue ; aucun secret dans les dépôts ou journaux ; rotation et restauration documentées |
| SEC-02 | Vérifier les droits côté serveur pour chaque opération sensible | Tests d’accès entre comptes, profils et territoires ; refus des accès non autorisés |
| SEC-03 | Limiter les abus et vérifier les données entrantes | Tests sur tentatives de connexion, renvois OTP, fichiers, entrées API et notifications de paiement |
| SEC-04 | Protéger les traces d’audit et limiter leurs accès | Contrôle des droits, durée de conservation définie et export des événements nécessaires au diagnostic |
| SEC-05 | Formaliser finalités, données collectées, destinataires et durées de conservation | Registre fonctionnel des traitements et règles validés avec l’OCPV avant mise en service |
| SEC-06 | Encadrer les accès de support et le traitement des incidents | Accès nominatifs et révocables ; procédure d’alerte, de qualification et de compte rendu vérifiée |
| SEC-07 | Protéger les VPS, réseaux et interfaces d’administration | Pare-feu, accès SSH par clés et restrictions d’origine ; PostgreSQL, Redis, Swarm, Dokploy et supervision accessibles seulement selon les réseaux et droits prévus |
| SEC-08 | Sécuriser la SPA, les API et les échanges entre services | Jetons vérifiés quant à leur signature, émetteur, audience et expiration ; droits métier côté serveur ; CORS limité, CSRF pour les usages par cookie et politique de sécurité du contenu côté web |
| SEC-09 | Durcir les conteneurs et maintenir les composants | Images et dépendances versionnées, analyse des vulnérabilités, privilèges minimaux, secrets hors code, mises à jour et preuve de revue de configuration Django |
La configuration Django de production fera l’objet d’une revue dédiée : mode de débogage désactivé, hôtes autorisés explicites, secrets protégés et HTTPS correctement pris en compte derrière Traefik. Les protections XSS de l’interface Vue.js, les contrôles de fichiers et la limitation des requêtes seront testés dans leur contexte d’usage. Configuration de production Django
Le dossier de conception précisera la localisation de l’hébergement et des services tiers, les accès et les éventuels transferts de données. Les formalités applicables seront identifiées avec les responsables compétents de l’OCPV avant la mise en service. La prestation comprend les vérifications de sécurité de CIACEMS ; un audit indépendant pourra être commandé séparément.
8. Gouvernance et calendrier proposé
Le planning de référence couvre 20 semaines de réalisation initiale, à compter de la réunion de lancement et de la mise à disposition des prérequis. Les travaux correspondant aux semaines 1 à 15 ont déjà été réalisés dans le cadre du projet Agrilink-CI, initialement prévu en lieu et place d’E-Grenier ; leurs livrables (cadrage, conception, parcours accès, lots, hubs, stocks, catalogue, intégrations et documentation associées) seront intégrés et consolidés dans E-Grenier V2.1. Il reste à mener la phase finale (semaines 16 à 20), dont la livraison du MVP est visée sous une semaine à la date de mise à jour du présent document. Un référent métier OCPV et un chef de projet CIACEMS assureront le suivi opérationnel. Les disponibilités des partenaires et les arbitrages seront suivis dans un registre partagé.
| Période | Travaux | Jalon | Statut |
|---|---|---|---|
| Semaines 1 à 3 | Ateliers, diagnostic du code V2, périmètre, règles, données et partenaires | Cadrage, inventaire du code et hypothèses validés | Déjà réalisé (Agrilink-CI → intégration V2.1) |
| Semaines 4 à 5 | Plan de refonte, maquettes, architecture et plan de recette | Conception et plan de refonte validés avant les travaux concernés | Déjà réalisé (Agrilink-CI → intégration V2.1) |
| Semaines 6 à 10 | Refonte et réalisation des parcours accès, lots, hubs, stocks et catalogue ; documentation des modules | Démonstration du parcours de commercialisation et remise de sa documentation | Déjà réalisé (Agrilink-CI → intégration V2.1) |
| Semaines 11 à 14 | Refonte et intégration des paiements, échanges Info-Prix, tableaux de bord et expérimentation analytique | Intégrations et documentation disponibles en environnement de test | Déjà réalisé (Agrilink-CI → intégration V2.1) |
| Semaine 15 | Achèvement des livrables équivalents (Agrilink-CI) | Jalons intermédiaires de pilote et recette couverts | Déjà réalisé (Agrilink-CI → intégration V2.1) |
| Semaines 16 à 18 | Tests de non-régression, recette documentaire, formation, pilote et corrections | Recette métier, technique et documentaire | En cours — livraison cible : une semaine |
| Semaines 19 à 20 | Mise en service, remise du code refondu et de la documentation finale, accompagnement et transfert | Réception de la mise en service — MVP | En cours — livraison cible : une semaine |
| 12 mois après réception, durée proposée | Assistance, maintenance, visites et évolutions convenues | Bilans mensuels et revues trimestrielles | Planifié |
Une réunion opérationnelle hebdomadaire et un comité de pilotage mensuel sont proposés. Les remarques sur un livrable seront regroupées par l’OCPV, avec un objectif de retour sous cinq jours ouvrés. L’absence de retour ne vaut pas validation ; ses conséquences éventuelles sur le calendrier seront examinées conjointement.
9. Livrables et recette
| Réf. | Livrable | Contenu minimal |
|---|---|---|
| L01 | Dossier de cadrage | Périmètre, hypothèses, responsabilités, dépendances, règles et planning |
| L02 | Dossier de conception | Maquettes Vue.js, services Django/Django Ninja, données par service, topologie VPS/Swarm, flux, habilitations et sécurité |
| L03 | Plateforme et code source refondu | SPA Vue.js, services Django/Django Ninja, workers Celery, Dockerfiles, manifests Swarm/Dokploy, migrations PostgreSQL et configurations sans secrets |
| L04 | Dossier d’intégration | Authentification, paiement, Info-Prix, contrats d’échange et procédures de reprise |
| L05 | Dossier de tests et de recette | Matrice exigences–tests, résultats, anomalies, corrections et procès-verbaux |
| L06 | Dossier de déploiement et d’exploitation | VPS, Docker/Swarm/Dokploy, Traefik, Redis, Celery, supervision, sauvegardes PostgreSQL, restauration et retour de version |
| L07 | Formation et transfert | Supports, guides, sessions réalisées et évaluation des acquis |
| L08 | Rapport d’expérimentation prédictive | Qualité des données, méthode, résultats, limites et suite proposée |
| L09 | Plan de maintenance et bilan de démarrage | Support, engagements, contacts, calendrier de présence et demandes ouvertes |
| L10 | Bilans de maintenance | Incidents, interventions, évolutions, consommation des jours et état du service |
| L11 | Diagnostic du code V2 et plan de refonte | Version reçue, inventaire, règles reconstituées, dépendances, décisions par composant et scénarios de non-régression |
| L12 | Documentation technique du code refondu | Description des modules, règles, architecture, données et API ; guides de développement et de maintenance ; correspondance avec la version livrée et preuve de recette documentaire |
La recette reposera sur les critères de chaque exigence et sur des scénarios complets : enrôlement producteur, accès alternatif, lot jusqu’à l’enlèvement avec publication OCPV, rupture réseau, concurrence sur le stock, paiement retardé ou dupliqué, accès hors périmètre et restauration. Elle comprendra également les tests de non-régression des composants repris et l’exercice de prise en main de la documentation prévu par DOC-03.
Une anomalie bloquante empêche un parcours essentiel ou porte atteinte aux données ou à la sécurité. Une anomalie majeure dégrade une fonction essentielle sans solution acceptable. Une anomalie mineure permet de poursuivre l’usage. La réception exigera l’absence d’anomalie bloquante ou majeure ouverte ; les réserves mineures éventuelles seront inscrites dans un procès-verbal avec une date de correction.
Les tests seront conduits en environnement dédié, puis confirmés sur le pilote selon un protocole convenu. Les paiements de production seront limités à des opérations autorisées par les parties. L’OCPV prononcera la recette métier ; CIACEMS fournira les preuves techniques.
10. Accompagnement en présentiel et formation
La présence terrain permettra de concevoir les parcours avec les utilisateurs et d’accompagner leur appropriation. La base proposée comprend 20 journées d’intervention sur site pendant la réalisation, puis une journée par mois pendant les 12 mois de maintenance initiale.
Les 20 journées de réalisation seront réparties entre ateliers et conception — 6 journées —, préparation et conduite du pilote — 6 journées —, formation — 4 journées — et démarrage et transfert — 4 journées. Une journée correspond à une journée de présence d’au moins un intervenant CIACEMS ; les rôles mobilisés varieront selon les travaux.
Les interventions courantes se dérouleront à Abidjan. La base logistique comprend deux missions régionales de trois jours au maximum pour deux intervenants, à programmer dans les 20 journées d’intervention. Les frais de déplacement et de séjour de ces missions sont intégrés à l’offre. Les salles, la mobilisation des bénéficiaires, leurs déplacements, leurs équipements et la connectivité des sites seront organisés par l’OCPV.
La formation couvrira jusqu’à 30 agents ou référents, répartis en groupes adaptés. Elle portera sur les fonctions métier, le traitement des exceptions, l’administration et l’assistance aux utilisateurs. Un exercice pratique permettra de vérifier l’autonomie sur les tâches principales. Les référents accompagneront ensuite les producteurs et acheteurs du pilote avec l’appui de CIACEMS.
11. Maintenance évolutive et continuité de l’accompagnement
11.1 Couverture initiale proposée
La période initiale de 12 mois comprendra l’assistance, la correction des anomalies du périmètre livré, les opérations préventives, le suivi des sauvegardes et les mises à jour de sécurité compatibles avec l’architecture retenue. Les anomalies de conformité seront corrigées sans consommation de l’enveloppe d’évolutions.
Une enveloppe de 24 jours-personnes d’évolution sur 12 mois est proposée pour les améliorations des fonctions livrées : champs, formulaires, règles, rapports et adaptations mineures d’interfaces. Elle comprend l’analyse, le développement, les vérifications, la documentation et la livraison. Une journée-personne correspond à sept heures de travail. Les journées de présence mensuelle sont distinctes de cette enveloppe.
Chaque évolution sera estimée avant réalisation et priorisée par l’OCPV. Le bilan mensuel indiquera les jours prévus, réalisés et restants. Les nouveaux modules et les extensions du §2.3 feront l’objet d’un chiffrage spécifique. Le reliquat éventuel sera examiné avant la fin de la période ; il ne prolongera pas automatiquement le contrat.
11.2 Support proposé
Le support sera ouvert du lundi au vendredi, de 8 h à 17 h, heure d’Abidjan, hors jours fériés. Les délais suivants se comptent pendant ces plages et concernent la prise en charge ; l’objectif de rétablissement sera précisé après diagnostic.
| Priorité | Exemple | Prise en charge | Suivi attendu |
|---|---|---|---|
| Critique | Service indisponible ou atteinte avérée à l’intégrité d’une opération | 4 heures ouvrées | Qualification, mesure de protection ou contournement et point de situation chaque jour ouvré |
| Majeure | Parcours important dégradé | 1 jour ouvré | Plan de correction ou contournement sous 2 jours ouvrés |
| Mineure | Défaut sans blocage métier | 3 jours ouvrés | Correction planifiée dans une version convenue |
| Évolution | Amélioration ou nouveau besoin | 5 jours ouvrés | Qualification et estimation avant arbitrage |
La supervision automatique fonctionnera en continu. Une astreinte humaine permanente n’est pas comprise dans le forfait initial. Un incident dépendant d’un tiers restera suivi par CIACEMS, avec des délais de résolution liés aux engagements de ce tiers.
11.3 Évolution à long terme
Une revue trimestrielle fixera les prochaines priorités à partir des usages, des incidents et des besoins des services. À partir du neuvième mois, l’OCPV et CIACEMS prépareront le programme de l’année suivante, les moyens de présence terrain et les ressources nécessaires.
L’accompagnement se poursuivra dans le cadre d’un contrat annuel de maintenance et d’évolution à convenir avant l’échéance. La durée financée, la capacité d’évolution, les déplacements et les frais tiers seront explicités pour chaque période. La documentation et le transfert de compétences assureront la continuité des connaissances.
12. Maîtrise du système et réversibilité
Les données métier seront placées sous la maîtrise de l’OCPV. Le code des développements spécifiques, les scripts, la documentation et les procédures d’exploitation seront remis selon les dispositions du contrat. Les composants préexistants et services tiers seront inventoriés avec leurs conditions d’utilisation.
La remise comprendra un export des données dans des formats documentés, un inventaire des comptes et abonnements, les accès d’administration convenus et une procédure de déploiement. Un atelier de transfert permettra aux référents désignés de réaliser les opérations courantes. Les conditions de propriété et de droits d’usage seront formalisées avant signature.
13. Prérequis et décisions de lancement
| Sujet | Décision ou apport attendu |
|---|---|
| Pilotage | Référents métier, technique et décisionnel désignés par l’OCPV |
| Reprise du code source | Code E-Grenier V2, version de référence, accès nécessaires et éléments techniques disponibles remis à CIACEMS ; modalités d’utilisation et de modification du code confirmées |
| Pilote | Hubs, régions, filières et utilisateurs sélectionnés |
| Règles métier | Contrôle, unités, prix, réservation, paiements, annulation et enlèvement validés |
| Prestataires | Contacts, contrats, documentation, comptes de test et accès de production pour identité, SMS, paiement et Info-Prix |
| Données | Référentiels et fichiers initiaux remis et validés |
| Exploitation | Hébergeur et localisation des VPS locaux, dimensionnement, réseaux, registre d’images, stockage de sauvegarde, abonnements et financement récurrent arrêtés |
| Présence terrain | Calendrier d’intervention, logistique des sites et disponibilité des agents convenus |
| Conditions commerciales | Qualification fiscale de l’enveloppe, durée de maintenance et échéancier arrêtés dans l’offre |
Une dépendance indisponible fera l’objet d’un constat précisant les fonctions concernées, les travaux réalisables et le jalon à replanifier. Le remplacement d’un livrable par une solution transitoire nécessitera un accord écrit sur son périmètre et sa recette.
14. Validation du cahier des charges
La version retenue précisera les exigences incluses, les extensions différées, les hypothèses de dimensionnement et les engagements de service. Elle sera rattachée à l’offre technique et financière et au calendrier approuvés.
| Partie | Représentant habilité | Date et visa |
|---|---|---|
| OCPV | À renseigner | À renseigner |
| CIACEMS | À renseigner | À renseigner |
La validation portera sur une V2.1 utilisable, vérifiable et accompagnée dans la durée, avec une trajectoire d’évolution partagée entre l’OCPV et CIACEMS.