Depuis la nuit des temps, acheter la lune est une preuve d’amour. Et c’est avec plaisir que nous offrons la chance de réserver une soirée au restaurant Lunaire avec les plus grands chefs de la galaxie. La TEAM (Terriens et Extraterrestres Amateurs de Manger) se spécialise dans les activités extraterrestres. Suite au désatreux Glow-4002, la compagnie souhaite se renouveller dans la restauration. Elle décide donc de créer son propre outil interne de gestion de restaurant, le Maître T.

Notre but pour le MVP de Maître T, c’est de pouvoir organiser la grande activité d’ouverture, le Hoppening, qui se tiendra du 20 juillet au 30 juillet 2150. Ainsi, nous nous assurerons que le projet de la TEAM fonctionne bien cette fois-ci.

: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: RSV - Réserver sa table

User story 2: DSO - Distanciation Sociale Obligatoire

User story 3: GLI - Gérer les ingrédients

User story 4: AAC - Attention aux champignons

:exclamation: D’autres stories à venir

Contraintes technologiques

:warning: Le repository Github sera créé pour vous avant la rencontre d’équipe de mercredi. Ne pas commencer avant!

Les contraintes suivantes doivent absolument être respectées :

  • Java 11 (openJDK uniquement)
  • Junit 5+
  • Mockito 3+
  • Toutes les dépendances doivent être gérées via Maven

Voir l’aide mémoire des remises pour l’environnement de correction.

Nous vous conseillons de prendre les outils fournis dans le projet de base. Vous pouvez cependant en ajouter (tout en respectant les licenses). Nous vous conseillons par contre fortement de limiter le nombre de dépendances/outils/librairies que vous utilisez afin de garder cela simple. Quelques conseils:

  • Spring boot: c’est cool, ça va vite! Mais c’est une grosse “learning curve” et, par expérience, ça a causé énormément de problèmes aux équipes qui ont fait ce choix dans le passé (surtout pour les tests non-unitaires qui seront évalués dans la deuxième moitié de la session).
  • Lombok: ça ajoute très peu de gains pour tous les problèmes que ça cause pour un petit projet avec un domaine riche tel que nous ferons dans le cours (nous verrons les différentes architectures possibles au cours de la session).
  • Tout ce qui est des “utilitaires” comme apache-commons, guava, etc. si vous en faites bon usage, c’est correct

Vous pouvez tout de même utiliser ces outils, mais nous vous demandons de faire d’abord une comparaison avec les outils proposés et d’en discuter avec nous avant.

Dans ce cours, c’est le design et les tests qui nous préoccupent et non les technologies ou les frameworks. Il n’y aura rien de compliqué technologiquement. Par contre, il ne faut pas non plus recoder le parsing du JSON ou un serveur HTTP “from scratch”!

Pour toutes autres librairies, si vous avez des doutes, vous pouvez nous écrire. Soyez conscient que vous serez également évaluer sur votre bonne utilisation des outils, et ceci inclut les librairies que vous choisirez.

Tableau des mises en production

Mise en production Date
MEP 0.1 20 sept. 2020 à 23h59
MEP 1 9 oct. 2020 à 23h59
MEP 2 3 nov. 2020 à 23h59
MEP 3 (individuelle) 16 déc. 2020 à 23h59

Pour toutes ces mises en production, les instructions disponibles ici s’appliquent. Révisez-les avant chaque mise en production.