Mon regard critique
Ce projet a été une expérience véritablement enrichissante, non seulement sur le plan technique, mais également humain. J’ai eu la chance de collaborer avec des étudiants de semestres supérieurs, ce qui m’a permis de mieux comprendre leurs anciens projets et de les adapter, pour qu’ils puissent fonctionner correctement au sein du conteneur que j’avais conçu. Ces échanges ont été d’une aide indispensable, surtout face au manque de documentation de certains projets, une difficulté que j’ai dû affronter en me basant sur leurs retours et en comprenant les grandes lignes de leurs codes.
J’ai également pu travailler avec Martin HARDY, professeur dans la filière ingénierie logicielle et utilisateur de Linux. Nos discussions m’ont énormément aidé à résoudre le plus gros problème technique qui était de réussir à relier le frontend Angular à l’API JEE.
Ce défi s’est avéré particulièrement complexe et a nécessité de comprendre les différentes configurations que ce soit pour Tomcat, la compilation de la partie JEE ou encore du Dockerfile créé sur mesure pour faire fonctionner le tout. Grâce à son aide et à de nombreux tests et ajustements, y compris sur mon propre temps en dehors des créneaux dédiés au projet informatique, j’ai pu surmonter ces obstacles.
Ces efforts ont finalement porté leurs fruits car j’ai réussi à faire fonctionner le conteneur avec trois projets d’étudiants. Ce succès a renforcé ma persévérance et ma capacité à résoudre des problèmes complexes tout en collaborant avec différents profils externes à mon équipe de projet. Cette expérience m’a également sensibilisé à l’importance cruciale de la documentation et de la communication pour réussir un projet.
Présentation
Ce projet était interne à notre école, cette dernière souhaitait avoir une solution de mise à disposition des étudiants, mais aussi des visiteurs du site groupe-aen.info, les projets réalisés par les étudiants dans le cadre de leur projet informatique.

Pour héberger les solutions réalisées par les étudiants de la filière IL (Ingénierie Logicielle) et SI (Système d’Information) nous avons utilisé des conteneurs grâce à Docker, afin d’héberger les projets en fonction de leurs technologies. Ces projets utilisaient différentes technologies connues en fonction du semestre, à savoir :
- S1 : NodeJS
- S2 : PHP/MySQL
- S3 SI : Linux/Windows
- S3 IL : C#/WPF
- S4 SI : Django/Python
- S4 IL : Angular/JEE
- S5 SI : Python
- S5 IL : Android
La visualisation des projets se faisait grâce à une interface utilisateur que nous avions créée pour les visiteurs. L’ajout, la modification ou encore la suppression de projet se faisait grâce à une interface administrateur que nous avons également créée.
Cette interface contenait un Web SFTP pour l’ajout de fichiers au sein des conteneurs, une interface PHPMyAdmin afin de gérer les bases de données des projets et une partie supervision, pour alerter en cas de détection d’un problème et afficher les données en temps réel des conteneurs et du serveur hébergeant notre solution.
Objectifs et enjeux
L’objectif principal de ce projet était de concevoir une solution complète permettant d’héberger et de rendre accessibles les projets réalisés par les étudiants des filières Ingénierie Logicielle (IL) et Système d’Information (SI). Pour cela, nous devions installer une dizaine de projets étudiants dans des conteneurs Docker sur mesure, tout en tenant compte des différentes technologies associées aux différents semestres.
Un autre objectif était de développer une interface utilisateur intuitive permettant aux visiteurs de visualiser facilement les projets avec en parallèle, une page dédiée aux administrateurs (élèves et professeurs) pour gérer les projets, avec des fonctionnalités comme l’ajout, la modification ou encore la suppression des contenus hébergés.
Ce projet représentait un enjeu car il permettait de valoriser les compétences des étudiants auprès des visiteurs externes tout en renforçant l’image de l’école. En offrant une solution attrayante et fonctionnelle pour héberger les projets étudiants, cela permettait non seulement de mettre en avant la diversité des projets réalisés dans les filières Ingénierie Logicielle et Système d’Information, mais aussi de démontrer la qualité de la formation aux entreprises et aux futurs étudiants.
Cependant, l’un des principaux dangers était l’échec dans la mise en place des conteneurs avec les technologies correspondantes à chaque semestre. La diversité de technologies permettait certes d’améliorer nos chances de réussir au moins un ou plusieurs conteneurs mais pouvait également les réduire grandement. Etapes
Mise en place du Web SFTP
Pour simplifier l’intégration des projets des étudiants, j’avais choisi et configuré un outil assurant un transfert de fichiers facile. Après plusieurs recherches, mon choix s’est porté sur Filestash, une solution gratuite et simple d’utilisation.

Cet outil offrait une interface web intuitive pour charger facilement leurs projets dans des répertoires prédéfinis selon les technologies utilisées. L’objectif était de garantir une prise en main rapide et une compatibilité avec l’ensemble des conteneurs projets.
Création du conteneur pour les projets Angular/JEE
L’étape suivante consistait à développer un conteneur Docker adapté aux projets Angular/JEE des étudiants en semestre quatre. Je vais vous résumer les principales fonctionnalités et configurations implémentées dans le Dockerfile que j’ai pu créer pour ce conteneur.

Je m’étais basé sur l’image Tomcat version 9 pour héberger et exécuter l’API JEE. J’avais ensuite changé la version par défaut de Java (version 11) pour Java 17, afin de garantir la compatibilité avec les projets des étudiants qui utilisaient tous cette version. Plusieurs outils essentiels ont été ajoutés au fonctionnement du projet comme OpenJDK 17 pour l’API JEE, Apache2 pour le front-end Angular et SSH afin d’utiliser le web SFTP mis en place précédemment.
J’avais modifié certains fichiers de configuration de Tomcat pour rendre accessible l’interface d’administration Tomcat avec un compte utilisateur et des permissions spécifiques si jamais les élèves avaient besoin de changer des paramètres spécifiques à l’API JEE. Et enfin j’avais ajouté la création d’un groupe et d’un utilisateur SFTP avec les permissions nécessaires pour manipuler les répertoires où étaient stockés les projets depuis le web SFTP.
Résolution des problèmes liés aux projets étudiants
Une part importante du travail a été dédiée à comprendre les projets étudiants destinés à être hébergés dans le conteneur. Mais j’ai été confronté à certains problèmes. De nombreux projets ne disposaient pas de documentations claires pour leur mise en production.
Il a fallu que j’analyse leurs structures et codes pour comprendre leur fonctionnement. Il y avait également de nombreux projets qui n’étaient pas compilés car ils n’étaient testés qu’en local par les étudiants. Mais aussi que je comprenne le mécanisme de compilation pour Angular et JEE afin de les rendre opérationnels dans un environnement de production.
La résolution de ces problèmes a nécessité de nombreux échanges avec des étudiants ayant travaillé sur ces projets ainsi qu’avec Martin HARDY professeur en ingénierie logicielle et utilisateur Linux. Ces discussions m’ont permis de lever les blocages techniques auxquels j’étais confronté.
Tests et ajustements
Une fois les configurations terminées, j’ai pu réaliser de nombreux tests pour garantir le bon fonctionnement du conteneur.
Parmi ces tests, il y avait l’intégration et le déploiement des fichiers compilés au sein des conteneurs. Mais également, l’ajustement des configurations pour résoudre des problèmes comme les permissions des répertoires accessibles via SFTP, le bon démarrage des services et enfin la compatibilité des versions de logiciels avec les projets.
Conclusion
Grâce à ces efforts, j’ai pu héberger et faire fonctionner un projet correctement compilé et configuré. Ces étapes, bien que complexes et chronophages, m’ont permis de valider la faisabilité de la solution et d’améliorer ma capacité à résoudre des problèmes sans abandonner face aux centaines d’erreurs auxquelles j’ai pu me confronter durant ce projet.
Acteurs
L’équipe projet était composée de Thibault BERTRAND, Benoît PREVOST, Maïwenn GUILLOU, Noé LARIDAN, qui assurait aussi le rôle de Scrum Master et de moi-même. Ensemble, nous avons partagé la conception, le développement, les tests et l’intégration de la solution tout en nous entraidant tout le long du projet en fonction des difficultés de chacun.

Dans le cadre de ma mission, j’ai pu collaborer avec plusieurs personnes externes au projet pour relever les défis techniques majeurs. Tout d’abord, il y a eu l’encadrant Martin HARDY. Grâce à son expertise en ingénierie logicielle et en administration Linux, j’ai pu résoudre le problème de connexion entre le front-end Angular et l’API JEE.
Ensemble, nous avons exploré diverses configurations, notamment pour Tomcat et la compilation du code JEE. Ces échanges m’ont permis de progresser en Docker que je maîtrisais moins au début du projet car nous étions tout juste en train d’apprendre son fonctionnement.
Et enfin, il y a eu les étudiants Louis VIGNES, Jonathan PELLE, et Pierre HERBRETEAU. Ils ont joué un rôle clé pour m’aider à héberger leurs anciens projets dans mon conteneur Docker que j’étais en train de construire.
Bien que le manque de documentation ait compliqué la tâche, nos discussions m’ont permis de comprendre leurs réalisations et d’ajuster les configurations nécessaires pour les faire fonctionner dans mon conteneur.
Résultats
Ce projet m’a permis de développer des compétences techniques et humaines essentielles. J’ai renforcé ma maîtrise de Docker, en particulier dans la conception de Dockerfile avec des configurations spécifiques aux besoins.
J’ai également pu comprendre le fonctionnement de technologies de la filière accès développement comme Angular et JEE, ce qui m’a aidé à résoudre les problématiques d’interconnexion entre le frontend et l’API.
Sur le plan personnel, j’ai appris à persévérer face à des défis. J’ai grandement amélioré mon autonomie, mais aussi ma capacité à collaborer avec des intervenants externes, qu’il s’agisse d’étudiants de semestres supérieurs ou de mon professeur Martin HARDY. Ce projet a consolidé ma capacité à identifier et résoudre des problèmes, mais également à comprendre l’importance d’une bonne documentation technique pour faciliter la continuité des projets.
Pour le Groupe AEN, ce projet a permis de disposer d’une solution fonctionnelle et évolutive pour mettre en avant les travaux des étudiants sur leur site internet. Grâce à la plateforme mise en place, l’école peut désormais héberger et rendre accessibles les projets réalisés par les étudiants des filières Ingénierie Logicielle et Système d’Information.
Lendemains du projet
Dans un futur immédiat. La solution déployée est pleinement fonctionnelle et répond aux attentes initiales de l’école. Les projets étudiants sont hébergés dans des conteneurs Docker adaptés et accessibles via une interface utilisateur.
À plus long terme, cette plateforme peut évoluer pour accueillir de nouveaux projets, grâce à la modularité des conteneurs. L’école peut également exploiter cette solution pour renforcer sa communication et attirer davantage de futurs étudiants et partenaires grâce à une vitrine technologique concrète. Quant aux étudiants, ils peuvent ainsi présenter leur travail, ce qui valorise leur apprentissage et leur savoir-faire auprès du public et des entreprises.
Enfin, aujourd’hui, ce projet représente une vitrine technologique pour l’école. Il met en lumière les compétences des étudiants, la diversité des technologies enseignées et la capacité de l’établissement à proposer un enseignement de qualité. Cette plateforme devient un outil stratégique pour renforcer l’image de l’école auprès des futurs étudiants, des partenaires et des visiteurs externes.