Présentation détaillée du sujet/projet de stage
Structure d'accueil : Options Informatique
J'effectue mon stage au sein de l'entreprise Options Informatique. C'est une société spécialisée dans les services informatiques et le développement d'applications et sites web. Créée en 1989, elle fait partie intégrante du groupe Maison Options, le leader européen dans la location de matériel événementiel et la décoration éphémère.
Options Informatique assure la gestion et le développement de l’ensemble des outils numériques du groupe Maison Options. Elle joue un rôle central dans la transformation digitale du groupe, en maintenant et en faisant évoluer un parc de 20 sites web, tout en garantissant le bon fonctionnement des systèmes informatiques internes.
L’entreprise est située à Les Mureaux (78130) et elle compte actuellement une vingtaine de collaborateurs, comprenant notamment un Directeur des Systèmes d’Information (DSI), quatre employés au support technique, trois développeurs au service SI, sept développeurs web, un designer web et une product owner. Ces équipes collaborent étroitement afin d’apporter des solutions adaptées aux besoins du groupe, que ce soit en matière de développement web, de support aux utilisateurs ou de gestion d’infrastructures (serveurs, etc.).
Maison Options, la maison mère, a été fondée en 1981. Dirigée par Marc Rocagel, elle est aujourd’hui présente dans 6 pays à travers 22 implantations, dont 14 en France. Elle emploie environ 1 000 salariés et réalise un chiffre d’affaires avoisinant les 100 millions d’euros. Chaque jour, l’entreprise Maison Options organise en moyenne 3 500 réceptions en Europe. Elle dispose d’un catalogue de 3 500 références, et gère la logistique via une flotte de 220 véhicules. Plus de 33 millions d’articles sont loués chaque année.
Intégrée à cet environnement dynamique, Options Informatique agit comme un véritable moteur technologique, en développant des solutions numériques sur mesure pour soutenir l’activité événementielle et logistique du groupe.
Contexte du projet
L'entreprise Maison Options souhaite gagner en efficacité dans le traitement des demandes de devis effectuées en ligne par les utilisateurs des différents sites.
Pour alléger la charge des commerciaux et éviter le travail inutile, elle effectue un premier tri permettant de classer par ordre d'importance les demandes de devis (chaud, tiède, froid).
Elle passes par un prestataire externe qui rappelle les prospects afin leur poser un certain nombre de questions.
La réponse à cette question détermine un score qui permet à l'équipe commerciale de hiérarchiser les demandes. Actuelement, les devis sont envoyés chaque matin par mail au prestataire externe dans des fichiers Excel.
Elle a demandé à sa filiale, Options informatique, de réaliser une application web que le prestataire
externe pourra utiliser. Cette application extranet devra être connectée au système d'information existant
pour récupérer directement les demandes de devis et informations clients, permettre de les traiter, et de les renvoyer.
Équipe projet
- Responsable technique du digial et maître de stage : Xavier Perrault
- Développeur senior en charge du projet : Ali Saoudi
- Développeur senior ressource pour React : Bilel
- UI/UX designer en charge de la maquette : Guillaume
- Développeur en alternance chargé du back-end : Ibra
- Développeur stagiaire chargé du front-end : Jacques-Henri Vollet
Analyse du besoin Ă l'origine du projet
Analyse de l'existant
Actuellement, les commerciaux de l'entreprise Maison Options reçoivent directement les demandes de devis depuis les différents sites du groupe. Afin d'avoir des demandes qualifiées leur permettant de hiérarchiser ces sollicitations selon un score ils envoient chaque matin un fichier Excel à l'entreprise prestataire externe. Ce processus est manuel et peut être source d'erreurs, de retards et de pertes de temps.
La Maison Options a demandé à sa filiale, Options Informatique, de développer une application destinée à ce prestataire externe, susceptible de :
- Recevoir directement les demandes de devis à partir des différents sites du groupe
- Fournir un questionnaire associé à chaque demande
- Permettre la saisie des réponses des prospets via un appel téléphonique,
- Renvoyer la demande de devis accompagnée d’un score calculé sur la base des réponses obtenues.
- Créer, éditer et supprimer des gestionnaires et utilisateurs de l'application
Schéma du projet
Missions et planification
Missions principales du stagiaire
- Développement front-end : Intégration de l'interface utilisateur de l'application
- Intégration API : Connexion aux bases de données via une API
- Tests et debugging : Validation du bon fonctionnement des fonctionnalités
- Veille technologique : Recherche des meilleures pratiques et technologies adaptées
Missions déjà réalisées et planification prévisionnelle
Phase de découverte
Découverte de l’entreprise et mise en place de l’environnement de travail
Lors de mon arrivée en entreprise, j’ai commencé par une phase de découverte de la structure, de son organisation interne, ainsi que des projets en cours. Cette étape m’a permis de mieux comprendre le contexte dans lequel j’allais évoluer et de m’approprier les objectifs de l’équipe technique.
J’ai ensuite procédé à l’installation et à la prise en main des outils nécessaires au développement :
- Visual Studio Code (VSC) en tant qu’éditeur de code principal,
- Git pour la gestion de versions et la collaboration sur le projet,
- Docker pour le déploiement et la gestion d’environnements de développement uniformisés,
- VPN de l’entreprise pour accéder aux ressources internes de manière sécurisée,
- Jira pour le suivi des tâches et la gestion de projet agile.
Analyse des besoins et préparation technique
Une fois l’environnement configuré, j’ai étudié en détail le cahier des charges et les maquettes fournies, afin de bien comprendre les attentes fonctionnelles et visuelles du projet. Cette phase m’a permis d’identifier les différentes fonctionnalités à développer, les contraintes techniques, ainsi que les priorités du projet.
J’ai également pris en main les technologies principales utilisées :
- Pour le front-end, le framework React, associé à la bibliothèque Material-UI (MUI),
- Pour le back-end, le framework Django (Python), qui structure la logique métier et l’accès aux données.
Développement des premières fonctionnalités
Dans un premier temps, j’ai décidé de développer deux éléments clés de l’interface :
- Le Header de l’application, incluant les éléments de navigation et les icônes,
- Un tableau de données interactif, réalisé à l’aide du composant DataGrid de la bibliothèque MUI, permettant l’affichage dynamique d’informations.
Dans le cadre de cette tâche, j’ai également installé et configuré des packages spécifiques pour la gestion des icônes, afin d’assurer la cohérence visuelle avec les maquettes.
Développement phase 1 : front-end utilisateur
Développement du front-end en React
Dans le cadre du développement du front-end, j’ai travaillé avec la bibliothèque React en utilisant Material-UI (MUI) pour concevoir une interface utilisateur moderne et fonctionnelle. Une partie importante de mon travail a concerné le développement des fonctionnalités du tableau de données. J’ai notamment créé :
- Un composant toggle permettant d’ouvrir ou de fermer un onglet de prévisualisation,
- Un composant bouton dropdown pour la sélection d’états,
- Un filtre personnalisé pour affiner les résultats affichés.
J’ai également amélioré le style global à l’aide de CSS et installé plusieurs packages complémentaires, notamment React Bootstrap pour la gestion du responsive.
Développement de pages supplémentaires et préparation des échanges avec l’API
Par la suite, j’ai développé plusieurs pages supplémentaires en créant des Routes afin d’étendre les fonctionnalités de l’application :
- Un onglet de prévisualisation détaillée,
- Une page d’édition des demandes,
- Une page de gestion des utilisateurs.
Dans une optique d’adaptation multi-supports, j’ai continué à travailler l’amélioration du responsive design avec React Bootstrap. Enfin, en vue d’intégrer les données dynamiques, j’ai préparé les requêtes vers l’API REST en m’appuyant sur l’outil Swagger. L'analyse des modèles dans Swagger m’a permis de comprendre la structure des endpoints, les paramètres attendus et les formats de réponse, en prévision de la connexion entre le front-end et le back-end.
Développement phase 2 : connexion à l'api
Intégration au back-end via une api
Tests et finalisation
Tests unitaires et d'intégration, correction des bugs, finalisation du css
Veille technologique et recommandations
Technologies retenues
Front-end
- React.js : Framework JavaScript moderne
- Material UI : Bibliothèque de composants React
Back-end
- Django : Framework Python
Base de données
- PostgreSQL : Base avancée
Recommandations techniques
Stack recommandée
Front-end : React.js avec TypeScript
Back-end : Node.js avec Express.js
Base de données : PostgreSQL
Authentification : JWT