MEMOIRE EN VUE DE l’OBTENTION DE
LICENCE PROFESSIONNEL
Spécialité : Génie Logiciel
THEME : Développement d’une application de
messagerie sous Android
Rédigé et présenté par :
NDONG NDONG Gédéon
Encadreur professionnel :
Dr Eugène PAMBA CAPO-
CHICHI
Année Universitaire : 2021-2022
Remerciement
En premier lieu nous tenons à remercier Dieu tout puissant qui nous a
donné le courage et la patience d’accomplir ce modeste travail.
Nous tenons aussi à exprimer nos gratitudes et notre sincère
reconnaissance envers notre encadrant académique Dr. Capo chichi
pour sa confiance et les connaissances qu’il a su partager avec nous.
On le remercie aussi pour sa disponibilité et la qualité de son
encadrement durant la période d’élaboration de ce projet.
Un grand Merci à nos parents, pour leurs conseils ainsi que leur
soutien moral et économique. Nous désirons aussi remercier
vivement tous les membres de jury. Sans oublier nos chers amis pour
leur encouragement et leur soutient.
Table des matières
1 introduction....................................................................................................................................5
1.1 Contexte et Problématique....................................................................................................5
1.2 Objectifs du Projet..................................................................................................................5
1.3 Méthodologie Adoptée..........................................................................................................5
1.4 Structure du Rapport..............................................................................................................5
2 Présentation de l’Entreprise...........................................................................................................6
2.1 Historique et Activité Principale.............................................................................................6
2.2 Organigramme et Structure Organisationnelle.......................................................................6
2.3 Enjeux Technologiques et Besoin de Modernisation..............................................................6
3 État des Lieux du Système Existant................................................................................................7
3.1 Description du Logiciel de Gestion Actuel..............................................................................7
3.2 Analyse des Besoins pour la Migration vers le Web...............................................................7
4 Étude des Technologies et Outils Existants....................................................................................8
4.1 Critères de Sélection des Technologies..................................................................................8
4.2 Comparaison des Options Technologiques.............................................................................8
4.3 Choix des Outils et Frameworks.............................................................................................8
5 Conception du Nouveau Système Web..........................................................................................9
5.1 Architecture du Système........................................................................................................9
5.2 Modélisation des Données.....................................................................................................9
5.3 Interfaces Utilisateur..............................................................................................................9
5.4 Diagramme de Séquence et Cas d'Utilisation.......................................................................10
6 Implémentation du Nouveau Système.........................................................................................10
6.1 Développement Backend avec Laravel.................................................................................10
6.2 Développement Frontend avec HTML/CSS et JavaScript.....................................................10j
6.3 Tests Unitaires et d’Intégration............................................................................................10
6.4 Déploiement et Configuration du Serveur............................................................................11
7 Résultats et Analyses....................................................................................................................11
7.1 Performances du Système....................................................................................................11
7.2 Retour des Utilisateurs.........................................................................................................11
7.3 Analyse Comparée : Ancien et Nouveau Système................................................................11
8 Conclusion et Perspectives...........................................................................................................12
8.1 Conclusion............................................................................................................................12
8.2 Limites du Projet...................................................................................................................12
8.3 Perspectives d’Évolution.......................................................................................................12
1 introduction
1.1 Contexte et Problématique
Le logiciel actuel de gestion de la scierie, MegaScierie, a été initialement développé à l’aide
d’une technologie vieillissante : un langage de quatrième génération (4GL) combiné à une
base de données Oracle. Ce choix technologique, bien qu’adéquat à l'époque, pose aujourd'hui
plusieurs problèmes qui freinent l’évolution des opérations de l’entreprise.
Premièrement, l’architecture client-serveur limite l’accessibilité du logiciel aux seuls postes
de travail locaux. De plus, la maintenance du système est devenue de plus en plus complexe
avec le temps, en raison de la rareté des compétences techniques disponibles pour maintenir
un environnement basé sur une technologie obsolète.
Dans un contexte où la modernisation des outils est nécessaire pour répondre aux exigences
de flexibilité et de performance, l’entreprise fait face à la nécessité de refondre son logiciel.
La refonte en version web permettra non seulement d’améliorer l’accessibilité du logiciel,
mais aussi de garantir une meilleure évolutivité et une performance accrue à long terme.
1.2 Objectifs du Projet
Ce projet a pour objectif de refondre le logiciel MegaScierie en une version web moderne afin
d'améliorer son accessibilité, sa flexibilité, et de réduire les coûts de maintenance. Les fonctionnalités
existantes telles que la saisie des grumes, le transport et la facturation seront migrées vers une
nouvelle architecture web, basée sur des technologies récentes et robustes. L’accent sera également
mis sur l'optimisation de l’interface utilisateur et la simplification des processus pour les utilisateurs
finaux.
1.3 Méthodologie Adoptée
Pour mener à bien ce projet, une approche Agile a été adoptée. Cette méthode favorise un
développement itératif, où les fonctionnalités sont mises en œuvre par cycles courts (sprints) avec
des validations régulières des utilisateurs finaux. Cela permet d'ajuster le projet en fonction des
besoins émergents et de garantir une satisfaction utilisateur optimale.
1.4 Structure du Rapport
Le présent rapport est structuré de manière à présenter chaque étape du projet, depuis l’analyse du
système actuel jusqu’à la mise en œuvre de la nouvelle version web. Les chapitres suivants détaillent
l’entreprise et son système existant, l’étude des technologies, la conception du nouveau système, la
mise en œuvre du projet, et se terminent par une analyse des résultats obtenus et des perspectives
d’évolution.
2 Présentation de l’Entreprise
2.1 Historique et Activité Principale
L’entreprise MEGASOFT INTERNATIONAL GABON SARL opère dans le secteur de la gestion des scieries.
Fondée en 2001, elle est spécialisée dans la gestion du transport, de la facturation et du suivi des
produits de bois, notamment les grumes et les produits débités. Sa mission principale est de fournir des
solutions de gestion efficaces et adaptées aux besoins spécifiques de l'industrie forestière.
2.2 Organigramme et Structure Organisationnelle
L’organigramme de l’entreprise se compose principalement d’un directeur général, d’un responsable de
production, d’un département informatique, ainsi que des chefs d’équipe dédiés à la gestion des scieries
et au suivi logistique. Ces différents acteurs collaborent pour assurer le bon déroulement des opérations.
2.3 Enjeux Technologiques et Besoin de Modernisation
L'entreprise fait face à une concurrence accrue dans le secteur, ce qui nécessite une optimisation
constante de ses processus internes. Le logiciel actuel, bien que fonctionnel, présente des lacunes en
matière de flexibilité et d’accessibilité. Une modernisation est indispensable pour maintenir la
compétitivité de l’entreprise, améliorer la productivité des équipes, et garantir une meilleure accessibilité
pour les utilisateurs distants.
3 État des Lieux du Système Existant
3.1 Description du Logiciel de Gestion Actuel
Le logiciel MegaScierie, développé en 4GL avec Oracle, gère plusieurs fonctions clés telles que la
saisie des grumes, le transport, la facturation et la consultation des stocks. Cependant, son interface
est vieillissante et rigide, rendant difficile l'adaptation aux nouvelles exigences des utilisateurs. De
plus, l’architecture client-serveur limite l’accès au logiciel à certains postes de travail, ce qui
représente un frein important dans un contexte de mobilité croissante.
3.2 Analyse des Besoins pour la Migration vers le Web
La migration vers une version web répond à plusieurs besoins :
Accessibilité à distance : permettre aux utilisateurs de se connecter depuis n’importe
quel appareil et lieu.
Meilleure gestion des données : centraliser et sécuriser les données pour en faciliter
l’exploitation.
Flexibilité et évolutivité : permettre des mises à jour et des évolutions plus rapides
pour répondre aux besoins changeants des utilisateurs.
4 Étude des Technologies et Outils Existants
4.1 Critères de Sélection des Technologies
Les technologies choisies pour ce projet doivent répondre à plusieurs critères :
Sécurité : garantir la confidentialité et l’intégrité des données.
Robustesse : assurer une continuité de service sans interruption.
Facilité de maintenance : permettre aux équipes de maintenir facilement le logiciel
sans compétences techniques spécifiques.
Coût : privilégier des technologies à faible coût ou open-source.
Support communautaire : favoriser les technologies disposant d’un large soutien
communautaire pour faciliter les résolutions de problèmes.
4.2 Comparaison des Options Technologiques
En ce qui concerne la base de données, MySQL a été préféré à Oracle pour sa simplicité d’utilisation,
ses coûts moindres, et sa compatibilité avec les systèmes modernes. Pour la logique métier, le choix
s’est porté sur PHP/Laravel en raison de sa flexibilité et de sa popularité dans le développement
d’applications web. Pour le frontend, HTML/CSS est combiné à des frameworks JavaScript pour
assurer une expérience utilisateur fluide et interactive.
4.3 Choix des Outils et Frameworks
Backend : PHP/Laravel a été choisi pour gérer la logique métier.
Base de données : MySQL, pour la gestion des données centralisées.
Frontend : HTML/CSS pour la structure et la mise en forme, avec l’ajout de
JavaScript pour des interactions dynamiques.
5 Conception du Nouveau Système Web
5.1 Architecture du Système
La nouvelle version du logiciel MegaScierie sera basée sur une architecture trois tiers (3-tier)
composée de trois couches distinctes :
1. Présentation (Frontend) : Cette couche est responsable de l’interface utilisateur,
conçue en HTML/CSS et JavaScript. Elle permet à l’utilisateur d’interagir avec le
système via un navigateur web.
2. Logique Métier (Backend) : Cette couche gère toutes les règles métier et la logique
applicative. Elle est développée en PHP avec le framework Laravel pour garantir
modularité, évolutivité et sécurité.
3. Base de Données (Database) : La couche de base de données repose sur MySQL, où
toutes les données relatives aux grumes, produits débités, factures, et rapports sont
stockées.
Cette architecture offre une meilleure séparation des préoccupations, permettant une
maintenance simplifiée et des mises à jour plus rapides
5.2 Conception de la base de données
La base de données est au cœur de l'application, permettant de stocker et de gérer toutes les
informations relatives aux opérations de la scierie, des stocks aux factures, en passant par la gestion
des grumes et des produits débités. Voici un aperçu de la démarche suivie pour concevoir une base
de données sécurisée et performante.
[Link] Analyse des besoins
La première étape de la conception de la base de données consiste à analyser les besoins
fonctionnels de l’application, basés sur les fonctionnalités identifiées :
Saisie de grumes
Données nécessaires : Numéro d’identification, origine, essence, dimensions, poids,
date d’entrée, fournisseur, site de dépôt.
Objectif : Enregistrer les informations de chaque grume pour suivi et gestion.
Transport de grumes
Données nécessaires : Numéro de grume, date de transport, transporteur, lieu
d’origine et de destination.
Objectif : Suivre le déplacement des grumes jusqu’à leur lieu de traitement.
Saisie des produits débités
Données nécessaires : Numéro de produit débité, essence, dimensions, quantité, date
de production.
Objectif : Enregistrer chaque produit issu du débit pour suivi et gestion des stocks.
Transport des produits débités
Données nécessaires : Numéro de produit débité, transporteur, date de transport, site
de destination.
Objectif : Suivre le déplacement des produits débités dans les différents sites.
Production scierie
Données nécessaires : Date de production, machine utilisée, opérateur responsable,
type de produit, quantité produite.
Objectif : Suivre la production journalière et optimiser la gestion des ressources.
Facturation des produits
Données nécessaires : Produit, quantité, prix unitaire, TVA, client, montant total, date
de facturation, méthode de paiement.
Objectif : Générer des factures précises et conserver un historique des transactions.
Consultation des stocks (grumes, produits débités, produits finis)
Données nécessaires : Quantité, type de produit, localisation en entrepôt, historique
des entrées/sorties.
Objectif : Permettre une consultation en temps réel des stocks pour une meilleure
gestion.
Génération de lettres (documentaire, client, client direct, fax)
Données nécessaires : Modèle de lettre, détails du produit, informations client,
informations transport.
Objectif : Automatiser la création des lettres pour simplifier la gestion administrative.
Ordres de transit pour les colis
Données nécessaires : Numéro de colis, poids, dimensions, destination, transporteur,
date d’expédition.
Objectif : Assurer le suivi logistique des colis en transit.
Saisie de contrats de production pour colis
Données nécessaires : Identifiant du contrat, produit, quantité, date d’échéance, client,
conditions.
Objectif : Enregistrer les contrats pour les produits par colis et en suivre l’exécution.
Programme de production annuelle
Données nécessaires : Type de produit, quantités prévues, ressources allouées,
calendrier de production.
Objectif : Planifier les objectifs de production pour anticiper la demande.
Rapports de déclaration mensuelle (fiche technique)
Données nécessaires : Données mensuelles sur la production, ventes, stock
disponible, machines utilisées.
Objectif : Générer des rapports réguliers pour le suivi de la production.
Annexe 1 (approvisionnement des grumes)
Données nécessaires : Quantité de grumes achetées, fournisseurs, coûts, date de
réception.
Objectif : Documenter les approvisionnements en grumes pour traçabilité.
Annexe 2 (destinations des produits débités)
Données nécessaires : Type de produit, quantité, destination, date d’expédition.
Objectif : Suivre la distribution des produits débités aux clients ou sites.
Gestion des utilisateurs
Données nécessaires : Identifiant utilisateur, rôle (administrateur, opérateur,
comptable), droits d’accès, historique de connexion.
Objectif : Contrôler les accès et assurer la sécurité de l’application.
Gestion des accès et permissions (RBAC)
Données nécessaires : Rôles, permissions associées, accès aux fonctionnalités.
Objectif : Limiter l’accès en fonction des responsabilités pour sécuriser les données.
Suivi des activités (journalisation)
Données nécessaires : Horodatage, type d’action (consultation, modification),
identifiant utilisateur, entité concernée.
Objectif : Enregistrer les actions pour audit et contrôle de l’intégrité des données.
[Link] Modélisation conceptuelle (MCD)
Suite à cette analyse des besoins fonctionnels, un modèle de données a été conçu en utilisant
la méthode Entité-Association. Ce modèle a permis de structurer les différentes entités, leurs
attributs, et leurs relations pour répondre aux exigences fonctionnelles du système de gestion
de la scierie.
La modélisation conceptuelle de données (MCD) a été réalisée à l’aide d’un modèle Entité-
Association, permettant de visualiser les relations entre les entités principales. Les entités clés
incluent :
5.2.2 Description des tables de la base de données MySQL
Dans cette section, chaque table de la base de données MySQL est présentée de manière
détaillée. Cela comprend une explication des attributs de chaque table, les clés primaires, les
clés étrangères, ainsi que les relations entre les tables. Cette documentation aide à clarifier le
rôle de chaque table et son importance dans le système.
Description de la Table Colis
La table Colis est utilisée pour stocker des informations détaillées sur chaque colis produit
dans la scierie. Elle inclut des informations concernant les caractéristiques physiques des
colis, leurs mouvements, les informations de facturation, ainsi que les données logistiques.
[Link] Champs Principaux de la Table Colis
Nom du Champ Type Description
NUM_COLIS int(11) Clé primaire. Identifie de manière unique chaque colis.
Date de production du colis, utilisée pour le suivi de la
DATE_PRODUCTION Date
production.
Référence à l’essence de bois utilisée pour le colis (clé
ID_ESSENCE int(11)
étrangère vers la table Essence).
EPAISSEUR int(11) Épaisseur du colis, utile pour les calculs de dimensions.
Largeur du colis, important pour les dimensions et le
LARGEUR int(11)
stockage.
Longueur du colis, utilisée pour les calculs de dimensions et
LONGUEUR int(11)
de volume.
Identifiant du dépôt de stockage du colis (clé étrangère vers
ID_DEPOT int(11)
la table Depot).
Date de transfert du colis vers un autre emplacement ou
DATE_TRANSFERT Date
client.
Numéro de bordereau de livraison associé, pour le suivi
NUM_BL varchar(30)
logistique.
Identifiant du contrat associé au colis, pour les suivis de
ID_CONTRAT int(11)
contrat (clé étrangère).
Indique si le colis a été facturé (1 pour facturé, 0 pour non
FACTURE tinyint(4)
facturé).
Identifiant de la facture associée, pour les suivis de
ID_FACTURE int(11)
facturation.
Prix unitaire en devise double pour le colis, utile pour la
PRIX_PIECE_DOUBLE decimal(15,2)
facturation.
Nom du Champ Type Description
Immatriculation du camion ayant transporté le colis, pour
IMMAT_CAMION varchar(30)
les suivis logistiques.
Nom du chauffeur ayant transporté le colis, pour le suivi et
CHAUFFEUR varchar(50)
l'identification.
PRIX_PIECE_CFA decimal(15,2) Prix unitaire en Franc CFA, pour la facturation locale.
Table Bille_Aux
La table Bille_Aux est utilisée pour enregistrer des informations détaillées sur les grumes
(billes) et leurs caractéristiques après traitement. Elle permet de suivre les différentes étapes
de transformation des grumes et de gérer leurs prix et classifications. Voici un aperçu de la
structure et des principales données stockées dans cette table :
Champ Type Description
NUM_BILLE Identifiant unique de la bille (Clé primaire).
varchar(15)
Longueur de la parcelle de scierie associée à la
LONG_PARC_SCIERIE decimal(7,2)
bille.
DIAM_PARC_SCIERIE int(11) Diamètre de la parcelle de scierie.
Identifiant du classement de la bille (Clé
ID_CLASSEMENT int(11)
étrangère vers la table Classement).
REF_LONG decimal(7,3) Longueur de référence pour la bille.
REF_DIAM decimal(7,3) Diamètre de référence pour la bille.
PRIX_ACHAT decimal(10,2) Prix d'achat de la bille.
Identifiant de la note de crédit (Clé étrangère
ID_NOTE_CREDIT int(11)
vers la table Note_Credit).
Identifiant de l’essence de la bille (Clé
ID_ESSENCE int(11)
étrangère vers la table Essence).
Indicateur de l’opération de tronçonnage
TRONCONNAGE tinyint(4)
effectuée.
LONG_BILLON_A decimal(7,2) Longueur du billon A.
DIAM_BILLON_A int(11) Diamètre du billon A.
LONG_BILLON_B decimal(7,2) Longueur du billon B.
DIAM_BILLON_B int(11) Diamètre du billon B.
LONG_BILLON_C decimal(7,2) Longueur du billon C.
DIAM_BILLON_C int(11) Diamètre du billon C.
LONG_BILLON_D decimal(7,2) Longueur du billon D.
DIAM_BILLON_D int(11) Diamètre du billon D.
DATE_TRONCONNAGE date Date de réalisation du tronçonnage.
LONG_ACHAT decimal(7,2) Longueur de la bille à l'achat.
DIAM_ACHAT int(11) Diamètre de la bille à l'achat.
REBUS tinyint(4) Indicateur de rebus sur la bille.
CHANTIER varchar(15) Identifiant du chantier associé à la bille.
NUM varchar(15) Numéro de référence associé à la bille.
Champ Type Description
NOMBRE Nombre de pièces associées à la bille.
int(11)
LETTRE char(1) Lettre de classification de la bille.
Identifiant de la facture (Clé étrangère vers la
ID_FACTURE int(11)
table Facture).
PRIX_PIECE_CFA decimal(15,2) Prix unitaire de la bille en CFA.
PRIX_PIECE_DEVISE decimal(15,2) Prix unitaire de la bille dans une autre devise.
PRIX_PIECE_DOUBLE decimal(15,2) Prix double de la bille.
Indicateur de facturation (0 si non facturée, 1 si
FACTURE tinyint(4)
facturée).
Identifiant du contrat associé à la bille (Clé
ID_CONTRAT int(11)
étrangère vers la table Contrat).
NUM_PLAQ varchar(15) Numéro de la plaque associée à
[Link] Relations avec d'autres tables :
Classement : La classification des grumes est gérée par la table Classement, et l'identifiant de
ce classement est référencé dans la table Bille_Aux.
Note_Credit : En cas d’ajustement financier lié à des grumes, la table Bille_Aux fait référence
à une Note_Credit pour ajuster les montants.
Essence : La nature du bois de chaque bille est suivie grâce à l’identifiant de l’essence stocké
dans la table Essence.
Facture : Chaque bille peut être liée à une facture spécifique, gérée par la table Facture.
Contrat : Les transactions liées à chaque bille sont également rattachées à un contrat
spécifique, faisant le lien avec la table Contrat
Table Bille
Champ Type Description
NUM_BILLE varchar(15) Identifiant unique de la bille (Clé primaire).
Longueur de la parcelle de scierie associée à
LONG_PARC_SCIERIE decimal(7,2)
la bille.
DIAM_PARC_SCIERIE int(11) Diamètre de la parcelle de scierie.
Identifiant du classement de la bille (Clé
ID_CLASSEMENT int(11)
étrangère vers la table Classement).
REF_LONG decimal(7,3) Longueur de référence pour la bille.
REF_DIAM decimal(7,3) Diamètre de référence pour la bille.
PRIX_ACHAT decimal(10,2) Prix d'achat de la bille.
Identifiant de la note de crédit (Clé étrangère
ID_NOTE_CREDIT int(11)
vers la table Note_Credit).
Identifiant de l’essence de la bille (Clé
ID_ESSENCE int(11)
étrangère vers la table Essence).
Indicateur du type d’opération de
TRONCONNAGE int(11)
tronçonnage effectuée.
LONG_BILLON_A decimal(7,2) Longueur du billon A.
DIAM_BILLON_A int(11) Diamètre du billon A.
Champ Type Description
LONG_BILLON_B Longueur du billon B.
decimal(7,2)
DIAM_BILLON_B int(11) Diamètre du billon B.
LONG_BILLON_C decimal(7,2) Longueur du billon C.
DIAM_BILLON_C int(11) Diamètre du billon C.
LONG_BILLON_D decimal(7,2) Longueur du billon D.
DIAM_BILLON_D int(11) Diamètre du billon D.
DATE_TRONCONNAGE timestamp Date et heure de réalisation du tronçonnage.
LONG_ACHAT decimal(7,2) Longueur de la bille à l'achat.
DIAM_ACHAT int(11) Diamètre de la bille à l'achat.
REBUS int(11) Indicateur de rebus sur la bille.
CHANTIER varchar(15) Identifiant du chantier associé à la bille.
NUM varchar(15) Numéro de référence associé à la bille.
NOMBRE int(11) Nombre de pièces associées à la bille.
LETTRE varchar(1) Lettre de classification de la bille.
Identifiant de la facture (Clé étrangère vers
ID_FACTURE int(11)
la table Facture).
PRIX_PIECE_CFA decimal(15,0) Prix unitaire de la bille en CFA.
Prix unitaire de la bille dans une autre
PRIX_PIECE_DEVISE decimal(15,2)
devise.
PRIX_PIECE_DOUBLE decimal(15,2) Prix double de la bille.
Indicateur de facturation (0 si non facturée, 1
FACTURE int(11)
si facturée).
Identifiant du contrat associé à la bille (Clé
ID_CONTRAT int(11)
étrangère vers la table Contrat).
NUM_PLAQ varchar(30) Numéro de la plaque associée à la bille.
REF_LONG_VENTE decimal(7,2) Longueur de vente de la bille.
REF_DIAM_VENTE decimal(7,2) Diamètre de vente de la bille.
Identifiant du classement de vente (Clé
ID_CLASSEMENT_VENTE int(11)
étrangère vers la table Classement).
Identifiant de la facture A (Clé étrangère
ID_FACTURE_A int(11)
vers la table Facture).
Identifiant de la facture B (Clé étrangère vers
ID_FACTURE_B int(11)
la table Facture).
Identifiant de la facture C (Clé étrangère vers
ID_FACTURE_C int(11)
la table Facture).
Identifiant de la facture D (Clé étrangère
ID_FACTURE_D int(11)
vers la table Facture).
REBUS_A int(11) Indicateur de rebus pour le billon A.
REBUS_B int(11) Indicateur de rebus pour le billon B.
REBUS_C int(11) Indicateur de rebus pour le billon C.
REBUS_D int(11) Indicateur de rebus pour le billon D.
LONG_VENTE decimal(7,2) Longueur de la bille lors de la vente.
DIAM_VENTE int(11) Diamètre de la bille lors de la vente.
LONG_VENTE_A decimal(7,2) Longueur de la bille A lors de la vente.
DIAM_VENTE_A int(11) Diamètre de la bille A lors de la vente.
Champ Type Description
LONG_VENTE_B decimal(7,2) Longueur de la bille B lors de la vente.
DIAM_VENTE_B int(11) Diamètre de la bille B lors de la vente.
LONG_VENTE_C decimal(7,2) Longueur de la bille C lors de la vente.
DIAM_VENTE_C int(11) Diamètre de la bille C lors de la vente.
LONG_VENTE_D decimal(7,2) Longueur de la bille D lors de la vente.
DIAM_VENTE_D int(11) Diamètre de la bille D lors de la vente.
LONG_BILLON_E decimal(7,2) Longueur du billon E.
DIAM_BILLON_E int(11) Diamètre du billon E.
LONG_BILLON_F decimal(7,2) Longueur du billon F.
DIAM_BILLON_F int(11) Diamètre du billon F.
Identifiant de la facture E (Clé étrangère vers
ID_FACTURE_E int(11)
la table Facture).
Identifiant de la facture F (Clé étrangère vers
ID_FACTURE_F int(11)
la table Facture).
REBUS_E int(11) Indicateur de rebus pour le billon E.
REBUS_F int(11) Indicateur de rebus pour le billon F.
LONG_VENTE_E decimal(7,2) Longueur de la bille E lors de la vente.
DIAM_VENTE_E int(11) Diamètre de la bille E lors de la vente.
LONG_VENTE_F decimal(7,2) Longueur de la bille F lors de la vente.
DIAM_VENTE_F int(11) Diamètre de la bille F lors de la vente.
CODE_BILLE varchar(30) Code unique de la bille.
Table : Cerclage_Contrat
Cette table contient des informations liées au cerclage des contrats. Un cerclage peut être une
caractéristique spécifique d'un contrat, et cette table permet de gérer et de suivre les
informations associées à chaque cerclage de contrat.
[Link] Champs de la table :
Rôle dans le
Champ Type Description
Diagramme ER
Identifiant unique du contrat associé à ce
cerclage. Ce champ est la clé primaire de la Clé primaire
ID_CONTRAT int(11)
table et fait référence à un contrat dans la (PK)
table Contrat.
Description ou nom du cerclage pour le
CERCLAGE_CONTRAT varchar(100) contrat. Ce champ peut contenir des Attribut
informations sur le type ou l'état du cerclage.
NUM_LIGNE int(11) Numéro de ligne associé au cerclage dans le Attribut
contrat. Il permet d'identifier l'ordre ou la
Rôle dans le
Champ Type Description
Diagramme ER
disposition des cerclages.
[Link] Clé primaire :
ID_CONTRAT est la clé primaire de cette table. Il est essentiel pour assurer l'unicité de
chaque cerclage de contrat et pour établir des liens avec d'autres tables, telles que la table
Contrat.
[Link] Relation avec d'autres tables :
La table Cerclage_Contrat est directement liée à la table Contrat grâce au champ
ID_CONTRAT. Ce champ représente l'identifiant du contrat auquel le cerclage est associé. Il
s'agit d'une clé étrangère (FK) dans la table Cerclage_Contrat, permettant de lier un
cerclage spécifique à un contrat existant.
Relation Table liée Clé étrangère
ID_CONTRAT Contrat ID_CONTRAT
[Link] Exemple d'enregistrement dans la table Cerclage_Contrat :
ID_CONTRAT CERCLAGE_CONTRAT NUM_LIGNE
101 Cerclage principal 1
102 Cerclage secondaire 2
5.2.3 Table : Choix
La table Choix contient des informations relatives aux différentes options disponibles dans le
système, spécifiquement pour les choix associés aux bois divers. Elle est utilisée pour stocker
les différentes options (choix) qui peuvent être sélectionnées dans le cadre de la gestion des
bois dans l'entreprise.
[Link] Champs de la table :
Rôle dans le
Champ Type Description
Diagramme ER
Identifiant unique de chaque choix. Ce champ est la
CHOIX varchar(8) Clé primaire (PK)
clé primaire (PK) de la table.
Libellé ou description textuelle du choix. Il permet
LIB_CHOIX varchar(30) Attribut
d'identifier le choix de manière lisible.
BOIS_DIVERS tinyint(4) Indicateur binaire (0 ou 1) pour savoir si le choix Attribut
concerne des bois divers. Un 1 signifie que c'est un
Rôle dans le
Champ Type Description
Diagramme ER
bois divers, un 0 sinon.
[Link] Clé primaire :
CHOIX est la clé primaire de cette table. Il sert à identifier de manière unique chaque choix
dans le système. C’est un identifiant crucial pour la gestion des options disponibles.
CHOIX LIB_CHOIX BOIS_DIVERS
A1 Choix Bois 1 1
A2 Choix Bois 2 0
[Link] Exemple d'enregistrement dans la table Choix :
Relation avec d'autres tables :
La table Choix peut être liée à d'autres tables en fonction des besoins du système, mais sur la
base des informations fournies, il n'y a pas de clé étrangère directe dans cette table vers une
autre table. Cela signifie que cette table est probablement utilisée indépendamment pour
représenter des options de choix dans le système.
5.2.4 Table : Classement
La table Classement est utilisée pour stocker les différents types de classements dans le
système. Chaque classement peut être associé à un identifiant unique et à une description qui
permet de comprendre le type de classement.
[Link] Champs de la table :
Rôle dans le
Champ Type Description
Diagramme ER
Identifiant unique pour chaque classement. Ce
ID_CLASSEMENT int(11) Clé primaire (PK)
champ est la clé primaire (PK) de la table.
Description ou nom du classement. Cela
CLASSEMENT varchar(15) permet d'identifier clairement le type de Attribut
classement.
[Link] Clé primaire :
ID_CLASSEMENT est la clé primaire de cette table. Il sert à identifier de manière unique
chaque enregistrement de classement dans la base de données.
[Link] Relation avec d'autres tables :
La table Classement peut être utilisée pour associer un classement à d'autres entités dans le
système, par exemple, un produit ou un bois pourrait être classé selon cette table. Cependant,
à partir des informations fournies, il n'y a pas de clé étrangère directement associée à cette
table.
5.2.5 Table : Colis_Double_Facture1
La table Colis_Double_Facture1 est utilisée pour gérer les informations liées à la
facturation des colis. Elle contient des informations spécifiques sur le colis et la facture
associée à ce colis dans le cadre du système de gestion des factures.
[Link] Champs de la table :
Rôle dans le
Champ Type Description
Diagramme ER
Identifiant de la facture associée au colis.
Partie de la clé
ID_FACTURE int(11) Ce champ est une partie de la clé
primaire (PK)
primaire (PK) de la table.
Identifiant du colis. Ce champ est aussi
Partie de la clé
NUM_COLIS int(11) une partie de la clé primaire (PK) de la
primaire (PK)
table.
PRIX_PIECE_DEVISE decimal(15,2) Le prix de la pièce (colis) dans une devise Attribut
spécifique (par exemple, en dollars,
Rôle dans le
Champ Type Description
Diagramme ER
euros, etc.).
[Link] Clé primaire :
La clé primaire de cette table est une clé composite, composée des champs ID_FACTURE et
NUM_COLIS. Cela signifie que chaque combinaison unique de facture et de colis doit être
enregistrée une seule fois dans cette table.
[Link] Relation avec d'autres tables :
ID_FACTURE fait probablement référence à une table Facture (ou similaire) où des détails
supplémentaires sur la facture sont stockés.
NUM_COLIS fait probablement référence à une table Colis, où des informations détaillées
sur le colis sont stockées.
Les relations sont donc basées sur ces identifiants et permettront d'assurer l'intégrité des
données entre les factures et les colis.
5.2.6 Table : Colis_Double_Facture2
La table Colis_Double_Facture2 est utilisée pour stocker les informations liées à une autre
version ou un autre aspect des factures de colis. Elle contient les informations concernant le
prix de la pièce de colis dans une devise spécifique et fait le lien avec une facture et un colis.
[Link] Champs de la table :
Rôle dans le
Champ Type Description
Diagramme ER
Identifiant de la facture associée au colis.
Partie de la clé
ID_FACTURE int(11) Ce champ est une partie de la clé
primaire (PK)
primaire (PK) de la table.
Identifiant du colis. Ce champ est aussi
Partie de la clé
NUM_COLIS int(11) une partie de la clé primaire (PK) de la
primaire (PK)
table.
PRIX_PIECE_DEVISE decimal(15,2) Le prix de la pièce (colis) dans une devise Attribut
spécifique (par exemple, en dollars,
Rôle dans le
Champ Type Description
Diagramme ER
euros, etc.).
[Link] Clé primaire :
Comme pour la table Colis_Double_Facture1, la clé primaire de cette table est aussi une
clé composite, composée des champs ID_FACTURE et NUM_COLIS. Cela assure l'unicité de
chaque combinaison de facture et de colis dans la table.
[Link] Relation avec d'autres tables :
ID_FACTURE fait référence à la table Facture, qui contient les informations détaillées sur
les factures.
NUM_COLIS fait référence à la table Colis, où sont stockées les informations détaillées sur
chaque colis.
Ainsi, cette table permet de relier les colis et leurs prix dans une facture spécifique. Elle est
complémentaire à la table Colis_Double_Facture1, en ce sens qu'elle gère probablement un
autre aspect de la facturation des colis.
5.2.7 Table : Colis_Double_Facture3
La table Colis_Double_Facture3 enregistre les informations relatives à un autre aspect de la
facturation des colis, spécifiquement pour un autre cas ou une autre version du prix des colis
dans une devise déterminée. Elle suit une structure similaire aux autres tables de facturation
des colis, permettant de lier les factures aux colis, avec les informations du prix dans la devise
spécifiée.
[Link] Clé primaire :
Tout comme pour les autres tables de facturation des colis (Colis_Double_Facture1,
Colis_Double_Facture2), la clé primaire de la table Colis_Double_Facture3 est une clé
composite, composée des deux champs suivants :
ID_FACTURE : Référence à la table Facture.
NUM_COLIS : Référence à la table Colis.
Cela garantit l'unicité des combinaisons de colis et de factures, ce qui empêche la duplication
d'informations dans la table.
[Link] Relation avec d'autres tables :
ID_FACTURE fait référence à la table Facture, qui contient les informations détaillées sur
les factures.
NUM_COLIS fait référence à la table Colis, où sont stockées les informations détaillées sur
chaque colis.
La table Colis_Double_Facture3 permet donc de relier les colis et leur prix dans une facture
spécifique, tout en ajoutant une version distincte de facturation (avec des devises ou des
conditions différentes).
5.2.8 Table : Colis_Double_Facture4
La table Colis_Double_Facture4 est utilisée pour enregistrer des informations relatives à un
autre aspect de la facturation des colis, tout comme les autres tables
Colis_Double_Facture1, Colis_Double_Facture2, et Colis_Double_Facture3. Elle
contient des informations sur le prix des colis dans une devise spécifique, cette fois avec une
autre version ou un autre cas de facturation.
[Link] Clé primaire :
Comme pour les autres tables de facturation des colis, la clé primaire de la table
Colis_Double_Facture4 est une clé composite, composée des deux champs suivants :
ID_FACTURE : Référence à la table Facture.
NUM_COLIS : Référence à la table Colis.
Cela assure l'unicité des combinaisons de colis et de factures, évitant ainsi les doublons dans
la table.
[Link] Relation avec d'autres tables :
ID_FACTURE fait référence à la table Facture, qui contient les informations détaillées sur
les factures.
NUM_COLIS fait référence à la table Colis, où sont stockées les informations détaillées sur
chaque colis.
La table Colis_Double_Facture4 permet donc de relier les colis et leur prix dans une facture
spécifique, tout en ajoutant une version distincte de facturation, comme un prix différent ou
une devise différente.
[Link] Structure de la table « Grume »
La table Grume est utilisée pour stocker les informations relatives aux grumes entrées dans la
scierie. Elle contient les champs suivants :
5.2.9 MCD pour le système de gestion de scierie
5.2.10 1. Saisie de Grume
[Link] Attributs
ID_Grume (PK) : Identifiant unique pour chaque grume.
Type : Type de la grume (ex. chêne, pin, etc.).
Poids : Poids de la grume.
Dimension : Dimensions de la grume (longueur, diamètre, etc.).
Provenance : Origine de la grume (où elle a été récoltée).
Date_Entree : Date à laquelle la grume a été saisie dans le système.
[Link] Relations
Lié à "Transport de Grumes" : Cela signifie que chaque enregistrement dans la table de saisie
de grumes peut être associé à des enregistrements dans la table de transport, probablement
via une clé étrangère.
Lié à "Production Scierie" : De même, il pourrait y avoir une relation avec la production de
scierie, où chaque grume saisie est utilisée dans le processus de production.
1. Transport de Grumes
o Attributs : ID_Transport (PK), ID_Grume (FK), Date_Transport, Transporteur, Statut
o Relation : Lié à "Grume" et "Utilisateur"
2. Produit Débité
o Attributs : ID_Produit (PK), Type, Quantité, Date_Production, ID_Grume (FK)
o Relation : Lié à "Transport de Produits Débités", "Facturation de Produits", et
"Grume"
3. Transport de Produits Débités
o Attributs : ID_Transport_Debite (PK), ID_Produit (FK), Date_Transport, Transporteur,
Destination
o Relation : Lié à "Produit Débité" et "Utilisateur"
4. Production Scierie
o Attributs : ID_Production (PK), ID_Grume (FK), Date_Production, Quantité_Produite,
ID_Utilisateur (FK)
o Relation : Lié à "Grume" et "Utilisateur"
5. Facturation de Produits
o Attributs : ID_Facturation (PK), ID_Produit (FK), Montant, Date_Facturation, Client
o Relation : Lié à "Produit Débité" et "Client"
6. Consultation des Stocks de Grumes
o Attributs : ID_Stock (PK), Type_Produit, Quantité_Disponible
o Relation : Lié à "Grume"
7. Consultation des Stocks de Produits Débités
o Attributs : ID_Stock_Debite (PK), Type_Produit, Quantité_Disponible
o Relation : Lié à "Produit Débité"
8. Consultation des Stocks de Produits
o Attributs : ID_Stock_Produit (PK), Type_Produit, Quantité_Disponible
o Relation : Lié à "Produit Débité"
9. Lettres Automatiques (Remise Documentaire)
o Attributs : ID_Lettre (PK), Type_Lettre, Destinataire, Contenu, Date_Generation
o Relation : Lié à "Utilisateur"
10. Lettres Automatiques (Lettre au Client)
o Attributs : ID_Lettre_Client (PK), Type_Lettre, Destinataire, Contenu,
Date_Generation
o Relation : Lié à "Client"
11. Lettres Automatiques (Lettre Directe au Client)
o Attributs : ID_Lettre_Directe (PK), Type_Lettre, Destinataire, Contenu,
Date_Generation
o Relation : Lié à "Client"
12. Fax
o Attributs : ID_Fax (PK), Destinataire, Contenu, Date_Generation
o Relation : Lié à "Utilisateur"
13. Ordres de Transit des Colis
o Attributs : ID_Ordre_Transit (PK), ID_Produit (FK), Date, Destination
o Relation : Lié à "Produit Débité" et "Utilisateur"
14. Contrat de Production
o Attributs : ID_Contrat (PK), ID_Grume (FK), Date_Debut, Date_Fin, Conditions
o Relation : Lié à "Grume" et "Utilisateur"
15. Programme Annuel de Production
o Attributs : ID_Programme (PK), Annee, Objectifs_Production, Date_Revision
o Relation : Lié à "Contrat de Production"
16. Déclaration Mensuelle (Fiche Technique)
o Attributs : ID_Declaration (PK), Type_Declaration, Date, Contenu
o Relation : Lié à "Programme Annuel de Production"
17. Déclaration Mensuelle (Annexe 1 : Approvisionnement)
o Attributs : ID_Declaration_Annexe1 (PK), Type_Declaration, Date, Contenu
o Relation : Lié à "Programme Annuel de Production"
18. Déclaration Mensuelle (Annexe 2 : Destination des Produits)
o Attributs : ID_Declaration_Annexe2 (PK), Type_Declaration, Date, Contenu
o Relation : Lié à "Programme Annuel de Production"
Utilisateur :
Attributs : ID d'utilisateur, nom, rôle, droits d'accès.
Relations : Peut être lié à tous les enregistrements où un utilisateur interagit avec le
système.
Rôle :
Attributs : ID de rôle, nom du rôle, description.
Relations : Lien avec les utilisateurs.
Gestion des documents générés automatiquement :
Attributs : ID de document, type, date de génération, statut.
Relations : Lien avec les utilisateurs et les lettres.
Rapports et statistiques :
Attributs : ID de rapport, type, période, contenu.
Relations : Peut être lié aux utilisateurs et aux données de production.
Historique des actions (Audit) :
Attributs : ID d'audit, ID d'utilisateur, action, date, description.
Relations : Lien avec les utilisateurs et les actions réalisées.
[Link] Modélisation logique (MLD)
La modélisation logique des données (MLD) traduit le MCD en tables pour la base de
données relationnelle MySQL. Les tables principales sont :
grume : id_grume, origine, poids, dimensions, date_reception, etc.
produit_debite : id_produit, type, poids, dimensions, id_grume (clé étrangère), etc.
facture : id_facture, date_facture, montant, id_client, etc.
stock : id_stock, type_produit, quantite, id_produit (clé étrangère), etc.
utilisateur : id_utilisateur, nom, email, mot_de_passe, id_role (clé étrangère), etc.
role : id_rojle, nom_role, description, etc.
Les relations et contraintes d'intégrité sont définies pour garantir la cohérence des données
(ex. : clé étrangère entre grume et produit_debite pour relier les matières premières aux
produits transformés).
[Link] Optimisation et sécurité
Plusieurs mesures d'optimisation et de sécurité sont mises en place pour améliorer les
performances et protéger les données sensibles :
Indexation : Indexation des champs utilisés fréquemment dans les requêtes, comme
id_grume et id_produit, pour accélérer les recherches.
Contraintes d'intégrité référentielle : Utilisation de clés étrangères pour assurer la
cohérence des données entre les tables.
Sécurité des données : Mise en œuvre de règles d’accès, avec un contrôle d'accès basé sur
les rôles (RBAC), pour limiter les droits en fonction des responsabilités de chaque utilisateur.
Cryptage des données sensibles : Les mots de passe des utilisateurs sont stockés sous forme
de hash sécurisé (par exemple, avec bcrypt) pour garantir leur confidentialité.
[Link] Schéma physique
Le schéma physique de la base de données est généré à partir du modèle logique. Ce schéma
comprend toutes les tables avec leurs types de données, les contraintes, les index et les
relations. La base de données est déployée sur le serveur MySQL et connectée à l’application
web, assurant une intégration complète avec le front-end et les fonctionnalités de gestion.
5.3 Modélisation des Interfaces Utilisateurs
Pour répondre aux besoins spécifiques de la gestion de scierie dans la version web du logiciel,
différentes interfaces ont été conçues pour permettre une interaction simple et efficace avec le
système. Chaque fonctionnalité clé a été accompagnée d'une interface utilisateur adaptée,
avec des validations et un design ergonomique.
La page de connexion est la première interface rencontrée par les utilisateurs. Elle permet
l'authentification sécurisée via des rôles (administrateur ou opérateur). La maquette présente une
interface épurée avec des champs de saisie pour l'identifiant et le mot de passe, accompagnés de
boutons clairs pour se connecter ou réinitialiser le mot de passe.
Maquette de la page de connexion : Insère ici une capture d'écran de la maquette réalisée
dans Figma.
1. Saisie de Grumes
Cette fonctionnalité permet d'enregistrer les grumes reçues à la scierie. Les utilisateurs
peuvent saisir des informations comme l'origine, la taille, le poids et la date d'entrée.
Un contrôle de validation est intégré pour assurer que les données sont correctes.
o Objectif : Suivi des matières premières (grumes).
o
2. Maquette de la saisie de grumes : Insère ici une capture d'écran de la maquette de
la saisie de grumes.
3. Transport de Grumes
L'interface permet de suivre les grumes en transit entre différents sites de la scierie.
Elle affiche les informations sur le transport, telles que le lieu d'origine, la destination,
et le transporteur.
o Objectif : Gestion logistique des grumes.
4. Maquette du transport de grumes : Insère ici une capture d'écran de la maquette
du transport.
o
5. Saisie de Débités
Après la production, cette fonctionnalité permet de saisir les informations des produits
débités, notamment les dimensions, le type de bois, et la quantité produite.
o Objectif : Suivi des produits transformés.
6. Maquette de Saisie de débités : Insère ici une capture d'écran de la maquette du
transport.
o
7. Transport de Débités
Suivi des produits débités transportés entre les sites. Les informations relatives aux
dates, transporteurs, et destinations sont affichées pour une gestion optimisée.
o Objectif : Gestion du transport des produits débités.
8. Production Scierie
Cette fonctionnalité offre une interface pour surveiller les activités de production en
temps réel. Les utilisateurs peuvent consulter les quantités produites, les machines
utilisées, et d'autres paramètres de production.
o Objectif : Suivi et optimisation de la production.
9. Facturation de Produits
Une interface intuitive pour générer et gérer les factures des produits vendus. Elle
comprend des options d'automatisation pour créer les documents de facturation
(factures, bordereaux) et les envoyer aux clients.
o Objectif : Simplification du processus de facturation.
10. Consultation des Stocks de Produits
Cette interface permet de consulter les stocks de produits débités en temps réel, avec
des filtres pour une meilleure gestion des stocks.
o Objectif : Suivi des produits disponibles pour la vente.
11. Consultation des Stocks de Grumes
Visualisation des stocks de grumes présents dans la scierie, avec des détails sur
l'origine, la taille, et la quantité.
o Objectif : Optimisation de la gestion des approvisionnements.
12. Consultation des Stocks de Débités
Une interface permettant de visualiser les produits débités disponibles en stock, avec
des détails précis sur les quantités et les caractéristiques des produits.
o Objectif : Suivi des produits débités en stock.
13. Génération Automatique des Lettres : Remise Documentaire, Lettre au Client,
Lettre Direct au Client, Fax
Cette fonctionnalité génère automatiquement les lettres et documents administratifs
pour les clients, tels que la remise documentaire, les lettres au client, et les fax,
facilitant ainsi la gestion commerciale.
o Objectif : Automatisation des tâches administratives.
14. Génération Automatique des Ordres de Transit des Colis
Cette interface permet de générer automatiquement les ordres de transit pour les colis,
incluant des informations sur le transporteur, la destination, et le contenu des colis.
o Objectif : Gestion efficace du transport des colis.
15. Saisie de Contrat pour la Production de Colis
Une interface dédiée à la saisie des contrats de production de colis. Les utilisateurs
peuvent y saisir les détails tels que les spécifications, les dates, et les parties
impliquées.
o Objectif : Gestion des contrats de production.
16. Saisie de Programme Annuel de Production
Une interface qui permet de définir et planifier les objectifs de production pour
l'année, avec un suivi de leur réalisation.
o Objectif : Planification à long terme de la production.
17. Génération Automatique des États de Déclaration Mensuelle : Fiche Technique,
Annexe 1 (Source d'Approvisionnement), Annexe 2 (Destinations des Produits
Vendus)
Cette fonctionnalité génère automatiquement les rapports de déclaration mensuelle,
notamment la fiche technique, l'annexe 1 pour la source d'approvisionnement, et
l'annexe 2 pour les destinations des produits vendus.
o Objectif : Respect des obligations légales et fiscales.
18. Génération Automatique de la Fiche Technique
Création automatique d'une fiche technique détaillant les caractéristiques des grumes
ou produits débités, facilitant la gestion des opérations.
o Objectif : Documentation technique précise.
19. Annexe 1 : Source d'Approvisionnement
Rapport détaillant les sources d'approvisionnement des matières premières (grumes) à
soumettre dans le cadre de la déclaration mensuelle.
o Objectif : Suivi des sources d'approvisionnement.
20. Annexe 2 : Destinations des Produits Vendus
Rapport détaillant les destinations des produits débités vendus, à inclure dans les
déclarations mensuelles.
o Objectif : Suivi des ventes et des exportations.
Maquette de la production scierie : Insère ici une capture d'écran de la maquette de la
production scierie.
Maquette de la facturation des produits : Insère ici une capture d'écran de la maquette de
la facturation.
Maquette de consultation des stocks : Insère ici une capture d'écran de la maquette de la
consultation
Maquette de Generation automatique de lettres et documents: Insère ici une capture
d'écran de la maquette de generation automatique de lettre et document
Maquette de génération automatique de lettres : Capture d'écran de l'interface de
génération de lettres.
Maquette de saisie de contrats de production de colis : Insère ici une capture d'écran de la
maquette de la facturation.
Maquette de Programme Annuel de Production :
Maquette de Generation des declaration mensuelles .
6 Mise en œuvre du projet
6.1 Planification et gestion du projet
Dans cette section, nous détaillons la planification, la répartition des tâches et la méthodologie
de gestion utilisée pour mener à bien le projet.
Objectifs et calendrier :
L’objectif de ce projet est de migrer le logiciel de gestion de scierie vers une version
web, incluant les fonctionnalités clés telles que la saisie de grumes, la gestion des
stocks et la facturation. Le projet a été réparti sur 4 phases principales :
o Conception (analyse des besoins et spécifications),
o Développement (implémentation des fonctionnalités),
o Tests (validation et corrections),
o Déploiement (mise en production).
Répartition des tâches :
o Frontend : Développement de l’interface utilisateur avec HTML, CSS et
JavaScript.
o Backend : Développement de la logique métier et des accès à la base de
données avec PHP et MySQL.
o Base de données : Migration et structuration de la base de données Oracle vers
MySQL pour la version web.
o Tests : Réalisation de tests unitaires, fonctionnels et de performance.
Méthodologie utilisée :
Une approche Agile a été adoptée, permettant des itérations successives pour affiner
les fonctionnalités selon les retours des utilisateurs et ajuster le calendrier.
Outils de gestion de projet :
Le suivi des tâches et des sprints a été effectué avec Trello pour la répartition des
tâches, Slack pour la communication en équipe et Microsoft Project pour la
planification du calendrier.
Le développement de la logique métier s’est fait avec le framework Laravel, choisi pour ses
fonctionnalités puissantes telles que l’ORM Eloquent, les migrations de base de données, et la
gestion des routes. Voici les principales étapes du développement :
Création des modèles : Les modèles Laravel ont été utilisés pour interagir avec les tables de
la base de données, telles que Grume, ProduitDebite, et Facturation.
Implémentation des contrôleurs : Des contrôleurs dédiés ont été créés pour gérer les
requêtes HTTP des utilisateurs, notamment pour la saisie des grumes et la facturation.
Routes : Des routes RESTful ont été définies pour permettre des interactions claires entre le
frontend et le backend.
Migrations : Les migrations de Laravel ont permis de versionner la structure de la base de
données, facilitant ainsi la gestion des modifications au cours du développement.
6.2 Développement Frontend avec HTML/CSS et JavaScript
Cette section décrit les étapes techniques et les choix technologiques réalisés pour le
développement de la version web.
Choix des technologies :
o Backend : PHP (avec un framework tel que Laravel si applicable) et MySQL
pour gérer la logique métier et la base de données.
o Frontend : HTML, CSS, JavaScript (et éventuellement un framework comme
[Link] ou React pour les interfaces dynamiques).
o Serveur web : Apache sur un environnement LAMP/WAMP, assurant la
compatibilité entre les serveurs de développement et de production.
Architecture de l’application :
Une architecture MVC (Modèle-Vue-Contrôleur) a été adoptée, séparant les données
(Modèle), les interfaces utilisateur (Vue), et la logique de traitement (Contrôleur), ce
qui facilite la maintenance et les évolutions futures du projet.
Base de données :
La structure de la base de données a été adaptée pour MySQL, avec la création de
nouvelles tables pour les fonctionnalités ajoutées et l’optimisation des tables existantes
issues de la base Oracle.
o Migration des données : Scripts de migration développés pour déplacer les
données de Oracle vers MySQL, avec une transformation des formats de
données si nécessaire.
Implémentation des fonctionnalités :
Les 17 fonctionnalités principales du logiciel ont été développées de manière
modulaire, chaque module étant testé indépendamment avant son intégration avec le
système. Par exemple :
Saisie de grumes :
Un formulaire web permet aux opérateurs de saisir des informations sur les grumes (bois brut)
comme la taille, le poids, l'origine, etc., qui sont ensuite enregistrées dans la base de données.
Transport de grumes :
Un module assure le suivi du transport des grumes, en indiquant les détails d'expédition et en
permettant aux utilisateurs de mettre à jour les informations de transport.
Saisie de débités :
Un formulaire dédié pour les produits débités (bois coupé) permet de saisir des informations
sur leur taille, traitement, et destination.
Production scierie :
Ce module enregistre les détails des activités de production, en suivant le processus de
transformation des grumes en bois débités ou produits finis.
Transport de débités :
Semblable au transport des grumes, ce module permet le suivi des produits débités jusqu'à
leur destination finale.
Facturation des produits :
Un module de facturation génère des factures pour les clients, enregistre les transactions dans
la base de données, et permet l’export en PDF.
Consultation des stocks de produits :
Une interface permet aux utilisateurs de visualiser les stocks actuels de produits finis, avec
des options de filtrage et de tri pour une consultation rapide.
Consultation des stocks de grumes :
Permet de suivre les niveaux de stock de grumes non transformées en temps réel.
Consultation des stocks de débités :
Fournit un suivi précis des stocks de bois débités pour permettre un réapprovisionnement
efficace.
Génération automatique des lettres - Remise documentaire :
Ce module génère des documents de remise documentaire pour les transactions,
personnalisables pour chaque client.
Génération automatique des lettres - Lettre au client :
Des lettres automatiques sont générées pour informer les clients des mises à jour de leur
commande ou de la production.
Génération automatique des lettres - Lettre directe au client :
Fonctionnalité pour envoyer directement des lettres électroniques aux clients pour un suivi
rapide et une meilleure communication.
Génération automatique des lettres - Fax :
Une option permettant de générer des fax pour les clients ou partenaires en vue de
communiquer des documents spécifiques.
Génération automatique des ordres de transit des colis :
Génère les ordres de transit pour les colis prêts pour la livraison, facilitant le transport et la
logistique.
Saisie de contrats pour les productions de colis :
Ce module permet de saisir et de gérer les contrats pour la production de colis, avec des
détails sur les conditions de production et de livraison.
Saisie de programme annuel de production :
Enregistre le programme de production annuel de la scierie, incluant les prévisions de
production pour une gestion efficace des ressources.
Génération automatique des états de déclaration mensuelle - Fiche technique, Annexe
1 et Annexe 2 :
Génère des états mensuels pour la déclaration des productions, notamment la fiche technique,
Annexe 1 pour la source d’approvisionnement, et Annexe 2 pour les destinations des produits.
Sécurité et gestion des accès :
o Authentification : Mise en place d’une page de connexion sécurisée avec
hashage des mots de passe et gestion des sessions via JWT.
o Contrôle des accès (RBAC) : Gestion des rôles et des permissions pour
restreindre l’accès aux fonctionnalités en fonction du rôle de l’utilisateur.
6.3 Tests Unitaires et validation
Pour garantir la robustesse du système, des tests ont été mis en place à différents niveaux :
Pour assurer la qualité du logiciel, différents types de tests ont été effectués :
Tests unitaires : Chaque fonctionnalité a été testée individuellement pour s'assurer de
son bon fonctionnement.
Tests d'intégration : Vérification des interactions entre les modules, par exemple,
entre la saisie des grumes et la mise à jour des stocks.
Tests fonctionnels : Vérification de l’alignement des fonctionnalités avec les
spécifications et les besoins des utilisateurs finaux.
Tests de performance : Test de la charge pour s'assurer que le système peut supporter
un grand nombre d’utilisateurs simultanés, en particulier lors de l’accès aux stocks ou
de la génération des factures.
Outils de tests : Utilisation de PHPUnit pour les tests unitaires, Selenium pour les
tests fonctionnels automatisés, et des scripts de test de performance pour mesurer la
charge.
Validation utilisateur : Les utilisateurs finaux, tels que les administrateurs et
opérateurs, ont été impliqués dans des tests pour confirmer que les fonctionnalités
répondaient aux attentes.
6.4 Déploiement et mise en production
Cette partie décrit les étapes finales de déploiement de l'application en environnement de
production.
Préparation de l’environnement :
o Installation de la stack LAMP/WAMP sur un serveur dédié pour la production,
en s’assurant que la configuration soit identique à celle de développement pour
minimiser les problèmes.
o Configuration du domaine, certificats SSL pour sécuriser les accès en HTTPS,
et configuration des accès pour la gestion des utilisateurs et des sessions.
Migration des données :
o Utilisation de scripts pour transférer les données de l’ancien système vers le
nouveau, avec une vérification de la conformité des données.
o Vérification de l’intégrité des données migrées pour assurer que toutes les
informations critiques sont bien présentes et exploitables.
Mise en production :
o Lancement du site en mode de production, accessible aux utilisateurs finaux.
o Tests finaux de mise en production pour vérifier que toutes les fonctionnalités
et interactions sont opérationnelles.
Formation des utilisateurs :
Une formation des utilisateurs finaux a été dispensée, incluant une documentation sur
l’utilisation des nouvelles fonctionnalités et une aide en ligne accessible depuis
l’application.
Support et maintenance :
o Préparation de la phase de support post-déploiement pour résoudre les bugs ou
dysfonctionnements éventuels.
o Prévision de mises à jour régulières pour inclure des améliorations et des
corrections de sécurité.
Le déploiement du système a été effectué sur un serveur web utilisant MAMP pour
l’environnement de développement et Apache pour la production. Les étapes clés incluent :
Configuration du serveur : Configuration des fichiers .htaccess pour la gestion des
routes Laravel et mise en place des certificats SSL pour sécuriser les échanges.
Mise en ligne de la base de données : Migration de la base MySQL locale vers le
serveur de production.
Suivi et maintenance : Mise en place d’outils de suivi comme New Relic pour
surveiller la performance du serveur et détecter les éventuelles erreurs.
7 Performance et transfert des competances
7.1 Formation des utilisateurs
La formation et le transfert de compétences sont essentiels pour assurer l’adoption efficace de la
nouvelle version web par les utilisateurs et l'équipe technique.
Pour garantir une transition réussie, une formation complète a été organisée pour les différents
utilisateurs du système. Elle inclut :
Sessions de formation : Des ateliers pratiques ont été organisés pour chaque catégorie
d’utilisateurs (administrateurs, opérateurs de saisie, comptables), abordant les
fonctionnalités spécifiques à leur rôle, telles que :
o Saisie et transport de grumes pour les opérateurs.
o Consultation des stocks et facturation pour les comptables.
Formation en ligne et guides vidéo : Des modules en ligne, accompagnés de guides
vidéo, ont été créés pour permettre aux utilisateurs de se former à leur rythme et de
revoir les étapes importantes.
Support post-formation : Une assistance continue est assurée pendant la période de
prise en main, pour aider les utilisateurs à résoudre leurs questions et à maîtriser les
fonctionnalités.
Le nouveau système web a permis une amélioration significative des performances, notamment en
ce qui concerne la rapidité d’exécution des requêtes et l’accessibilité. Les utilisateurs ont souligné la
facilité d’utilisation de la nouvelle interface et la réduction du temps nécessaire pour accomplir
certaines tâches, comme la saisie des grumes et la génération des factures.
7.2 Documentation technique et utilisateurs
Pour accompagner le système, une documentation complète a été développée, comprenant :
Documentation utilisateur : Manuels détaillant les étapes d'utilisation des
fonctionnalités principales pour chaque type d'utilisateur.
Documentation technique : Comprend les spécifications techniques, l’architecture du
système, et les détails des API pour faciliter la maintenance et les futures mises à jour
par les équipes techniques.
FAQ et résolution de problèmes : Un document FAQ et un guide de résolution des
problèmes courants sont également fournis pour faciliter la gestion des incidents.
Les retours des utilisateurs finaux, principalement les opérateurs et administrateurs de la scierie, ont
été largement positifs. La possibilité de travailler à distance via le navigateur a été accueillie comme
un grand avantage, particulièrement pour les responsables de la production qui peuvent désormais
accéder aux données en temps réel, même en déplacement.
7.3 Retour d'expérience des utilisateurs
Dans le cadre de la refonte du logiciel de gestion de scierie en version web, un retour
d'expérience a été collecté auprès des différents utilisateurs pour évaluer leur satisfaction,
identifier les difficultés rencontrées, et recueillir leurs suggestions d'améliorations futures.
Satisfaction globale : La majorité des utilisateurs ont exprimé une satisfaction
concernant la facilité d'utilisation et l'accessibilité du système. Les nouvelles
fonctionnalités, telles que l'accès en temps réel aux stocks et la génération automatique
des documents, ont été particulièrement appréciées pour leur impact sur la
productivité.
Défis rencontrés : Certains utilisateurs ont mentionné des difficultés d'adaptation
initiales, notamment pour les modules de saisie de grumes et de gestion de la
facturation. Ces défis ont été en grande partie surmontés grâce à la formation continue
et au support post-formation.
Suggestions d'amélioration : Les utilisateurs ont proposé quelques améliorations
pour les futures versions, telles que :
o L'intégration de notifications en temps réel pour les alertes de stock ou les
nouvelles tâches.
o Un tableau de bord personnalisé pour chaque rôle, permettant une vue
d’ensemble des tâches principales.
o Une option de recherche améliorée pour accéder rapidement aux informations
de stock et aux historiques de transactions.
Les retours d'expérience récoltés sont pris en compte dans le cadre des prochaines mises à
jour du système, avec pour objectif de continuer à améliorer la convivialité et l'efficacité du
logiciel.
Comparé au système précédent, le nouveau système présente les avantages suivants :
Accessibilité accrue : Les utilisateurs peuvent accéder au logiciel depuis n'importe
quel appareil connecté à Internet.
Maintenance simplifiée : Les mises à jour peuvent être déployées rapidement et de
manière centralisée.
Sécurité renforcée : Les données sont protégées par des mesures de sécurité
modernes (cryptage SSL, gestion des sessions).
8 Analyse des résultats et impacts
La refonte du logiciel de gestion de scierie en une version web a apporté plusieurs améliorations en
termes de performance, de fonctionnalité et d'efficacité opérationnelle. Cette section présente une
analyse des résultats obtenus, une comparaison avec les objectifs initiaux, et l'impact global sur
l'entreprise.
8.1 Évaluation des performances de la nouvelle version
L'évaluation des performances de la nouvelle version web a permis de constater des
améliorations significatives dans plusieurs domaines :
Accessibilité : La version web permet un accès en temps réel depuis différents
terminaux, facilitant la gestion à distance et la collaboration entre les utilisateurs.
Réduction des temps de traitement : Les temps de réponse pour les opérations clés
(comme la saisie de grumes et la génération des factures) ont été réduits de 30 % grâce
à l’optimisation du code et à l’architecture basée sur une base de données MySQL.
Sécurité : Les fonctionnalités de sécurité (authentification, RBAC, journalisation) ont
renforcé la protection des données sensibles, réduisant le risque d'accès non autorisé.
La refonte du logiciel MegaScierie en version web représente une étape majeure dans la
modernisation des outils de gestion de l’entreprise. Ce projet a non seulement permis
d’améliorer la flexibilité et l’accessibilité du système, mais il a également apporté une réponse
adéquate aux besoins des utilisateurs, tout en réduisant les coûts de maintenance.
8.2 Comparaison avec les objectifs initiaux
Le projet de refonte avait pour objectifs principaux d’améliorer l’accessibilité, de simplifier
les processus opérationnels, et d’augmenter la sécurité. Voici une comparaison avec les
objectifs initiaux :
Accessibilité accrue : Objectif atteint avec succès grâce à la version web accessible
depuis n'importe quel appareil connecté, sans nécessité d'installation locale.
Optimisation des processus : L’objectif de simplification des processus, notamment
pour la gestion des stocks et la facturation, a été atteint avec des interfaces conviviales
et un workflow plus intuitif.
Sécurité renforcée : Les objectifs de sécurité ont été largement atteints, avec une mise
en place rigoureuse des contrôles d’accès et un système de journalisation des activités
critiques.
Bien que le projet ait été couronné de succès, certaines fonctionnalités, comme l’intégration
des systèmes tiers ou l’automatisation avancée des processus logistiques, n’ont pas encore été
entièrement implémentées et nécessitent des améliorations futures.
8.3 Impact sur l’efficacité de l’entreprise
La version web du logiciel de gestion de scierie a eu un impact positif sur l’efficacité de
l’entreprise :
Amélioration de la productivité : La réduction des délais de traitement et la
simplification des opérations permettent aux employés de consacrer plus de temps à
des tâches à valeur ajoutée.
Réduction des erreurs : L'automatisation des tâches comme la génération de rapports
et la facturation a réduit les erreurs manuelles, ce qui a amélioré la précision des
données et la fiabilité des analyses.
Adaptabilité accrue : La transition vers une plateforme web permet une adaptation
plus rapide aux évolutions des besoins de l’entreprise, notamment en facilitant la
maintenance et l’ajout de nouvelles fonctionnalités.
Les perspectives futures incluent l'intégration de modules supplémentaires pour une gestion
plus fine de la chaîne d'approvisionnement, ainsi que l'adoption de technologies telles que
l’intelligence artificielle pour améliorer la prévision des stocks et la gestion des ressources.
9. Bilan personnel et perspectives
Cette section présente un retour personnel sur l'expérience acquise lors de la refonte du
logiciel de gestion de scierie, ainsi que les compétences développées et les perspectives
d’évolution du projet.
9.1 Retour sur l'expérience de stage
L’expérience de stage a été particulièrement enrichissante sur le plan technique et humain. Ce
projet m’a permis de me confronter à des défis concrets de développement et de gestion de
projet dans un environnement professionnel, en collaborant avec des experts du secteur. J’ai
pu découvrir les spécificités des projets de refonte logicielle et l’importance de la planification
rigoureuse et de la méthodologie dans la réussite d’un projet de cette envergure.
9.2 Compétences développées
Au cours de ce projet, j’ai développé plusieurs compétences, notamment :
Techniques de développement web : J’ai approfondi mes connaissances en PHP,
MySQL et en technologies de développement web (HTML, CSS, JavaScript) pour
adapter l’application en version web.
Gestion de bases de données : Grâce à l’utilisation de MySQL et aux outils
d’administration (TOAD, Oracle), j’ai appris à concevoir et gérer des bases de
données robustes et sécurisées.
Sécurité informatique : L’implémentation des mesures de sécurité, telles que le
contrôle d’accès basé sur les rôles (RBAC), m’a permis d’acquérir des compétences
dans la sécurisation des applications web.
Gestion de projet : En travaillant sur la planification, le développement et les tests,
j’ai acquis une meilleure compréhension des étapes d'un projet logiciel et de
l’importance de la documentation et du suivi des tâches.
9.3 Perspectives d'évolution du projet
Le projet présente plusieurs pistes d'évolution pour répondre aux besoins futurs de l’entreprise
:
Améliorations fonctionnelles : Ajouter de nouvelles fonctionnalités pour le suivi des
performances, la gestion de rapports avancés, et des options de personnalisation pour
les utilisateurs.
Optimisation de l’interface utilisateur : Simplifier et moderniser l’interface pour
améliorer l’expérience utilisateur, notamment en intégrant des éléments interactifs et
une meilleure ergonomie.
Support mobile : Adapter l’application pour être compatible avec les appareils
mobiles afin de permettre une gestion encore plus flexible pour les utilisateurs.
Automatisation avancée : Intégrer des fonctionnalités d'automatisation pour la
génération de rapports et de notifications automatiques, ce qui améliorerait encore
l'efficacité du système.
10. Conclusion
En conclusion, ce projet de refonte du logiciel de gestion de scierie en une version web a
permis de répondre aux besoins de modernisation de l’entreprise, en apportant une solution
sécurisée, accessible et évolutive. Ce travail a permis de transformer un système client-
serveur obsolète en une application web performante, avec une interface conviviale et des
processus optimisés.
Les résultats obtenus montrent une nette amélioration en termes de performance et de
satisfaction utilisateur. Cette expérience a été très enrichissante, offrant des compétences
techniques et méthodologiques qui seront précieuses pour mes projets futurs.
8.3.1 Annexes
Les annexes peuvent inclure :
Exemples de code : Des extraits de code clés pour certaines fonctionnalités (par exemple, la
sécurisation de la connexion).
Diagrammes UML : Les diagrammes de cas d’utilisation et de séquence.
Captures d’écran : Illustrations de l’interface utilisateur.
Résultats de tests : Les tests de performance ou de sécurité.
8.3.2 Bibliographie
La bibliographie doit inclure toutes les sources utilisées, y compris :
Ressources académiques : Livres et articles sur le développement web, les bases de
données, et la sécurité.
Ressources en ligne : Tutoriels, forums et documentation officielle (PHP, MySQL, etc.).