Découverte de Symfony et mise en pratique


Découverte de Symfony et mise en pratique
En début de stage, j’avais une semaine pour comprendre les bases de Symfony, un framework PHP utilisé pour le développement d’applications web. 

MAIS C'EST QUOI SYMFONY ?

Symfony est un Framework PHP qui facilite le développement en proposant des outils préconstruits (gestion des routes, bases de données, formulaires, etc.) tout en respectant les bonnes pratiques. Il repose sur le modèle MVC (Modèle-Vue-Contrôleur), ce qui permet de structurer le code de manière claire et maintenable.

Grâce à sa documentation exhaustive et à sa fiabilité, Symfony est un Framework puissant et incontournable dans l’écosystème PHP.


Outils utilisés pour la gestion du projet

Pour mieux gérer le projet et communiquer efficacement avec mon tuteur et l’équipe IT, j’ai utilisé plusieurs outils professionnels :
  1. Slack, un moyen de communication collaboratif contenant un logiciel de gestion de projets (application similaire : Teams)
  2. GitLab, combinant des outils de gestion de projets et de versionning, GitLab permet de collaborer sur du code et suivre les différentes tâches (application similaire : GitHub)
  3. Notion, un outil qui permet de collaborer en équipe, suivre des tâches et organiser des notes
  4. Monday, utilisé pour la gestion de projet, Monday permet un suivi clair et net sur les différentes tâches de chaque mission que les collaborateurs y travaillent, avec un système de Dead Line, il est très utile 
  5. Miro, Logiciel similaire à Figma

Afin de mieux comprendre comment fonctionne Symfony j'ai suivi plusieurs étapes :

✔️Lire la documentation sur le site officiel  📖
✔️Comprendre comment fonctionnait il 💭
✔️Quels outils / packages utiliser et comment 🛠️
✔️M'exercer en réalisant un blog 📜
✔️Créer un BackOffice pour gérer le site avec un système de hiérarchie de rôle ℹ️

 J’ai réussi à accomplir les objectifs dans les délais, ce n'était pas le meilleur des blogs, mais pour une découverte, un débutant et une semaine, je trouve ça pas mal !

Cette première expérience avec Symfony a été enrichissante et m'a permis d’acquérir des bases solides pour la suite du stage .

Modification dans un projet en prod


Modification dans un projet en prod

Après une première semaine d’apprentissage de Symfony, j’ai eu l’opportunité d’appliquer mes nouvelles compétences en travaillant directement sur un projet en production.

Objectif de la mission :
L’objectif était d’intégrer une section présentant le "Conseil d'Administration" sur la page "Qui sommes-nous ?" du site Synergie Family et de l’adapter au format responsive pour assurer un affichage optimal sur tous les appareils, plus communément appelé "Mobile First".

Toutes les informations et exigences concernant cette section m’ont été communiquées via Monday, un outil de gestion de projet.
 
Pour réaliser cette tâche, j’ai suivi les étapes suivantes :

1️⃣ Analyse du code existant : Comprendre la structure du projet pour assurer une intégration cohérente.
2️⃣ Réutilisation et adaptation : J’ai repris une section similaire, demandée par le lead développeur, et l’ai adaptée pour qu’elle respecte l’apparence et les spécifications du site.
3️⃣ Implémentation et ajustements responsive :

  • Utilisation de Flexbox pour organiser les éléments de manière fluide.
  • Application de media queries pour ajuster la mise en page en fonction des différentes tailles d’écran.
  • Vérification que les images et le texte s’adaptent correctement sur mobile et tablette, afin de garantir une expérience utilisateur optimale.

Cette première mission sur un projet en production m’a permis d’approfondir ma compréhension de Symfony et d’appliquer des bonnes pratiques en développement web, notamment en matière d’intégration et de responsive design.


Concernant l'aspect responsive, j'ai appliqué des media queries pour ajuster la mise en page sur différents appareils. J'ai utilisé Flexbox pour organiser les cartes de manière fluide, et j'ai veillé à ce que les images et le texte s'ajustent correctement sur mobile et tablette, afin de préserver l'expérience utilisateur sur toutes les résolutions 

Développement du BackOffice pour Big Mars


Développement du BackOffice pour Big Mars

Big Mars est une application mobile visant à accompagner les jeunes dans leur insertion professionnelle grâce à un suivi personnalisé. Elle propose des parcours ludiques, des formations et des offres d’emploi adaptées aux profils et ambitions de chacun.

Face à un besoin en urgence, le prestataire a demandé la création d’une application web, et j’ai été chargé, avec l'aide de mon tuteur, du développement et de la gestion du BackOffice


Mise en place du projet

Une réunion avec l’équipe marketing a été organisée afin de définir la charte graphique et d’établir un planning précis. Une TODO List m’a été assignée pour structurer les tâches à accomplir :

✔️ Conception du modèle de données pour la gestion des événements et des formulaires d’inscription et de contacte.
✔️ Mise en place du projet sur Git pour assurer le suivi des versions.
✔️ Création des entités nécessaires et définition des relations en base de données.
✔️ Utilisation des assertions et de l’extension Gedmo pour la gestion efficace des contraintes et des timestamps.
✔️ Développement du BackOffice avec EasyAdmin, permettant : 

  • La gestion et l'administration des événements,
  • La gestion des messages de contact,
  • La gestion des utilisateurs



Passage au Front-End

Une fois le Template et la charte graphique validés par l’équipe marketing, et le Back-End terminé, j’ai commencé le développement du Front-End.

Afin d’améliorer l’expérience utilisateur, j’ai dû apprendre et intégrer de nouvelles technologies :

  • AJAX / jQuery : Permet d’apporter plus de dynamisme aux formulaires et d’optimiser les interactions sans recharger la page.
  • Cleave.js : Une bibliothèque JavaScript utilisée pour formater les champs des formulaires (ex : numéros de téléphone, dates, montants, etc.).



Technologies utilisées :

Pour ce projet voici les outils et leurs version utilisé :

  • PHP 8.3
  • Composer 2.1 (gestionnaire de dépendence)
  • Node 22.13 (Evironnement d'exécution js)
  • Symfony 7 (Framework BackEnd)
  • Tailwind 4.0 (Framework CSS)
  • Laragon 6.0 (serveur local)


Une fois le front et le back fais, le résultat de la V1 se trouve sur wearebigmars.com