Image de fond

Rosa Axel

Étudiant en BTS SIO

Mon Stage en Entreprise

J’ai réalisé mon stage de BTS SIO au sein de Ekino, une société spécialisée dans la transformation digitale.

Durant cette période de cinq semaines, j’ai travaillé sur la conception d’une application web permettant au CSE de l’entreprise de créer et gérer des événements.

Mes missions

  • code Conception et mise en place du projet en Symfony / PHP
  • Storage Conception et administration des bases de données avec PostgresSQL
  • Description Rédaction de documentation technique

Compétences acquises


Développement web

Gestion de bases de données

Travail en équipe

Gestion du temps

Documentation

Durant ce stage, j’ai également eu l’occasion et la responsabilité de me familiariser avec la rédaction de documentation technique, un aspect fondamental du développement logiciel. J’ai appris à documenter de manière claire, structurée et concise chaque ajout au projet (qualité, infrastructure, etc.), en respectant les standards internationaux du domaine, notamment l’usage de la langue anglaise, incontournable dans le monde du développement. Vous pouvez retrouver toute la documentation que j'ai rédigée durant mon stage sur mon GitHub.

Voici quelques exemples de documents que j'ai créés :

- IA GPT

- Git

- GitLab

Le commencement

Ce stage avait pour but de me faire réaliser un projet de A à Z, de la conception à la mise en production, en m’appuyant sur les nouvelles technologies, notamment l’IA.

Avant même de commencer à coder, j'ai dû apprendre à réaliser tout le travail de conception et de planification d'un projet, en utilisant l'IA Cline, qui m'a aidé à créer trois fichiers essentiels pour le projet :


  • Product Context:

    Product Context Diagram

    Le fichier Product Context – Présente la vision et les objectifs de l'application web nommée pour le développement Legolas, développée avec Symfony pour la création et la gestion d’événements. Il définit les rôles utilisateurs (administrateur, organisateur, participant), les principales fonctionnalités (création d’événements, inscriptions, tableau de bord, filtres, notifications par e-mail, authentification), ainsi que les indicateurs de performance et les défis techniques liés à la scalabilité et aux dépendances externes. Ce document sert de base de référence pour guider le développement du projet et assurer sa cohérence fonctionnelle.


  • Project Progress:

    Product progress Diagram

    Le fichier Project Progress – Présente l’avancement du projet Legolas, actuellement en phase de développement des fonctionnalités avec environ 15 % de progression. Il récapitule les étapes déjà réalisées (structure du projet, configuration Docker, CI/CD GitLab, outils de qualité, Makefile) et liste les prochaines priorités : finalisation du schéma de base de données, implémentation des CRUD, gestion des rôles et authentification, création des templates et logique d’inscription aux événements. Ce document permet de suivre l’évolution du projet et les jalons restants jusqu’à une version fonctionnelle.


  • Technical Context:

    Technical Context Diagram

    Le fichier Technical Context – Décrit l’environnement technique et l’architecture du projet Legolas. Il précise les technologies utilisées (PHP 8.4, Symfony 7, Doctrine, Twig, PostgresSQL, Docker, GitLab CI/CD, etc.) et détaille l’organisation du code selon le modèle MVC de Symfony. Il met en avant l’usage de plusieurs design patterns (Repository, Dependency Injection, Front Controller) ainsi que les bonnes pratiques appliquées en matière de sécurité, performance et qualité du code. Ce document sert de référence technique pour assurer la cohérence, la maintenabilité et la fiabilité du projet.


Ces documents ont pour objectif de définir avec précision les objectifs et le cadre technique du projet, afin de pouvoir fournir à une intelligence artificielle toutes les informations nécessaires pour qu’elle dispose immédiatement d’une compréhension complète du contexte.

Assurance Qualité

Afin d’assurer la qualité, la cohérence et la maintenabilité du code tout au long du développement du projet, j’ai mis en place plusieurs outils d’assurance qualité (QA). J’ai utilisé PHP CS Fixer pour le formatage automatique du code et le respect des standards, garantissant une base de code homogène. L’outil PHP Insights m’a permis d’analyser la qualité globale du projet, en évaluant la lisibilité, la complexité et les bonnes pratiques. Avec PHPStan, j’ai effectué une analyse statique afin de détecter en amont les erreurs potentielles et d’améliorer la robustesse du code. J’ai également intégré Rector, qui facilite la refactorisation automatique et la modernisation du code selon les dernières versions de PHP et Symfony. Enfin, Renovate a été configuré pour automatiser la mise à jour des dépendances, assurant ainsi la sécurité et la stabilité du projet sur le long terme. L’ensemble de ces outils m’a permis de maintenir un haut niveau de qualité logicielle et d’optimiser la productivité du développement.

Infra

  • Les architectures Decision Records (ADR) sont des documents servant à consigner les décisions techniques importantes prises au cours du développement d’un projet, ainsi que leur contexte et leurs conséquences. Leur but est de garder une trace claire du raisonnement ayant conduit à un choix donné (technologie, architecture, outil, etc.), afin de faciliter la compréhension et la continuité du projet dans le temps. J’ai mis en place ce système dans Legolas pour assurer une traçabilité des choix techniques, éviter les rediscussion inutiles et permettre à tout contributeur actuel ou futur de comprendre pourquoi une décision a été prise. Cette pratique favorise la transparence, la cohérence technique et une meilleure communication au sein de l’équipe de développement. Les membres de l’équipe peuvent ainsi se référer aux template fourni pour documenter de futures décisions importantes.

  • La Continuous Integration (CI) est une pratique de développement visant à fusionner régulièrement les modifications de code dans un dépôt partagé et à valider automatiquement ces changements. Dans le cadre du projet Legolas, j’ai mis en place une CI pour détecter rapidement les erreurs, améliorer la qualité du code grâce aux tests et analyses statiques, et faciliter la collaboration entre les développeurs. Le pipeline CI inclut des étapes de build, tests unitaires, analyse statique (avec PHPStan et Rector) et déploiement automatique, garantissant ainsi un processus de développement fiable, rapide et reproductible.


    Exemple Pipeline qui rate :
    pipe fail
    Exemple Pipeline qui passe :
    pipe fail

  • Docker est une plateforme de conteneurisation que j’ai utilisée dans le projet Legolas pour assurer la portabilité, l’isolation et la cohérence de l’environnement de développement, de test et de production. Chaque application est exécutée dans un conteneur regroupant le code, les dépendances et la configuration nécessaire, garantissant qu’elle fonctionne de manière identique sur tous les systèmes. J’ai utilisé Docker Compose pour orchestrer les services (web, base de données). Cela a permis d’améliorer la productivité, de réduire les problèmes liés aux différences d’environnement et de faciliter le déploiement continu.


    Mon Docker Compose:
    docker compose

Makefile

Le Makefile est un outil que j’ai intégré dans le projet Legolas pour automatiser les tâches répétitives du développement, telles que la compilation, l’analyse du code, les tests ou le nettoyage des fichiers temporaires. Chaque tâche est définie comme une cible (target) avec ses commandes associées, permettant de lancer plusieurs opérations avec une seule commande make. Grâce à ce système, j’ai pu standardiser et simplifier le workflow de l’équipe, par exemple pour exécuter des QA ou de Docker, tout en assurant que chaque développeur dispose d’une méthode cohérente et reproductible pour effectuer les tâches courantes du projet.


Mon Makefile dans l'invite de commande :
Makefile

Base de Donnée

Page d'accueil

Activité or projet

  • Reunions du vendredi
  • Presentation IA

Contactez-moi

mail E-Mail axelalmeidarosa@gmail.com
call Téléphone 07.86.89.58.90
account_box GitHub https://github.com/Roxas004