Trip Builder
Plateforme de recherche de vols pour trajets aller simple et aller-retour avec tri, filtres pratiques, autocomplétion d'aéroports et génération automatisée de données via CLI.
Trip Builder est un service web concentré sur la construction d'itineraires pour un passager unique, avec une architecture orientée backend. Le projet a d'abord été réalisé comme test technique PHP backend, puis a évolué vers un produit complet avec interface publique, logique de recherche et endpoints REST API simulant des intégrations avec des services externes de voyage.
Du point de vue produit, la valeur clé est la rapidité et la clarté de recherche de vols: l'utilisateur définit points de départ/arrivée, dates, classe cabine et détails passager, puis affine les résultats avec des critères utiles sans perdre le contexte. La version en production est disponible sur trip-builder.tarasov.ca, et le code source est maintenu dans le dépôt GitHub.
#Logique de recherche aller simple et aller-retour
La plateforme supporte les trajets aller simple du point A vers le point B et les parcours aller-retour composés de deux segments (A vers B, puis B vers A). Le classement des résultats repose sur des priorités de réservation concrètes: prix du billet, durée totale, plages de départ et plages d'arrivée.

Le même modèle de recherche reste disponible sur la page de résultats pour modifier rapidement les paramètres sans revenir à l'écran d'accueil.

#UX du formulaire: dates et autocomplétion aéroports
La sélection de dates utilise un calendrier adapté aux scénarios aller simple et aller-retour, ce qui limite les erreurs sur les combinaisons de départ/arrivée.

La saisie d'aéroports inclut une autocomplétion pour retrouver plus vite les aéroports par code ou ville, surtout pour les destinations moins fréquentes.

#Page de résultats et cartes de vols
La sortie de recherche est présentée sous forme de cartes par paires de villes, ce qui facilite la comparaison lorsque plusieurs combinaisons de routes existent pour la même requête.

La présentation des cartes met en avant les informations les plus actionnables pour prendre une décision rapidement.

Un résumé compact en haut conserve le contexte d'itinéraire pendant la lecture d'une longue liste d'options.

#Filtres avancés pour une meilleure pertinence
Les filtres permettent de réduire progressivement la liste sans reconstruire toute la requête. C'est particulièrement utile pour optimiser selon confort, horaires ou préférence compagnie.

Comme les filtres sont modulaires, il est possible d'ajouter des filtres métier personnalisés pour enrichir l'expérience de recherche.
#Génération automatisée des vols avec Noah CLI
Un outil CLI dédié (noah) gère la génération de datasets et les scripts opérationnels. La commande flights:add peut injecter des enregistrements réalistes avec aéroports départ/arrivée, dates, distances (calcul Vincenty), durée, note et coût dérivé de la route.
Pour une génération par défaut:
php noah flights:add

Pour une génération à grand volume:
php noah flights:add 10000

D'autres commandes opérationnelles issues de la documentation sont php noah list, php noah help flights:add, php noah db:clear et php noah flights:cleaning.
#Architecture backend, installation et données opérationnelles
L'application serveur est écrite en PHP et séparée en deux couches coopérantes: moteur web et REST API simulant des interactions avec services externes. L'installation du projet est simplifiée via le CLI (php noah install) documenté dans le README.
La qualité de recherche de vols dépend de jeux de référence fiables, notamment des modules de gestion aéroports et compagnies:


Le parcours de réservation est aussi couvert de bout en bout dans l'UI, pour relier résultat de recherche et intention de commande.

#Livraison, hébergement et optimisation des assets statiques
Le produit est à la fois versionné et hébergé publiquement: code source sur GitHub et site en ligne sur trip-builder.tarasov.ca. La diffusion des assets statiques a été optimisée via Amazon S3, ce qui améliore la flexibilité de stockage et la vitesse de livraison des contenus non dynamiques.
Le projet inclut également une page 404 dédiée pour conserver la continuité de navigation en cas d'URL invalide.

#Bilan
Trip Builder montre comment un projet axé backend PHP peut livrer une vraie valeur produit quand logique de recherche, génération de données et UI de filtrage sont pensées comme un seul système. En combinant planification sensible aux fuseaux, outillage CLI pour l'automatisation et pratiques d'hébergement production, la plateforme fournit une base évolutive pour les cas de recherche de vols ou pertinence des résultats et maintenabilité opérationnelle sont toutes deux critiques.