prestige.cars

Prestige Cars

Une plateforme exclusive de location de voitures de luxe. Architecture modulaire de microservices pour la gestion de flotte, la disponibilité en temps réel et l’exploitation multi-sites à Dubaï, Paris et au-delà.

Retour aux références

14

Microservices

27+

Langues

11

Workflows de saga

200+

Endpoints API

Aperçu du projet

Le point de départ

Dubai skyline at dusk — the world Prestige Cars operates in

L’entreprise de location de voitures de luxe Prestige Cars est venue à nous avec une vision claire : une plateforme unique pour l’ensemble de son activité. Gestion de flotte, réservations, communication client, véhicules de remplacement, paiements - tout au même endroit. Chaque site indépendant, mais une seule marque.

Nous avons immédiatement compris qu’il ne s’agissait pas d’un site web avec un formulaire de réservation, mais d’un système d’exploitation complet pour plusieurs sites internationaux. Du premier clic à la facturation finale - chaque processus devait être numérisé.

01

Défi

L’objectif était de créer une plateforme de location de voitures premium à la hauteur de l’exclusivité des véhicules présentés. Prestige Cars avait besoin d’un site de réservation client, d’une gestion de flotte et d’un portail partenaire pour les exploitants de sites, le tout dans plus de 27 langues et sur plusieurs sites internationaux.

02

Approche

Nous avons conçu une architecture modulaire de microservices pour garantir l’évolutivité et la fiabilité. Un frontend Nuxt 3 se connecte à 14 microservices Go basés sur le framework d’Event Sourcing goes, communique via gRPC et NATS, et est orchestré par 11 sagas pour les workflows de réservation complexes.

03

Résultat

Une plateforme prête pour la production avec 14 microservices, une intégration Stripe et un support multi-sites. Actuellement en ligne à Dubaï et Paris, avec une expansion prévue en Europe, en Amérique et en Asie.

Plateforme

Trois applications, un backend

La plateforme se compose de trois applications interconnectées, toutes alimentées par le même backend de microservices Go. Chaque application s’adresse à un groupe d’utilisateurs différent avec des fonctionnalités sur mesure.

prestige.cars
Réservation client
admin.prestige.cars
Tableau de bord d’administration
partner.prestige.cars
Portail partenaire

Réservation client

Le site de réservation destiné aux clients, où les utilisateurs peuvent parcourir la flotte de luxe, vérifier les disponibilités en temps réel et finaliser leurs réservations avec les paiements Stripe. Prend en charge plus de 27 langues avec une optimisation SEO complète.

Navigation dans la flotte
Disponibilité en temps réel
Paiements Stripe
Plus de 27 langues
Pages de sites
Détails des véhicules
Shared Go Microservices Backend

Identité de marque

Branding & système de design

Pour Prestige Cars, nous avons développé une identité de marque qui communique luxe, exclusivité et confiance. L’or chaleureux sur fond sombre exprime le positionnement premium de la marque.

Logo & logotype

Le logo Prestige est un élégant logotype dans une police sans sérif classique. Sa typographie délicate, associée à la marque déposée, transmet exclusivité et sérieux. En blanc chaud sur fond sombre, il révèle tout son impact.

Prestige Cars Logo

Système de design

Le système de couleurs repose sur un or chaleureux (#E0C585) comme couleur primaire, complété par une teinte sombre profonde (#1A1F28) comme couleur d’arrière-plan. El Messiri est utilisée pour les titres, Nunito Sans pour le corps du texte. Cette combinaison transmet le luxe tout en assurant une excellente lisibilité.

Prestige Cars

Dark Mode

Prestige Cars

Light Mode

Primary

#E0C585

#F5ECD7
#EBD9AF
#E6C78A
#E0C585
#BA9859
#8A6F3E

Headline

Aa

El Messiri · Bold · 700

Buttons

Dark

#1A1F28

Body

Aa

Nunito Sans · Regular · 400

Line Weights

1px · Accent

2px · Divider

4px · Section

Icons

Car
Calendar
Map
Card
User
Key

Dark Gold

#2F2D27

Components

Search fleet...
AvailableBookedDraft

Lamborghini Huracán EVO

92%

Expansion mondiale

Présence mondiale

La plateforme est conçue pour une montée en charge mondiale. Actuellement en ligne à Dubaï et Paris, avec une expansion prévue en Europe, en Amérique et en Asie. Chaque site fonctionne de manière autonome avec une tarification locale, sa propre flotte et ses paramètres linguistiques.

Présence mondiale

Sites de location de véhicules de luxe dans le monde entier

Actif Bientôt disponible

modernice a livré une plateforme complexe de la plus haute qualité. L’architecture de microservices nous permet d’intégrer facilement de nouveaux sites et de nouvelles fonctionnalités.

Prestige Cars

Prestige Cars

Direction

Architecture technique

Microservices & Event Sourcing

Le backend repose sur des microservices Go avec le framework d’Event Sourcing goes. Les événements de domaine constituent la source unique de vérité, sont stockés dans MongoDB, communiqués via gRPC et distribués par le bus d’événements NATS. Chaque service est conçu pour la fiabilité et l’évolutivité.

API Gateway
Auth
Booking
Billing
Fleet
FleetMedia
Partner
Profile
Search
Store
Notification
Support
Delivery
Activity

Décisions architecturales

01

Le backend est organisé comme un monorepo Go avec 14 microservices qui communiquent via gRPC. Chaque service gère son propre contexte délimité avec son propre Event Store. La conception multi-tenant permet l’onboarding de nouvelles marques par configuration plutôt que par modification du code.

02

Les événements de domaine constituent la source unique de vérité : chaque changement d’état est persisté comme événement immuable dans MongoDB et distribué via NATS à tous les services concernés. 11 sagas orchestrent les workflows de réservation complexes.

03

La communication interservices s’effectue via gRPC avec Protocol Buffers pour des appels performants et typés de manière sûre. La passerelle REST basée sur Chi traduit les endpoints gRPC pour le frontend.

1

Frontend

Nuxt 3 + Vue 3

Nuxt 3Vue 3Tailwind CSSi18nNuxt Content

Rendu côté serveur avec Tailwind CSS, plus de 27 langues via Nuxt i18n, icônes FontAwesome Pro et Nuxt Content pour le blog.

2

Passerelle API

Go + Chi Router

GoChiJWTCORS

Passerelle REST pour l’orchestration des microservices avec authentification JWT, gestion CORS, limitation de débit et traitement des webhooks Stripe.

3

Microservices

14 contextes délimités

gRPCMongoDBNATSgoesSagas

Agrégats event-sourced avec gRPC. Événements de domaine via NATS, MongoDB comme Event Store, 11 sagas.

4

Infrastructure

Docker + GCP

DockerTraefikGCSDopplerGCR

Plus de 14 conteneurs avec Traefik comme reverse proxy et TLS. Doppler pour les secrets, Google Cloud pour les médias et les images.

Stack technique

  • Nuxt 3 + Vue 3
  • Go 1.20
  • gRPC + Protocol Buffers
  • MongoDB (Event Store)
  • NATS (Event Bus)
  • Tailwind CSS
  • Stripe (Payments)
  • Google Cloud Storage
  • Docker + Traefik
  • Doppler (Secrets)
  • goes (Event Sourcing)
  • Chi (HTTP Router)

Fonctionnalités de la plateforme

Fonctionnalités essentielles du système

01

Catalogue de véhicules

Recherche complète de véhicules avec filtrage par site, catégorie, marque et disponibilité. Pages détaillées avec galeries d’images et listes d’équipements.

02

Système de réservation

Flux de réservation complet avec création d’offres, gestion des demandes, vérification des disponibilités et confirmation automatique via 11 sagas.

03

Traitement des paiements

Intégration Stripe pour les paiements clients avec traitement des webhooks, facturation automatisée et suivi des paiements.

04

Gestion des partenaires

Portail dédié aux exploitants de sites pour gérer les flottes, les réservations et la facturation, avec contrôle d’accès basé sur les rôles.

05

Recherche de véhicules

Projection de recherche pilotée par événements pour une recherche de véhicules en temps réel avec filtrage par site, période et catégorie de véhicule.

06

Notifications

Workflows d’e-mails automatisés et notifications push web pour les confirmations de réservation, les rappels et les mises à jour de statut.

07

Gestion des sites

Support multi-sites avec landing pages individuelles, horaires d’ouverture, aperçus de flotte et contenus localisés.

08

Galeries médias

Intégration Google Cloud Storage pour les images de véhicules, avec traitement automatique des images, gestion des galeries et diffusion CDN.

Livrables

  • Frontend Nuxt 3 avec plus de 27 langues
  • 14 microservices Go avec Event Sourcing (goes)
  • Communication gRPC avec passerelle API REST (Chi)
  • Intégration des paiements Stripe avec traitement des webhooks
  • Google Cloud Storage pour la gestion des médias
  • 11 orchestrations de sagas pour les workflows de réservation
  • Bus d’événements NATS pour la communication asynchrone
  • Portail partenaire avec accès basé sur les rôles
  • Support multi-sites (Dubaï, Paris, entre autres)
  • Notifications push web (VAPID)
  • Infrastructure Docker avec reverse proxy Traefik
  • Intégration de la gestion des secrets Doppler

Aperçus du projet

Détails techniques et décisions clés derrière le projet Prestige Cars

Le framework goes fournit un système d’Event Sourcing bien pensé, spécialement conçu pour Go, avec une prise en charge intégrée de MongoDB comme Event Store et de NATS comme bus d’événements. Associé au modèle de concurrence de Go et à sa faible empreinte mémoire, il constitue une base idéale pour des microservices performants.

Les sagas orchestrent des workflows complexes interservices tels que les demandes de réservation, la création d’offres et l’onboarding des partenaires. Chaque saga réagit aux événements de domaine et coordonne les services impliqués afin de garantir la cohérence transactionnelle au-delà des frontières entre services.

Le frontend utilise Nuxt i18n avec plus de 27 langues, dont l’allemand, l’anglais, le français, l’arabe et d’autres. L’architecture i18n prend en charge la détection du navigateur, la persistance basée sur les cookies et le routage dynamique.

Le service Store gère les différents sites avec leurs propres landing pages, attributions de flotte, horaires d’ouverture et contenus localisés. De nouveaux sites peuvent être créés via le tableau de bord d’administration, sans modification du code.

Stripe traite l’ensemble des paiements. Le service Billing traite les webhooks de confirmation de paiement, gère les factures et suit le statut des paiements. L’intégration prend en charge plusieurs devises pour les sites internationaux.

Tous les services sont déployés sous forme de conteneurs Docker avec Alpine Linux et Doppler pour la gestion des secrets. Traefik sert de reverse proxy avec TLS automatique. Les images de conteneurs sont gérées via Google Container Registry.

Prends contact avec nous

Tu prévois une plateforme avec plusieurs sites, de la disponibilité en temps réel ou une exploitation exigeante ? Présente-nous ton projet et nous te montrons comment la bâtir proprement.