Koli
Le dernier kilomètre du e-commerce social à Douala : des livreurs vérifiés, un colis suivi en direct et un paiement protégé jusqu'à la remise.
Koli est une application de livraison à Douala pour les vendeurs qui travaillent sur WhatsApp, Instagram, TikTok ou Facebook et ont besoin de livreurs fiables sans les recruter. Le vendeur décrit son colis, fixe son prix à partir d'une fourchette suggérée selon la distance, et la demande est proposée aux livreurs vérifiés autour du point de collecte : le premier qui accepte prend la course. Le colis se suit en temps réel sur la carte, et la remise est prouvée par un code à quatre chiffres envoyé par SMS au destinataire. Le paiement se fait en espèces à la remise ou en Mobile Money, avec des fonds bloqués jusqu'à la validation. Côté livreur, chacun choisit librement ses courses, consulte son portefeuille et retire ses gains via Orange Money ou MTN MoMo.
Le cœur du système est une machine à états de livraison : création, recherche, assignation, collecte, transit, livraison, règlement, avec des règles d'annulation propres à chaque étape. La recherche procède par diffusion en trois vagues de 45 secondes, sur des rayons de 2, 4 puis 6 km, orchestrées par des tâches asynchrones sur file d'attente (BullMQ et Redis). En Mobile Money, le livreur assigné déclenche une fenêtre de trois minutes pour confirmer le dépôt, faute de quoi la course repart en recherche. Les fonds sont alors bloqués, crédités au portefeuille du livreur à la validation du code, puis retenus une heure pour couvrir les litiges. Le suivi de position passe par WebSocket (Socket.IO) entre l'application Expo / React Native et l'API NestJS sur PostgreSQL. Les notifications combinent push Firebase, SMS et WhatsApp, et un module de portefeuille tient les soldes disponibles et en retenue.
Au lancement, peu de livreurs actifs signifie qu'une carte presque vide détruit la confiance : d'où une diffusion par vagues plutôt qu'un choix sur carte, et un argent bloqué tant que le colis n'est pas remis.
Défis techniques
- Une machine à états de livraison fiable, avec une autorité d'annulation différente selon l'étape : libre avant l'engagement, arbitrée par un admin une fois le colis récupéré.
- Une diffusion par vagues de rayon croissant avec des fenêtres chronométrées, sans doublon d'acceptation quand plusieurs livreurs répondent en même temps.
- Un séquestre Mobile Money : fonds bloqués à l'acceptation, libération automatique de la course si le dépôt n'arrive pas, crédit au portefeuille à la validation du code puis retenue pour les litiges.
- Un suivi GPS temps réel sur des réseaux mobiles instables, relayé par WebSocket.
Rôle
Créateur & Développeur — projet personnel