Aperçu technique

L’outil de recherche des prestations est une application presque autonome, avec une intégration externe requise uniquement pour la fonctionnalité de rétroaction.

En raison des délais courts de lancement et d’itération sur ce produit, il y a eu des compromis sur plusieurs décisions de conception. Les calculs de prestations et la logique de routage sont étroitement liés à l’application elle-même. Il est donc facile de mettre à jour le contenu existant, mais cela rend l’ajout de nouveaux itinéraires et prestations plus complexe.

Référentiel

c19-benefits-node

Référentiel principal pour l’outil de recherche des prestations

C19-Benefits-Manifest

Journal d’audit des lancements en production

Sommaire

L’application de l’outil de recherche des prestations est une application express côté serveur utilisant le modèle Nunjucks sur le serveur et le cadre Tailwind CSS pour le style. L’échafaudage de l’application provient du générateur express.

L’application met en œuvre de nombreuses pratiques recommandées pour un service Web moderne.

Utilisation des services de tiers

On utilise plusieurs services tiers pour un meilleur flux de développement et une sécurité continue.

  • GitHub est un service infonuagique qui stocke notre code source, suit les changements de code et facilite les révisions de code.
  • GitHub Actions est un service d’IC/DC qui nous permet de tester et de déployer notre code directement à partir de GitHub.
    • Les services d’IC/DC abondent, mais on a utilisé GitHub Actions parce qu’il était facile à configurer, et avec sa configuration basée sur le yml, il serait aussi facile de partir.
  • Heroku est une plateforme entièrement gérée en tant que service. Nous utilisons Review Apps de Heroku pour développer des applications jetables par demande d’extraction, ce qui facilite les examens de code.
  • Snyk est un logiciel comme service qui analyse nos dépendances liées aux trousses avec des problèmes connus. Il nous avertit lorsqu’une version d’une trousse que nous utilisons une exploitation connue.
  • LGTM est un logiciel comme service d’analyse de sécurité continue. Il analyse chaque demande d’extraction pour déterminer les vulnérabilités de sécurité possibles.
  • AirTable est une base de données comme service que l’on a utilisé pour saisir les commentaires des utilisateurs de l’application. L’interface conviviale d’AirTable a permis à nos chercheurs et concepteurs d’analyser facilement les commentaires des utilisateurs sans devoir élaborer une solution personnalisée.

Tests automatisés

Toutes les nouvelles demandes d’extraction ont un ensemble de tests automatisés exécutés contre elles.

  • Jest : Tests unitaires pour vérifier la bonne logique interne des composantes.
  • ESLint : application de lint JavaScript qui assure un protocole JS uniforme dans toute l’application.
  • Cypress : Tests de bout en bout axé sur les comportements qui passent par les flux utilisateur souhaités.
    • cypress-axe : on effectue une analyse d’accessibilité par page (à l’aide d’axe) pour vérifier les violations dans le balisage.
  • ShellCheck : Un outil d’analyse statique au moyen duquel on exécute tous les scripts shell qui détecte les problèmes de syntaxe, les problèmes sémantiques et les pièges qui peuvent pousser un script à produire des messages d’erreur difficiles à comprendre, se comporter étrangement ou échouer dans certaines circonstances.
  • Jsonlint : application de lint de notation d’objet JavaScript pour s’assurer que les fichiers locaux sont toujours valides.
  • Seekret : Outil permettant de s’assurer que les secrets comme les mots de passe ou les clés API ne sont pas enregistrés dans le code source.

Poursuite du développement

Marche à suivre pour poursuivre le développement dans ce projet : que votre objectif soit de restructurer le service dans une nouvelle technologie ou de développer et de publier ce code en particulier.

Développer et exécuter l’application

Consultez README pour obtenir des instructions plus détaillées sur le développement et le déploiement de l’application.