Aller au contenu
ZB
Tous les projets

Mami Travel

Plateforme de réservation d’une agence de voyages tunisienne

Catalogue, tarification dynamique et réservations de transferts, excursions, circuits et escales de croisière, vendus via un site public en six langues.

Réalisé chez
MAMICAR
Rôle
Architecte & développeur principal
Période
2025 – Aujourd’hui
Statut
En production · public
Voir le site
Site public : recherche de circuits, excursions et transferts

Contexte

Mami Travel vend des produits très différents : transferts aéroport tarifés à la distance, excursions tarifées selon la taille du groupe, circuits de plusieurs jours avec hôtels et excursions pour passagers de croisière. Une seule API NestJS sert le back-office Angular des agents et le site public Next.js : un prix est toujours calculé par le même moteur, quel que soit l’auteur de la réservation.

Ce que j’ai construit

  • Tarification des transferts à partir des distances routières réelles (serveur de routage OSRM auto-hébergé), tarifs kilométriques par paliers, suppléments de retour à vide et coefficients saisonniers.
  • Grilles de prix par taille de groupe et par classe d’âge pour les excursions, escales et circuits, avec options guide, déjeuner et droits d’entrée.
  • Création de circuit sur mesure : le client compose son itinéraire et ses hôtels et obtient un devis instantané.
  • Chaque réservation publique est recalculée côté serveur ; aucun montant envoyé par le navigateur n’est pris pour argent comptant.
  • Site public en six langues et plusieurs devises, avec sitemap et métadonnées SEO par page.
  • Proxy backend-for-frontend : le jeton de l’API interne ne quitte jamais le serveur ; jetons d’accès courts et cookies de rafraîchissement httpOnly.
  • Bons et itinéraires en PDF, e-mails de réservation, intégration du paiement en ligne par carte (ClicToPay) et liens de paiement.

Écrans

Back-office : grilles de prix par taille de groupe, classe d’âge, lieu de départ et option (données de démonstration)
Back-office : grilles de prix par taille de groupe, classe d’âge, lieu de départ et option (données de démonstration)
Création de circuit sur mesure avec récapitulatif en direct
Création de circuit sur mesure avec récapitulatif en direct
Tableau de bord du back-office : réservations par statut et par service (données de démonstration)
Tableau de bord du back-office : réservations par statut et par service (données de démonstration)
Réservations de transferts gérées par les agents (données de démonstration)
Réservations de transferts gérées par les agents (données de démonstration)
Page d’escale avec le module de réservation
Page d’escale avec le module de réservation