Objectif : Cette page présente l'acquisition de mes apprentissages critiques (AC) en associant chacun avec les composantes essentielles (CE) correspondantes. Chaque AC est évalué selon trois niveaux : Acquis, En cours d'acquisition, ou Non acquis.
Note : Pour des raisons de confidentialité imposées par l'entreprise lors de mon stage, je n'ai pas pu créer une page dédiée à sa présentation. Cependant, les apprentissages et compétences développés sont illustrés dans les exemples ci-dessous.
Lors de mon stage, j'ai eu à modéliser une situation complexe liée à un parcours de fichiers dans une arborescence (CE2.01). Pour choisir des structures adaptées (AC1), j'ai d'abord étudié les méthodes classiques disponibles (CE2.02). En utilisant un raisonnement structuré (CE2.03), j'ai opté pour une gestion récursive simple, en m'aidant d'un tableau dynamique pour stocker les résultats. Ce choix permettait d'explorer chaque dossier en profondeur tout en conservant toutes les images récupérées. Cette solution prouve ma capacité à adapter la logique de traitement aux besoins réels du projet.
Lors de mon stage, j'ai du trouver des algorithme adéquats à utiliser pour des situations complexe liée au traitement de gros volume d'images réparties dans plusieurs dossiers imbriqués (CE2.01). Par exemple, pour extraire toutes les images sans perte ni ralentissement du NAS, j'ai choisi un algorithme de parcours récursif combiné à une structure dynamique pour stocker les résultats. Par exemple, pour chaque dossier, l'algorithme va parcourir tout son contenu, puis revient en arrière pour continuer avec les dossiers suivants, garantissant donc un balayage bien complet. Ce choix, justifié par une réflexion méthodique, m'a permis d'optimiser le temps de traitement tout en assurant une bonne récupération de toutes les images (CE2.04).
Sur le projet e-commerce développé en équipe, comprendre les enjeux de sécurisation des données et du code (AC3) était crucial pour protéger les informations sensibles des utilisateurs. En m'appuyant sur des schémas de raisonnement sécuritaires établis (CE2.03), j'ai implémenté un système de cryptage robuste utilisant le hachage avec sel et poivre. Cette approche justifiée par les bonnes pratiques de sécurité inclut l'utilisation de bcrypt, des sels uniques par utilisateur, et un poivre global.
Le professeur a tenté de forcer le système en testant différentes failles mais il n'y est pas arrivé (CE2.04 validation des résultats), confirmant que la sécurité était bien pensée et optimisée, y compris au niveau du code PHP et de la gestion des permissions utilisateurs/admins.
Cette compétence nécessite une formation approfondie sur l'éco-conception logicielle, l'analyse du cycle de vie des applications, et l'évaluation de l'empreinte carbone des solutions numériques. Il s'agit d'un domaine d'expertise que je souhaite développer dans mes projets futurs.
Concevoir et développer des applications communicantes (AC1) a été central dans mes récents projets. Sur le projet e-commerce, j'ai participé à la mise en place d'une architecture inspirée du modèle MVC, avec une séparation claire entre interface, logique métier et base de données. Nous avons relié directement le site à une base dédiée pour qu'ils puissent communiquer, permettant ainsi une gestion dynamique des produits et utilisateurs. En appliquant les bonnes pratiques (CE3.03), nous avons obtenu une application fluide, sécurisée (CE3.01) et maintenable, assurant une qualité de service optimale (CE3.02).
Durant mon stage, j'ai également dû relier l'outil web que je développais avec un serveur NAS via une API, permettant de, récolter, traiter et structurer automatiquement des fichiers images pour les afficher sur l'interface.
Pour le projet CTF, utiliser des services réseaux sur des serveurs virtualisés (AC2) m'a vraiment aidé à créer une architecture stable sur le VPS fourni. En suivant les bonnes pratiques d'architecture (CE3.03), j'ai mis en place une organisation avec Docker pour isoler les services, Docker Compose pour gérer les conteneurs et Portainer pour une gestion plus visuelle. Tout ça permet d'assurer une continuité d'activité fiable (CE3.04), avec des déploiements simples et une maintenance efficace. Grâce à cette virtualisation, les environnements sont bien cloisonnés, ce qui facilite aussi les restaurations en cas de souci.
Pour sécuriser les services et données du système (AC3) CTF, j'ai mis en place une stratégie globale de sécurisation à tous les niveaux (CE3.01). En respectant les normes et bonnes pratiques (CE3.03), j'ai configuré toute la plateforme en HTTPS, avec des certificats SSL/TLS valides et des redirections automatiques de HTTP vers HTTPS. Ces redirections sont rendues possibles grâce à la configuration du fichier docker-compose.yml, que j'ai adapté pour forcer les connexions sécurisées, garantissant une navigation protégée pour tous les utilisateurs.
Dans le cadre d'un projet universitaire de refonte de système d'information (Eliga), optimiser les modèles de données de l'entreprise (AC1) a nécessité une approche méthodique rigoureuse. En m'appuyant sur des bases mathématiques (CE4.03), j'ai procédé à l'analyse des dépendances fonctionnelles et à l'application des formes normales (1FN, 2FN, 3FN, BCNF). Ce travail de normalisation complète, en assurant la cohérence et la qualité des données (CE4.02), a permis l'élimination des redondances et l'optimisation des performances grâce à une meilleure décomposition des tables.
Sur le site e-commerce, la protection des données personnelles (AC2) était vraiment une priorité. En respectant les réglementations sur la vie privée (CE4.01), j'ai mis en place un système de gestion sécurisée des mots de passe. Pour garantir la cohérence et la qualité (CE4.02), j'ai utilisé l'algorithme bcrypt avec des sels uniques générés pour chaque utilisateur, un poivre global stocké ailleurs. Cette solution en plusieurs couches assure la sécurité sans sacrifier l'expérience utilisateur. Ainsi, même si l'une des couches venait à être piratée, la décomposition en plusieurs couches ajoute un mur supplémentaire à franchir pour le pirate, pour pouvoir obtenir ce qu'il veut.
Lors de mon stage, j'ai travaillé sur l'affichage de centaines d'images issues d'un NAS. Pour limiter l'impact sur les performances et éviter les appels redondants, j'ai mis en place un système de mise en cache des résultats, tout en respectant les enjeux liés à l'utilisation raisonnée du stockage et aux infrastructures cloud utilisées (CE4.02). L'interface a été conçue pour rester fluide et claire, malgré des retours API parfois lourds, ce qui a permis de garantir la cohérence et la qualité de l'affichage (CE4.02).
Sur le projet e-commerce, j'ai réalisé plusieurs requêtes de base de données afin d'afficher les résultats sur le site de manière organisée, avec pagination et tri dynamique pour améliorer la lisibilité et l'accès à l'information (CE4.03). J'ai veillé à présenter les données de façon compréhensible, efficace et conforme aux besoins des utilisateurs (AC3).
Cette compétence nécessite une expertise dans l'intégration de sources de données diverses (APIs, formats XML/JSON, bases NoSQL, fichiers CSV/Excel, données temps réel). Il s'agit d'un domaine technique avancé que je prévois de développer lors de projets futurs impliquant du Big Data que je vais voir surement lors de mon alternance de troisième année.
Note : Cette compétence n'était pas obligatoire à mettre dans le portfolio pour mon parcours IAMSI, mais j'ai choisi de la réaliser car elle m'intéressait particulièrement. C'est d'ailleurs sûrement ma favorite.
Savoir identifier les processus présents dans une organisation (AC1) a été essentiel dans le projet ELIGA. En effet on a mené une refonte du SI en analysant les tâches longues et répétitives pour les simplifier. J'ai aussi travaillé sur cette AC, durant mon stage, j'ai remplacé un enchaînement de manipulations sur l'explorateur Windows et de mails manuels, par un outil web qui automatise tout ça en quelques clics. J'ai du étudier les processus bloquants pour adapter mon outil aux contraintes. En gardant une démarche proactive, créative et critique (CE5.04), j'ai su faire évoluer les méthodes utilisées tout en gardant la même finalité.
Formaliser les besoins du client et de l'utilisateur (AC2) a été un vrai enjeu, autant sur le projet CTF (en tant que Product Owner) que durant mon stage. J'ai maintenu une communication régulière et naturelle avec le client du CTF, en gardant une approche professionnelle mais détendue, ce qui a créé un vrai climat de confiance. En communiquant efficacement avec les différents acteurs (CE5.01), j'ai pu comprendre précisément leurs attentes. En adoptant une démarche proactive, créative et critique (CE5.04), j'ai transformé ces échanges en spécifications claires et utiles pour toute l'équipe.
Durant mon stage, j'ai également établi un cahier des charges en communiquant efficacement (CE5.01) avec mon tuteur, afin de formaliser précisément ses besoins. Cet échange structuré nous a permis de cadrer le projet, de fixer des objectifs concrets, et d'adapter les développements aux attentes métier. Cette démarche m'a permis de clarifier les fonctionnalités à mettre en œuvre tout en anticipant les contraintes techniques.
Pendant mes projets, j'ai parfois du prendre du recul sur certaines demandes pour voir si elles étaient vraiment réalisables (AC3). En respectant les règles juridiques et les normes en vigueur (CE5.02), j'ai par exemple refusé des fonctionnalités trop complexes dans le projet CTF, qui auraient mis en péril la sécurité ou les délais. En stage, j'ai aussi écarté des automatisations nécessitant des accès trop sensibles. En sensibilisant à une gestion responsable et durable (CE5.03), j'ai toujours proposé des alternatives réalistes. Cette démarche proactive, créative et critique (CE5.04) m'a permis de garder un bon équilibre entre faisabilité et satisfaction client.
En tant que Product Owner du projet CTF, définir et mettre en œuvre une démarche de suivi de projet (AC4) a constitué un aspect fondamental que je continue de perfectionner. En communiquant efficacement avec les différents acteurs du projet (CE5.01), j'ai établi des rituels Agile réguliers (sprint planning, daily standups, retrospectives) et créé des tableaux de bord visuels pour le suivi de l'avancement. Durant mon stage, j'ai mis en place des points de suivi hebdomadaires avec mon maître de stage et documenté l'évolution des livrables. En sensibilisant à une gestion éthique, responsable et durable (CE5.03), j'ai veillé à équilibrer la charge de travail de l'équipe, optimiser l'utilisation des ressources, et maintenir une communication transparente sur les difficultés rencontrées. Bien que mes méthodes de suivi soient fonctionnelles, je continue d'apprendre à affiner les indicateurs de performance et à améliorer l'anticipation des risques projet.
Durant mon stage, j'ai mis en place des points de suivi hebdomadaires avec mon maître de stage et documenté l'évolution des livrables. Je n'hésitais vraiment pas à demander ou organiser des réunions si besoin.
Application complète avec sécurisation avancée, communication BD, et interface responsive
Interface web communicant avec serveur NAS, algorithmes récursifs, gestion de fichiers
Product Owner, déploiement VPS, containerisation Docker, sécurisation HTTPS
Normalisation de base de données, optimisation des performances, projet universitaire