Chargement000%

← Tous les projetsProjet de fin d’études d’ingénieur · Dundill · 2025

Plateforme d’optimisation des tournées de livraison

Trois microservices NestJS qui échangent des événements via RabbitMQ, un moteur de tournées heuristique sur distances routières réelles, le suivi des livreurs en temps réel et trois applications clientes.

  • NestJS
  • GraphQL
  • RabbitMQ
  • MongoDB
  • React
  • React Native
Présentation de l’architecture sur demande

01 · Contexte

Une activité de livraison du dernier kilomètre doit coordonner trois groupes : les partenaires qui créent les commandes, les administrateurs qui les répartissent et les livreurs sur la route. Réalisé dans le cadre de mon projet de fin d’études d’ingénieur chez Dundill.

02 · Enjeu

Transformer une liste de colis en tournée efficace pour chaque livreur, tenir tout le monde informé en temps réel et garder un système maintenable à mesure que les fonctionnalités s’ajoutent.

03 · Architecture

  • Trois services NestJS (Users, Orders, Notifications), chacun propriétaire de ses données MongoDB et exposant sa propre API GraphQL.
  • Des topic exchanges RabbitMQ transportent les événements métier entre les services (modifications d’utilisateurs, changements de statut des colis).
  • Une passerelle WebSocket diffuse en temps réel la position des livreurs vers le back-office.
  • Les notifications sont envoyées par e-mail et via des subscriptions GraphQL.
  • Clients : un back-office React, un tableau de bord partenaires React et une application livreur React Native (Expo).

04 · Décisions clés

  • Des événements plutôt que des appels directs

    Les changements d’état circulent sous forme d’événements asynchrones : un service de notifications lent ne bloque jamais une commande.

  • Rien ne se perd

    Une dead-letter queue et la reconnexion automatique conservent les messages en échec au lieu de les abandonner.

  • Des tournées sur de vraies routes

    Les arrêts sont ordonnés par une construction du plus proche voisin suivie d’une amélioration 2-opt, sur les distances routières réelles, avec un fournisseur d’itinéraires de secours pour que l’optimisation continue de fonctionner si l’un d’eux est indisponible.

  • La sécurité à la frontière du domaine

    Six rôles appliqués par des guards JWT dans le service d’identité ; les autres services vérifient les jetons auprès de lui.

05 · Résultat

Une plateforme opérationnelle de bout en bout, répartie sur six bases de code : les livreurs reçoivent une feuille de route optimisée, les administrateurs suivent les livreurs en direct et les partenaires reçoivent les mises à jour de statut au fil de l’eau. Présentation de l’architecture disponible sur demande.