Files
gestion_projets/data/exemple.json
Bertrand Benjamin 4a513f9a59 Repousser un projet en bloc, sauf ce dont on ne décide pas
Glisser la barre résumé décale toutes les phases du même nombre de jours,
écarts conservés : un projet engagé glisse souvent, et le faire phase par
phase les déformait. Restent en place ce qui est terminé — on ne réécrit
pas le passé — et les phases à date imposée, nouveau booléen `fixed` pour
ce qui est délégué ou tenu du dehors.

D'où le format en version 6 : sans l'incrément, un binaire antérieur
effacerait ces dates imposées à la première sauvegarde.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 18:07:31 +02:00

206 lines
6.5 KiB
JSON

{
"version": 6,
"projects": [
{
"id": "site-web",
"name": "Refonte du site web",
"color": "#3b82f6",
"tags": ["client", "web"],
"collapsed": false,
"hidden": false,
"notes": "## Contexte\n\nPiloté par **Marie D.**, budget voté en avril.\n\n> Le prestataire est engagé jusqu'au 31 janvier 2027.\n\n### À suivre\n\n- [x] cadrage validé en comité\n- [ ] relancer sur les maquettes\n - [ ] variante sombre\n- [ ] prévoir la reprise des anciennes URL\n",
"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.\n\nPé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",
"tags": ["infra", "interne"],
"collapsed": false,
"hidden": false,
"notes": "Chantier interne, sans budget propre.\n\nContact hébergeur : [support](mailto:support@example.org)\n",
"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": "**Bloquée** : en attente de la fenêtre de maintenance côté hébergeur.\n\n- [x] demande déposée le 3 août\n- [ ] créneau confirmé\n"
},
{
"id": "fenetre-hebergeur",
"name": "Fenêtre de maintenance",
"start": "2026-09-12",
"end": "2026-09-13",
"status": "todo",
"milestone": false,
"fixed": true,
"notes": "Créneau imposé par l'hébergeur : un seul week-end par trimestre.\n\nRepousser le projet ne la repousse pas — si le reste glisse, c'est ce créneau qu'on rate.\n"
},
{
"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",
"tags": ["interne", "RH"],
"collapsed": true,
"hidden": false,
"notes": "",
"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": ""
}
]
},
{
"id": "refonte-intranet",
"name": "Refonte de l'intranet",
"color": "#8b5cf6",
"tags": ["interne", "web"],
"collapsed": false,
"hidden": false,
"notes": "Envisagé, pas encore engagé : l'horizon dit qu'on y viendra, pas quand exactement.\n\n- [ ] recenser ce que l'ancien intranet porte encore\n- [ ] estimer le budget\n",
"horizon": { "start": "2027-04", "end": "2027-09" },
"phases": []
},
{
"id": "archivage",
"name": "Archivage des dossiers papier",
"color": "#06b6d4",
"tags": ["interne"],
"collapsed": false,
"hidden": false,
"notes": "Horizon dépassé : à repousser ou à écarter.",
"horizon": { "start": "2026-03", "end": "2026-05" },
"phases": []
},
{
"id": "application-mobile",
"name": "Application mobile",
"color": "#ec4899",
"tags": ["client"],
"collapsed": false,
"hidden": false,
"notes": "Écartée : le site refondu sera responsive, une application native ne se justifie pas.\n\nÀ reprendre si un besoin hors ligne apparaît.",
"horizon": { "start": "2027-01", "end": "2027-06" },
"discardedDate": "2026-06-22",
"phases": []
}
]
}