Stage – Diocèse de Paris – Mai à Juin 2022

Stage 2022

J’ai choisi de réaliser mon stage de première année de BTS SIO au diocèse de Paris. Celui-ci a durée 6 semaines.

Présentation du diocèse

Le diocèse de Paris est une association composée de 180 employés. Elle est située au 10 rue du Cloître Notre-Dame, 75004 Paris.

Plan de Paris, en rouge le Diocèse

Présentation du projet

Le diocèse souhaitait fusionner 2 bases de données qui regroupaient chacune une liste de prêtres avec leurs adresses mails. Le problème est qu’il y avait des incohérences et des différences entre les 2 BDD. Le projet a été réalisé en PHP avec quelques parties en JavaScript.

Voici le cahier des charges :

  • Importer les 2 BDD distantes (mise en cache de celles-ci)
  • Lister les profils avec leur incohérence
  • Envoyer des mails prédéfinis aux profils ayant une incohérence
  • Modifier les mails prédéfinis
  • Avoir un historique des envois de mails
  • Visualiser le statut des mails envoyés
  • Exporter au format CSV les listes de profils selon les incohérences
  • Développer un système de compte avec privilèges

Le fonctionnement

Je me trouvais dans le service de communication en tant que développeur d’un outils interne. Mes journées commençaient à 9 h et se terminaient à 17 h. Le vendredi, je pouvais bénéficier d’une journée de télétravail. Le lundi, je participais aux réunions hebdomadaires sur Exalide (nom du projet de la fusion des 2 BDD). A la fin de chaque jour, je listais toutes les avancés réalisées sur le projet.

Les aspects techniques

Import des BDD

Pour pouvoir comparer les 2 BDD, il fallait les importer. Pour cela, j’ai utilisé la méthode objet et je créais un fichier JSON avec le contenu de la BDD. Le plus vieux fichier JSON était supprimé lorsqu’un nouveau était créé. Pour ce faire, j’utilisais la valeur de timestamp (valeur incrémentée chaque seconde).

Capture d’écran du modal « Paramètres BDD »

Cet extrait de code permet la suppression du fichier le plus vieux selon son timestamp et donc sa date de création.

Extrait du code du fichier « rechargerLI.php »

API MailJet

MailJet est un service d’envoi de mails. J’ai utilisé l’API de ce service afin d’envoyer des mails aux prêtes ayant des incohérences entre les 2 bases de données. En plus d’envoyer des mails, ce service permettait de vérifier le statut de celui-ci (spam, lu, répondu, etc.). J’ai donc dû chercher dans la documentation de MailJet pour connaître son utilisation.

Documentation de Mailjet

Mise en cache

La mise en cache permet de stocker des informations de manière temporaire. Dans notre cas, cela est un véritable gain de temps et permet de ne pas réinterroger la BDD ou l’API par exemple. Les fichiers que j’ai mis en cache sont les suivants : les imports de base de données, le statut des mails et le calculs de incohérences.

Tâche CRON

CRON est un programme qui permet d’exécuter automatiquement des scripts, des commandes et des logiciels sur Linux. J’ai utilisé ce programme afin d’automatiser l’actualisation de l’import des BDD, l’actualisation du statut des mails et le calcul des incohérences.

Système de compte

Il m’a été demandé de créer un système de compte sécurisé et avec un système de droit. Pour répondre à ces besoins, j’ai :

  • haché les mots de passe (avec la méthode password_hash)
  • vérifié sur chaque page si la personne est connectée avec le bon statut
  • mis en place des requêtes préparées
Extrait de la fonction « reponse » dans le fichier « verifConnecte.php »

Conclusion

Je remercie tous mes collègues de la communication qui ont été accueillant et chaleureux. Je tiens également à remercier mon tueur Sébastien DELPART, qui fût très serviable et qui s’est toujours rendu disponible en cas de besoin.

Maintenant, voici une liste des apports du stage :

  • Meilleure façon de développer
  • Astuces de développement
  • Règles de sécurités
  • Nom de domaine
  • Fonctionnement envois mails
  • Fonctionnement des boîtes de réceptions
  • Utilisation d’API
  • Dépôt GIT
  • Meilleure maitrise Bootstrap
  • Nouveau FrameWork
  • Culture générale sur le développement
  • Rechercher dans la documentation
  • Utilisation du CSS
  • Tâche CRON
  • TimeStamp
  • Composer
  • .htaccess
  • Outil de vérification de code (https://validator.w3.org/)