Skip to content

HansLowell/H21-tp3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 

Repository files navigation

TP3 - Énoncé

📆 À remettre pour le 2 avril 2021 à 22h

Objectifs

  • Utiliser des outils de planification et de gestion efficacement et de façon organisée
  • Écrire des récits utilisateurs afin d'énoncer des ajouts de features
  • Ajouter des nouvelles fonctionnalités à partir d'un énoncé
  • Configurer un déploiement continue de A à Z

Partie 1 - Outils de planification (10%)

Avant d'entamer la programmation, nous vous demandons de lire attentivement les exigences du tp. Nous vous demandons ensuite de planifier vos tâches de développement logiciel avec Github.

  1. 📜 Créez un milestone pour la remise du tp. Insérez une capture d'écran afin de montrer les informations du milestone ainsi que les issues qu'il contient. Assurez-vous que toutes les issues soient présentes.
  2. 📜 Créez des issues afin de suivre votre progrès et de vous séparer la tâche. ⚠️ Attention Ce n'est pas nécéssairement 1 issue pour 1 feature. Assurez-vous également d'y remplir l'ensemble des parties tel que vu en laboratoire (l'issue doit au moins être en cours). Insérez une capture d'écran par issue (MAX 3).
  3. 📜 Créez des PRs afin de suivre les changements effectués ou en attente. Assurez-vous également d'y remplir l'ensemble des parties tel que vu en laboratoire. Insérez une capture d'écran par PRs une fois résolue (MAX 3). Vous n'avez pas à scroller afin de montrer le contenu des activités et commentaires.
  4. 📜 Créez un Github Project contenant vos issues. Insérez une capture d'écran montrant le tableau résultant. Elle peut être effectuée au début comme à la fin de votre progrès. Nous devons au moins y voir les colonnes ainsi que quelques issues. Une seule capture suffit (pas besoin de scroller).

Partie 2 - Écriture de stories (10%)

📜 Écrivez, dans votre fichier tp3.md, 8 récits utilisateurs de nouvelles features ou améliorations que vous aimeriez implémenter dans votre projet. Assurez-vous de respecter les points suivants:

  • Niveau de complexité adéquat (faisable tout en demandant un certain effort)
  • Respect des critères INVEST
  • Présence de critères/conditions de succès (tests)

Également, évitez :

  • de suivre le format des features dans les énoncés (ce ne sont pas des récits utilisateurs)
  • d'indiquer un pointage
  • d'implémenter ces features (réservé pour le TP4)

Partie 3 - Code (40%)

Pour cette partie, vous devez développer les features et refactors demandés. Les formats de requêtes et réponses utilisent la notation typée de Typescript. On s'attend à une réponse dans le format JSON pour l'ensemble des appels à l'API. Des tests automatisés vérifieront les bons retours de votre API. Nous corrigerons également la clarté (clean code), le contenu, l'organisation et l'uniformisation du code.

De plus, vous devez implémenter les mêmes types de tests que pour le TP2 ainsi que respecter les retours d'exceptions demandés.

Refactors

Features

Partie 4 - Déploiement (40%)

Votre application étant maintenant entièrement fonctionnelle, il est temps de la déployer sur les Internets! Par contre, plusieurs étapes préliminaires sont requises. Ne vous découragez pas si des bugs persistent, c'est une partie qui peut être difficile!

⚠️ IMPORTANT: Seulement 1 personne de l'équipe peut effectuer cette partie, à moins que vous osiez fournir une carte de crédit. Il est donc fortement encouragé de le faire via des rencontres en direct, du pair programming ou donner une formation au reste de l'équipe. Il est très important que chaque membre puisse participer à toutes les parties du projet.

Bien évidement, on ne demande qu'un seul pipeline de déploiement par équipe.

4.1 - Création d'un pipeline d'environnements

Vous devez créer un pipeline de déploiement sur Heroku comprenant les 2 environnements suivants:

  • staging : déployé de façon automatique par le CI
  • production : déployé (promoted) manuellement par vous

Vous devrez donc créer 2 applications Heroku afin de pouvoir ensuite les associer à un environnement de pipeline. Les urls peuvent être générés aléatoirement (donc pas nécéssairement reliées au terme e-baie ou glo2003).

⚠️ 📜 Dans votre fichier tp3.md, insérez une capture d'écran de votre pipeline Heroku. Vous pouvez brouiller ou cacher les adresses courriels si vous voulez.

4.2 - Configuration

Avant de pouvoir déployer sur Heroku, quelques étapes de configuration sont nécessaires. Ces dernières sont bien décrites sur le Heroku Dev Center.

4.3 - Déploiement automatisé

Votre application doit être déployée sur Heroku de façon automatique lorsque le code est intégré à la branche de base (main). Ainsi, vous devrez créer un nouveau workflow avec au moins les jobs suivantes:

  1. test : exécute les tests de la même façon que dans votre premier workflow.
  2. deploy : déploie l'application sur l'environnement staging de votre pipeline d'Heroku.
    • Doit être effectué seulement après la/les job(s) de test.
    • Doit effectuer un health check après le déploiement (doit échouer si /health ne retourne pas 200 OK)
    • Doit rollback (retourner à la version antérieure) si le healthcheck échoue
    • Certains Github Actions permettent d'automatiser ces commandes

Vous devriez donc avoir les 2 workflows suivants:

  1. test, CI ou build : exécute les tests au push sur toutes les branches, excepté la branche main.
  2. deploy : exécute les tests, puis ensuite le déploiement au push sur la branche main seulement.

4.4 - Pour la correction

Assurez-vous de créer un fichier config/heroku_urls.json avec la structure suivantes (sans les chevrons):

{
  "staging": "<url vers l'app en staging>",
  "production": "<url vers l'app en production>"
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors