Exit les Coachella et les Osheaga de ce monde, le GLOW-4002 est désormais LE festival de musique de l’heure. C’est-à-dire ZE place où l’habillement est plus important que la musique elle-même. L’événement a lieu du 17 juillet 2050 au 24 juillet 2050 sur la planète Ulavalogy, rien de moins! À travers diverses histoires farfelues, vous devrez développer un système qui permettra la gestion du festival.

:exclamation: N’oubliez pas qu’il est très important de consulter régulièrement le site du projet. En effet, puisque s’il y a des précisions/changements/questions/réponses par rapport à une user story, le tout sera documenté au bas de chaque page de la story en question.

:exclamation: Ne prenez rien pour acquis, si vous hésitez par rapport au comportement voulu ou si vous avez des questions, n’hésitez pas à nous écrire au aide@qualitelogicielle.ca.

Carnet:

User story 1: ACP - Acheter des passes pour le festival

User story 2: TRANS - Gérer le transport des festivaliers

User story 3: OXY: Gérer l’oxygène nécessaire

:exclamation: Modification à faire : MOD: Modification du numéro de commande

User story 4: CLASS: Classer les artistes

User story 5: DEV: Dévoilement de la programmation du festival

User story 6: CALC: Calculer les profits du festival

User story 7: REP: Reporter le festival

MEP3.1

:warning: N’oubliez pas de mettre à jour votre fichier progress.json, puisqu’il sera nécessaire pour cette remise. Vous devez y inclure la story REP en plus de toutes celles que vous avez fait à l’exception de MOD.

Nous considérerons les avancements qui ont été annoncés à la MEP2.0 + REP (qui est obligatoire). Vous ne pouvez pas vous rétracter sur ces avancements. Ce qui veut dire que si vous aviez complété, par exemple, ACP, OXY, TRANS et CLASS, vous devez remettre toutes ces user story fonctionnelles pour MEP3.1. Si des erreurs sont détectées dans ces user story, alors cela entraînera une note de 0.

Objectif

Dans cette remise, 3 choses seront évaluées :

  • La qualité du code et du design pour le nouvelle user story (REP) écrite à la MEP3.0
  • La qualité du code en général
  • La correction des commentaires émis lors de la 2e revue de code

Contrainte

:warning: ATTENTION! Cette remise pourrait vous entrainer une note de 0 automatiquement. Nous ne corrigerons pas les projets qui ne compilent pas, ne démarrent pas, n’exposent pas le bon port (localhost:8181) ou qui échouent les tests sur Draveur. Toutefois, vous aurez autant de remises que vous le souhaitez sans pénalité.

Pondération des critères

Critère Pondération
Qualité du code et design pour REP 25%
Correction des commentaires de la remise 2 65%
Qualité du projet en général 10%

Pénalités pour remises multiples

Il n’y a pas de pénalité pour remises multiples pour MEP3.1, mais nous ne corrigerons pas les remises qui échouent.

:exclamation: Aucun projet ne sera accepté après la date limite.


Aide-mémoire pour les remises

Le projet compile et démarre sur le bon port

Un projet qui ne compile pas ne sera pas corrigé. Il en va de même si le projet ne démarre pas (e.g. avec mvn exec:java -pl application) et qu’il n’expose pas le bon port (localhost:8181)

Gestion de la persistance

Nous ne demandons pas d’avoir de base de données pour l’instant. Vous devez stocker l’information en mémoire seulement.

En gros, si on redémarre le serveur, on s’attend à ce que toutes les données soient perdues et c’est correct. Vous devez cependant supporter le fait que le besoin de la cliente sur ce point pourrait évoluer dans le temps…

Nous ne vous conseillons pas de prendre un framework (comme hibernate) avec une persistance en mémoire (style H2). Ceci ajoute de la complexité qui n’est pas requise pour le projet. Cependant, si c’est déjà fait ou que vous êtes à l’aise avec cet outil, allez-y! Ce n’est pas pénalisant de prendre un outil, par contre vous serez évalué sur son utilisation et sur la façon de celui-ci est intégré dans votre design.

Environnement de production

Spécification

Draveur utilise le container docker suivant pour exécuter ses corrections: maven:3-jdk-8

Ce dernier vient avec les versions suivantes:

  • Openjdk version “1.8.0_222”
  • OpenJDK Runtime Environment (build 1.8.0_222-b10)
  • OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)
  • javac 1.8.0_222
  • Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 2019-08-27T15:06:16Z)

:warning: Aucune autre librairie (exemple: JavaFX avec la classe javafx.util.Pair) ou service lié à Java ne sera disponible dans ce conteneur. Votre application doit donc gérer correctement ses dépendances et les installer à l’aide de Maven.

Commandes de démarrage de votre application

Votre application sera compilée avec la commande suivante:

mvn clean install

Puis, elle sera démarrée avec la commande suivante:

mvn exec:java -pl application

Note: ces commandes sont exécutées à la racine de votre projet.