Logo Source Chimiques Logo URTECH
DOSSIER D'ARCHITECTURE & SPÉCIFICATIONS

Application Mobile de Contrôle Terrain

Système synchronisé multi-langue (FR / AR) – Source Chimiques

Stack cible : Laravel (API REST) · Angular (Back-Office) · Ionic (Mobile)
Statut : Spécifications techniques détaillées
Date : Mai 2026

1. Contexte & Objectifs

Source Chimiques souhaite équiper son équipe terrain d'une application mobile bilingue (Français / Arabe avec RTL) permettant le contrôle quotidien des points de vente du circuit traditionnel. Le système doit centraliser, dans un back-office web sécurisé, l'ensemble des données collectées (réponses, photos, vidéos, enregistrements audio, géolocalisation) pour produire des tableaux de bord, KPI régionaux, cartes et rapports analytiques à destination du management.

Objectifs métiers prioritaires

2. Périmètre Fonctionnel

2.1 Rôles et matrice de visibilité hiérarchique

Rôle Mobile Back-Office Web Périmètre de visibilité
Administrateur Lecture Total (CRUD) Toutes les régions, tous les utilisateurs, paramétrages, gestion des catégories d'articles, planification des missions, rapports.
Contrôleur terrain Saisie complète + mode offline Ses missions du jour, son historique, son tableau de bord personnel.
Superviseur Saisie de ses propres interventions + suivi (vue seule) de ses subordonnés sur carte Consultation + validation des comptes-rendus de ses subordonnés Ses propres interventions (édition) + interventions de ses contrôleurs rattachés (lecture seule).
Responsable Marketing Consultation Tableaux de bord, exports Toutes les régions (lecture analytique).
Top Management Consultation KPI globaux, exports Vue consolidée nationale, par région, par contrôleur.

2.2 Modules fonctionnels

Application mobile (Ionic / Android)

  • Cible : Android uniquement (APK signé, distribution interne ou Google Play privé).
  • Authentification sécurisée (JWT, session persistante).
  • Liste des missions du jour planifiées par l'administrateur.
  • Géolocalisation automatique au démarrage de chaque intervention.
  • Formulaire dynamique de contrôle : catégorie / marque / disponibilité.
  • Questionnaires paramétrés depuis le back-office (questions obligatoires ou facultatives, semi-ouvertes ou fermées, par point de vente ou par région).
  • Capture multimédia : Photo Vidéo Audio Texte FR نص عربي avec compression et optimisation locales sur le téléphone avant envoi afin de réduire la consommation de bande passante mobile et d'éviter le gaspillage du stockage serveur.
  • Mode hors-ligne (SQLite local chiffré) + synchronisation automatique à la reconnexion, avec pré-traitement des images et vidéos avant upload.
  • Historique personnel des interventions + tableau de bord léger.
  • Module « Vidéos guides » : tutoriels d'utilisation embarqués et téléchargeables.
  • Module « Support & Signalement » : l'utilisateur peut signaler une anomalie applicative (capture d'écran + description) directement depuis l'app, ticket envoyé au support.

Back-Office Web (Angular + Laravel API)

  • Gestion des comptes utilisateurs et des rôles.
  • Gestion du catalogue : catégories + articles (avec photos de marques).
  • Paramétrage des questionnaires : création / édition des questions, choix du type (texte, choix multiple, oui/non, observation), portée (par point de vente ou région), et caractère obligatoire ou facultatif.
  • Création et planification des missions par région et par contrôleur.
  • Visualisation des comptes-rendus liés à une mission (médias, géoloc, audio).
  • Tableaux de bord KPI : taux de disponibilité, alertes GPS, couverture régionale.
  • Cartographie temps réel des contrôleurs et des points visités.
  • Exports multi-formats : CSV Excel (XLSX) PDF — rapports périodiques et exports filtrés.
  • Gestion des tickets de support remontés depuis l'app mobile.
  • Journal d'audit (qui a fait quoi, quand, depuis où).

2.3 Cible matérielle mobile (Android)

L'application mobile est développée et optimisée exclusivement pour Android. Les contrôleurs seront équipés de smartphones répondant aux caractéristiques minimales suivantes pour garantir la fluidité, la capture multimédia et la fiabilité GPS sur le terrain.

Caractéristique Minimum requis Recommandé
Version AndroidAndroid 9 (API 28)Android 12+ (API 31)
ProcesseurOcta-core 1.6 GHzOcta-core 2.0 GHz ou plus
Mémoire vive (RAM)3 Go4 Go ou plus
Stockage interne libre16 Go32 Go ou plus
Écran5,5" — résolution HD+ (720 × 1480)6,0"+ — Full HD+ (1080 × 2400)
Appareil photo arrière8 Mpx avec autofocus13 Mpx ou plus
GPSGPS + A-GPSGPS + GLONASS + GALILEO
Connectivité4G LTE + Wi-Fi4G LTE / 5G + Wi-Fi double bande
Batterie3 000 mAh4 500 mAh ou plus
Micro & haut-parleurStandard intégréMicro avec réduction de bruit

3. Architecture de Communication Client–Serveur (Cloud)

L'architecture recommandée repose sur un modèle Cloud managé sécurisé. L'application mobile Ionic communique de façon asynchrone avec l'API REST Laravel via HTTPS / TLS Le back-office Angular consomme la même API.

flowchart LR subgraph Terrain["Terrain - Contrôleurs"] M1["Mobile Ionic 1
SQLite + Queue"] M2["Mobile Ionic 2
SQLite + Queue"] M3["Mobile Ionic 3
SQLite + Queue"] M4["Mobile Ionic 4
SQLite + Queue"] end subgraph Sup["Mobile Superviseur"] MS["Vue carte + suivi équipes"] end subgraph Cloud["Cloud managé (HTTPS / TLS 1.3)"] LB["Reverse Proxy
Nginx + WAF"] API["API Laravel
JWT - REST"] Q["File d'attente
(Jobs / Queue)"] DB[("MySQL
données métier")] S3[("Stockage objet
Photos / Vidéos / Audio")] LOG["Logs & Audit"] end subgraph BO["Back-Office Web"] NG["Angular
Dashboard / KPI / Map"] end M1 -- "Sync JSON + Médias" --> LB M2 --> LB M3 --> LB M4 --> LB MS -- "Lecture temps réel" --> LB NG -- "Admin + KPI" --> LB LB --> API API --> DB API --> Q Q --> S3 API --> S3 API --> LOG
Figure 3.1 — Topologie de la communication Mobile / Cloud / Back-Office.

3.1 Logique du mode Offline et auto-synchronisation

sequenceDiagram participant U as Contrôleur participant App as App Ionic participant DB as SQLite local participant Net as Network participant API as API Laravel participant Sto as Stockage Médias U->>App: Saisie intervention (offline) App->>DB: Enregistrement local + médias Note over App,DB: Statut = PENDING_SYNC Net-->>App: Reconnexion détectée (4G/Wi-Fi) App->>API: POST /interventions (payload JSON) API-->>App: 201 Created (id_serveur) loop Pour chaque média App->>App: Compression / redimensionnement / optimisation locale App->>Sto: Chunk upload (photo/vidéo/audio optimisé) Sto-->>App: OK + URL signée end App->>API: PATCH /interventions/{id} (URLs médias) API-->>App: 200 OK App->>DB: Statut = SYNCED
Figure 3.2 — Séquence de synchronisation différée garantissant zéro perte de donnée terrain.
Garantie de robustesse : tant qu'une intervention n'est pas marquée SYNCED, elle reste protégée dans la base SQLite locale, même en cas de fermeture de l'application ou de redémarrage du téléphone. Les uploads médias reprennent automatiquement au point d'interruption (resume upload).

4. Maquettes de l'Application Mobile (Ionic)

L'application détecte automatiquement la langue préférée (FR / AR). En mode arabe, l'interface bascule en RTL (Right-To-Left) : les menus, icônes d'action et formulaires sont inversés pour un confort de lecture optimal.

9:41 100% Mes missions du jour YF Yassine F. — Contrôleur Région : Casablanca · 12/05/2026 Supermarché Atlas Maârif · 2.3 km 10 articles à vérifier Terminé ✓ Épiciers Réunis Aïn Sebaa · 5.1 km 8 articles à vérifier En cours Drogueries du Nord Hay Hassani · 7.8 km 12 articles à vérifier À faire ⚠ Mode hors-ligne 2 interventions en attente de synchronisation 🏠 Accueil 📋 Missions 📊 KPI 👤 Profil
Écran 1 — Liste des missions (Français)
9:41 100% نموذج التحكم سوبر ماركت أطلس · المعاريف 📍 تم تحديد الموقع - 33.5731° N, 7.5898° W الفئة : منظفات 🧴 العلامة Alpha Clean ✓ متوفر 🧴 العلامة Beta Shine ✗ غير متوفر ملاحظات الموزع : طلب إعادة تموين عاجل لفئة... المرفقات : 📷 صورة 🎥 فيديو 🎙 صوت 📎 ملف حفظ التدخل ✓
Écran 2 — Formulaire de saisie multimédia (Arabe / RTL)
9:41 100% Mon tableau de bord 42 Points visités ce mois-ci 87% Taux dispo. produit moyenne région Activité par région (7j) Casa Rabat Tang. Fès Mar. Agad. Historique récent Supermarché Atlas Hier 11:42 · Synchronisé Épiciers Réunis En attente sync · 2 médias Drogueries Royale 10/05 · Synchronisé 🏠 Accueil 📋 Missions 📊 KPI 👤 Profil
Écran 3 — Tableau de bord personnel & historique

5. Maquettes du Back-Office (Angular)

Source Chimiques Contrôle Terrain · Admin 📊 Tableau de bord 🗺 Cartographie 📋 Missions & planning 📦 Catalogue articles 👥 Utilisateurs 📝 Comptes-rendus 📈 Rapports & exports ⚙ Paramètres v1.0 · Yassine F. (Admin) Tableau de bord — Mai 2026 📅 Ce mois-ci ▾ YF Interventions totales 412 ▲ +12% vs avril Taux disponibilité 86% ▲ +3 pts Alertes GPS 7 Écarts > 50 m Médias collectés 1 247 Photos · Vidéos · Audios Carte du Maroc — points de vente visités Vue consolidée des villes couvertes et nombre de visites remontées 18 Tanger 24 Fès 31 Rabat 67 Casablanca 12 Marrakech 9 Agadir 4 Oujda Villes couvertes 7 Points visités 165 Alertes GPS 4 Zone conforme / visite validée Ville prioritaire à forte activité Couverture partielle Alerte GPS Comptes-rendus récents Supermarché Atlas Casa · 11:42 · Yassine F. ✓ Validé · 3 photos · 1 audio Épiciers Maârif Casa · 10:15 · Yassine F. ⚠ Écart GPS > 50 m Drogueries du Nord Rabat · 09:50 · A. Bennani ✓ Validé · 5 photos Hyper Souk Marrakech · 09:12 · S. Idrissi ✓ Validé · 2 vidéos Disponibilité produit par région Casa Rabat Tanger Fès Marrak. Agadir Oujda Export Excel ⤓
Écran 4 — Back-Office : tableau de bord global avec KPI, cartographie temps réel, comptes-rendus récents et graphique régional.
Source Chimiques 📊 Tableau de bord 🗺 Cartographie 📋 Missions & planning 📦 Catalogue articles 👥 Utilisateurs 📝 Comptes-rendus Planification des missions — Semaine 21 + Nouvelle mission Contrôleur Lundi Mardi Mercredi Jeudi Vendredi Samedi Yassine F. Région Casa 5 PV Maârif Aïn Diab 4 PV ✓ Hay Hassani 6 PV Aïn Sebaa A. Bennani Région Rabat 3 PV Agdal 5 PV Hassan 2 PV ⚠ Non sync. S. Idrissi Région Marrakech 5 PV ✓ 4 PV ✓ 6 PV 3 PV M. Tazi Région Tanger 4 PV 3 PV ✓ 5 PV Légende : Planifié Terminé & synchronisé Alerte / non synchronisé Glisser-déposer pour réaffecter une mission à un autre contrôleur ou à un autre jour.
Écran 5 — Back-Office : planification hebdomadaire des missions par contrôleur (drag & drop), avec statuts visuels.
Source Chimiques Contrôle Terrain · Détail mission 📊 Tableau de bord 🗺 Cartographie 📋 Missions & planning 📦 Catalogue articles 👥 Utilisateurs 📝 Comptes-rendus 📈 Rapports & exports Détail d'intervention — Région Casablanca Export PDF / Excel YF Opérateur : Yassine F. Mission : Contrôle disponibilité produits — Casablanca / Maârif Point de vente : Supermarché Atlas · Date : 12/05/2026 · Heure : 11:42 Intervention validée et synchronisée Produits vérifiés 24 sur 24 attendus Disponibilité moyenne 91% 22 produits disponibles Médias joints 6 3 photos · 1 vidéo · 2 audios Écart GPS 8 m Position conforme au point visité Réponses et observations Questionnaire : • Catégorie Détergents : 8 / 8 disponibles • Catégorie Désinfectants : 6 / 8 disponibles • Catégorie Entretien sols : 8 / 8 disponibles Remarque opérateur : Rupture constatée sur 2 références désinfectants. Le gérant demande un réassort avant fin de semaine. Géolocalisation et preuve terrain 33.5731, -7.5898 · précision 8 m Région : Casablanca Ville : Maârif Heure début : 11:31 Heure fin : 11:42 Durée : 11 min Mode : Synchronisé Conformité : • Position validée • Horodatage complet Pièces jointes et médias remontés 📷 Photo rayon 1 📷 Photo rayon 2 🎥 Vidéo visite 🎙 Note vocale 1 🎙 Note vocale 2 Conclusion manager Intervention conforme Action réassort à suivre
Écran 6 — Back-Office : détail d'une intervention réalisée par un opérateur sur une région, avec KPI de mission, réponses, géolocalisation, médias et conclusion manager.

5.1 Versions Back-Office en Arabe

Source Chimiques لوحة التحكم · الإدارة لوحة القيادة 📊 الخريطة 🗺 المهام والتخطيط 📋 الأصناف والمنتجات 📦 المستخدمون 👥 التقارير الميدانية 📝 التقارير والتصدير 📈 لوحة القيادة — ماي 2026 هذا الشهر ▾ YF إجمالي التدخلات 412 ▲ زيادة 12% نسبة التوفر 86% ▲ +3 نقاط تنبيهات GPS 7 فارق أكبر من 50م الوسائط المرفوعة 1 247 صور · فيديو · صوت خريطة المغرب — نقاط البيع التي تمت زيارتها 18 طنجة 24 فاس 31 الرباط 67 الدار البيضاء 12 مراكش 9 أكادير 4 وجدة آخر التدخلات سوبر ماركت أطلس الدار البيضاء · 11:42 · ياسين تمت المصادقة · 3 صور · 1 صوت بقالة المعاريف الدار البيضاء · 10:15 تنبيه GPS توفر المنتجات حسب الجهة كازا الرباط طنجة فاس مراكش أكادير
Écran 7 — Back-Office en arabe : tableau de bord global avec KPI, carte du Maroc et dernières interventions.
Source Chimiques لوحة القيادة 📊 الخريطة 🗺 المهام والتخطيط 📋 الأصناف 📦 المستخدمون 👥 التقارير 📝 تخطيط المهام — الأسبوع 21 + مهمة جديدة المشغل الاثنين الثلاثاء الأربعاء الخميس الجمعة السبت ياسين ف. جهة الدار البيضاء 5 نقاط 4 نقاط ✓ 6 نقاط أ. بناني جهة الرباط 3 نقاط 5 نقاط تنبيه س. الإدريسي جهة مراكش 5 نقاط ✓ 4 نقاط ✓ 6 نقاط المفتاح : مخطط منجز ومتزامن تنبيه إعادة توزيع المهام بالسحب والإفلات بين المشغلين والأيام.
Écran 8 — Back-Office en arabe : planification hebdomadaire des missions.
Source Chimiques تفاصيل التدخل لوحة القيادة 📊 الخريطة 🗺 المهام والتخطيط 📋 الأصناف 📦 المستخدمون 👥 التقارير الميدانية 📝 تفاصيل التدخل — جهة الدار البيضاء تصدير PDF / Excel YF المشغل : ياسين ف. المهمة : مراقبة توفر المنتجات — الدار البيضاء / المعاريف نقطة البيع : سوبر ماركت أطلس · التاريخ : 12/05/2026 · الساعة : 11:42 تم اعتماد التدخل ومزامنته المنتجات المفحوصة 24 من أصل 24 متوسط التوفر 91% 22 منتج متوفر الوسائط المرفقة 6 3 صور · 1 فيديو · 2 صوت فارق GPS 8 م الموقع مطابق الإجابات والملاحظات الاستبيان : • فئة المنظفات : 8 / 8 متوفرة • فئة المعقمات : 6 / 8 متوفرة • فئة تنظيف الأرضيات : 8 / 8 متوفرة ملاحظة المشغل : تم رصد نقص في منتجين من فئة المعقمات. مدير المتجر طلب إعادة التزويد قبل نهاية الأسبوع. الموقع وإثبات الزيارة البداية : 11:31 النهاية : 11:42 المدة : 11 دقيقة الوضع : متزامن التحقق : • الموقع صحيح • التوقيت مكتمل المرفقات والوسائط 📷صورة 1 📷صورة 2 🎥فيديو الزيارة 🎙مذكرة صوتية 1 🎙مذكرة صوتية 2 خلاصة المدير التدخل مطابق متابعة التزويد مطلوبة
Écran 9 — Back-Office en arabe : détail d'une intervention opérateur sur une région.

6. Modèle de Données (vue logique)

erDiagram USERS ||--o{ MISSIONS : "assigné à" USERS ||--o{ INTERVENTIONS : "réalise" USERS }o--|| ROLES : "a un" USERS }o--o| USERS : "supervise (superviseur → contrôleurs)" REGIONS ||--o{ POINTS_DE_VENTE : "contient" POINTS_DE_VENTE ||--o{ MISSIONS : "ciblé par" MISSIONS ||--o{ INTERVENTIONS : "génère" CATEGORIES ||--o{ ARTICLES : "regroupe" INTERVENTIONS ||--o{ DISPONIBILITES : "relève" ARTICLES ||--o{ DISPONIBILITES : "concerne" INTERVENTIONS ||--o{ REPONSES_QUESTIONS : "répond à" QUESTIONS ||--o{ REPONSES_QUESTIONS : "structure" INTERVENTIONS ||--o{ MEDIAS : "joint" INTERVENTIONS ||--|| GEOLOCALISATION : "horodatée par" USERS { int id PK string nom string email string mot_de_passe int role_id FK int superviseur_id FK string langue } ROLES { int id PK string libelle } REGIONS { int id PK string nom } POINTS_DE_VENTE { int id PK int region_id FK string nom float gps_lat float gps_lng } MISSIONS { int id PK int user_id FK int point_de_vente_id FK date planifiee_le string statut } INTERVENTIONS { int id PK int mission_id FK int user_id FK datetime debut datetime fin string statut_sync } CATEGORIES { int id PK string libelle_fr string libelle_ar } ARTICLES { int id PK int categorie_id FK string marque string libelle string photo_url } DISPONIBILITES { int id PK int intervention_id FK int article_id FK bool disponible } QUESTIONS { int id PK string libelle_fr string libelle_ar string type string portee } REPONSES_QUESTIONS { int id PK int intervention_id FK int question_id FK string reponse } MEDIAS { int id PK int intervention_id FK string type string url string hash } GEOLOCALISATION { int id PK int intervention_id FK float lat float lng datetime captee_le float precision_m }
Figure 6.1 — Modèle entité-relation simplifié.

7. Sécurité & Conformité

8. Hébergement : Cloud managé vs Serveur local On-Premise

Le client a évoqué la possibilité d'héberger le back-office et l'API sur un serveur physique installé sur site à Source Chimiques. Cette option reste techniquement réalisable, mais comporte plusieurs risques majeurs qu'il est impératif de documenter avant toute décision.

flowchart TB subgraph CloudOpt["Option A — Cloud managé sécurisé (RECOMMANDÉE)"] direction TB M_CLD["Mobiles terrain Android
(4G / 5G / Wi-Fi)"] WEB_CLD["Postes Back-Office
(Admin / Manager)"] CDN["CDN + WAF
Anti-DDoS"] LB2["Load Balancer
Multi-zones (Multi-AZ)"] APP1["App server #1
Laravel"] APP2["App server #2
Laravel"] DB_M[("BDD primaire MySQL")] DB_R[("BDD réplica
Lecture / Failover")] OBJ[("Object storage
Médias chiffrés")] BKP[("Backups quotidiens
chiffrés - 30j")] MON["Monitoring 24/7
+ Alerting"] M_CLD --> CDN WEB_CLD --> CDN CDN --> LB2 LB2 --> APP1 LB2 --> APP2 APP1 --> DB_M APP2 --> DB_M DB_M --> DB_R APP1 --> OBJ APP2 --> OBJ DB_M --> BKP OBJ --> BKP APP1 --> MON APP2 --> MON end subgraph OnPrem["Option B — Serveur local On-Premise (Site Source Chimiques)"] direction TB M_LOC["Mobiles terrain Android"] FAI["FAI principal fibre
+ secours 4G / 2e fibre"] RT["Routeur entreprise
Dual-WAN / bascule auto
Ports 80/443 ouverts"] SW["Switch interne"] SRV["Serveur Linux local
Ubuntu + Apache + MySQL + PHP"] DSK[("Stockage local
RAID recommandé")] NAS[("NAS local
Backups planifiés")] WEB_LOC["Postes Back-Office internes"] PWR["Onduleur / UPS
à prévoir / déjà présent"] M_LOC --> FAI FAI --> RT RT --> SW SW --> SRV WEB_LOC --> SW SRV --> DSK SRV --> NAS PWR --> SRV end style CloudOpt fill:#f1f8ee,stroke:#38761d,stroke-width:2px style OnPrem fill:#fff5f1,stroke:#cc4125,stroke-width:2px
Figure 8.1 — Topologies détaillées comparées : Cloud managé (multi-zones, redondance, sauvegardes externalisées) vs On-Premise renforcé (NAS local, onduleur, routeur Dual-WAN avec secours 4G ou seconde fibre).
Important : l'option On-Premise devient plus viable si Source Chimiques dispose déjà d'un NAS pour les sauvegardes, d'onduleurs (UPS) pour protéger le serveur, et d'un basculement internet entre une fibre principale et un secours 4G ou une seconde ligne fibre. Sans ces prérequis, le risque opérationnel reste élevé.

8.1 Risques majeurs d'un déploiement On-Premise non managé

1. Vulnérabilité de sécurité réseau. L'ouverture des ports entrants (80/443) sur le routeur de l'entreprise pour permettre aux mobiles externes de se connecter expose tout le LAN aux risques DDoS, intrusions et ransomwares — sans équipe sécurité dédiée.
2. Absence d'environnement virtuel clé-en-main. Un serveur unique n'offre ni redondance, ni snapshots automatiques, ni load balancing. Un crash disque ou un composant défectueux entraîne plusieurs jours d'indisponibilité.
3. Dépendance à la connectivité internet. Si une seule ligne FAI est utilisée, une coupure bloque instantanément toute la chaîne : les contrôleurs ne peuvent plus synchroniser, le management ne reçoit plus aucun rapport, la cartographie temps réel est gelée. Ce risque peut être fortement réduit par un routeur Dual-WAN avec bascule automatique vers un modem 4G ou une seconde fibre.
4. IP dynamique & DNS. Les abonnements pro standards réinitialisent régulièrement l'adresse IP publique. Sans IP fixe (surcoût) ou DDNS bien configuré, les mobiles perdent l'URL de l'API.
5. Continuité électrique. En l'absence d'onduleur professionnel, toute micro-coupure peut arrêter la base de données et corrompre les données en cours d'écriture. Si le site est déjà équipé d'UPS / onduleurs, ce point devient maîtrisable, à condition de prévoir leur dimensionnement et leur maintenance.
6. Maintenance & mises à jour. OS, PHP, base de données, certificats SSL (renouvellement tous les 3 mois), pare-feu : la charge d'infogérance est lourde et nécessite des compétences sysadmin internes.
7. Sauvegardes locales fragiles. Une sauvegarde stockée sur le même site ne protège ni d'un vol, ni d'un incendie, ni d'un ransomware. En revanche, la présence d'un NAS permet de mettre en place des sauvegardes automatiques locales plus sérieuses ; il reste recommandé d'ajouter en complément une copie externalisée ou déconnectée.

8.2 Tableau comparatif

Critère Cloud managé (recommandé) Serveur local On-Premise
Disponibilité (SLA) Élevée (≥ 99.9 %), infrastructure redondante, basculement auto. Moyenne à bonne si NAS, UPS et secours internet sont en place ; sinon faible face aux pannes locales.
Connectivité mobile Bande passante professionnelle haute vitesse, accès direct depuis tout réseau 4G/5G. Dépend du débit montant du site ; nettement améliorée avec Dual-WAN, modem 4G de secours ou seconde fibre.
Sécurité des médias Sauvegardes chiffrées quotidiennes, stockage objet sécurisé. Correcte si stockage RAID + sauvegardes NAS ; reste plus exposée qu'un cloud managé en cas de sinistre site.
Maintenance Zéro infogérance matérielle, mises à jour transparentes. Infogérance interne nécessaire (Linux, SSL, pare-feu, BDD, NAS, réseau, supervision).
Mise à l'échelle Élastique : montée en charge automatique si l'équipe terrain s'agrandit. Limite physique du serveur, nécessite achat matériel pour évoluer.
Coût initial Variable selon la taille et les caractéristiques des serveurs, du stockage et du niveau de disponibilité demandé. Investissement matériel + NAS + onduleur + réseau de secours + éventuellement IP fixe.
Coût récurrent Mensuel et évolutif selon le sizing retenu : CPU, RAM, stockage médias, trafic, sauvegardes et monitoring. Électricité, infogérance, contrat(s) FAI, renouvellement matériel, maintenance NAS et supervision.
Exposition réseau Aucun port ouvert sur le LAN entreprise. Ports 80/443 ouverts sur le routeur → surface d'attaque.
Recommandation RECOMMANDÉ À ÉVITER sans DSI interne
Recommandation finale. Pour une PME comme Source Chimiques, dont le cœur de métier n'est pas l'infrastructure IT, l'option Cloud managé reste la plus simple à exploiter et la plus sécurisante pour garantir la continuité opérationnelle de l'application terrain, la sécurité des médias collectés et la disponibilité 24/7 du tableau de bord pour le management. L'option On-Premise reste possible si le client souhaite garder l'infrastructure sur site, mais elle doit alors être accompagnée d'un socle minimum : serveur Linux, NAS de sauvegarde, onduleurs, et bascule internet automatique.

9. Méthodologie Projet & Équipe

9.1 Approche Agile (Scrum)

Le projet sera conduit selon une méthodologie Agile / Scrum, organisée en sprints de 2 semaines avec des livraisons régulières et démontrables. Cette approche permet au client de valider les fonctionnalités au fur et à mesure et de demander des ajustements avant la fin du projet, plutôt qu'en bloc à la livraison finale.

9.2 Équipe projet mobilisée

RôleMobilisationResponsabilités
Chef de projet
(Yassine FARIS)
Toute la durée Pilotage global, interface client, planification, suivi qualité, gestion des risques.
Développeur Back-end (Laravel) Phases 2 → 6 API REST, sécurité, base de données, intégrations, performance.
Développeur Front-end (Angular) Phases 2 → 6 Back-office web, dashboards, cartographie, exports.
Développeur Mobile (Ionic / Android) Phases 2 → 6 Application Android, mode offline, capture multimédia, géolocalisation.
UI / UX Designer Phase 1 + sprints clés Maquettes, prototypes interactifs, design system FR/AR.
Testeur QA Phases 4 → 7 Tests fonctionnels, recette, tests terrain, validation finale.

9.3 Suivi de projet transparent

Pour garantir une visibilité totale au client sur l'avancement, nous mettrons en place un outil de gestion de projet partagé (Jira ou Trello selon préférence du client). Le client aura accès en lecture / commentaire à :

Le client peut donner son feedback à chaque étape clé (fin de sprint, jalon majeur) afin d'ajuster le périmètre ou les priorités sans attendre la livraison finale.

10. Formation & Accompagnement

Une formation complète est prévue pour garantir une adoption rapide et efficace de la solution par l'ensemble des profils utilisateurs.

Public cibleFormatDuréeContenu
Administrateurs Présentiel + en ligne 1 journée Gestion comptes, catalogue, paramétrage questionnaires, planning, exports, audit.
Top Management & Marketing En ligne (visio) ½ journée Lecture des KPI, dashboards, cartographie, exports CSV/Excel/PDF.
Superviseur Présentiel ½ journée Suivi équipe, validation comptes-rendus, traitement des alertes GPS.
Contrôleurs terrain Présentiel sur le terrain 1 journée Prise en main mobile (FR + AR), mode offline, capture multimédia, synchronisation.

Livrables d'accompagnement inclus :

11. Planning Prévisionnel & Jalons

La durée totale estimée du projet est de 3 mois, organisée en 6 sprints de 2 semaines, afin d'intégrer convenablement les cycles de développement, les tests, la recette terrain et les retours du client à chaque jalon important.

Phase Période Durée Jalon / Livrable
Phase 1 — Cadrage & conception Sprint 1 2 semaines Validation des maquettes, du modèle de données et des questionnaires.
Phase 2 — Développement socle Sprints 2 à 3 4 semaines API Laravel, base de données, sécurité, structure back-office.
Phase 3 — Développement fonctionnel Sprints 4 à 5 4 semaines Back-office Angular, application mobile Android, offline, multimédia, exports.
Phase 4 — Recette, feedback, formation & mise en production Sprint 6 2 semaines Tests finaux, intégration des retours client, corrections, formation des utilisateurs, livraison et démarrage.
gantt title Planning prévisionnel — Application Contrôle Terrain (3 mois) dateFormat YYYY-MM-DD axisFormat S%V section Sprint 1 Cadrage & maquettes :a1, 2026-06-01, 2w section Sprints 2-3 API Laravel & socle technique :a2, after a1, 4w section Sprints 4-5 Back-office + mobile Android :a3, after a2, 4w section Sprint 6 Recette, feedback & livraison :a4, after a3, 2w
Figure 11.1 — Diagramme de Gantt prévisionnel du projet sur 3 mois.

12. Plan Tarifaire

La proposition financière pour la réalisation complète du projet, incluant la conception, le développement, la mise en production, la formation et l'accompagnement initial, est fixée à :

Total projet : 180 000 DHS HT

Le montant de 180 000 DHS HT n'inclut pas l'abonnement d'hébergement Cloud récurrent, ni les coûts d'infrastructure mensuels associés au serveur, au stockage, aux sauvegardes et à la supervision.

Toute demande complémentaire en dehors du périmètre prévu devra faire l'objet d'un réajustement budgétaire. Cela concerne notamment une version iOS, des intégrations ERP tierces, des connecteurs spécifiques, des workflows additionnels, ou encore une exigence forte de compression des délais. Dans ce cas, l'offre devra être revue à un niveau de prix supérieur, en fonction de la charge additionnelle et du niveau d'engagement attendu.

Ce montant couvre donc l'intégralité du périmètre fonctionnel et technique décrit dans ce document, et uniquement ce périmètre.

En cas d'hébergement Cloud, le coût mensuel d'infrastructure dépendra du sizing réel retenu : nombre de serveurs Linux, CPU, mémoire RAM, capacité de stockage des médias, niveau de sauvegarde, trafic réseau et supervision souhaitée. Ce poste sera calibré définitivement au moment du déploiement selon la volumétrie réelle et le niveau de disponibilité attendu.

13. Conclusion

La stack Laravel + Angular + Ionic couvre l'intégralité des exigences exprimées dans le cahier des charges initial : multilinguisme FR/AR avec RTL natif, capture multimédia riche, géolocalisation, mode hors-ligne avec synchronisation différée, back-office hiérarchique avec KPI, cartographie et exports. Compte tenu des risques sévères associés à un hébergement physique local non managé (réseau, électricité, sauvegardes, IP), nous recommandons formellement le déploiement sur Cloud managé sécurisé afin de garantir au client une solution robuste, scalable et opérationnelle 24/7.

— Fin du document — Application Mobile de Contrôle Terrain · Source Chimiques · Mai 2026 —