Module M2 — Gestion de projet (Jour 2 matin — 3h30)¶
Prérequis : instance configurée par M1 — rôles, trackers, workflow et activités en place
Objectif : créer et piloter un projet Redmine, gérer ses membres et produire des rapports de temps
Menu : Projets → Nouveau projet
Renseigner les champs Nom et Identifiant — l’identifiant est généré automatiquement à partir du nom, vérifier qu’il correspond à
mon-projetDans la section Modules, cocher : Suivi des demandes, Wiki, Documents, Suivi du temps, Fichiers
Sauvegarder
Pour le sous-projet : répéter l’opération, puis dans le champ Projet parent sélectionner Formation Redmine.
Vérifier dans la liste des projets que mon-projet-batch apparaît en retrait sous mon-projet.
Menu : Projet mon-projet → Paramètres → onglet Membres → Nouveau membre
Sélectionner l’utilisateur dans la liste déroulante
Sélectionner le rôle correspondant
Cliquer Ajouter — répéter pour les 3 comptes
Vérification par compte :
| Compte | Ce qui doit être visible | Ce qui ne doit pas l’être |
|---|---|---|
cda.dupont | Paramètres projet, tous les tickets, tous les temps | Administration |
dev.martin | Ses tickets, saisie de temps | Paramètres projet, gestion membres |
client.durand | Liste des tickets, création de demande | Temps des autres, paramètres |
Solution to Exercise (EX-10 — Création des versions (jalons)) #
Menu : Projet → Paramètres → onglet Versions → Nouvelle version
Pour chaque version :
Saisir le nom (
Sprint 1,Sprint 2)Définir la date d’échéance
Statut : Ouvert
Sauvegarder
Vérifier via Menu : Projet → Roadmap — les 2 versions doivent apparaître avec leur date et le compteur de demandes (0 pour l’instant).
Menu : Projet → Nouveau ticket
Pour chaque demande, renseigner dans l’ordre : Tracker, Sujet, Priorité, Assigné à, Version cible.
Vérification : Menu Projet → Suivi des demandes → appliquer les filtres suivants :
Filtre
Version = Sprint 1→ doit retourner 4 demandesFiltre
Tracker = Anomalie→ doit retourner 3 demandesFiltre
Priorité = Urgente→ doit retourner 2 demandes
Menu : Projet → Wiki → Modifier (page Accueil générée automatiquement)
Contenu de la page Accueil (exemple) :
h1. Formation Redmine
Bienvenue sur le wiki du projet.
* [[Procedure-Incident|Procédure de gestion des incidents]]
* [[Contacts|Annuaire des interlocuteurs]]Contenu de la page Procedure-Incident :
h1. Procédure de qualification d'une anomalie
h2. Étape 1 — Réception
Vérifier la complétude du signalement : environnement, reproductibilité, impact.
h2. Étape 2 — Qualification
Affecter un tracker, une priorité et une version cible.
h2. Étape 3 — Assignation
Affecter à un développeur et passer le statut en "En cours".Contenu de la page Contacts :
| Nom | Rôle | Email |
| Dupont | Chef de projet | cda.dupont@example.com |
| Martin | Développeur | dev.martin@example.com |
| Durand | Client | client.durand@example.com |Vérifier que le lien [[Procedure-Incident]] depuis la page Accueil est cliquable et navigue vers la bonne page.
Saisie : Menu Projet → Suivi du temps → Nouvelle entrée de temps
Pour chaque entrée : sélectionner la demande, saisir la durée (format 2 ou 2.5), choisir l’activité, ajouter un commentaire optionnel.
Résultats attendus après filtrage :
| Filtre | Résultat attendu |
|---|---|
| Activité = Développement | 2h sur “Erreur 500” |
| Activité = Support / Assistance | 0,5h sur “Réinitialisation MDP” |
| Version = Sprint 1 | 2,5h (Erreur 500 + Réinitialisation MDP) |
| Utilisateur = dev.martin | Total des 3 entrées = 3,5h |
Exercices avancés¶
Menu : Projet → Suivi des demandes → section Filtres → Ajouter un filtre
Anomalies urgentes Sprint 1 :
Tracker → est → Anomalie
Priorité → est → Urgente
Version → est → Sprint 1
Statut → n’est pas → Fermé
Cliquer Appliquer, puis Sauvegarder → saisir le nom → cocher Public → Sauvegarder.
Vérification : se connecter avec dev.martin → Projet → Suivi des demandes → le filtre public doit apparaître dans la liste déroulante des requêtes sauvegardées.
Passage en Résolu : se connecter avec dev.martin → ouvrir la demande → modifier le statut → Sauvegarder.
Passage en Fermé : se connecter avec cda.dupont → ouvrir la demande résolue → modifier le statut → Sauvegarder.
Lecture de la Roadmap :
La barre de progression = (demandes fermées / total demandes de la version) × 100
Avec 1 demande fermée sur 4 du Sprint 1 → 25%
Les demandes encore ouvertes sont listées sous la barre
Lecture du Gantt :
Chaque demande apparaît comme une barre horizontale positionnée entre sa date de création et son échéance de version
Le Sprint 2 apparaît si ses demandes ont une date d’échéance définie
Réponse attendue à l’étape 2 (création version) :
{
"version": {
"id": 3,
"project": {"id": 1, "name": "Formation Redmine"},
"name": "Sprint 3",
"status": "open",
"due_date": "2026-07-31"
}
}L’id retourné (ici 3) est à utiliser aux étapes 4 et 5.
Étape 4 — remplacer ID_SPRINT3 par 3 et ID_DEMANDE par l’id d’une demande existante :
curl -X PUT `
-H "X-Redmine-API-Key: VOTRE_CLE_API" `
-H "Content-Type: application/json" `
-d "{\"issue\": {\"fixed_version_id\": 3}}" `
http://localhost:3000/issues/5.jsonÉtape 5 — récupérer l’id du Sprint 1 via l’étape 3, puis fermer :
curl -X PUT `
-H "X-Redmine-API-Key: VOTRE_CLE_API" `
-H "Content-Type: application/json" `
-d "{\"version\": {\"status\": \"closed\"}}" `
http://localhost:3000/versions/1.jsonVérification : Menu Projet → Paramètres → Versions — le Sprint 1 apparaît en statut “Fermé” et n’accepte plus de nouvelles demandes.
Erreurs fréquentes :
422sur la fermeture de version → des demandes ouvertes sont encore affectées à cette version404sur/versions/ID→ l’id est incorrect, vérifier viaversions.json