DriveRent : marketplace de location de voitures
Une marketplace multi-vendeurs de location de voitures pour le Maroc : particuliers et agences publient leurs véhicules, les locataires cherchent, réservent, paient et laissent un avis.

Aperçu
DriveRent est une marketplace de location entre particuliers et agences. Les locataires cherchent une voiture sur une carte, réservent, échangent avec le loueur, font l'état des lieux de départ et de retour et laissent un avis ; particuliers et agences gèrent leur flotte depuis un espace loueur ; l'équipe de la plateforme pilote l'ensemble depuis une console d'administration séparée. Je l'ai construit en monorepo pnpm et Turborepo avec deux applications Next.js et une API NestJS.
Le problème
Une marketplace de location doit servir en même temps des profils très différents : des particuliers avec une seule voiture, des agences avec plusieurs succursales et des rôles internes, des locataires qui veulent réserver simplement, et une équipe qui modère les annonces, gère les paiements et traite les litiges.
Ce que j'ai construit
J'ai développé une API NestJS (REST et Swagger) avec Prisma sur PostgreSQL et PostGIS, JWT avec rotation des jetons de rafraîchissement, hachage Argon2id, contrôle d'accès par rôle et messagerie Socket.IO, ainsi qu'un worker BullMQ sur Redis pour les tâches de fond et MinIO pour les photos. Les agences ont des succursales et des rôles limités (gérant, agent d'accueil, comptable), et l'équipe plateforme a ses propres permissions (modération, finance, support, litiges). Le paiement peut se faire en ligne ou à l'agence au retrait, selon un réglage admin. Des packages partagés regroupent le client API typé, les schémas de validation Zod et le design system.
Résultats
- Marketplace, espace loueur et console d'administration en français, arabe (de droite à gauche) et anglais
- Lint, typecheck strict, tests unitaires et d'intégration de l'API, et tests de bout en bout Playwright
- CI/CD avec GitHub Actions : images construites, publiées sur GHCR et déployées sur une VM, avec retour arrière par tag
- Stack locale complète en une commande Docker Compose (API, worker, web, admin, PostgreSQL, Redis, MinIO, Nginx, Mailpit)
Points clés
- Recherche de voitures sur carte avec PostGIS
- Réservation, états des lieux de départ et de retour, messagerie et avis
- Agences avec succursales et rôles internes limités
- Choix du mode de paiement : en ligne ou au retrait du véhicule
- Console d'administration avec permissions par équipe : modération, finance, support et litiges
- Client API typé, schémas Zod et design system Radix et Tailwind partagés


