Interface de Gestion Commerciale et Comptable

Un outil de suivi des paiements et de la facturation

Contexte du projet

Dans le cadre d’un projet personnel, j'ai conçu une application web permettant à une PME de gérer ses activités commerciales et comptables de manière centralisée.

Type de projet : Projet éducatif personnel
Durée : 10 semaines
Contraintes : Simplicité d’utilisation, respect des règles comptables, interface intuitive, base de données relationnelle

L’objectif était de proposer une solution sur mesure qui remplace les tableurs Excel utilisés jusque-là, avec une automatisation des factures, du suivi client, et un accès sécurisé aux données.

  • Gestion des clients, devis, factures, règlements
  • Suivi des paiements
  • Interface sécurisée par authentification
  • Import / Export Excel pour les documents comptables

Méthodes de travail et résultats obtenus

Analyse et conception

J'ai commencé par recueillir les besoins du client fictif à travers un cahier des charges détaillé, ce qui m’a permis de définir clairement les attentes fonctionnelles et techniques du projet. Cette étape s’est traduite par :

  • La création de diagrammes UML : cas d’utilisation, classes et séquences.
  • La modélisation de la base de données relationnelle avec MySQL.
  • Le choix de l’architecture technique : un environnement full-stack basé sur PHP, HTML/CSS, JavaScript et MySQL.

Développement et intégration

Le développement de l’application s’est déroulé de manière itérative, avec des phases successives de maquettage, de codage et de tests. Parmi les principales réalisations :

  • Une page d’accueil avec tableau de bord dynamique, affichant les informations du compte, les données bancaires, et le suivi des paiements.
  • Une interface fluide pour la génération et l’exportation de fichiers Excel (.xlsx) via JavaScript. Les données sont extraites dynamiquement du tableau HTML et converties au format XLSX grâce à la bibliothèque XLSX.js.
  • Une fonctionnalité complète pour l’importation de données à partir de fichiers Excel, qui permet aux utilisateurs de mettre à jour la base sans saisie manuelle. L’import repose sur une interaction entre JavaScript et PHP, utilisant PHPExcel pour le traitement côté serveur.
Interface de gestion commerciale

Outils et technologies utilisés :

  • PHP (programmation orientée objet)
  • MySQL (conception relationnelle)
  • HTML5 / CSS3 / JavaScript JQuery
  • PHPExcel pour l’import XLSX
  • GitHub pour le versioning

Chiffrement des données

Dans le cadre de la gestion commerciale et comptable, certaines informations sensibles comme les coordonnées bancaires (IBAN, BIC), les numéros de mandat ou les identifiants clients nécessitent une protection renforcée. Pour répondre à cet enjeu de sécurité, un système de chiffrement asymétrique RSA a été mis en place.

Pourquoi chiffrer les données ?

Le chiffrement permet de garantir :

  • La confidentialité : seules les personnes autorisées peuvent consulter les données en clair via l’application.
  • L’intégrité : toute tentative de modification non autorisée est détectable.
  • La sécurité en cas de fuite : même si des données sont compromises, elles restent illisibles sans la clé privée.

Fonctionnement du chiffrement

  • Les données sensibles sont chiffrées avec une clé publique grâce à openssl_public_encrypt().
  • Elles sont ensuite encodées en base64 pour être stockées facilement dans la base de données.
  • Lors de la consultation, les données sont déchiffrées avec une clé privée via openssl_private_decrypt(), chargée de manière sécurisée avec un mot de passe.

Ce mécanisme garantit que seule l’application, ou un utilisateur autorisé disposant de la clé privée, peut accéder aux informations sensibles.

function chiffrer($chaine){
$public_key = openssl_pkey_get_public('file://./chiffrement/pb.pem');
openssl_public_encrypt($chaine, $chaineChiffree, $public_key);
return base64_encode($chaineChiffree);
}

Intégration dans l’application

Le chiffrement a été intégré directement dans les flux de traitement :

  • À l’importation d’un fichier Excel, les champs critiques sont automatiquement détectés et chiffrés avant insertion en base.
  • Lors de la modification d’un champ sensible depuis l’interface, la nouvelle valeur est chiffrée en temps réel.
  • À l’affichage, les données sont automatiquement déchiffrées pour être lisibles par l’utilisateur, sans altérer la fluidité de l’expérience.

Cette gestion automatisée du chiffrement et du déchiffrement permet de concilier sécurité maximale et simplicité d’utilisation.

Import / Export de données

L’un des enjeux majeurs du projet était de permettre une interaction directe entre l’application et d’autres outils comme Excel.

  • Export des données
    • Les données du tableau HTML sont analysées ligne par ligne en JavaScript.
    • Les contenus des cellules sont extraits (textes simples ou listes déroulantes).
    • Ces données sont ensuite converties en une feuille Excel via XLSX.utils.aoa_to_sheet, puis insérées dans un classeur (book_new).
    • Le fichier généré (table_facturation.xlsx) est automatiquement téléchargé par l’utilisateur.
  • Import des données
    • Un bouton dédié déclenche un script JavaScript qui lit le fichier Excel sélectionné.
    • Le fichier est envoyé à un script PHP via AJAX avec FormData.
    • Côté serveur, PHPExcel analyse les données de la feuille, identifie les colonnes pertinentes, et les insère en base après filtrage, conversion et chiffrement si nécessaire.
    • Les doublons sont évités grâce à une requête INSERT IGNORE.
Interface de gestion commerciale import

Résultats

Le client (ici, un membre de mon entourage) a pu assister à une démonstration d'une version entièrement fonctionnelle de l'application. L'organisation de l’interface, la clarté du tableau de bord et la souplesse de l’import/export Excel ont été particulièrement saluées. Le projet répond efficacement aux besoins de gestion commerciale et de portabilité des données.

Apprentissages réalisés

Apprentissages techniques

Ce projet m’a permis de renforcer plusieurs domaines clés :

Développement full stack

Création d’une application complète, de la base de données à l’interface utilisateur.

Modélisation de données

Construction d’un schéma relationnel solide, normalisation des tables et requêtes SQL avancées.

Gestion d’authentification

Mise en place d’un système sécurisé avec sessions PHP et rôles utilisateur.

Génération dynamique de documents

Création de documents PDF à la volée avec FPDF en fonction des données stockées.

Sécurisation

Chiffrement RSA de données sensibles

Compétences travaillées

Ce projet a permis de consolider les compétences suivantes :

Développement web

PHP HTML/CSS JavaScript (JQuery) PHP Excel

Base de données

MySQL Modélisation SQL Requêtes

Gestion de projet

Cahier des charges Planification