Isra Voyages
Développeur full-stack / Conception · Depuis 2025
Voir le site
Le voyage organisé, du besoin à la réservation en ligne.
Le besoin
Le site est le principal canal d'inscription de l'agence : départs, quotas, tunnel clair, suivi des voyageurs, et une réservation que plusieurs personnes peuvent régler.
Ma contribution
Maquettes et US de mon périmètre, puis le site public, le portail client, le back-office et l'API du cycle de réservation. Paiement Stripe en équipe.1
Ce qui a été livré
La plateforme est en production et sert de canal d'inscription principal. La V2 est en ligne sur les trois interfaces.
Ce que j'ai construit
Trois interfaces et une API, qui partagent le même SDK TypeScript généré depuis le contrat de l'API.
Site public
Le catalogue et la réservation, au même endroit.
Pages de voyages rendues côté serveur pour le référencement, un tunnel de réservation guidé, et un paiement que plusieurs personnes peuvent se partager, chacune avec son propre lien.
Next.js · Zustand · Stripe Elements
Portail client
Suivre sa réservation sans appeler l'agence.
Réservations, voyageurs et paiements réunis dans un tableau de bord, avec un menu par société cliente.
React · Vite · TanStack Query
Back-office
Créer une réservation en cinq étapes.
Voyage, formule, organisateur, passagers, récapitulatif. Import des passagers par fichier CSV, suivi des montants restant à encaisser.
React · React Router · CSV
API
Une seule API pour les trois interfaces.
Départs, quotas, inscriptions et statuts. Des relances automatiques pour les pièces manquantes et les paiements en attente.
Node.js · Hono · PostgreSQL · pg-boss
Fiche technique
- Interfaces
- Next.jsReactViteTanStack QueryZustandTailwind CSS
- API
- Node.jsTypeScriptHonoOpenAPIZod
- Données
- PostgreSQLTypeORMpg-boss
- Qualité
- VitestTesting LibraryMSWTestcontainers
- Paiement
- Stripe1
- Déploiement
- Docker
1. Le paiement Stripe (encaissements, remboursements, litiges, webhooks, règlement entre plusieurs payeurs) a été développé en équipe avec l'architecte de la mission.

