Stage de 2ème année BTS SIO

Pour ma deuxième année de BTS SIO option SLAM, j’ai effectué un stage de 6 semaines dans l’entreprise QuantiQ.

Qu’est-ce que c’est ?

QuantiQ est une SS2I (Société de Service et d’Ingénierie Informatique) dont l’activité a démarré en début d’année 2022. Elle est spécialisée dans :

  • La conduite de projets de dématérialisation/digitalisation (AMOA/AMOE/MOE)
  • L’édition de logiciels de digitalisation de processus métiers

Le logo de l’entreprise QuantiQ

Activités : 

  • Expertise projets digital
  • Développement informatique

Missions effectuées pendant le stage : 

  • Mise en place d’un environnement numérique de travail
  • Gestion de maintenance
  • Développement et traitement d’une base de données relationnelle sécurisée
  • Automatisation de tests de gestion de base de données
  • Développement un module d’application à l’aide du framework Phalcon
  • Logiciels, langages et compétences

Mise en place un environnement numérique de travail

Au début de mon stage de deuxième année, j’ai dû mettre en place un environnement numérique de travail en installant les logiciels et extensions nécessaires (Phalcon, PhpStorm, DataGrip). J’ai suivi une documentation m’indiquant quelles commandes entrer sur une invite de commandes.

A la fin de l’installation, j’avais un projet à mon nom, des identifiants et je pouvais commencer à me concentrer sur le projet qui m’a occupé pendant mon stage.

La documentation de mise en place d’environnement numérique :

Gestion de maintenance

Avant de m’attaquer à un projet de développement pour l’entreprise, j’ai d’abord dû faire du travail de maintenance. Concrètement, j’ai comparer des dépendances afin de vérifier si une mise à jour était possible sur le système informatique de l’entreprise.

Pour ce faire, je suis principalement aller sur GitLab dans la section « releases » des dépendances qui y existent. J’ai créer un tableau grâce à LibreOffice Calc pour comparer les versions, leur utilité, leur utilisation dans le système informatique de l’entreprise, etc… ainsi qu’un affichage conditionnel afin d’en simplifier la lecture. Cet exercice m’a appris beaucoup de fonctionnalités disponibles sur ce logiciel.

Aperçu du document Calc sur les dépendances de l’entreprise :

Développement et traitement d’une base de données relationnelle sécurisée

Après avoir montré mon document à mon tuteur de stage, j’ai donc démarré un projet de développement informatique en PHP.

But du projet :

Le but final de mon projet était de développer un programme d’automatisation de test de gestion de base de données. Le programme devait purger et peupler une base de données, ajouter au bon format les différentes données et calculer certaines valeurs.

Enfin, un programme se lançait pour vérifier si les formats entrés étaient les bons, si les données calculées étaient celles attendues et si les relations entre les tables avaient été respectées.

Développement :

J’ai donc commencé par créer sur le logiciel DataGrip (JetBrains) une base de données vides contenant 3 tables :

  • La table Article : Pour y mettre les différents articles qui seront inscrits sur la facture
  • La table Facture : Pour renseigner sur les principales informations concernant une facture (articles achetés, quantité, etc)
  • La table DetailFacture : Regroupe des informations des 2 tables précédentes pour calculer la somme total de la facture, avec et sans taxes.

Aperçu de l’affichage du programme sur console :

Automatisation de tests de gestion de base de données

Sur DataGrip, j’ai créer une base de données relationnelle avec 3 tables communicant entre elles.

J’y ai donc appliquée les mesures de sécurité nécessaires, à savoir :

  • Créer une clé primaire pour chaque élément afin de pouvoir les répertorier dans la base de données
  • Limiter le format des informations dans chaque colonne des tables
  • Ajouter une valeur non nulles pour les informations nécessaires au bon fonctionnement du programme (dans ce cas, toutes car la base de données était dans une version minimaliste, donc seul l’essentiel a été ajouté)
  • Ajouter une valeur par défaut pour les éléments qui le permettaient
  • Ajouter des clés étrangères pour faire la liaison des données entre les tables

Développement un module d’application

Je suis ensuite passé sur le logiciel PhpStorm (JetBrains) pour y développer une classe qui gérerai l’ensemble des modifications appliquées à la base de données. J’y ai donc créer les fonctions nécessaires pour les besoins du projet.

Les fonctions :

J’ai développé une fonction pour purger chaque table présente dans la base de données, les vidant complétement.

Cette fonction était simple, ma principale occupation pendant ce stage a été la fonction de peuplement, qui vérifiait les formats des informations, en calculait certaines, avant de les enregistrer dans leur table respective.

Erreurs rencontrées et les solutions apportées :

Bien sûr, j’ai rencontré plusieurs erreurs pendant le développement de ce projet. Cela m’a permis de développer des fonctions pour contrer les erreurs éventuelles et, par la même occasion, affiner mes capacités à identifier, comprendre et régler des erreurs informatiques et me documenter sur plusieurs sites pour rechercher des solutions.

Le contrôleur de tests :

La dernière fonction à créer devait vérifier que chaque information enregistrée dans la base de données était conforme et exacte à celle attendue. Le contrôleur de tests contrôle donc chaque table une par une. En cas de rencontre avec une erreur ou une fonction incorrecte, le contrôleur de tests s’arrêtait et expliquait à l’utilisateur quelle donnée a généré l’erreur et quelle est celle attendue.

Logiciels, langages et compétences

Logiciels :

Langages :

  • Terminal
  • PHP (langage objet, langage principal utilisé dans le projet)
  • PHP Phalcon (langage spécifique au framework)
  • SQL (base de données)

Compétences :

  • A.1.1.1 Analyse du cahier des charges d’un service à produire
  • A.1.3.1 Test d’intégration et d’acceptation d’un service
  • A.1.3.4 Déploiement d’un service
  • A.1.4.1 Participation à un projet
  • A.2.2.1 Suivi et résolution d’incidents
  • A.2.3.1 Identification, qualification et évaluation d’un problème
  • A.2.3.2 Proposition d’amélioration d’un service
  • A.4.1.1 Proposition d’une solution applicative
  • A.4.1.3 Conception ou adaptation d’une base de données
  • A.4.1.7 Développement, utilisation ou adaptation de composants logiciels
  • A5.1.2 Recueil d’informations sur une configuration et ses éléments
  • A5.1.3 Suivi d’une configuration et de ses éléments
  • A5.2.4 Étude d’une technologie, d’un composant, d’un outil ou d’une méthode