Aller au contenu
Retour aux points forts

Points forts

IMS

La plateforme RH interne utilisée chez iMedia24 : suivi du temps, congés, tâches, avantages et opérations d'équipe au quotidien. Backend Kotlin/Spring Boot et frontend Next.js, déployés sur GCP.

  • kotlin
  • spring
  • next.js
  • typescript
  • gcp

Un framework réutilisable d’actions groupées, adopté par quatre tableaux d’administration.

Schéma simplifié

  1. Fonctionnalités
  2. Événements Pub/Sub
  3. Livraison des notifications
Les notifications sont publiées sous forme d’événements pour séparer leur livraison du code applicatif.

Problème

Le module de notifications était imbriqué dans le code applicatif : ajouter un nouveau type de notification impliquait de modifier les fonctionnalités qui le déclenchaient. Les actions sur plusieurs lignes de tableau étaient par ailleurs traitées écran par écran, sans mécanisme commun.

Mon rôle

J'interviens sur toute la stack : backend Kotlin/Spring Boot, frontend Next.js et chaîne de déploiement GitHub Actions vers GCP. J'ai réécrit le module de notifications et travaillé sur le framework d'actions groupées des tableaux.

Solution

  • Réécriture du module de notifications sur Pub/Sub : les notifications sont publiées comme des événements plutôt qu'envoyées en ligne.
  • Développement d'un framework d'actions groupées au-dessus du tableau partagé : colonne de sélection, règles d'éligibilité par action, dialogue de confirmation et de revue, exécution séquentielle ou groupée avec remontée d'erreurs ligne par ligne.
  • Développement de fonctionnalités back et front couvertes par des tests unitaires et d'intégration.
  • Déploiement sur GCP (Cloud Run, Cloud SQL, Pub/Sub) via GitHub Actions.

Résultats

  • Les performances de livraison des notifications se sont améliorées après le passage à Pub/Sub.
  • De nouveaux types de notifications peuvent être ajoutés sans toucher au code applicatif.
  • Quatre tableaux d'administration — membres, demandes d'avantages, participations aux challenges et rapports d'astreinte — utilisent désormais ce framework commun.
Retour aux points fortsMe contacter