
Liens du projet
GanttCraft est une application open source conçue pour automatiser la création de diagrammes de Gantt à partir des données déjà présentes dans les outils de gestion de développement.
L’application récupère les informations liées aux issues d’un dépôt Git, notamment les titres, descriptions, responsables et échéances, afin de générer automatiquement une représentation visuelle de la planification du projet.
GanttCraft prend en charge GitHub, GitLab ainsi que les instances GitLab auto-hébergées. Les modifications apportées aux issues sont répercutées dans la visualisation afin de conserver une représentation cohérente de l’état du projet.
Problématique
Les informations de planification sont souvent dupliquées entre les issues Git et différents outils de gestion de projet.
Cela oblige à maintenir plusieurs sources d’information et peut entraîner des écarts entre l’état réel du développement et la planification affichée.
L’objectif de GanttCraft est de réutiliser directement les informations déjà présentes dans les dépôts Git afin de limiter cette duplication.
Fonctionnement
L’application se connecte à un fournisseur Git et récupère les informations nécessaires depuis les issues du dépôt.
Ces données sont ensuite normalisées puis utilisées pour construire automatiquement le diagramme de Gantt.
Le projet prend actuellement en charge :
- GitHub
- GitLab
- GitLab auto-hébergé
L’authentification auprès des fournisseurs repose sur OAuth 2.0.
Les informations issues du dépôt permettent notamment de représenter les tâches, leurs échéances et leurs relations dans une vue de planification commune.
Fonctionnalités principales
- Connexion à GitHub et GitLab
- Support des instances GitLab auto-hébergées
- Authentification OAuth 2.0
- Génération automatique du diagramme de Gantt depuis les issues
- Exploitation des responsables et échéances
- Représentation des relations entre les tâches
- Synchronisation avec les données des dépôts
- Personnalisation de l’affichage des tâches
Architecture et choix techniques
GanttCraft est principalement développé en TypeScript avec un environnement Node.js.
Fastify est utilisé côté serveur afin de gérer les différentes interactions applicatives et les intégrations avec les fournisseurs Git.
L’application utilise une logique d’intégration permettant de prendre en charge plusieurs fournisseurs sans limiter son fonctionnement à GitHub ou GitLab.
L’interface est réalisée avec Tailwind CSS et les différentes parties du projet sont couvertes par des tests avec Jest.
Difficultés techniques
L’une des principales difficultés du projet concerne la normalisation des informations provenant de différents fournisseurs Git.
GitHub et GitLab proposent des concepts proches, mais leurs APIs, leurs systèmes d’authentification et leurs représentations des issues et métadonnées peuvent différer.
Il est donc nécessaire de transformer ces différentes sources de données vers un fonctionnement commun exploitable par GanttCraft.
Une autre problématique concerne la synchronisation : les données pouvant être modifiées directement dans le fournisseur Git, la représentation générée doit rester cohérente avec la source.
Évolutions prévues
Le projet continue d’évoluer avec plusieurs améliorations envisagées :
- mise en place de la pagination afin de dépasser les limites actuelles de récupération des issues ;
- prise en charge de fournisseurs Git supplémentaires ;
- support envisagé de Bitbucket ;
- support envisagé de Gitea ;
- exploitation plus poussée des métadonnées des issues et milestones.
Open Source
GanttCraft est distribué sous licence Apache 2.0.
Le code source est disponible publiquement sur GitHub et le projet peut être déployé avec différents fournisseurs Git selon les besoins.