Retour au cours

Projet Armada

Programmer en Java une application branchée sur PostgreSQL : des escadrons, leurs vaisseaux, et le DAO qui les relie

Évaluation : 25% de la note

Le projet en bref

On part du projet Armada.zip, une application JavaFX dont la vue est déjà dessinée mais dont les données sont fausses ou absentes. Étape par étape, on la branche sur la base de données : la liste des escadrons, le détail d'un escadron, la sous-liste de ses vaisseaux, puis l'ajout et l'édition d'un vaisseau, et enfin la robustesse avec les requêtes préparées. Armada ressemble beaucoup au projet Marina vu en classe : un escadron est comme une flotte, un vaisseau est comme un bateau.

On programme dans l'ordre des étapes, on ajoute un log pour voir les valeurs, on teste jusqu'à ce que ça fonctionne, et on fait au moins un commit par étape. Aucun code d'une étape future ne doit apparaître dans une étape présente.

L'énoncé

Le diaporama du projet, à consulter en classe et à la maison : le processus, les trois livraisons, les écrans à obtenir, les questions SQL de la robustesse et les annexes (rappel DAO, Marina versus Armada).

Ouvrir l'énoncé

Pour démarrer

  1. Télécharger le point de départ : Armada.zip, à importer dans Eclipse comme projet existant.
  2. Garder Marina sous la main : le code de pratique Marina (flottes et bateaux) et son historique de commits montrent chaque étape, dans le même ordre que dans Armada.
  3. Créer la base de données : Armada utilise la base armada, avec les tables escadron (comme flotte) et vaisseau (comme bateau). Les scripts armada.sql et vaisseau.sql font partie des livrables.
  4. Publier sur GitHub : un commit à chaque étape, et une pré-release à chaque livraison (LIVRAISON_LISTES, LIVRAISON_EDITION), puis la release LIVRAISON_ROBUSTESSE.

Les livraisons

  1. Programmer la liste et le détail (5%) : remplacer la fausse liste d'escadrons par EscadronDAO.listerEscadrons(), puis afficher l'escadron choisi avec detaillerEscadron(id). On teste les données en log avant de les afficher.
  2. Programmer la sous-liste (5%) - LIVRAISON_LISTES : afficher les vaisseaux de l'escadron avec VaisseauDAO.listerVaisseauxParEscadron(id) et VueEscadron.afficherVaisseaux().
  3. Programmer l'ajout d'un vaisseau (5%) : navigation vers la page Ajouter, lecture du formulaire par le contrôleur, puis ajouterVaisseau dans le DAO, d'abord avec un faux objet et sans requête préparée pour pouvoir loguer le SQL.
  4. Programmer l'édition d'un vaisseau (5%) - LIVRAISON_EDITION : même démarche avec la page Éditer, qui reprend les données existantes, et editerVaisseau dans le DAO.
  5. Robustesse (5%) - LIVRAISON_ROBUSTESSE : toutes les requêtes des DAO deviennent des requêtes préparées (avec des ?), on ajoute la clé étrangère, et on répond dans le README.md aux quatre questions SQL de l'énoncé (jointures, agrégations, filtres).

Ressources

Énoncé du Projet Armada (version web) Énoncé du Projet Armada (PDF) Armada.zip - point de départ du projet (escadrons et vaisseaux) Marina.zip - code de pratique (flottes et bateaux) Marina - historique des commits sur GitHub, étape par étape Semaines 4-5 : le CRUD et les DAO