Aperçu technique

L’application Réclamation d’avantages fiscaux n’est pas autonome et nécessite un niveau élevé d’intégration de la part de l’ARC. Ce produit extrait les données sur l’individu à partir de la base de données de l’ARC, puis les affiche au déclarant. La communication entre le produit et la base de données de l’ARC se fait par l’intermédiaire d’une interface de programmation d’application (API). Cette technologie permet à un système de communiquer avec un autre système.

Une fois que le déclarant s’est authentifié, l’API envoie les données à l’application. Celle-ci demande ensuite au déclarant de confirmer que l’information affichée est exacte. La déclaration de revenus est ensuite produite au moyen de l’API IMPÔTNET, c’est-à-dire la même que celle utilisée par les logiciels payants.

Étant donné que l’ARC utilise des technologies héritées, il existe un degré de risque. Ce risque est atténué par le fait que le produit en ligne est hébergé sur une technologie en nuage, de sorte qu’il est séparé de la base de données. Cette séparation nous a permis de réaliser plusieurs prototypes pour différentes versions, sans mettre en péril les données de l’ARC. Si le produit était devenu un service fonctionnel, nous aurions pu continuer à modifier le service en fonction des commentaires des utilisateurs.

Dépôt

Pour les développeurs

Resumé

L’application Réclamation d’avantages fiscaux est une application express côté serveur qui utilise les langages Pug pour les gabarits et SCSS pour les feuilles de styles. L’échafaudage de l’application vient du générateur d’applications Express. Il suppose l’existence d’une API backend (qui reçoit les données de l’utilisateur) et d’une base de données infonuagique (qui stocke les codes d’accès), bien que tous deux soient simulés afin que l’application puisse fonctionner de façon isolée pour le développement.

L’application met en œuvre plusieurs pratiques recommandées pour le développement de services Web modernes.

Utilisation de services tiers

Nous utilisons plusieurs services tiers pour améliorer le déroulement du développement et de la sécurité continue.

  • GitHub est un service infonuagique qui stocke notre code source, suit les changements au code et facilite les revues de code.
  • Actions GitHub est un service d’intégration et de déploiement continus (CI/CD) qui nous permet de tester et déployer notre code directement à partir de GitHub

    • Il y a beaucoup de services CI/CD, mais nous avons choisi Actions GitHub car il est très facile à installer, et il serait facile de s’en départir en raison de sa configuration de base yml
  • Heroku est une plateforme comme service (PaaS) complètement gérée. Nous utilisons Review Apps de Heroku pour construire des applications jetables à chaque demande de tirage, ce qui facilite la revue de code.
  • Snyk est un logiciel comme service qui passe à travers nos dépendances pour voir s’il y a des problèmes. Nous recevons des alertes lorsque la version d’un progiciel a des vulnérabilités connues.
  • LGTM est un logiciel comme service qui effectue l’analyse continue de la sécurité. Il fait une analyse à chaque demande de tirage pour trouver les vulnérabilités de sécurité potentielles.
  • SonarQube est un logiciel comme service qui fait l’analyse de la qualité du code. Il analyse chaque demande de tirage pour trouver des anomalies, des failles de sécurité ou des bogues afin de garantir de bonnes pratiques de codage.

Tests automatisés

Chaque demande de tirage subit une suite de tests automatisés.

  • Jest : Tests unitaires servant à vérifier la logique interne des composants
  • ESLint : Linter JavaScript qui assure une uniformité du code JavaScript dans toute l’application
  • Cypress : Tests basés sur le comportement qui s’exécutent pour vérifier les étapes des parcours utilisateur

    • cypress-axe : Nous effectuons un balayage de chaque page afin de vérifier les violations d’accessibilité dans le code
  • SonarQube : Il analyse chaque demande de tirage pour trouver des anomalies, des failles de sécurité ou des bogues afin de garantir de bonnes pratiques de codage.

Continuer le développement

Guide pour continuer le développement du produit : Ce guide est là pour vous aider si vous voulez reconstruire le service avec une nouvelle technologie ou si vous voulez développer et déployer le code.

Construire et exécuter l’application

Veuillez vous référer à la page README afin d’obtenir les instructions détaillées pour construire et exécuter l’application.