jira kanban dashboard — aperçu du dashboard

Un outil bâti pour mes besoins de Scrum Master à l'échelle. A tool built for my scaled Scrum Master needs.

Dashboard de pilotage qui suit le flux des tickets, la qualité et la consommation budgétaire (JH facturés vs prévisionnels) par marque. La version démo — 100% mockée, sans auth ni dépendance réseau — est faite pour être montrée en entretien. La discipline produit appliquée à mes propres frictions. A steering dashboard tracking ticket flow, quality and budget consumption (billed vs planned man-days) per brand. The demo version — fully mocked, no auth, no network dependency — is built to be shown in interviews. Product discipline applied to my own friction.

Next.js 16 React 19 TypeScript Tailwind v4 shadcn/ui Recharts

Le pitch

En tant que Scrum Master à l'échelle, je jongle entre plusieurs équipes, trois marques (appelons les GOOG, AAPL, MSFT), des tableaux Jira, des budgets prévisionnels et un Excel partagé qui finit toujours par diverger. Je voulais une seule interface pour répondre en 10 secondes aux questions du management : où en est le budget de GOOG ? Le First-Time-Right s'améliore-t-il sur AAPL ? Combien de JH facturés sur le mois en cours ?

Une question, une réponse en 10 secondes

  • Flux — le flux des tickets en courbes cumulées par statut.
  • Qualité — taux de rejet, First-Time-Right et cycle time par marque. Le FTR est calculé en rejouant toutes les transitions de chaque ticket pour détecter les retours en arrière, pas seulement celles de la période.
  • Budget — JH facturés vs prévisionnels, en vue mois ou semaine. La vue semaine fait un prorata du budget mensuel par jours ouvrés pour ne jamais le compter plusieurs fois.
  • Admin / JH — gestion des jours-homme en tableaux éditables en ligne (lecture seule en démo).

Deux versions, un seul produit

Le même produit existe en deux déclinaisons :

  • Originale — données réelles : sync Jira → Supabase, auth, marques réelles, admin en lecture/écriture. Tourne en parallèle de Jira sur ma mission.
  • Démo (vitrine) — un moteur de mock déterministe remplace Jira et Supabase. Aucune auth, aucune variable d'environnement, marques anonymisées (GOOG, AAPL, MSFT), bilingue FR/EN. Faite pour être déployée et montrée en entretien en un clic.

Ingénierie

  • Next.js 16 (App Router, Turbopack) + React 19, en TypeScript strict. Middleware via le nouveau format proxy.ts.
  • Auth maison — double cookie (accès site + accès admin), hash PBKDF2-SHA256 à 100 000 itérations, comparaison à temps constant et rate limiting (5 tentatives / 15 min).
  • Données côté serveur uniquement — tout passe par la clé service_role Supabase dans des actions "use server", jamais exposée au navigateur. RLS activé, policies anon supprimées : zéro lecture publique.
  • Sync Jira — cron Vercel quotidien, avec pagination des 2400+ transitions de statut pour contourner la limite max_rows = 1000 de PostgREST.
  • UITailwind v4 + composants shadcn/ui, Recharts pour la dataviz (flux cumulé, budget, lead time).

Statut

Utilisée au quotidien en parallèle de Jira sur ma mission. La synchronisation est stable, les KPIs sont alignés avec les revues de pilotage hebdo, et la démo est déployable en un clic.

The pitch

As a scaled Scrum Master, I juggle several teams, three brands (GOOG, AAPL, MSFT), Jira boards, forecast budgets and a shared Excel that always ends up diverging. I wanted a single UI to answer management questions in 10 seconds: where are we on the GOOG budget? Is First-Time-Right improving on AAPL? How many person-days are billed on the current month?

One question, an answer in 10 seconds

  • Flux — ticket flow as cumulative status curves.
  • Quality — rejection rate, First-Time-Right and cycle time per brand. FTR is computed by replaying all of each ticket's transitions to catch backward moves, not just those in the period.
  • Budget — billed vs planned man-days, in month or week view. The week view prorates the monthly budget by working days so it's never double-counted.
  • Admin / man-days — man-day management in inline-editable pivot tables (read-only in the demo).

Two versions, one product

The same product ships in two flavors:

  • Original — real data: Jira → Supabase sync, auth, real brands, read/write admin. Runs alongside Jira on my mission.
  • Demo (showcase) — a deterministic mock engine replaces Jira and Supabase. No auth, no env vars, anonymized brands (GOOG, AAPL, MSFT), bilingual EN/FR. Built to be deployed and shown in an interview in one click.

Engineering

  • Next.js 16 (App Router, Turbopack) + React 19, TypeScript strict. Middleware via the new proxy.ts format.
  • Hand-rolled auth — dual cookie (site access + admin access), PBKDF2-SHA256 hashing at 100,000 iterations, constant-time comparison and rate limiting (5 attempts / 15 min).
  • Server-only data — everything goes through the Supabase service_role key inside "use server" actions, never exposed to the browser. RLS on, anon policies removed: zero public reads.
  • Jira sync — daily Vercel cron, paginating the 2400+ status transitions to work around PostgREST's max_rows = 1000 limit.
  • UITailwind v4 + shadcn/ui components, Recharts for data viz (cumulative flow, budget, lead time).

Status

Used daily alongside Jira on my mission. The sync is stable, the KPIs match the weekly steering reviews, and the demo deploys in one click.

Voir tous les projetsSee all projects