Mon deuxième stage
Dans le cadre de ma deuxième année de BTS SIO j’ai eu la chance d’effectuer un second stage, celui ci s’est déroulé du 6 janvier au 8 février 2025. J’ai pu effectué ce deuxième stage dans la même entreprise que lors de mon premier stage ce qui m’a permis d’assurer une continuité que ce soit dans le suivi ou même dans l’apprentissage de nouvelles connaissances.
Pendant le premier stage j’ai pu apprendre le langage Java, et mon tuteur avait pour projet que je puisse participer au projet interne de son entreprise. En effet celui ci est en freelance et a un contrat de prestation de service pour le client Adeo, de ce fait mon tuteur souhaitait que je développe un back end lui permettant de gérer ses factures.
Pour préparer au mieux mon stage il m’a préparé une “fiche de route” comme celle ci pour m’aider dans l’organisation de mon stage :




Pendant la première semaine, j’ai dû configurer mon environnement, j’ai donc installé Java puis IntelliJ IDEA et Postman. J’ai ensuite créé un projet Spring Boot via Spring Initializr avec les dépendances Spring Web, Spring Data JPA et Driver PostgreSQL.
Ensuite pour bien commencer le projet et ne pas commencer sans avoir organiser les futures données j’ai réalisé un MCD sur le site draw.io qui permet de faire des schémas de façon propre et professionnelle.
Mon tuteur m’a fourni un base avec une première table mais il m’a demandé de challenger le besoin donc j’ai essayé de réfléchir à partir de la logique métier et du besoin client et j’ai étendu la base de données.
Pour concrétiser le projet je suis ensuite passée à la partie concernant Docker, j’ai du me former et comprendre ce qu’était Docker en partant de zéro.
Je me suis formée pour comprendre à quoi servait Docker grâce à cette vidéo explicative : https://www.youtube.com/watch?v=pTFZFxd4hOI&ab_channel=ProgrammingwithMosh
J’ai suivi un tutoriel pour créer un container PostgreSQL, voici le lien du tutoriel : https://www.youtube.com/watch?v=RdPYA-wDhTA&ab_channel=DatabaseStar
De plus, pour documenter mon apprentissage, j’ai réalisé un article sur Docker que j’ai intégré à ma veille technologique, voici le lien de l’article : https://lgm.nuage-pedagogique.fr/elementor-23434/
Je me suis ensuite intéressé à la création des couches de l’application et à l’implémentation des opérations CRUD (Create, Read, Update & Delete). J’ai crée des repository grâce à l’interace JPA pour la gestion des factures, des services pour gérer la logique métier et des controller pour les endpoints REST (les routes pour gérer les get, patch, delete etc de l’API).






Pour réaliser cette partie j’ai du me former à Spring Boot car c’est avec ce framework que j’aimerais réalisé ce projet. Je me suis donc formée grâce à ce tutoriel : https://www.youtube.com/watch?v=9SGDpanrc8U&ab_channel=Amigoscode, dans ce tutoriel j’ai pu suivre pas à pas la création d’un projet concenant des étudiants et des attributions de cours à suivre etc.. ça m’a permis de mieux comprendre et de m’entrainer avant mon réel projet.
Mais cela n’a pas suffit et il a fallu que je me forme à ce que l’on appelle une API REST, pour comprendre ce que c’est j’ai regardé ce tutoriel https://www.youtube.com/watch?v=OXH0tC6ZsPU&ab_channel=Faizdev. Cela m’a permis de comprendre qu’une API REST (Representational State Transfer) est un style d'architecture pour la communication entre systèmes via le protocole HTTP. Elle utilise des méthodes standardisées comme GET, POST, PUT, DELETE pour accéder et manipuler des données, souvent sous format JSON ou XML.
Lorsque j’ai établi le cahier des charges avec mon tuteur il m’a demandé d’implémenter ces endpoints :
POST /factures
: Créer une nouvelle facture.GET /factures
: Lister toutes les factures.GET /factures/{id}
: Consulter une facture par son ID.PUT /factures/{id}
: Mettre à jour une facture existante.DELETE /factures/{id}
: Supprimer une facture par son ID.
Ce que j’ai fait mais il a fallu les tester pour voir si ils fonctionnaient, pour cela j’ai utilisé Postman qui est un logiciel de test d'API, j’ai d’ailleurs écris un article sur cet outil : https://lgm.nuage-pedagogique.fr/elementor-23457/
