Elio Darras
FreelanceEn production

Application CSI · Université Paris Cité

Gestion des comités de suivi doctoral

csi-universite-paris-cite.local
Interface réelle · données fictives
Interface réelle reconstituée, données entièrement fictives.

Étude de cas. Aucune intégration, aucune capture, aucune donnée réelle.

Rôle

Freelance

Une application full-stack qui orchestre les comités de suivi d'environ 600 doctorants : workflow à quatre acteurs, questionnaire configurable, rapports PDF. Présentée en étude de cas, avec des écrans reconstitués et des données fictives.

Ce qu'il y a dedans

  • Workflow à quatre acteurs.
  • Questionnaire configurable.
  • Génération de rapports PDF.
  • Intégration FileMaker.
  • Garde d'authentification serveur et double authentification.
  • Journal des accès conforme RGPD.

En détail

01À quoi sert l'application

Chaque doctorant doit être reçu une fois par an par un comité de suivi individuel, prévu par l'arrêté du 25 mai 2016. Le comité évalue l'avancement de la thèse, les conditions de travail et l'encadrement, puis rend un rapport qui conditionne la réinscription.

Avant l'application, ce suivi se faisait par formulaires Word, courriels et tableurs, pour environ 600 doctorants répartis sur cinq départements de l'école doctorale BioSPC. L'application prend en charge la chaîne complète : auto-évaluation du doctorant, compte rendu du comité, transmission au directeur de département, envoi du rapport final, avec un PDF à chaque étape. Elle s'articule avec FileMaker, qui reste le référentiel administratif.

02Le cycle d'une campagne

L'administration importe un CSV ou un Excel exporté de FileMaker. L'import est tolérant : il détecte l'encodage et le séparateur, reconnaît les colonnes par correspondance approchante, et rend des statistiques de retour. Puis elle envoie le lien du doctorant, individuellement ou en masse sur une liste filtrée.

Le doctorant complète son identité, sa thèse, son comité, ses activités scientifiques, ses heures de formation, répond aux questions d'auto-évaluation et dépose son rapport scientifique. Sa validation déclenche automatiquement l'envoi de liens signés aux membres du comité, avec son rapport en pièce jointe, sans la partie confidentielle.

Un seul membre du comité rédige le compte rendu : date de l'entretien, relecture et correction des réponses du doctorant, conclusion, recommandation, puis une section confidentielle réservée à la direction. Sa soumission déclenche l'envoi au directeur de département avec le rapport complet. L'administration envoie enfin le rapport final au doctorant, directeur de thèse en copie.

Six drapeaux décrivent l'avancement, chacun avec compteur d'envois et horodatage, et composent l'identifiant d'import transmis à FileMaker.

03Questionnaire, PDF, courriels, FileMaker

Le questionnaire se configure sans intervention technique : cible, section, type parmi dix, obligatoire ou non, visible dans le PDF ou par le comité, confidentiel ou non, avec des blocs système figés placés dans l'ordre voulu. Il s'exporte et s'importe en bloc pour préparer une campagne à part.

Le PDF est généré à la volée à chaque demande, en neuf sections, en deux versions : complète pour le directeur de département, et sans la section confidentielle pour le doctorant et le comité. Une question confidentielle est masquée d'office même si elle est marquée visible, et l'anomalie est journalisée.

Douze modèles de courriel éditables avec variables, cinq groupes de destinataires par département, envoi en SMTP direct depuis le compte du domaine. Trois routes d'export protégées par clé alimentent le connecteur FileMaker, les réponses dynamiques codées à plat ; MongoDB fait foi.

04Sécurité, journal, pile

Administration par mot de passe haché puis code à usage unique envoyé par courriel, haché lui aussi, avec expiration et blocage après cinq tentatives ; session signée de douze heures. Une garde globale protège toutes les routes par défaut, les exceptions sont explicites. Les fichiers déposés ne sont plus en accès libre.

Chaque requête est journalisée : action, acteur, ressource, dossier, adresse IP, code de retour. Le journal est en base avec purge à douze mois, consultable avec filtres, et émis vers un collecteur syslog externe pour subsister hors de portée d'une compromission de la machine.

NestJS 10, Mongoose 8, MongoDB Atlas, pdf-lib, nodemailer, exceljs ; React 18 en TypeScript avec Formik et Yup. Production sur Debian 13, PM2 sous compte de service, nginx en terminaison TLS. Environ 16 000 lignes de TypeScript, 86 fichiers, 50 points d'API. Les limites connues, comme le lien du doctorant sans jeton, sont documentées et suivies au dossier remis au RSSI.

Présenté en étude de cas, avec des écrans reconstitués et des données fictives.