:: Enseignements :: Master :: M2 :: 2010-2011 :: Interface graphique II ::
[LOGO]

Jacques Beauheur


But du projet

Dernière mise à jour: 18 janvier 2011

En exil en France après ses dernières aventures, notre héros s'ennuie et aimerait bien pouvoir continuer à jouer à sauver le monde, mais hélas, les moyens informatiques français sont loin d'égaler les infrastructures auxquelles il était habitué. Pas de couverture satellite, pas de traceurs radioactifs, pas de reconnaissance faciale sur les caméras de surveillance des Prisunic, le pauvre ne peut même pas suivre de bêtes rames de métro. Pour l'aider à sortir votre pays de la préhistoire numérique où il se trouve, vous devrez aider notre ami en réalisant un simulateur de trafic du métro parisien.

La carte

On veut pouvoir suivre en temps réel le trafic du métro parisien en suivant la position de chaque rame. Pour cela, vous devrez proposer une vue graphique du plan du métro parisien sur laquelle on devra pouvoir voir évoluer la position de chaque rame. Cette vue devra être gérée de façon vectorielle de façon à ce que l'on puisse zoomer dessus à volonté. En cas de zoom, on doit pouvoir déplacer la zone visualisée à la souris, à la façon des cartes proposées par des sites comme mappy.

Les stations

Votre application doit permettre de gérer la fermeture des stations. Cela devra pouvoir se faire à la souris, directement sur la carte. On devra également disposer d'une liste de toutes les stations, et pouvoir modifier leur statut par clic sur cette liste. On veut une apparence générale de liste, mais il pourra s'agir d'une table. Comme la liste des stations est très longue, on veut également une zone de texte dans laquelle on pourra saisir au fur et à mesure le nom de la station recherchée. Au fur et à mesure de la frappe, on veut que la liste soit filtrée pour ne montrer que les noms de stations commençant par la chaîne saisie. En bonus, un mécanisme de complétion automatique pourrait être envisagé.

Les rames

Votre application doit pouvoir gérer les rames de métro. Pour chaque ligne, on doit avoir une liste des rames. Au démarrage de l'application, on doit pouvoir paramétrer un nombre de rames pour chaque ligne, et l'application les répartira équitablement sur la ligne. Chaque rame aura un numéro, et on devra pouvoir accéder à la liste de toutes les rames. Si l'on survole le dessin associé à une rame sur la carte, on veut voir une sorte de tooltip qui montre son numéro. On doit pouvoir ajouter et supprimer des rames. On doit également pouvoir paramétrer, pour chaque ligne, le temps passé entre deux stations et le temps d'arrêt à une station. Naturellement, on devra voir bouger les rames en temps réel sur la carte.

Travail demandé

Vous devez fournir une application Swing proposant un tel simulateur. Votre programme devra proposer un format de sauvegarde permettant de sauver et de recharger des configurations. L'objectif général est de fournir une application la plus ergonomique possible (sinon, la version française de Chloé ne sera pas contente).

SI ET SEULEMENT SI le travail demandé est accompli, vous êtes libres d'apporter toutes les fonctionnalités supplémentaires de votre choix à cette application.

Conditions de rendu

Vous travaillerez en binômes. En premier lieu, vous lirez avec profit la charte des projets pour éviter des bavures malheureuses. Vous rendrez ensuite une archive nommée login1-login2.zip contenant les choses suivantes:
  • un répertoire src contenant les sources du projet ainsi qu'un build.xml. Lorsqu'on lance ant, on doit obtenir un exécutable nommé beauheur. La cible clean doit fonctionner correctement. Les sources doivent être propres, en anglais et commentées.
  • un fichier doc.pdf contenant votre rapport qui devra décrire votre travail. En particulier, vous décrirez avec soin et en les justifiant tous vos choix d'architecture, en particulier sur les MVC et la façon de gérer le plan graphique du métro. Si votre projet ne fonctionne pas complètement, vous devrez en décrire les bugs.

Le projet est à rendre par mail l'enseignant (i.e. Sébastien Paumier), au plus tard le lundi 4 avril à 23h.