Mon CV
← Retour aux projets
⚙️ Projet Professionnel · BTS SIO SLAM

🏗️ Amélioration du SI du laboratoire GSB

🏢 Client : Galaxy Swiss Bourdin (GSB) 🏛️ Laboratoire pharmaceutique · Cas d'étude BTS SIO · 540 visiteurs médicaux 💼 Rôle : Collaborateur SLAM 👥 2 membres (SLAM) 🔄 Approche AGILE 🛠️ VB.Net · Visual Studio 2022 · MySQL

📋 Contexte

Dans la continuité des projets précédents menés pour le laboratoire Galaxy Swiss Bourdin (GSB), l'entreprise héberge désormais elle-même ses intranets avec une solution sécurisée. Pour renforcer encore son système d'information, GSB confie à notre équipe un nouveau projet centré sur la fiabilisation de l'hébergement et le développement d'un outil d'administration.

Notre mission SLAM consiste à développer l'application GSB-Admin, un client lourd permettant aux super-administrateurs de gérer les utilisateurs de l'application GSB-AppliFrais. Le projet a été conduit en approche AGILE avec des stand-up meetings en début de séance et un suivi via Kanboard.

🎯 Périmètre du projet SLAM

💻 Application GSB-Admin

  • Développement d'un client lourd VB.Net sous Visual Studio 2022
  • Application MDI réservée aux super-administrateurs GSB
  • CU1 : Authentification par mot de passe haché SHA-256 (fichier config.ini)
  • CU2 : Liste des utilisateurs (visiteurs et comptables) via DataGridView
  • CU3 : Réinitialisation du mot de passe d'un utilisateur
  • CU4 : Création d'un utilisateur (visiteur ou comptable)
  • Script SQL de mise à jour de la base héritée du projet précédent (GSB-AppliFrais)
  • Trigger SGBDR pour incrémenter automatiquement nbFichesRefusées
  • Note technique de maintenance évolutive pour les développeurs GSB-AppliFrais

👤 Ma contribution personnelle

En tant que collaborateur SLAM, j'ai pris en charge les tâches de modélisation, de base de données et de développement des formulaires métier :

  • Rédaction des cas d'utilisation (CU1 à CU4) Rédaction complète des fiches descriptives des quatre cas d'utilisation de GSB-Admin en respectant le formalisme imposé par le cahier des charges : authentification, liste des utilisateurs, réinitialisation et création d'utilisateur.
  • Modélisation et script SQL de mise à jour Analyse approfondie de la structure héritée du projet GSB-AppliFrais (tables Utilisateur, Visiteur, Comptable), rédaction du script SQL de mise à jour garantissant la compatibilité avec l'application en production, avec ajout de la table Comptable et du champ nbFichesRefusées via des requêtes ALTER TABLE respectant l'intégrité référentielle.
  • Trigger SGBDR nbFichesRefusées Implémentation du trigger qui incrémente automatiquement nbFichesRefusées à chaque suppression d'une ligne de frais hors forfait non valide par un comptable — fonctionnalité entièrement à ma charge.
  • Formulaire MDI principal (FrmPrincipal) Démarrage et structuration du formulaire MDI principal : création du MenuStrip avec les entrées Utilisateurs (Liste, Créer) et Administration (Réinitialiser MDP, Quitter), liaison logique entre FrmAuthentification et FrmPrincipal après authentification réussie.
  • Développement des formulaires CU2, CU3, CU4 Développement en binôme des trois formulaires métier : CU2 (connexion MySQL via config.ini, requête SQL, affichage DataGridView), CU3 (sélection utilisateur, hachage SHA-256 du nouveau mot de passe, mise à jour en base), CU4 (formulaire complet, contrôle d'unicité du login, hachage SHA-256, insertion dans Utilisateur puis Visiteur ou Comptable selon le rôle).

🏗️ Architecture de l'application GSB-Admin

L'application respecte le pattern MDI (Multiple Document Interface) de Windows Forms :

Authentification — FrmAuthentification Lecture du hash SHA-256 depuis config.ini, comparaison avec la saisie hachée, blocage après 3 tentatives échouées. Aucun mot de passe en clair dans les fichiers ou la base.
Navigation — FrmPrincipal (MDI) Formulaire parent MDI avec MenuStrip. Chaque entrée ouvre le sous-formulaire correspondant dans le conteneur MDI. Transition propre depuis l'écran d'authentification.
Formulaires métier — CU2 / CU3 / CU4 CU2 : DataGridView avec liste des utilisateurs. CU3 : réinitialisation avec hachage SHA-256. CU4 : création complète avec contrôle de doublons et insertion dans la sous-table appropriée (Visiteur ou Comptable).

🔒 Sécurité applicative

Mots de passe — Hachage SHA-256
Aucun mot de passe n'apparaît en clair, ni dans le fichier config.ini ni dans la base de données. Le mot de passe super-administrateur est stocké sous forme de hash SHA-256 dans le fichier de configuration, et tous les mots de passe utilisateurs sont hachés avant insertion ou mise à jour en base.
✅ Conforme aux exigences du cahier des charges GSB
Fichier de configuration — config.ini
Le fichier config.ini centralise les paramètres de connexion à la base de données et le hash du mot de passe super-administrateur, sans aucune donnée sensible en clair.
✅ Déploiement possible sur plusieurs postes avec la même authentification

🗄️ Base de données — Modélisation & mise à jour

La solution est implantée sur la base de données du projet GSB-AppliFrais existant. Le script SQL de mise à jour a été conçu pour ne pas compromettre le fonctionnement de l'application en production :

Table Utilisateur Structure existante préservée : id, nom, prenom, login, mdp (haché), adresseRue, codePostal, ville, dateEmbauche. Aucun ALTER TABLE risqué sur les colonnes existantes.
Table Comptable Ajout du sous-type Comptable avec le champ nbFichesRefusées (INTEGER, initialisé à 0). Contraintes d'intégrité référentielle maintenues.
Trigger SGBDR Trigger activé à chaque suppression d'une ligne de frais hors forfait non valide : incrémente automatiquement nbFichesRefusées du comptable concerné — sans intervention applicative.

💻 Code Source du Projet

assadakh/GSB-Admin Public

Application VB.Net développée sous Visual Studio 2022 — Client lourd MDI de gestion des utilisateurs GSB avec authentification SHA-256, formulaires de gestion (CU2/CU3/CU4) et script SQL de mise à jour de la base.

VB.Net
Voir le code sur GitHub

📊 Bilan

✅ Projet terminé — Application opérationnelle

L'application GSB-Admin est entièrement développée et fonctionnelle : authentification sécurisée, liste des utilisateurs, réinitialisation et création de comptes, script SQL et trigger opérationnels.

Ce projet m'a permis d'approfondir mes compétences en développement VB.Net, en modélisation et mise à jour de base de données relationnelle en conditions réelles, ainsi qu'en gestion de projet AGILE.

🎓 Compétences mobilisées

Compétences issues du référentiel BTS SIO mobilisées dans ce projet :

Activité 1.1 — Gestion du patrimoine informatique
  • Recensement et identification des ressources numériques
  • Exploitation des référentiels, normes et standards adoptés par le prestataire informatique
  • Mise en place et vérification des niveaux d'habilitation associés à un service
Activité 1.2 — Réponse aux incidents et aux demandes d'assistance et d'évolution
  • Collecte, suivi et orientation des demandes
  • Traitement des demandes concernant les applications
Activité 1.4 — Travail en mode projet
  • Analyse des objectifs et des modalités d'organisation d'un projet
  • Planification des activités
  • Évaluation des indicateurs de suivi d'un projet et analyse des écarts
Activité 1.5 — Mise à disposition des utilisateurs d'un service informatique
  • Test d'intégration et d'acceptation d'un service
  • Déploiement d'un service
  • Accompagnement des utilisateurs dans la mise en place d'un service