Le client voulais des technos React / Node

J'ai trouvé ce projet sur codeur.com, Le client avait un budget serré ne dépansant pas 1000€ pour réaliser une version de démo

Il voulais une application SAS, incluant du payment Stripe et Paypal, ainsi que des graphes représentant les prévisions Météo

Par ailleurs, il devait y avoir un système d'envoie d'email aux utilisateurs quand certaines périodes étaient révolues

Je me suis donc mis à la tâche en partant d'un patron Docker et Traefik

Pour gérer l'accès au serveur j'utilise traefik avec Docker, cela permet de n'avoir pas à se soucier du renouvellement des certificats https qui sont gérés avec let's Encrypt
Cela permet aussi de router les différent domaines vers chacun des container qui servent le front ou l'api
Il faut dire qu'il y avait trois front et une api. Un front pour une application B2B, une front pour une application B2C et un front pour l'admin, plus l'api en node, ça fait 4 container qui tournent. J'ai aussi rajouté un container Redis pour gérer les session du back

Les + du couple React/Node

Je suis assez novice sur le couple Node/React, cela fait 2 ans que je l'utilise en ayant commancé sur un side project

L'intérêt c'est de n'avoir pas à changer de language entre le front et le back, et les ecosystèmes Node et React sont assez riches

Ainsi, j'ai eu à faire de l'internationalisation, tant sur le back que sur les front, et les modules sont nombreux pour réaliser ces tâches
Par ailleur les différentes API de payement comme Stripe et Paypal sont disponibles en javascript sous form de packet npm
Donc tout ces paramètre permettent d'aller trés vite et de ne pas perdre de temps en réinvantant la roue

Un ORM pour le back?

Je n'utilisait pas typescript pour ce projet, donc TypeOrm était exclu

J'ai donc choisi Sequelize, parmi tout les choix possibles

Et je n'ai pas été déçu, il inclut un système de migration, une solution pour générer des requêtes complexes avec des "et", de "or" et des "gt", tout cela en javascript
Ainsi, j'ai tout les avantages d'un ORM aboutit avec bien sur la sécurité d'avoir des variables échappées.

Brevo pour la solution d'envoi de mail transactionnel

Il y a eu débat, car mon client avait déjà un compte payant chez MailChimp

Mais il faut payer un supplément de 18$ Mensuel pour avoir la solution d'email transactionnel

Alors que chez Brevo ( ex Sendinblue ) on peut envoyer gratuitement 300 email par jour, c'est largement suffisant pour commencer
Après, je n'ai pas étudié la solution la moins chère si on doit envoyer 10 000 mails par jours, mais dans tout les cas j'ai développé les deux solutions, donc le client pourra basculer facilement de l'une à l'autre si il devait changer de fourisseur.

Stripe et Paypal pour le payement

J'avais déjà utilisé Stripe sur un projet Précédent, mais jamais Paypal

J'avoue que je me suis aidé d'open AI pour réaliser le composant Paypal, toujours avec des déboires qu'il faut régler à la main, notament une erreur javascript persistante reglé par un chargement synchrone de la lib papal front.
Stripe Worked Like a Charmed, avec un doc super bien faite sur le Site de Stripe et un support au top

Et voila, Projet réalisé en 2 Semaines, acuellement il est en recette chez le client

J'espère que ce retour d'experience vous a plus, je vous en dirais plus une fois la recette réalisée