
Plateforme de workforce management.
Planification long terme et validation au quotidien pour un grand parc d'attraction, sous un seul modèle de permissions
Année.
2026
Employeur.
Sagacify
Rôle.
Lead Technique
Contexte.
Une plateforme de planification et d'optimisation des effectifs pour un grand parc d'attraction, couvrant deux horizons de planification très différents. Les master plans à long terme définissent, pour chaque point de service et chaque créneau de fréquentation, les horaires d'ouverture, le mode d'exploitation et les effectifs nécessaires. Au quotidien, une prévision de fréquentation est combinée à ce master plan pour décider quels points de service ouvrent, dans quel mode, et avec quels effectifs, puis c'est relu et ajusté par les directeurs, les responsables de département et les responsables de point de service.
Challenge.
Prendre en charge le projet de bout en bout, du recueil des besoins via des réunions utilisateurs et stakeholders jusqu'à la conception des interfaces, l'architecture de la base de données, et l'implémentation full-stack. Donner aux admins, directeurs, responsables de département et responsables de point de service les mêmes écrans, mais laisser chacun voir et modifier seulement ce que son rôle et son département ou point de service spécifique autorisent. Garder des plannings volumineux et denses utilisables, et laisser des managers non techniques valider les plans dans le format qu'ils utilisent déjà : Excel.
Décisions et compromis.
Contrôle d'Accès Précis : Des rôles contraints par attributs via CASL, avec un ensemble de règles dédié par rôle (admin, directeur, responsable de département, responsable de point de service, plus un ensemble séparé pour les appels machine-to-machine), appliquées à partir des mêmes règles sur le frontend et l'API. Le backend est la seule source de vérité : il calcule ce que chaque utilisateur peut voir et faire, et le transmet au frontend, qui ne décide jamais des accès lui-même. Chaque utilisateur réutilise les mêmes écrans, automatiquement restreints à ce que ses attributs autorisent.
Performance à Grande Échelle : Les grands tableaux de planning sont virtualisés sur les lignes comme sur les colonnes (TanStack Table + TanStack Virtual), pour que l'affichage reste fluide même quand le nombre de points de service, de créneaux et de membres du personnel augmente.
Le Tableur comme Interface : Excel est traité comme un format d'entrée et de sortie à part entière pour les deux types de plans (plans directeurs et plans de point de service) : une logique d'extraction et de génération dédiée par modèle, avec validation avant tout import, parce que les personnes qui valident les plans au quotidien travaillent déjà dans des tableurs.
Modèle de Données à Deux Horizons : J'ai conçu et fait évoluer un schéma relationnel conséquent autour des deux horizons de planification, pour que le même modèle de rôles et d'attributs puisse servir les deux sans dupliquer la logique.
Résultat.
Livré et déployé en production, avec les directeurs, responsables de département et responsables de point de service qui valident tous leurs plans via la même plateforme, chacun ne voyant que ce que son rôle et son département autorisent.
Stack.
CASL pour les permissions par attributs, TanStack Table et Virtual pour les grands plannings, des API Fastify sur AWS.
TypeScript
React
Shadcn UI
Tailwind CSS
React Hook Form
TanStack
Zod
CASL
Fastify
Objection.js
Unit Testing
Keycloak
AWS
Terraform