Dans le cadre de mon stage chez SOCOREL, entreprise spécialisée dans les systèmes électroniques et la gestion technique des bâtiments, j’ai été chargé de développer un outil web de gestion des stocks.
L’objectif principal était de concevoir une plateforme interne permettant d’enregistrer, suivre et organiser les produits électroniques de l’entreprise à l’aide d’un système de numérotation par code-barres. L’outil devait également permettre la gestion des commandes et l’édition d’étiquettes d’identification pour chaque produit.
Le projet devait répondre à des besoins concrets : traçabilité, gestion des quantités, contrôle des familles de produits, mise à jour des versions hardware/software, sécurisation des accès, et personnalisation selon les différents rôles utilisateurs.
La première semaine a été consacrée à la réflexion autour des besoins fonctionnels du projet. En l'absence de cahier des charges officiel, j’ai défini un document de spécifications de base listant les fonctionnalités attendues : gestion des produits, enregistrement des commandes, génération d’étiquettes, et affichage dynamique des données.
J’ai ensuite créé les premières tables de la base de données (produits, familles) avec des champs comme : barcode
, nom_produit
, code_type
, famille
, created_at
, etc. Cela a permis d’établir un socle solide pour les futures opérations.
Deux pages web ont été développées :
Cette semaine, j’ai amélioré le système de saisie des produits avec l’ajout d’un dictionnaire PHP ($productMapping
) pour associer automatiquement chaque nom de produit à son code_type
. Cela a permis d’éviter les erreurs de saisie manuelle.
Ensuite, j’ai conçu un module complet pour la gestion des bons de commande avec création d’une nouvelle table bon_de_commande
et de la page bon_commande.php. L’utilisateur peut :
J’ai commencé le développement de la génération d’étiquettes produits. Ces étiquettes devaient contenir :
code_type
et le barcode
Une première version a été testée mais des problèmes de format ont été rencontrés (codes illisibles à l’impression). J’ai donc temporairement mis cette partie en pause pour y revenir plus tard.
En parallèle, j’ai mis en place une table utilisateur
avec sécurisation des mots de passe via BCRYPT, et gestion des rôles (admin/utilisateur) et groupes.
Développement de la page historique_commande.php affichant toutes les commandes passées avec leurs détails : nom, destinataire, état, nombre de produits. Possibilité de cliquer sur une commande pour voir ses détails (via details_commande.php
).
Création de la page d’accueil sécurisée avec tableau de bord affichant les liens disponibles en fonction du rôle utilisateur connecté. Cela améliore la navigation et l’expérience utilisateur.
Des fonctions ont aussi été ajoutées pour modifier l’état de commercialisation des produits ou mettre à jour une commande existante (ex : changer le destinataire ou le nom de commande).
Mise en place d’un nouveau système de gestion des versions produit. J’ai créé une nouvelle table soft_hard
avec les champs :
Retour sur le problème d’impression d’étiquettes. Grâce à l’aide d’un collègue, j’ai adapté le format d’étiquette (24 x 54 mm) et résolu les erreurs de redimensionnement. L’étiquette finale est scannée sans difficulté.
Pour conclure la mission, j’ai ajouté une dernière fonctionnalité très utile : produit_info_scanner.php. Cette page permet de scanner un code-barres (via lecteur ou caméra) et d’afficher immédiatement toutes les infos liées au produit (matériel, logiciel, date, etc.).
Chaque produit est enregistré avec un numéro de série unique, un nom, une famille, et un code de type. L'utilisateur peut également choisir une version hardware et software spécifique. Le produit est ensuite ajouté à la base de données avec une vérification du statut de commercialisation.
Une page affiche tous les produits enregistrés sous forme de tableau. L’utilisateur peut filtrer les résultats selon la famille, le nom ou le statut de commercialisation. Les champs version, software et hardware sont également visibles.
Une interface intuitive permet de créer un bon de commande, de sélectionner les produits en stock, d’indiquer le nom du client, et de choisir l’état de la commande. Les quantités sont automatiquement vérifiées pour éviter les erreurs.
Chaque produit peut générer une étiquette contenant les logos officiels (CE, RoHS...), le nom du produit, et deux codes-barres (code_type et numéro de série). Les étiquettes sont imprimables dans un format défini (24x54 mm).
Un système d’authentification sécurisée a été mis en place avec rôles ("admin", "utilisateur") et groupes ("declic", "btib"). L'accès aux pages est limité selon ces rôles.
Chaque produit est lié à une version matérielle et logicielle. L’administrateur peut créer ou modifier ces versions, et les lier à une gamme de produit précise.