Développer un site de choix de projets pour des étudiants

De janvier à juin 2007, dans le cadre du projet au semestre 2 de TELECOM Bretagne « Projet de développement », on m’a demandé, avec trois autres étudiants, de développer un système de gestion en ligne de projets pour l’intranet du département informatique de l’Université de Bretagne Occidentale (UBO).

Objectifs

Ce site devait permettre aux intervenants invités par l’administrateur d’une session de projets d’entrer des propositions de projets. Ces propositions étaient en suite validées ou non par l’administrateur, puis rendues visibles aux élèves. Les élèves intéressés classaient alors leurs choix. Une fois cette phase terminée, l’administrateur attribuait les projets en faisant le moins de mécontents possibles, puis les projets définitifs étaient notifiés aux élèves.

L’identification des élèves devait se faire grâce au LDAP de l’UBO. Les intervenants, en revanche, n’étaient pas obligatoirement inscrits dans le LDAP.

Le site devait enfin être compatible avec les principaux navigateurs actuels, et utiliser PHP et MySQL côté serveur.

Problèmes et solutions

Le problème le plus complexe que devait résoudre le système était l’attribution finale des projets aux élèves en faisant le moins de mécontents possible. Nous avons d’abord envisagé une solution de placement automatique, mais ça aurait manqué de souplesse, et nous manquions de temps pour mettre en place une telle solution. Nous avons donc décidé de créer une interface en AJAX qui permettait à l’administrateur de voir en direct quels élèves et quels projets étaient insatisfaits, et quels changements pouvaient être faits pour améliorer la solution. Les changements pouvaient être enregistrés en cours d’attribution pour éviter les pertes de données.

L’interface de classement des projets par les élèves était aussi relativement complexe. Nous avons donc utilisé du javascript pour permettre de faire glisser les projets dans la liste, et rendre l’interface plus intuitive. Cependant l’interface se dégradait bien si javascript n’était pas activé, et restait utilisable.

Un petit problème technique se posait aussi pour tester le système d’identification : nous travaillions à TELECOM Bretagne d’où nous n’avions pas accès au LDAP de l’UBO. Nous avons donc testé l’identification avec le LDAP de TELECOM Bretagne, et fait les derniers ajustements lors du déploiement sur le serveur de l’UBO.

Difficultés

La première difficulté que nous avons rencontrée est que parmi le groupe de 4 étudiants pour ce projet, j’étais le seul à avoir déjà développé en PHP. Il a donc fallu du temps pour que les 3 autres apprennent ce langage.

Un autre problème est venu du fait que nous n’avons pas passé assez de temps sur le cahier des charges au départ. Le problème de départ était vague, ce qui a provoqué des changements du cahier des charges en cours de projet qui ont fortement ralenti l’avancement du projet.

Conclusion

Malgré ces difficultés, le résultat final était fonctionnel, pas très beau (aucun de nous n’était designer). Il était assez facilement maintenable et correctement documenté.

Je ne sais pas si notre système est actuellement utilisé à l’UBO.