FR | EN
Page générée en 0.159 sec
Imprimer

PHPCollab

PhpCollab est un outil de groupware permettant la gestion de projets en développement Web en équipe. Il inclus non seulement un module de suivi de projets mais aussi une partie dédiée au suivi du client. La fonctionnalité innovante du produit se trouve dans l'accès client associé aux projets : un « mini-site » est publié et les éléments désirés sont rendus visibles.

3.1. Installation

L'installation de PHPCollab 2.4 requière les éléments suivants :

  • Un serveur web, traitant le PHP
  • Un serveur MySQL, PostgreSQL ou SQL Server
  • SendMail pour activer la notification par mail

Les sources peuvent être téléchargée directement sur sourceforge.net :

sourceforge.net/project/showfiles.php?group_id=46510

Voici les étapes de l'installation :

  • Décompresser le fichier dans un répertoire du serveur Web.
  • Renommer le fichier includes/settings_blank.php en includes/settings.php
  • Donner les droits d'écriture au serveur Web sur les éléments suivant :
    • Le fichier includes/settings.php
    • Le dossier files
    • Le dossier logos_clients
  • Créer une base de donnée vide
  • Avec un navigateur Web, aller à l'URL du fichier installation/setup.php (ex : http://localhost/phpcollab/installation/setup.php) et suivre les instructions de configuration. Cette étape va créer les tables en base de donnée et modifier le fichier de configuration settings.php
  • Supprimer le fichier installation/setup.php

Il est dés lors possible de se logger avec l'utilisateur admin et le mot de passe saisi lors de la configuration. L'installation est donc simple et rapide (environ 5 minutes). L'avantage majeur à ce niveau est la portabilité de l'application : aucune contrainte liée au système d'exploitation ni au serveur Web et une grande majorité des serveurs SQL sont supportés.

3.2. Fonctionnalités

PHPCollab est un outils entièrement Web qui peut être divisé en trois grandes sections :

  • Administrateur
  • Utilisateur
  • Client
3.2.1. Section administrateur

Cette section n'est accessible que par l'administrateur de PHPCollab. Elle permet de :

  • Gérer les utilisateurs : chefs de projets, utilisateurs et administrateurs.
  • Sauvegarder et restaurer la base de données. L'export génère un fichier texte contenant des instructions SQL. Il est possible d'exporter la structure ou/et les données.
  • Récupérer des informations utiles de la configuration du logiciel, de PHP ainsi que du serveur Web. Ceci peut être utile pour résoudre certains problèmes que nous évoquerons.
  • Intégrer les informations sur la société
  • Afficher les logs du logiciel : nombre de connexions effectuées par un utilisateur, date de la dernière visite...
  • Editer le fichier de configuration. Ceci va permettre entre autre d'activer ou désactiver certaines fonctionnalités tel que la notification par mail. Un utilisateur peut être averti lorsqu'une modification est apportée au projet : assignation de l'utilisateur à un projet, à une tâche, modification de la priorité, statut d'une tâche. Ce module nécessite la présence de SendMail sur le serveur. Une autre fonctionnalité est l'upload de fichier : un intervenant sur un projet a la possibilité de joindre un fichier, comme le cahier des charges par exemple. De part cette interface, il est possible de limiter la taille maximale de fichiers uploadés. Ce module rencontre souvent certains problèmes liés à la configuration du serveur : pour uploader un fichier, un script PHP se doit de le réceptionné. Durant l'upload, ce script tourne donc. Un premier problème peut apparaître si l'envoie s'effectue sur une connexion bas débit : au bout d'un certain temps (définit par PHP), le script timeout. Un second problème peut être rencontré lors de l'envoie de fichier de taille supérieurs à 4Mo : s'il est possible d'augmenter la taille maximum des fichiers uploadés, il faut aussi prendre en compte la taille limite mémoire que prend le script. Durant le téléchargement, le fichier est chargé progressivement en mémoire. Hors une limite est définie par PHP ainsi que par Apache qui limite la taille des requêtes.
3.2.2. Section utilisateur

La section des utilisateurs va permettre aux différents intervenants (développeurs, graphistes, chefs de projets...) de mettre à jour l'avancement du projet. Nous visualiserons cette partie en tant que chef de projet.

3.2.2.1. Création d'un projet

Lors de la création d'un projet, il est possible d'intégrer des phases. Il existe 2 type de phases : WebSite et CD. CD intègre quatre grandes phases (Planning, Design, Production et Testing) et s'oriente donc vers la réalisation d'un logiciel sur CD. WebSite intègre une cinquième phase (Sign-off) et comme son nom l'indique, s'oriente vers la réalisation d'un site Web. Ces phases ne sont pas dépendantes et leur ordre peut être arrangé. Dans cette logique, il est possible de définir plusieurs phases actives en même temps. A noter que des type de phase (Website, CD...) peuvent être ajoutées aisément dans le fichier customvalues.php.

Pour chacune de ces phases, des tâches devront être définis. Cette répartition n'est utile qu'en terme d'organisation des tâches : les phases n'apparaissent pas sur le planning. Cette fonctionnalité n'est pas tout à fait au point (dû à certains bugs) mais surtout n'est pas encore assez exploitée. Il serait intéressant de réaliser des plannings/rapports globaux regroupant l'avancement des différentes phases.

Une tache peut être affectée à une seule personne. Si celle-ci nécessite l'intervention de plusieurs personnes, il est possible de définir des sous-tâches. Celles-ci n'apparaissent ni sur le planning ni sur les rapports. Le principal problème de la planification des tâche avec ce logiciel est qu'il n'existe aucune dépendance entre celles-ci : il n'y a aucune notion de prédécesseurs. Par conséquent, si une tache se trouve rallongée par la suite impliquant un décalage du planning, chacune des tâches sensées être dépendantes devra être décalée manuellement.

Un forum de discussion est ajouté automatique à un projet. Chaque utilisateur (ayant le droit d'accéder au projet) a la possibilité d'ajouter des commentaires ainsi que des sujets de conversation. Aucune administration de ce forum n'est nécessaire puisqu'il dépend du projet.

L'ajout de membres dans l'équipe de projet se fait par simple sélection des utilisateurs. Chaque utilisateur a une unique fonction saisie lors de sa création. Il n'est donc pas possible de modifier la fonction d'un utilisateur pour un projet puisque la modification aura pour effet de changer sa fonction pour tous les autres projets.

Ci-dessous, un aperçu du planning d'un projet. Ce planning étant issu du logiciel customisé durant mon stage, certains éléments comme l'affichage du retard d'une tâche par une barre rouge apparaît (cliquez pour agrandir) :

Planning
3.2.2.2. Les rapports

PHPCollab met à disposition un formulaire pour générer des rapports. Les rapports vont permettre d'afficher un planning (ainsi qu'un tableau récapitulatif) des tâches à l'aide des paramètres suivants :

  • Le nom du client
  • Le nom du projet
  • L'utilisateur auquel sont assignées les tâches
  • La date selon laquelle la tâche débute / doit être rendue / s'est terminée
  • Le statut (commencé, terminé...)
  • La priorité

Les paramètres des rapports générés peuvent être sauvegardés afin d'être consultés antérieurement.

Malgré un paramétrage complet, la présentation de ces rapports est donc très limitée. Aucune statistique ne peut être réalisée, la représentation se limite toujours un planning.

3.2.2.3. Le calendrier

Le calendrier va permettre d'avoir une vision mensuelle des tâches à réaliser. Il génère automatique un planning correspondant à ces tâches.

Plusieurs inconvénients sont à noter. Premièrement, seules les dates de début et de fin d'une tâche apparaissent sur le calendrier. Les tâches du jour à accomplir ne sont donc pas clairement identifiées. Le second problème est lié aux tâches non terminées. Si une tâche n'est pas terminée alors qu'elle aurait dû l'être le mois précédent, celle-ci n'apparaît pas sur le planning et risque donc d'être oubliée.

3.2.3. Section client

La section client correspond au « site projet ». Pour chaque projet créé, il est possible de créer un site projet en cliquant simplement sur le bouton approprié. Ceci a pour effet de mettre à disposition du client une interface web où celui-ci pourra suivre l'évolution du projet et réaliser des demandes d'assistance.

Site Projet

Pour que le client puisse visualiser les informations relatives au projet, il faut que celles-ci soient publiées. Voici les informations publiables :

  • Les membres de l'équipe
  • Les tâches
  • Les fichiers uploadés
  • Un sujet du forum

Chacune de ces données peut donc être masquée, comme par exemple le membre d'une équipe.

3.3. Intégration de Mantis

Lorsqu'un projet se termine, il est utile, voir obligatoire d'avoir un outil de suivi de bug. Hors PHPCollab ne gère pas du tout cette notion. Pour pallier à ce problème, un module permet d'intégrer Mantis.

Mantis est donc un outil de bug tracking. Tout comme PHPCollab, il est écrit en PHP, basé sur une interface Web et gratuit sous licence GPL.

L'intégration a pour effet de synchroniser les projets et utilisateurs des deux logiciels. Pour que cela fonctionne, les bases de données de ces deux programmes doivent être vierge. Si des projets et utilisateurs ont déjà été créés, il faut abandonner l'idée d'intégration ou recréer ces projets (et utilisateurs) une fois que les modifications sont terminées.

La fusion est donc assez délicate. Le code des deux programmes doit être modifié pour synchroniser les bases de données. De plus, la procédure d'intégration est très mal documentée, celle-ci devrait théoriquement être mise à jour à chaque changement de version de PHPCollab et de Mantis. Hors la documentation fournie avec le logiciel est totalement obsolète, datant de 2002. Un forum sur sourceforge http://phpcollab.sourceforge.net/ permet de récupérer des patches de certaines versions. Sans ces patches, les modifications sont relativement longues : une quarantaine de fichiers sont à modifier.

Il faut noter aussi que Mantis n'est compatible qu'avec MySQL. La base de donnée de PHPCollab devra donc être installée sur un serveur MySQL.

Nous ne détaillerons pas ici toutes les fonctionnalité de Mantis. Il offre tout ce qu'un bug tracker a besoin : notification par mail, de nombreux rapports et synthèses graphiques ou en tableaux, upload de fichiers, mini forum, possibilité de rendre public ou privé un projet.

3.4. Conclusion

On peut s'apercevoir que PHPCollab n'offre pas toutes les fonctionnalités que peut proposer Project. Mais contrairement à Project, une solution de suivi de bug peut être mise en place.

De plus c'est un logiciel libre. Il est donc possible de le customiser à volonté en y ajoutant des fonctionnalités comme par exemple l'affichage dynamique du retard des taches sur le planning en encore le listing des tâches journalières sur le calendrier.

W3C - XHTML 1.0 Powered By Fedora W3C - CSS