STELLANTIS est un groupe automobile multinational issu de la fusion entre PSA (Peugeot-Citroën) et FCA (Fiat Chrysler Automobiles). Il regroupe de nombreuses marques emblématiques telles que Peugeot, Citroën, Fiat, Jeep, Opel, Alfa Romeo ou encore Maserati. L'entreprise se positionne comme un acteur majeur de la mobilité durable, en développant des solutions innovantes dans les domaines des véhicules électriques, des services connectés et de la conduite autonome.
STELLANTIS propose une large gamme d’activités, notamment :
La clientèle de STELLANTIS est très diversifiée, allant du grand public aux professionnels, en passant par les flottes d’entreprise. Le groupe est implanté dans de nombreux pays, avec des sites industriels et des centres de R&D à l’échelle mondiale.
J’ai effectué un stage de 16 semaines au sein de cette entreprise, du 13 janvier au 2 mai 2025. Durant cette période, j’ai développé un outil de planification et de gestion des projets de test des véhicules. Cet outil avait pour objectif de centraliser les informations liées aux campagnes d’essais, de faciliter le suivi des tâches et d’optimiser la coordination entre les différentes équipes techniques. Ce projet m’a permis de mettre en pratique mes compétences en développement informatique dans un contexte industriel exigeant, tout en découvrant les enjeux de l’innovation dans le secteur automobile.
Avant de lancer un véhicule en production, STELLANTIS se doit de tester toutes les fonctionnalités du véhicule afin de s’assurer de livrer à ses clients des véhicules de qualité.
Comme on peut le voir sur la figure 1, un véhicule est découpé en plusieurs projets. Chaque projet a pour objectif de tester des fonctionnalités spécifiques, allant des tests de capacité de freinage aux systèmes ADAS, jusqu’à la radio du véhicule.
L’équipe dans laquelle je me trouvais était chargée de tester l’intégration des différents réseaux du véhicule. Les tests étaient donc réalisés sur des armoires électriques reproduisant le réseau électrique des véhicules.
Sur la figure 1, ces armoires sont représentées par les rectangles nommés « Baies ». Ces baies sont regroupées au sein d’une IVP, qui permet de faire le lien entre toutes les baies, et sont pilotées par un « Banc », lequel, pour simplifier, est un ordinateur capable de se connecter aux différentes baies.
Durant ce stage, j’ai eu l’occasion d’évoluer dans un environnement professionnel international. En effet, comme le montre la figure 2, STELLANTIS dispose de plusieurs centres techniques chargés des tests véhicules dans différents pays à travers le monde.
Ainsi, pour développer cette application, j’ai dû collaborer avec des utilisateurs situés en Italie, en Chine, au Maroc et aux États-Unis afin d’adapter le site aux spécificités de chaque pays. Le site sera également utilisé en Allemagne, en Inde et au Brésil.
Pour développer ce site, je suis parti d’un site existant, développé initialement par mon tuteur. Ce site proposait quelques fonctionnalités de base, mais devait être amélioré, tant en termes de performances que de fonctionnalités.
Les fonctionnalités attendues étaient les suivantes :
Dans le cadre de mon stage chez STELLANTIS, j’ai été chargé de mettre en place l’interface d’affichage des statuts des bancs. Cette fonctionnalité, visible en figure 3, permet aux utilisateurs d’avoir une vision synthétique de l’état des différents bancs répartis sur plusieurs sites à travers le monde. L’interface regroupe les bancs par localisation (comme ici avec Belchamp et Poissy), ce qui facilite la lecture pour les techniciens et chefs de projets répartis sur différents sites. Chaque banc est représenté sous forme de bloc coloré, dont la couleur correspond à son état de fonctionnement :
Afin d’améliorer la lisibilité et de contextualiser l’utilisation de chaque banc, le nom du projet auquel il est affecté est affiché juste en dessous du nom du banc. Cette indication est cruciale pour les équipes, car un même site peut héberger des bancs utilisés par plusieurs projets différents.
L’interface est interactive : en cliquant sur un banc, l’utilisateur voit apparaître dans un panneau latéral droit l’ensemble des informations détaillées concernant ce banc. Cela permet une analyse rapide de l'état de chaque équipement sans quitter la page principale. En plus de la visualisation, cette page permet également d’ajouter un nouveau banc, de modifier les informations d’un banc existant, ou encore de supprimer un banc. Ces opérations sont soumises à des contrôles d’autorisation afin de garantir l’intégrité des données.
Les données de statut sont actualisées toutes les 15 minutes environ grâce à un système de scripts automatisés, ce qui garantit une vision quasiment en temps réel de l’état global des infrastructures. Cette fréquence de mise à jour permet aux utilisateurs de réagir rapidement en cas de dysfonctionnement détecté.
Derrière cette interface relativement simple se cache une infrastructure technique plus complexe, illustrée en figure 4. Les bancs étant répartis sur plusieurs réseaux internes distincts, il est impossible de les interroger directement depuis le serveur central. Par ailleurs, le site web est hébergé sur un serveur cloud italien dont l’accès est restreint par un système d’authentification basé sur Active Directory. Active Directory est un service de gestion des identités et des accès utilisés en entreprise, qui permet de centraliser l’authentification des utilisateurs : pour accéder à certaines ressources, l’utilisateur doit être connecté avec un compte d’entreprise reconnu et autorisé par ce service. Cela signifie que, pour interagir avec le serveur, il aurait fallu simuler une connexion utilisateur en renseignant son identifiant et son mot de passe dans le script, ce qui aurait nécessité de les stocker localement. Une telle solution aurait posé d’importants problèmes de sécurité, d’autant plus que les mots de passe sont renouvelés obligatoirement tous les trois mois. Il était donc nécessaire de concevoir une solution autonome, sécurisée et indépendante de toute authentification manuelle. J’ai ainsi mis en place une architecture distribuée, adaptée à la fois aux contraintes réseau et aux exigences de sécurité.
Concrètement, un script local est déployé dans chaque réseau (France, Chine, Italie, États-Unis, etc.). Ce script interroge les bancs accessibles dans le réseau local afin de déterminer leur état. Une fois l’état de chaque banc identifié, le script transmet les informations à un petit serveur web Apache, également installé dans le réseau local, qui est capable de communiquer avec la base de données. Ce serveur local se charge ensuite de mettre à jour la base centrale avec les statuts relevés. Le site web n’a donc plus qu’à interroger cette base pour afficher les statuts en temps réel. De plus lorsque qu’un statut change, le changement est conservé afin d’avoir un historique d’utilisation des bancs sur le long terme pour générer des KPI utilisé par la hiérarchie pour décider des investissements.
Pour que le script d’interrogation soit exécuté régulièrement et automatiquement, j’ai écrit un script d’installation qui configure une tâche planifiée sous Windows. J’ai accompagné le tout d’un manuel d’installation détaillé permettant à tout technicien de déployer l’ensemble du système dans un nouveau réseau sans difficulté particulière.
Cette fonctionnalité, bien qu’elle puisse sembler simple du point de vue de l’utilisateur, a exigé la mise en œuvre d’une architecture distribuée, capable de s’adapter à des contraintes techniques, organisationnelles et sécuritaires fortes. Elle répond à un besoin métier réel et a été adoptée avec satisfaction par les équipes de plusieurs pays, qui disposent désormais d’un outil fiable et lisible pour surveiller l’état de leurs équipements. Le développement de cette fonctionnalité m’a permis de travailler sur l’ensemble du cycle, de l’analyse des contraintes à la mise en production, en passant par le déploiement et la rédaction de documentation technique.
La figure 5 présente une interface d’administration que j’ai conçue dans le cadre de mon stage chez STELLANTIS, permettant de gérer les droits d’accès aux différentes fonctionnalités du site web. Cette interface se matérialise par un tableau croisé dynamique : chaque ligne représente un groupe d’utilisateurs, et chaque colonne une fonctionnalité précise.
L’objectif de cette interface est de proposer un système de gestion des droits avancé, inspiré du fonctionnement des groupes Unix/Linux, où les utilisateurs héritent des permissions de leur groupe. Ici, j’ai conçu plusieurs niveaux de droits allant bien au-delà d’un simple booléen binaire (accès / pas accès). En tout, 52 fonctionnalités différentes ont été identifiées et regroupées visuellement en blocs en fonction des pages de l’application (Forecast, Cabinet usage, Bench status, etc.).
Chaque cellule du tableau est colorée selon le niveau de permission attribué :
Ces conditions particulières sont détaillées dans la légende (voir bulle 14), et peuvent dépendre par exemple du fait que l’utilisateur soit dans le même centre technique que l’objet concerné.
Pour permettre cette granularité de contrôle, j’ai mis en place un système de vérification des droits en deux étapes côté serveur :
Ce mécanisme de contrôle m’a permis de centraliser la gestion des règles d’accès et de garantir leur cohérence à travers tout le site.
Enfin, il est important de noter que ce système s’appuie sur l’Active Directory de l’entreprise. L’utilisateur n’a pas besoin de s’authentifier manuellement, son identifiant est automatiquement reconnu à l’ouverture du site, grâce à la session Windows initiée lors de la connexion à son poste. Cela permet de garantir que seuls des utilisateurs internes, appartenant aux bons groupes, peuvent accéder à l’application.
Mon stage chez STELLANTIS m’a permis de travailler sur un projet concret à fort enjeu technique et organisationnel, dans un environnement industriel international. J’ai contribué au développement d’une application web de gestion des moyens de test et des droits d’accès, utilisée dans plusieurs centres techniques à travers le monde. Ce stage m’a permis de mettre en pratique des compétences variées :
Ce stage m’a donc permis de mettre en œuvre deux compétences clés de la formation :
Au-delà des aspects techniques, ce projet m’a également appris à collaborer avec des interlocuteurs étrangers, à prendre en compte des contraintes multiculturelles et à concevoir des outils adaptés, fiables et durables.
Ainsi, ce stage a constitué une expérience formatrice complète, en phase avec les exigences du BUT Informatique, et m’a permis de mobiliser à la fois mes compétences techniques et organisationnelles dans un cadre professionnel exigeant.