DCG - Dossier de Conception Générale Arpelin

1. Objectif du document

Ce document a pour but de présenter l'architecture globale du CMS Arpelin, son environnement technique, sa cartographie fonctionnelle, et les éléments ayant un impact sur la conformité NF525 - Logiciel Gestion de l'Encaissement.

Le DCG constitue le référentiel technique du logiciel Arpelin dans le cadre de la certification NF525, conformément aux exigences du paragraphe 4.3.1 du référentiel.


2. Présentation d'Arpelin

2.1. Description générale

Arpelin est un CMS (Content Management System) cloud, accessible via navigateur web, permettant à tout client de créer et gérer un site web sans installation locale. Le CMS est entièrement hébergé sur un VPS maintenu par l'éditeur.

2.2. Positionnement fonctionnel

Arpelin combine les fonctionnalités d'un CMS traditionnel avec des modules de commerce électronique et de gestion de caisse conformes NF525 :

  • Création et gestion de contenu web

  • Boutique en ligne avec paiement sécurisé

  • Caisse enregistreuse web

  • Bornes de commande automatisées

  • Gestion complète des encaissements

2.3. Modèle de distribution

  • Hébergement : SaaS (Software as a Service)

  • Accès : Interface web sécurisée HTTPS

  • Maintenance : Centralisée par l'éditeur

  • Déploiement : Mutualisé avec isolation des données clients


3. Environnement technique

3.1. Infrastructure d'hébergement

  • Hébergeur : OVH SAS

  • Type : VPS dédié

  • Système d'exploitation : Ubuntu 24.04.2 LTS (GNU/Linux 6.8.0-60-generic x86_64)

  • Architecture : x86_64

3.2. Stack technique

  • Serveur web : Nginx 1.24

  • Langage serveur : PHP 8.3

  • Base de données : MariaDB 10.11.13 (MySQL compatible)

  • Chiffrement : HTTPS/TLS obligatoire

  • Gestion de version : Git local

3.3. Architecture mutualisée

Tous les clients partagent un répertoire de code commun (CMS), les données clients sont isolées logiquement par base de données MySQL séparée. Chaque client dispose :

  • D'une base de données dédiée avec identifiant propre

  • D'un répertoire d'assets personnalisés

  • D'un accès conditionné par nom de domaine

  • D'une séparation stricte des données utilisateurs

  • D'une traçabilité complète des actions dans chaque instance


4. Architecture détaillée

4.1. Structure des répertoires

/var/www/
├── _main/              ← Code CMS commun (versionné Git)
│   ├── core/           ← Fonctions principales
│   ├── modules/        ← Modules fonctionnels
│   ├── themes/         ← Templates d'affichage
│   └── api/            ← Interfaces API
├── _files/             ← Scripts privés PHP (versionné Git)
│   ├── config/         ← Configurations système
│   ├── security/       ← Fonctions sécurité
│   ├── database/       ← Accès base de données
│   └── payments/       ← Gestion paiements
├── cms_client1/        ← Instance client 1
│   ├── index.php       ← Point d'entrée
│   ├── images/         ← Fichiers client
│   └── pages/          ← Pages personnalisées créées
├── cms_client2/        ← Instance client 2
└── .git/               ← Dépôt Git (gestion versions)

4.2. Architecture réseau

Internet
    ↓ HTTPS/TLS
[Nginx Load Balancer]

[PHP-FPM 8.3]

[MariaDB 10.11]

[Stockage VPS OVH]

4.3. Bases de données

  • Convention nommage : cms_domaine-client_fr, cms_domaine-client2_com, cms_domaine-clientX_org

  • Taille type : ~5 MB par client actif

  • Accès : Résolution automatique via domaine appelé

  • Isolation : Base dédiée par client, pas de données partagées

  • Sauvegarde : Dump SQL quotidien de chaque base


5. Cartographie fonctionnelle

5.1. Modules principaux

5.1.1. Gestion du contenu

  • Création de pages statiques et dynamiques

  • Gestion des menus de navigation

  • Édition de blocs de contenu

  • Gestion des médias (images, documents)

  • Optimisation SEO intégrée

5.1.2. Gestion des utilisateurs

  • Système d'authentification sécurisé

  • Gestion des rôles et permissions

  • Mode invité pour navigation publique

  • Sessions sécurisées (8 heures)

5.1.3. Commerce électronique

  • Réservation en ligne : Système de booking

  • Commande en ligne : Intégration Stripe/Stancer/Offline

  • Gestion des articles : Catalogue produits

  • Panier dynamique : Gestion temps réel

5.1.4. Paramétrage général

  • Configuration de l'identité visuelle (logo, couleurs)

  • Gestion de l'identification de l'entreprise

  • Paramètres SEO avancés

  • Configuration des moyens de paiement

5.1.5. Statistiques et reporting

  • Statistiques des ventes en temps réel

  • Rapports de performance

5.2. Modules conformes NF525

5.2.1. Caisse enregistreuse web ⭐

  • Interface caissier intuitive

  • Calcul automatique TVA (défini au préalable sur les articles)

  • Génération tickets horodatés

  • Gestion moyens de paiement multiples

  • Traçabilité complète des transactions

5.2.2. Clôtures de caisse ⭐

  • Clôtures automatiques : Programmées (quotidiennes, mensuelles, anuelles)

  • Clôtures manuelles : À la demande du manager ou de l'administrateur (sur période personnalisée)

  • Récapitulatifs détaillés par période

  • Archivage automatique des données

5.2.3. Bornes de commande ⭐

  • Interface client autonome

  • Intégration avec la caisse centrale

  • Validation automatique des commandes

  • Synchronisation temps réel


6. Performances et Dimensionnement

6.1. Capacité serveur

  • Clients simultanés maximum : 50 par VPS

  • Sessions PHP : Durée de vie 8 heures

  • Architecture : Scalable horizontalement (ajout VPS supplémentaires)

  • Temps de réponse : < 2 secondes pour les opérations courantes

6.2. Dimensionnement base de données

  • Taille moyenne par client : ~5 MB (client type avec quelques mois d'activité)

  • Isolation : Une base de données MySQL dédiée par client

  • Croissance estimée : Variable selon activité client

  • Optimisation : Index sur tables critiques (transactions, logs, closures)

6.3. Métriques de référence

  • Client type : 4.77 MB (activité e-commerce quelques mois)

  • Capacité VPS : 50 clients simultanés maximum

  • Temps session : 8 heures pour maintenir continuité caisse

  • Rétention backup : 7 jours (conformité opérationnelle)


7. Sauvegarde et Continuité

7.1. Stratégie de sauvegarde

  • Fréquence : Quotidienne via script cron automatisé

  • Contenu : Données clients (bases MySQL) + pages créées + images importées

  • Rétention : 7 jours glissants

  • Localisation : VPS OVH (stockage local sécurisé)

  • Format : Dumps SQL compressés + archive fichiers

7.2. Procédure de restauration

  • Méthode : Import manuel des dumps SQL de sauvegarde

  • Temps de restauration : Selon taille base client (quelques minutes)

  • Validation : Vérification fonctionnelle post-restauration

  • Documentation : Procédure détaillée disponible

  • Tests : Validation mensuelle des sauvegardes

7.3. Plan de continuité

  • RTO (Recovery Time Objective) : 4 heures maximum

  • RPO (Recovery Point Objective) : 24 heures maximum

  • Escalade : Contact éditeur 24h/24 en cas d'urgence

  • Communication : Information clients via canaux dédiés


8. Sécurité et Monitoring

8.1. Authentification et accès

  • HTTPS : Certificat SSL/TLS obligatoire pour tous les accès

  • Authentification : Mot de passe sécurisé par client/caissier

  • Sessions : Durée 8h avec régénération automatique

  • Accès base : Accès distant possible avec identifiants phpMyAdmin

  • Chiffrement : Données sensibles chiffrées en base

8.2. Isolation des données

  • Séparation physique : Base MySQL dédiée par client

  • Accès conditionnel : Résolution par nom de domaine

  • Logs d'audit : Traçabilité complète dans table 'logs'

  • Permissions : Droits granulaires par utilisateur

  • Conformité RGPD : Gestion des données personnelles

8.3. Monitoring et surveillance

  • Charge serveur : Surveillance via htop (ligne de commande)

  • Base de données : Monitoring via interface phpMyAdmin

  • Logs système : Centralisation et analyse

  • Alertes : Surveillance manuelle de la performance, e-mail reçu lorsque stockage VPS presque plein

  • Maintenance : Intervention réactive selon besoins


9. Modèle conceptuel de données

9.1. Tables principales

Table
Description
Rôle NF525

Users

Gestion des utilisateurs et caissiers

Traçabilité des actions

Commandes

Intentions de paiement (payées et non payées)

Base des transactions

Transactions

Commandes validées et archivées

Données certifiées

Totals

Total perpétuel des encaissements

Contrôle de cohérence

Panier_utilisateur

Paniers en cours (caissiers et clients)

Gestion temps réel

Logs

Historique des modifications et suppressions

Audit NF525

Closures

Clôtures manuelles et automatiques

Archivage NF525

Categories

Catégories des articles

Organisation catalogue

Articles

Catalogue produits et services

Base commerciale

Archives

Références des archives créées sur VPS

Traçabilité NF525

9.2. Relations critiques NF525

Articles → Panier_utilisateur → Commandes → Transactions

                                  Logs (audit)

                                  Closures → Archives

9.3. Contraintes d'intégrité

  • Transactions : Non modifiables après validation

  • Logs : Ajout uniquement (pas de modification/suppression)

  • Closures : Horodatage automatique et figé

  • Archives : Références immuables des fichiers générés


10. Gestion des flux d'interfaces

10.1. Interfaces externes

Le CMS Arpelin ne expose pas d'API publique, mais communique avec :

  • Stripe API : Paiements par carte bancaire en ligne.

  • Stancer API : Paiements par carte bancaire en ligne.

  • Sumup : Paiements par carte bancaire en personne.

  • Smile&Pay : Paiements par carte bancaire en personne.

  • Webhooks : Retours automatiques de validation

10.2. Flux d'échange sécurisés

Tous les flux d'échange sont journalisés :

  • Validation de commande

  • Confirmation de paiement

  • Retour webhook des passerelles

  • Mise à jour statuts en base client

10.3. Format des données

  • API REST : JSON pour les échanges

  • Chiffrement : HTTPS/TLS pour tous les flux

  • Authentification : Clés API sécurisées

  • Logs : Horodatage et traçabilité complète


11. Modules impactés par la conformité NF525

11.1. Périmètre de certification ⭐

Caisse enregistreuse web

  • Génération automatique de tickets numérotés et horodatés

  • Tickets non modifiables après validation

  • Traçabilité complète des opérations

  • Gestion TVA automatique et conforme

Bornes de commande

  • Intégration avec la caisse centrale

  • Processus de validation identique

  • Archivage selon même processus

  • Synchronisation temps réel des données

11.2. Exigences respectées

Ces modules sont soumis aux exigences de :

  • Traçabilité : Table logs + horodatage

  • Inaltérabilité : Données figées post-validation

  • Clôture : Automatique et manuelle

  • Archivage : Conservation données conformément à la réglementation

11.3. Processus de conformité

  1. Encaissement → Enregistrement table transactions

  2. Validation → Génération ticket horodaté

  3. Archivage → Stockage immutable

  4. Clôture → Récapitulatif période + archive

  5. Audit → Accès logs complets via table logs et JET


12. Évolutions et Maintenance

12.1. Gestion des versions

  • Git : Versioning du code source (_main et _files)

  • Tags : Versions stables horodatées

  • Déploiement : Mise à jour centralisée

  • Rollback : Retour version antérieure possible

12.2. Maintenance préventive

  • Mises à jour sécurité : Automatiques (OS, PHP)

  • Optimisation base : Mensuelle

  • Nettoyage logs : Selon politique rétention

  • Tests fonctionnels : Avant chaque déploiement

12.3. Support et évolutions

  • Hotline : Support technique dédié

  • Évolutions : Roadmap produit documentée

  • Formation : Accompagnement utilisateurs par téléphone, sur place ou via des vidéos tutoriels

  • Documentation : Mise à jour continue


13. Conformité et Audit

13.1. Traçabilité NF525

  • Logs complets : Toutes actions tracées

  • Horodatage : Précision à la seconde

  • Immutabilité : Données figées après validation

  • Archivage : Conservation réglementaire

13.2. Procédures d'audit

  • Accès données : Via interface dédiée

  • Extraction : Exports conformes aux standards (Jet .CSV)

  • Vérification : Cohérence données garantie via empreinte numérique et contrôle intégrité

  • Documentation : Procédures formalisées

13.3. Mise à disposition administration

En cas de contrôle fiscal ou demande administrative :

  • Documentation technique : DCG complet

  • Accès aux données : Via outils d'extraction

  • Logs d'audit : Historique complet disponible

  • Support : Accompagnement procédures


Document établi dans le cadre de la certification NF525 Version : 2.0 Responsable : Emre KOSE

Last updated