← blog
10 juillet 2026·2 min·2 vues

Digitaliser le transit douanier : retour sur TransitSoft

retour projetnestjsmonorepocameroun
Digitaliser le transit douanier : retour sur TransitSoft

Le transit, c'est un métier de paperasse et de délais. Un colis entre par l'aéroport ou le port, passe par une agence, un entrepôt, éventuellement une autre agence à l'intérieur du pays, puis arrive chez le client. À chaque étape : un document, une facture, une dette qui court, une pénalité de stockage qui tombe. TransitSoft Services est né pour digitaliser toute cette chaîne — aérien, maritime et terrestre — pour un fonctionnement multi-agences.

Le vrai problème n'est pas le CRUD

On pourrait croire qu'il s'agit d'un simple back-office. En réalité, la difficulté est la cohérence entre agences : un colis dépoté dans un entrepôt doit être redistribué vers la bonne agence de destination, la facturation doit suivre la devise et la configuration de chaque agence, et les dettes doivent basculer automatiquement en OVERDUE quand l'échéance passe.

J'ai découpé le produit en monorepo Turborepo :

apps/
  api/          # NestJS + Prisma (PostgreSQL) + Socket.IO + BullMQ
  web/          # opérations agence
  ops-admin/    # administration / configuration
  web-desktop/  # poste lourd
  web-client/   # portail client
  mobile/       # agents
  tablet/       # terrain
  orchestrator/ # control-plane multi-tenant

Ce que le temps réel et les crons résolvent

  • Socket.IO pour les notifications et le chat/support intégré : quand un bordereau est reçu, l'agence d'en face le voit sans rafraîchir.
  • BullMQ (Redis) pour ce qui doit tourner tout seul : calcul quotidien des pénalités de stockage, vérification des échéances de dettes, marquage automatique des impayés.
  • Génération PDF (factures pro, bordereaux) et QR code par colis pour le suivi physique.

La contrainte terrain

Les agents ne sont pas toujours connectés. Les données de localisation (pays → région → ville) sont embarquées en JSON statique côté client pour que les formulaires fonctionnent sans dépendre d'une API externe. C'est le genre de décision peu glamour mais qui change tout quand la 4G tombe dans un entrepôt.

Ce que j'en retiens

Un domaine métier riche ne se code pas « à plat ». Modéliser d'abord le cycle de vie du colis, ensuite seulement les écrans, m'a évité de réécrire trois fois la facturation. Et un monorepo bien découpé permet de livrer l'ops-admin sans casser la tablette.

Tu bosses sur un produit métier complexe (logistique, santé, finance) ? Comment tu gères la cohérence entre plusieurs interfaces qui touchent les mêmes données ? Dis-moi en commentaire.