Frise multi-projets : outil de planification macro
Une frise chronologique unique où plusieurs projets s'empilent en couloirs pliables, pour voir d'un coup d'œil où en est chacun et comment ils se situent les uns par rapport aux autres. Ce n'est pas un outil de suivi quotidien : une phase se compte en semaines, et il n'y a ni sous-tâches, ni tickets, ni dépendances entre phases. - Manipulation directe des barres (glisser, redimensionner), accrochées au lundi - Couloirs pliables : plié, un projet devient une barre segmentée par phase - Planning de référence figeable, avec barre fantôme et calcul de dérive - En-tête à trois bandes : année, mois, numéro de semaine ISO 8601 - Frise qui s'élargit au défilement, pour planifier dans un futur encore vide - Micro-serveur Python (bibliothèque standard) exposant GET/PUT sur /api/data, avec sauvegarde horodatée avant chaque écriture - Zéro build : modules ES natifs, aucune dépendance à installer 50 tests unitaires sur la logique métier (node --test, sans dépendance). Vérifié dans Chromium et Firefox. Les arbitrages de conception et surtout leurs raisons sont consignés dans docs/decisions.md — notamment l'abandon des dépendances entre phases, de la File System Access API, du SVG et des niveaux de zoom. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
155
data/exemple.json
Normal file
155
data/exemple.json
Normal file
@@ -0,0 +1,155 @@
|
||||
{
|
||||
"version": 2,
|
||||
"projects": [
|
||||
{
|
||||
"id": "site-web",
|
||||
"name": "Refonte du site web",
|
||||
"color": "#3b82f6",
|
||||
"collapsed": false,
|
||||
"hidden": false,
|
||||
"baselineDate": "2026-06-12",
|
||||
"phases": [
|
||||
{
|
||||
"id": "cadrage",
|
||||
"name": "Cadrage",
|
||||
"start": "2026-06-15",
|
||||
"end": "2026-07-10",
|
||||
"status": "done",
|
||||
"milestone": false,
|
||||
"notes": "Ateliers avec les trois pôles. Périmètre arrêté le 8 juillet.",
|
||||
"baseline": { "start": "2026-06-15", "end": "2026-07-03" }
|
||||
},
|
||||
{
|
||||
"id": "maquettes",
|
||||
"name": "Maquettes",
|
||||
"start": "2026-07-13",
|
||||
"end": "2026-08-28",
|
||||
"status": "doing",
|
||||
"milestone": false,
|
||||
"notes": "Deux itérations prévues. La seconde dépend du retour de la direction.",
|
||||
"baseline": { "start": "2026-07-06", "end": "2026-08-14" }
|
||||
},
|
||||
{
|
||||
"id": "developpement",
|
||||
"name": "Développement",
|
||||
"start": "2026-08-31",
|
||||
"end": "2026-11-13",
|
||||
"status": "todo",
|
||||
"milestone": false,
|
||||
"notes": "",
|
||||
"baseline": { "start": "2026-08-17", "end": "2026-10-30" }
|
||||
},
|
||||
{
|
||||
"id": "recette",
|
||||
"name": "Recette",
|
||||
"start": "2026-11-16",
|
||||
"end": "2026-12-11",
|
||||
"status": "todo",
|
||||
"milestone": false,
|
||||
"notes": "",
|
||||
"baseline": { "start": "2026-11-02", "end": "2026-11-27" }
|
||||
},
|
||||
{
|
||||
"id": "mise-en-ligne",
|
||||
"name": "Mise en ligne",
|
||||
"start": "2026-12-15",
|
||||
"end": "2026-12-15",
|
||||
"status": "todo",
|
||||
"milestone": true,
|
||||
"notes": "Date communiquée aux partenaires.",
|
||||
"baseline": { "start": "2026-12-01", "end": "2026-12-01" }
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "migration-infra",
|
||||
"name": "Migration infrastructure",
|
||||
"color": "#10b981",
|
||||
"collapsed": false,
|
||||
"hidden": false,
|
||||
"phases": [
|
||||
{
|
||||
"id": "audit",
|
||||
"name": "Audit de l'existant",
|
||||
"start": "2026-05-04",
|
||||
"end": "2026-06-12",
|
||||
"status": "done",
|
||||
"milestone": false,
|
||||
"notes": "Inventaire complet des services et de leurs dépendances."
|
||||
},
|
||||
{
|
||||
"id": "preparation",
|
||||
"name": "Préparation des environnements",
|
||||
"start": "2026-06-15",
|
||||
"end": "2026-08-07",
|
||||
"status": "done",
|
||||
"milestone": false,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"id": "bascule-pilote",
|
||||
"name": "Bascule pilote",
|
||||
"start": "2026-08-10",
|
||||
"end": "2026-09-11",
|
||||
"status": "blocked",
|
||||
"milestone": false,
|
||||
"notes": "En attente de la fenêtre de maintenance côté hébergeur."
|
||||
},
|
||||
{
|
||||
"id": "bascule-generale",
|
||||
"name": "Bascule générale",
|
||||
"start": "2026-09-14",
|
||||
"end": "2026-10-23",
|
||||
"status": "todo",
|
||||
"milestone": false,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"id": "decommissionnement",
|
||||
"name": "Décommissionnement",
|
||||
"start": "2026-11-02",
|
||||
"end": "2026-11-02",
|
||||
"status": "todo",
|
||||
"milestone": true,
|
||||
"notes": "Arrêt définitif des anciens serveurs."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "formation-equipe",
|
||||
"name": "Formation de l'équipe",
|
||||
"color": "#f59e0b",
|
||||
"collapsed": true,
|
||||
"hidden": false,
|
||||
"phases": [
|
||||
{
|
||||
"id": "recensement",
|
||||
"name": "Recensement des besoins",
|
||||
"start": "2026-09-01",
|
||||
"end": "2026-09-25",
|
||||
"status": "todo",
|
||||
"milestone": false,
|
||||
"notes": ""
|
||||
},
|
||||
{
|
||||
"id": "sessions",
|
||||
"name": "Sessions de formation",
|
||||
"start": "2026-10-05",
|
||||
"end": "2026-12-18",
|
||||
"status": "todo",
|
||||
"milestone": false,
|
||||
"notes": "Trois sessions de deux jours, étalées sur le trimestre."
|
||||
},
|
||||
{
|
||||
"id": "bilan",
|
||||
"name": "Bilan",
|
||||
"start": "2027-01-15",
|
||||
"end": "2027-01-15",
|
||||
"status": "todo",
|
||||
"milestone": true,
|
||||
"notes": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user