← Retour au portfolio
PROJET BTS SIO SLAM

Conventio

Dématérialisation des conventions de stage

Symfony 7.4 PHP 8.2+ Doctrine Twig + Stimulus Docker Gotenberg Yousign

Le contexte

Chaque année, les conventions de stage BTS suivent un long parcours papier : impression, signatures manuelles de l'étudiant, du professeur référent, de la direction et de l'entreprise, puis numérisation. Un processus lent, coûteux et sujet aux pertes.

Conventio remplace ce workflow par une application web qui centralise la collecte des informations, les validations successives et la signature électronique — tout en gardant un PDF final fidèle au modèle officiel.

Fonctionnement

Le cœur du projet est une machine à états pilotée par l'entité PreConventionRequest : sent → submitted → validated_student → validated_teacher → validated_admin.

Trois rôles interviennent :

L'entreprise d'accueil, elle, n'a aucun compte à créer : elle reçoit un lien public à token UUID (expiration 7 jours) qui lui permet de consulter et signer la convention.

Intégrations clés

Gotenberg + PhpWord

Génération du PDF final à partir d'un template DOCX. Les placeholders ${...} sont remplis par TemplateProcessor avant conversion.

Yousign API v3

Signature électronique des 3 parties. Les ancres {{s1|...}} placées dans le DOCX sont détectées via parse_anchors=true.

2FA Google Authenticator

Authentification à deux facteurs obligatoire pour les comptes internes (étudiant, prof, direction) via scheb/2fa-bundle.

Stack technique

Ce que j'en ai retiré

Projet formateur sur toute la chaîne : modélisation d'un workflow métier réel, intégration de services tiers (Gotenberg, Yousign), sécurité (2FA, tokens à expiration) et mise en place d'un environnement Docker reproductible.

Le plus gros apprentissage : penser le parcours utilisateur bout-en-bout, y compris pour les acteurs externes (l'entreprise n'est pas un utilisateur du système mais doit quand même pouvoir signer).

Captures d'écran

[ screenshots à venir ]
[ RETOUR AU PORTFOLIO ] [ ME CONTACTER ]