Continuer le développement

Cette section décrit comment poursuivre le développement à l’aide de cette base de code source, en plus de la structure de l’app et des technologies utilisées, pour faciliter la reprise de ce projet dans l’avenir.

Il y a principalement deux scénarios envisageables pour continuer le développement.

  1. Exécuter l’application et voir l’entièreté de son contenu pour pouvoir la reconstruire avec une autre technologie.
  2. Continuer le développement spécifiquement sur ce repository.

(Remarque : S’il manque de précisions dans cette section, contactez @pcraig3 ou @charlesmorin.)

1. Exécuter l’application et voir toutes les pages

Tout ce que vous avez à faire est d’exécuter l’application et trouver toutes les adresses URL.

  1. Premièrement, exécutez l’application.

  2. Vous trouverez la liste complète des adresses URL dans le fichier /config/routes.config.js. L’ordre des adresses correspond à l’ordre d’exécution logique dans l’application.

Tout est bon! Allez vous chercher de la pizza 🍕

2. Continuer à utiliser notre repository

Pour poursuivre le développement après qu’un certain temps se soit écoulé, vous devez d’abord vous assurer que l’application tourne rondement et que les tests réussissent. Ensuite, vous devez mettre à jour les dépendances, question de sécurité.

  1. Premièrement, exécutez l’application.

    • Consultez la page « Construire et exécuter l’application » dans le README.
    • L’application sera disponible à l’adresse http://localhost:3005/.
  2. Deuxièmement, exécutez les tests. Si les résultats sont bons (ils devraient l’être), cela veut dire que l’application est en bon état.

    • Consultez « Exécuter les tests » dans le README.
  3. Mettez à jour toutes les dépendances de l’application puisqu’elles ne seront plus à jour.

  4. Super! Commencez le développement!

Structure du repository

Répertoire Usage
/.github/workflows Pipelines d’intégration et livraison continue
/api Modèle (voir user.json)
/bin Script d’exécution pour Node.js
/config Configurations des modules / middleware npm utilisés
/cypress Tests et intégrations de bout en bout
/db Conceptuellement, il s’agit de notre base de données cloud avec des codes d’accès
/docs Documentation technique
/locales Fichiers de traductions pour les langues officielles (français et anglais)
/public Ressources statiques (images, scripts, feuilles de styles, icône de favori): tous les styles sont sous /public/scss.
/routes Contrôleurs (routes et logique métier) et tests unitaires
/schemas Schémas pour la validation des formulaires soumis (HTTP POST)
/scripts Scripts Azure et HashiCorp Terraform pour Infrastructure as Code (IaC)
/utils Fonctions utilitaires et middleware express
/views Fichiers de vue Pug qui se transposent en HMTL à l’exécution
/xml_output Première tentative d’un modèle XML IMPÔTNET

Choix technologiques

Développement

  • Express.js (Node.js)
  • Pug (technologie de vue)
  • express-validator (validation des formulaires)
  • SCSS (styles)
  • Jest (tests unitaires)
  • Cypress (tests de bout en bout)
  • Morgan (logger middleware pour les requêtes HTTP)
  • Helmet (middleware pour le Content Security Policy)

Intégration et livraison continue

  • Actions GitHub
  • SonarCloud.io (SonarQube)
  • Seekret (recherche de données sensibles dans le code source)
  • Snyk (analyse continue de sécurité)
  • Semmle/LGTM (analyse continue de sécurité)

Cloud

Microsoft Azure est le fournisseur de services Cloud

  • Azure AppService (Offre PaaS pour déployer l’application)
  • Azure Container Registry (Entrepôt pour images Docker)
  • Azure KeyVault (Entrepôt pour données sensibles)
  • Azure Application Insights (Mesures et journalisation)

Déploiement

  • Azure AppService
  • Docker

S’il y a autre chose dont vous avez besoin qui ne fait pas partie de cette documentation, contactez @pcraig3 ou @charlesmorin.