Aide-mémoire pour les remises

Ces instructions s’appliquent à toutes les remises! Nous vous suggérons de les valider régulièrement.

Création du fichier progress.json

Celui-ci sert à indiquer les stories terminées.

Afin de faciliter la correction automatique, vous devez mettre un fichier qui indique l’état d’avancement de votre projet. Pour ce faire, vous devez placer un fichier nommé progress.json à la racine de votre projet. Celui-ci doit avoir le contenu JSON suivant :

{
  "completed": ["RSV"],
  "started": []
}

:warning: Si ce fichier n’est pas présent, mal formaté ou ne peut être trouvé pour quelque raison, nous assumerons que vous avez complété toutes les stories.

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)

Voir ci-bas l’environnement d’execution pour vous assurez que tout est beau!

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 du client 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és sur son utilisation et sur la façon dont 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-openjdk-11

Vous pouvez écrire votre code en java 8 si vous préférez (la jdk 11 est rétro-compatible), mais il est plus que fortement recommandé de télécharger ce docker et de l’essayer par vous-même avant. Vous pourriez avoir des surprises et devoir ajouter des librairies! Évidement, tout version supérieure à 11 ne fonctionnera juste pas.

L’environnement dans maven:3-openjdk-11 ressemble à ceci

Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/share/maven
Java version: 11.0.8, vendor: N/A, runtime: /usr/local/openjdk-11
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "5.7.12-arch1-1", arch: "amd64", family: "unix

: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.