ETAONIS lançait Jaco, un produit de veille sur l'information. Le besoin était précis : un MVP qui tienne debout commercialement, c'est-à-dire capable d'encaisser un abonnement dès le premier jour, et pas seulement de montrer une maquette. Quatre fonctions ont été développées, et chacune répondait à une étape du parcours d'un abonné.
Le projet en détail
L'inscription se fait en deux étapes, les identifiants et le choix d'une des trois formules de l'outil, validables dans l'ordre qui arrange l'utilisateur. Le paiement passe par Stripe, avec un système de coupons prévu dès le départ, parce qu'un lancement se fait rarement sans offres de bienvenue. La recherche combine une barre simple et une zone de recherche avancée par secteur, zone géographique, date et mots-clés.
La quatrième fonction est celle qui transforme un moteur de recherche en produit de veille. L'abonné enregistre les alertes qu'il attend, à partir de secteurs et de mots-clés, et la périodicité des rapports qu'il souhaite recevoir. Un script dédié lit ces préférences et envoie alertes et rapports. C'est cette automatisation qui fait qu'un abonné n'a plus besoin de revenir sur le site pour que le service lui serve à quelque chose.
Un point d'architecture a été arbitré avant d'écrire la moindre ligne : comment l'application interroge l'API de données. Deux solutions se présentaient, faire passer les requêtes par Django qui sert alors de relais, ou appeler l'API directement depuis le navigateur grâce à un jeton éphémère identifiant l'utilisateur. La première était plus rapide à mettre en place, la seconde plus propre et plus performante. Nous avons recommandé le jeton éphémère et c'est ce qui a été construit : le dépôt porte encore son module de jetons et son backend d'authentification sur mesure.
Le volet DevOps comptait autant que le code. Nous avons installé une instance GitLab chez le client, transféré son code, monté un environnement de recette et paramétré l'intégration continue pour que toute modification poussée sur une branche donnée se déploie automatiquement. L'application est conteneurisée, servie par uWSGI derrière nginx, avec ses fichiers de déploiement dans le dépôt. Une formation a accompagné la livraison, pour que l'équipe sache faire vivre sa chaîne et écrire ses propres tests.
C'est le modèle que je préfère sur un MVP : livrer le produit et laisser derrière soi une équipe capable de continuer sans moi.