Aller au contenu
Toute l'expérience

Alternance · Sensei

PopNetwork

Un réseau d'apporteurs d'affaires, repris et fiabilisé

Logo PopNetwork

Plateforme où des partenaires extérieurs déclarent des contacts, suivent leurs affaires et touchent des commissions calculées dans Odoo. Produit hérité que j'ai remis en marche et couvert de tests de bout en bout.

La stack

Front-end
React 18 / TypeScript / Vite / React Router / Recharts / Design system interne
Back-end
Python / FastAPI / Tâches planifiées / Emails déclenchés par changement d'état
ERP
Odoo 17 / Module de commissions sur mesure / Odoo Sign
Données
Supabase / PostgreSQL / Coffre IBAN chiffré / Miroir Odoo vers Supabase
Paiement
Stripe / Alma
Tests
Playwright / Tests de bout en bout

Le produit

Des partenaires extérieurs déclarent des personnes de leur entourage professionnel. Chaque déclaration leur réserve l’affaire pour une durée bornée, et une commission leur revient si une vente se conclut. Le cadre légal de ce type de dispositif est strict : le produit rend visible au partenaire son propre statut de conformité.

Architecture

  • Odoo est la source de vérité : calcul des commissions, dédoublonnage, génération des contrats
  • Supabase sert de miroir pour des lectures rapides, alimenté par synchronisation planifiée et en lecture/écriture traversante. Le miroir capture l’état précédent d’une ligne avant mise à jour, ce qui permet de détecter les transitions et d’envoyer chaque email de cycle de vie une seule fois
  • Les IBAN sont stockés chiffrés côté Supabase, jamais dans l’ERP, et exposés masqués
  • Les versements restent une action humaine, par choix : une erreur technique ne doit pas décider d’un paiement

Ce que j’ai fait

  • Trouvé et corrigé une panne silencieuse qui empêchait les premiers inscrits de se connecter, puis réparé les comptes touchés
  • Ajouté les fonctionnalités de vente côté ERP
  • Écrit la suite de tests de bout en bout Playwright, que le projet n’avait pas
  • Remplacé un module communautaire par ce qui existait déjà dans Odoo
  • Déplacé un cloisonnement de rôle du menu vers la donnée